问题标签 [cap-theorem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rdbms - 在 CAP 定理中,缩放的关系数据库会落在哪里?
如果您使用一个用于写入的数据库和多个用于读取的数据库来扩展 SQL 服务器。将数据从写入数据库复制到其他读取数据库不会有延迟吗?在哪种情况下数据不一致?
那么在 CAP 定理中,规模化的关系数据库会落在哪里呢?
更新:
在关系数据库中,一致性意味着不会有部分更新。例如,如果有人将钱从一个账户转移到另一个账户,而整个事情是一笔交易的一部分,那么您就不会从一个账户中取出钱,但不会出现在另一个账户中。
在 CAP 定理中,一致性意味着所有组件都看到相同的数据。这种一致性不同于 ACID 中的一致性。
据我所知,像 SQL Server 这样的关系数据库应该是 CA(一致且可用)。如果只有一个数据库,这将是有意义的。因为每个人都会看到相同的数据。但是,如果 SQL Server 使用多个数据库进行扩展呢?在那种情况下,所有数据库仍然会看到相同的数据吗?如果不是,它是否一致(在 CAP 定理中)?
我的感觉是缩放的关系数据库是 AP(可用和分区容错)而不是 CA(一致和可用)。
java - 为去中心化日历项目选择数据库类型
我正在开发一个去中心化的日历系统。如果它们都有互联网连接,它应该将数据保存在每个设备上并同步。我的第一个想法是,只使用关系数据库并尝试在连接后同步数据。但是这个理论说的是别的东西。Brewers CAP 定理描述了它背后的理论,但我不确定这个定理是否已经过时。如果我使用这个定理,我有“AP [可用性/分区容限] 系统”。“A”是因为我在任何给定时间都需要日历的数据,而“P”是因为它可能发生,即设备之间没有连接并且数据无法同步。示例数据库是 CouchDB、RIAK 或 Cassandra。我只使用关系数据库,现在不知道如何继续。为我的项目使用关系数据库有那么糟糕吗?
这是我的学士论文。我只是想开始使用 Postgres,但后来我发现了这个定理……整个项目都是基于 Java 的。
rest - 微服务是否可以结合 REST 和消息传递?
我们拥有基于微服务架构的应用程序的第一个版本。我们使用 REST 进行外部和内部通信。
现在我们要从 CP(CAP 定理)* 切换到 AP,并使用消息总线进行微服务之间的通信。有很多关于如何基于 Kafka、RabbitMQ 等创建事件总线的信息。但我找不到任何将 REST 和消息传递结合的最佳实践。例如,您创建了一个汽车服务,您需要添加不同的汽车组件。为此,将 REST 与 POST 请求一起使用会更有意义。另一方面,预订汽车的服务对于基于事件的方法来说将是一项很好的任务。
当您拥有不同的字典和业务逻辑功能时,您是否有类似的方法?你如何将它们结合起来?只是分别支持这两种方法?还是用一种方法统一它们?
* 对于第一个版本,我们同意选择一致性和分区容差。但现在可用性对我们来说变得更加重要。
google-cloud-firestore - 了解分布式系统中的一致性
如何在分布式系统上获得高频、一致的读/写?通常不确定如何在大型系统上概念化一致性。
用例:防止用户在指定时间段内执行相同的操作。在滥用情况下,这可能是高频操作。
扩展问题:我将如何扩大此操作?Firestore 等系统如何在提供高可用性的同时提供一致性?Firestore 配额(例如每秒 1 个文档写入)告诉我们他们可能是如何构建系统的?
谢谢
elasticsearch - Elasticsearch 遵循 CAP 定理的哪些原则?
我有一个关于 Elasticsearch 的问题。关于 CAP 定理,Elasticsearch 在三者中遵循什么?有人说它的CA,有人说它的AP。这取决于吗?我也在阅读这篇文章 - https://martin.kleppmann.com/2015/05/11/please-stop-calling-databases-cp-or-ap.html。
database-design - CAP 定理:选择一致性和可用性?
如果我选择一致性和可用性,这意味着我不能有分区容错。这是什么意思?这是否意味着必须关闭整个系统?如果是这样,我也不会有空吗?这是矛盾吗?
编辑:我知道当没有分区时,你可以拥有这三个。
cassandra - 对 CAP 定理感到困惑
我正在阅读 CAP Theorem 并感到困惑。对于 CA,我以 Oracle 为例。一致性:Oracle 是一致的,因为我们没有多个节点并达成一致。可用性:它只有一个节点,为什么它是高可用的,如果它崩溃了怎么办?
hdfs - CAP 定理如何应用于 HDFS?
我刚开始阅读 Hadoop 并遇到了 CAP Theorem。您能否介绍一下 CAP 的哪两个组件适用于 HDFS 系统?
distributed-system - aerospike 读取的强一致性 - 为什么他们需要政权编号?
我正在阅读aerospike手册的强一致性模式。在最后一个示例“Strong Consistency for reads”中,他们解释说,在分区的情况下,他们需要一个名为“regime”的概念来确保读取的线性化。为什么我们需要那个?写入少数派不会成功,因为它们不会被复制,所以我们担心什么?缺少对活动主机的写入?
cassandra - 具有一致性级别和复制因子的 Cassandra 如何处理 CAP 定理?
根据CAP 定理的定义,任何分布式系统只能满足两个条件。传统上,Cassandra 是一个 AP 系统。如果我们使用像 LOCAL_QUORUM 这样的一致性级别,它也可以确保强一致性。
假设我们必须始终保持 Partition Tolerance,如果我们使用 LOCAL_QUORUM 和 Replication factor,我们可以确保强大的一致性和可用性。它违反 CAP 定理还是我遗漏了什么?
PS:为简单起见,我们只有一个数据中心。