标签: consistency

是否有任何通用算法可实现分布式系统的最终一致性?

是否有任何算法通常用于实现分布式系统中的最终一致性?

有一些算法是为分布式系统中的ACID事务开发的,特别是Paxos,但是有一个类似的理论体系是为BASE场景开发的,具有较弱的一致性保证吗?

编辑:这似乎是一个刚刚开始发展的学术研究领域.Mcdowella的回答表明,该领域至少有一些工作.

algorithm distributed consistency eventual-consistency

5
推荐指数
1
解决办法
1501
查看次数

与Cassandra数据模型的交易

根据CAP理论,Cassandra最终只能具有一致性.更糟糕的是,如果我们在一次请求中有多次读写而没有正确处理,我们甚至可能失去逻辑一致性.换句话说,如果我们快速做事,我们可能做错了.

同时,为Cassandra设计数据模型的最佳实践是考虑我们将要拥有的查询,然后添加一个CF. 通过这种方式,添加/更新一个实体意味着在许多情况下更新许多视图/ CF. 没有原子事务功能,很难做到正确.但有了它,我们又失去了A和P部分.

我不认为这涉及很多人,因此我想知道为什么.

  • 这是因为我们总能找到一种方法来设计我们的数据模型,以避免在一个会话中进行多次读写操作吗?
  • 这是因为我们可以忽略"正确"部分吗?
  • 在实际操作中,我们总是在中间的某处有ACID功能吗?我的意思是可能在应用层实现或添加中间件来处理它?

consistency eventual-consistency cassandra

5
推荐指数
1
解决办法
826
查看次数

如何确保具有高可用性的聚合的一致性?

我的团队需要找到以下问题的解决方案:

我们的应用程序允许用户查看企业的总销售额,按产品划分的总计,按地区划分的总数,按地区x产品划分的总数,按地区划分的总数等.您可以了解相关信息.有许多值需要聚合以获得许多无法动态计算的总数 - 我们必须预先聚合它们以提供合适的响应时间,这个过程大约需要5分钟.

问题,我们认为是一个常见的问题,但没有参考,是如何在不关闭用户的情况下允许更新各种销售.此外,用户无法接受最终的一致性 - 如果他们总共向下钻取12个,他们最好看到总数为12的数字.因此,我们需要一致性+可用性.

到目前为止,我们提出的最佳解决方案是将所有查询定向到冗余数据库,"B"(针对查询进行了优化),同时将更新定向到主数据库"A".当我们决定花5分钟更新所有聚合时,我们更新数据库"C",这是另一个冗余数据库,就像"B"一样.然后,新用户会话被定向到"C",而现有用户会话继续使用"B".最后,警告任何人使用"B",我们杀死"B"上的会话并在那里重新聚合,交换"B"和"C"的角色.典型的排水停止方案.

我们感到惊讶的是,我们无法找到任何关于此的讨论,并担心我们过度设计这个问题,或者可能不是我们认为的问题.任何建议都非常感谢.

caching consistency aggregates

5
推荐指数
1
解决办法
134
查看次数

副本集和MongoDB,选项{w:1}是否使CAP成为系统AP?

就CAP定理而言,MongoDB通常默认定义为CP.在副本集方案中,以下是否正确?该选项w是写作问题:

  • { w: 1 }:等待仅从主要确认.如果我们从次要成员读取,系统最终一致的,然后是AP.
  • { w: 3 }:等待三名成员的确认.如果副本由三个成员组成,则系统是一致的(强?),因此CP.

database consistency mongodb

5
推荐指数
1
解决办法
612
查看次数

CloudSearch中的一致读取

CloudSearch的结果只是最终一致的.

在我的95%的应用程序中,这是它提供的性能和冗余的可接受的权衡.

在最后的5%中,我发现自己发布了一个新的SDF文档,然后立即运行一个查询,我需要反映我刚刚做的POST.

目前,我有一个拼凑在一起的解决方案,涉及轮询CloudSearch,直到结果符合我的预期,直接在POST之后.不幸的是,当我有多个用户时,这会产生许多问题,包括与额外读取相关的成本($)增加到竞争条件.

处理这种情况有什么最佳做法吗?

来自AWS论坛的xpost:https://forums.aws.amazon.com/thread.jspa?messageID = 470636񲹬

编辑:有关我的具体用例的其他信息.

我正在搜索带有大量布尔查询的搜索结果,我希望能够更新一个或多个文档,使它们不再出现在查询中,然后刷新视图以显示结果.

