可扩展存储系统
可扩展存储系统将数据分散到多台机器上,以提供超出任何单个服务器的容量、吞吐量和可用性,同时掩盖单个节点的故障。
用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
Learn & explore
视频即将推出
Definition
可扩展存储系统将数据存储在机器集群中,对其进行分区以实现容量和吞吐量,并进行复制以实现持久性和可用性,从而使聚合系统能够随着节点数量的增加而扩展,同时容忍单个节点故障。
Scope
本主题涵盖为商用集群设计的分布式文件系统、分布式键值和宽列存储,以及用于大规模数据分区和定位的结构化覆盖技术——一致性哈希和分布式哈希表。它涵盖了数据分区(分片)、用于持久性的复制,以及区分强一致性存储和高可用性存储的一致性和可用性权衡。
Core questions
- 数据如何在大量不断变化的节点中进行分区和定位?
- 尽管节点频繁发生故障,如何实现持久性和可用性?
- 可扩展存储能提供什么一致性保证,代价是什么?
Key theories
- 集群文件系统
- Google文件系统等系统将大型文件作为分块复制到商用服务器上,优化了大型顺序访问,并将故障视为常态而非例外。
- 分布式结构化存储
- Bigtable和Dynamo等宽列和键值存储按键将数据分区到节点上并进行复制,以查询表达能力和一致性换取水平可扩展性和可用性。
- 一致性哈希和分布式哈希表
- 一致性哈希将键和节点映射到环上,以便添加或移除节点时只移动一小部分键;Chord等分布式哈希表提供可扩展的去中心化键查找,具有对数路由特性。
Clinical relevance
可扩展存储是云平台和大型网络服务的持久基础:对象存储、数据库和分析管道都建立在分布式文件系统和键值存储之上,其分区和复制选择决定了系统的持久性和一致性保证。
History
Chord (2001) 等点对点分布式哈希表展示了可扩展的去中心化查找;Google文件系统 (2003) 和Bigtable (2006-2008) 展示了用于结构化数据的集群规模存储;Amazon的Dynamo (2007) 推广了高可用键值存储,共同奠定了现代可扩展存储和NoSQL的格局。
Debates
- 存储中的强一致性与高可用性
- 强一致性存储简化了应用程序逻辑,但在分区下必须牺牲可用性;而Dynamo等高可用存储接受临时分歧,并将冲突解决推给应用程序;正确的选择取决于数据对陈旧性的容忍度。
Key figures
- Sanjay Ghemawat
- Werner Vogels
- Ion Stoica
- Hari Balakrishnan
Related topics
Seminal works
- ghemawat2003
- decandia2007
- stoica2001
Frequently asked questions
- 一致性哈希解决了什么问题?
- 当数据通过哈希键在节点间分区时,当添加或移除节点时,简单的哈希会重新洗牌几乎所有数据。一致性哈希将键和节点排列在一个环上,这样这种变化只会重新定位一小部分、有界限的键,这对于弹性、频繁变动的集群至关重要。