MIT6.824中,关于分布式存储的困难的论述(来自2020年春季 Lecture3:GFS):
Why is distributed storage hard?
high performance -> shard data over many servers
many servers -> constant faults
fault tolerance -> replication
replication -> potential inconsistencies
better consistency -> low performance
对高性能的需求 -> 在许多server(节点)间对数据进行分片(shard)
许多节点,每个节点都有出错的可能 -> 总的出错概概率大大增加
出错概率增加,对容错性的要求提高 -> 通过数据复制(replication)冗余备份,来提高容错性
数据复制 -> 导致潜在的不一致性(想要保证与副本的数据一致十分困难)
对一致性更高的需求 -> 增加更多保证数据一致性的处理,从而降低性能
可以看到,这整个逻辑链条的首尾两端是矛盾的。分布式存储系统往往需要在 一致性 与 性能 之间做平衡。