问题标签 [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.

0 投票
1 回答
161 浏览

akka - 在特定时间可靠地处理消息

假设我有一个聊天应用程序。

客户端向聊天室发送消息,从而向某个 Actor 发出一些命令。现在,我想立即处理他写的内容,并在此聊天中提供给其他用户,所以我处理了这个命令。同时我想告诉自己(一个演员),我需要将此消息存储在聊天历史数据库中,但不是现在。保存到数据库应该每 2 分钟发生一次。如果发生崩溃,我应该能够坚持到数据库。

我假设工作流程是这样的:

  1. 用户发送消息
  2. 聊天室参与者收到带有此消息的命令
  3. 我们将这条消息广播给每个人,并将这条消息添加到某种队列中,以将其保存到聊天历史数据库中
  4. 一些持久命令在 2 分钟超时后运行。它按照到达的顺序收集所有尚未持久化的传入聊天消息
  5. 对所有消息运行事务,然后将它们从队列中删除。
  6. 如果在 3 之后某处发生崩溃并且消息没有持久化,那么我应该尝试再次持久化它们。如果他们被坚持,我不应该再尝试坚持他们。

如何在 Akka 中构建这样的东西?我应该使用哪些功能/哪些模式?

0 投票
2 回答
1480 浏览

hadoop - Hadoop 的 HDFS 高可用性特性如何影响 CAP 定理?

根据我目前所读到的关于 CAP 定理的所有内容,没有一个分布式系统可以同时提供以下三个方面:可用性、一致性和分区容错性。

现在,Hadoop 2.x 引入了一项新功能,可以对其进行配置以消除 hadoop 集群所具有的单点故障(单个名称节点)。这样,集群就变得高度可用、一致且具有分区容错性。我对吗?还是我错过了什么?根据 CAP 的说法,如果系统试图提供所有这三个功能,它应该为延迟付出代价,新功能是否会将这种延迟添加到集群中?还是 Hadoop 破解了 CAP 定理?

0 投票
3 回答
4506 浏览

rdbms - 为什么 RDBMS 被认为适用于 CAP 定理 (CA)

如果我正确理解了 CAP 定理,可用性意味着即使节点出现故障,集群也会继续运行。

我见过很多人(http://blog.nahurst.com/tag/guide)将RDBMS列为CA,但我不明白RBDMS是如何可用的,好像一个节点宕机,集群必须宕机保持一致性。

我对此唯一可能的答案是大多数 RDBMS 都是单个节点,因此没有“非故障”节点。但是,这似乎是一个技术问题,而不是真正的“可用性”,也绝对不是高可用性。

谢谢你。

0 投票
1 回答
241 浏览

distributed-computing - 为什么 CP 系统也不能是 CAP?

CAP 缩写的理解如下:

  • 一致:每次读取都会获得最近的写入
  • A vailable:每个节点都可用
  • Partion Tolerant:当节点之间的网络连接断开时,系统可以继续维护 A 和 C 承诺

假设我的理解或多或少处于正轨,那么有些事情困扰着我。

AFAIK,可用性是通过以下任何技术实现的:

  • 负载均衡
  • 复制到灾难恢复系统

因此,如果我有一个我已经知道是 CP 的系统,为什么我不能通过应用这些技术之一使其也可用来“使其成为完整的 CAP ”?我确定我在这里遗漏了一些重要的东西,只是不确定是什么。

0 投票
1 回答
297 浏览

clojure - Zookeeper Watches 系统是否存在错误,或者这是 CAP 定理的限制?

Zookeeper Watches文档指出

“客户端将在看到与该 znode 对应的新数据之前看到它正在观察的 znode 的观察事件。” 此外,“因为 watch 是一次性触发器,并且在获取事件和发送新请求以获取 watch 之间存在延迟,因此您无法可靠地看到 ZooKeeper 中节点发生的每一个变化。”

关键是,不能保证您会收到观看通知。

这很重要,因为在像 Clojure 的Avout这样的系统中,您正在尝试使用Zookeeper在网络上模仿 Clojure 的软件事务内存。这依赖于每次更改都有一个监视通知。

现在我正在尝试确定这是一个编码缺陷,还是一个基本的计算机科学问题,(即CAP 定理)。

我的问题是:Zookeeper Watches 系统是否存在错误,或者这是 CAP 定理的限制?

0 投票
2 回答
1506 浏览

marklogic - Marklogic 如何具有一致性和可用性?

CAP 定理对我来说似乎是合乎逻辑的。我明白那个:

如果我在分布式系统上具有一致性,我必须等待所有事务。ACID 的成本是在所有网络上复制数据的时间。

但是 Marklogic 怎么能两者兼得。ACID 和分布式系统没有延迟?
那么是否可以在同一个数据库上拥有 BASE 和 ACID 属性?
那么CAP定理错了吗?

0 投票
0 回答
179 浏览

dropbox - 为 Dropbox.com 应用 CAP 定理

根据CAP 定理的定义,任何分布式系统只能满足两个条件。从逻辑上思考,我觉得像 Dropbox 这样的云服务一次就能满足 C,P。C 这样即使您更新了一个节点中的数据,数据也会立即复制到另一个节点。

正确答案是 P,A(分区容差和可用性)。现在云服务可以同时兼具 P&A 功能吗?

对此有何见解?谢谢 :)

0 投票
1 回答
147 浏览

database - 根据这张图,为什么 RDBMS 的 CS 系统在 CAP 中是有意义的?

根据图片: 1. 为什么是 Mongodb,...(CP) 2. 为什么是 CouchDB,..(AP) 3. 为什么是 Rdbms (CA)

注意:为什么分区容差对 RDBMS 来说并不重要?

在此处输入图像描述

0 投票
0 回答
368 浏览

database - 为什么关于上限三种情况的理论不能在一起(一致性,可用性,分区容限)?

CAP 定理表明分布式系统只能为您提供三个选项中的两个选项:一致性可用性分区 容错性,其余选项将提供其他选项。事实上,为什么我们不能把这三个放在一起呢?请举例说明。 在此处输入图像描述

0 投票
1 回答
768 浏览

sql - Azure SQL 数据库牺牲了 CAP 定理的哪一部分,为什么?

它必须是一致的,因为它是一个 SQL 分布;它具有分区容错性,因为它存储在云中并且具有高可用性。那么它究竟牺牲了什么?