具体来说,我有一堆带有布尔值的文档,标记为"已归档"

当我在未归档的视图中查看它们,然后将它们标记为已归档时,我希望能够刷新视图而不显示这些项目.

我也使用CloudSearch进行排序/过滤/分页,这使得插入或修改本地副本变得很困难

consistency eventual-consistency amazon-web-services amazon-cloudsearch

5
推荐指数
0
解决办法
584
查看次数

一个表DAO与多个表DAO

我正在设计JSF中的一些"数据块",我从每个块的Java bean中获取数据.我的问题是我的块从多个表中获取数据.例如:

描述客户个人数据的块包括:

  • 客户名称(在表客户中)
  • 客户姓氏(表中客户)
  • 客户电话(表中客户)
  • 客户地址(表格地址)
  • 客户公司(表公司)
  • 工作中的客户电话(在表公司)

我将不得不访问3个单独的表来填充此块.而不是构建3个不同的DAO(每个表一个),每块构建一个DAO不是更好吗?我理解这种方式在一致性方面存在缺点,因为如果一个表将被多个DAO访问,则表的每次更改都必须应用于每个表.但根据我的具体业务逻辑,我的代码将更容易理解.这有什么其他缺点?通常建议创建可以访问许多表的DAO吗?

oop dao consistency

5
推荐指数
1
解决办法
3471
查看次数

"官方"docker备份策略 - 一致性如何?

在docker中管理和备份数据的建议策略如下所示:

docker run --name mysqldata -v /var/lib/mysql busybox true
docker run --name mysql --volumes-from mysqldata mysql
docker run --volumes-from mysqldata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)

但是,当我以这种方式备份运行容器时,我不会获得一致的备份,是吗?我知道像这样的工具mysqldump,但是如果我需要备份,例如,不断添加和删除文件的文件夹,该怎么办?

backup consistency docker

5
推荐指数
1
解决办法
2173
查看次数

Hazelcast:关于多节点一致性的问题

(我找不到一个好的消息来源解释这个,所以如果它在其他地方可用,你可以指出我)

  1. Hazelcast在群集中的所有节点上复制数据.因此,如果在其中一个节点中更改了数据,节点是否会更新自己的副本,然后将其传播到其他节点?

  2. 我在某处读到每个数据都归节点所有,Hazelcast如何确定所有者?业主是根据数据结构中的每个数据结构还是按键确定的?

  3. Hazelcast遵循"最终一致"的原则吗?(当数据在节点之间传播时,可能会有一个小窗口,在此期间数据可能在节点之间不一致)

  4. 如何处理冲突?(两个节点同时更新相同的键值)

consistency eventual-consistency in-memory hazelcast

5
推荐指数
1
解决办法
1381
查看次数

是否可以仅从复杂因子为3的Cassandra集群中的单个节点读取数据?

我知道Cassandra具有不同的读取一致性级别但我没有看到一致性级别,它允许仅通过密钥从一个节点读取数据.我的意思是如果我们有一个复制因子为3的集群,那么我们将在读取时始终询问所有节点.即使我们选择一致性级别,我们也会询问所有节点,但是等待来自任何节点的第一个响应.这就是为什么我们在读取时不仅要加载一个节点而是加载3个(带有协调器节点的4个节点).我认为即使我们设置了更大的复制因子,我们也无法真正提高读取性能.

是否可以仅从单个节点读取?

replication consistency cluster-computing database-replication cassandra

5
推荐指数
1
解决办法
1223
查看次数

领导人选举:Etcd vs Zookeeper vs Hazelcast

我们正在选择最佳选项,以实现由多个(例如3个)实例组成的服务(用Java编写)的领导者选举,以实现高可用性。我们的目标是在任何给定时间仅激活一个实例。

非常高兴听到您对以下选项的意见:

1)Hazelcast。使用“法定人数”和一把锁,我们可以实施领导者选举。但是,我们可能会遇到裂脑问题,一段时间内可能会出现两名领导人。另外,似乎Hazelcast不支持SSL。

2)Zookeeper。我们可以在Zookeeper集成(在我们的每个服务实例上运行ZK节点)的顶部实现领导者选举。Zookeeper是否比Hazelcast提供更好的一致性保证?它也遭受脑​​裂问题困扰吗?

3)等 我们可以使用Jetcd库,它似乎是最现代,最强大的技术。在一致性方面真的比Zookeeper好吗?

谢谢。

high-availability consistency hazelcast etcd apache-zookeeper

5
推荐指数
1
解决办法
1270
查看次数