2011-01-30 35 views
2

我正在评估(没有具体的用例),只是想了解NoSQL(非关系)解决方案的广度。选择NoSQL解决方案时需要考虑的重要因素是什么?

所以,我非常理解迪纳摩在(taken from Dynamo paper)项:

  1. 分区 - >一致性哈希
  2. 高可用性 - >矢量时钟
  3. 处理临时故障 - >邋遢仲裁
  4. 故障恢复 - >默克尔树
  5. 成员和故障检测 - > Gosisp协议

我的问题是,什么是每一个的其他方式这5个(可能是更多的“问题”)作了妥善处理与其他解决方案,如:

  1. 基于Bigtable的系统,
  2. 只是键 - 像Redis和BDB这样的高价值存储。
  3. 其他混合动力系统。

回答

1

其他重要事项:
1)二级指标:如果您不需要它们,那么你可能会找到一个可以接受的方式来使用大多数数据存储。
2)多个数据中心:如果您正在处理多个数据中心,那么您可能无法使用主从架构。多主系统要复杂得多。
3)交易:如果您需要进行交易(多步骤操作需要像他们一步行动),您可能会遇到很多非关系系统的困难,因为他们倾向于牺牲更多需要关于ACID(原子性,一致性,隔离性和耐久性)。

相关问题