数据库技术:从 Dynamo 到文档数据库的演进
1. Dynamo 数据库架构特点
Dynamo 作为许多非关系型数据库的架构模型,具有以下关键架构特性:
- 一致性哈希 :利用主键的哈希值来确定集群中负责该键的节点,并且在添加或移除节点时,能将重新平衡的开销降至最低。
- 可调一致性 :应用程序可以指定一致性、读取性能和写入性能之间的权衡,可选择强一致性、最终一致性或弱一致性。
- 数据版本控制 :由于写操作不会被阻塞,系统中可能会存在对象的多个版本,有时数据存储本身可以合并这些版本,但有时需要应用程序或用户来解决。
2. 一致性哈希详解
哈希是一种将数据均匀分布在固定数量节点上的有效方法,常见的简单示例是使用取模函数。例如,要将任意数字哈希到 10 个桶中,可使用模 10 运算,键 27 会映射到桶 7,键 32 会映射到桶 2 等。
但当添加或移除节点时,传统哈希方法需要重新计算哈希值并重新分配所有数据。而一致性哈希通过对键值进行哈希处理,并应用一致的方法将哈希值分配到特定节点。通常,一致性哈希方案用环来表示,因为哈希值会“循环”到 0。当向现有集群添加新节点时,只有当前映射到新节点“邻居”的键需要重新映射。不过,添加新节点时的重新映射过程仍然是一项开销较大的操作,基于 Dynamo 的数据库通常采用“虚拟节点”的方法来进一步降低开销。
3. 可调一致性机制
Dynamo 允许应用程序为特定操作选择一致性级别,使用 NWR 表示法来描述 Dynamo 如何权衡一致
超级会员免费看
订阅专栏 解锁全文
1152

被折叠的 条评论
为什么被折叠?



