- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不明白 RDBMS 是 CAP 定理中的 CA 的两点:
1) 它说 RDBMS 是 不是 分区容错 但是 RDBMS 怎么样少分区比其他技术(如 MongoDB 或 Cassandra)更容错?是否有 RDBMS 设置我们放弃 CA 使其成为 AP 或 CP?
2) 如何获得 CAP?是通过主从设置吗?就像当主人死了一样,奴隶接管写入?
我是 DB 架构和 CAP 定理的新手,所以请耐心等待。
最佳答案
现在很多数据库实际上有不同的配置,根据您设置的设置,它可以是CA、CP、AP等,但不能同时实现所有三个。一些数据库实际上努力支持所有这三个,但仍然以某种方式优先考虑它们。
例如,根据配置,MySQL 可以是 CP 和 CA。默认情况下,它是 CA,因为它遵循主从模式,将数据复制到从站。如果一组从站失去与主站的连接并因此决定选举一个新的主站,用他们自己的一组从站创建两个主站,则会牺牲分区容错性。
但是,MySQL 还有另一种配置,即集群配置。它优先考虑 CP 而不是可用性,例如。如果没有足够的事件节点来提供所有数据,集群将关闭。
MySQL 可能有更多配置使其满足其他 CAP 定理组合,但总的来说,我只想说这取决于您的系统需要什么。有时数据库更适合一种配置而不是另一种配置,因此最好查看使用某种配置时可能出现的问题类型。
至于实现 CAP 定理,我建议进一步研究不同的数据库以及它们如何实现 CAP 定理的优先级。实现它们的方法太多了,例如。一般CA系统采用主从模式,AP系统采用hash ring等。
关于distributed-computing - 为什么 CAP 定理中的 RDBMS 分区容错性不强,为什么可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36404765/
我是一名优秀的程序员,十分优秀!