我已经阅读了分布式版本控制系统问题以找到答案,但是这个问题是不同的,并且是在将“分布式版本控制系统”与其他“分布式系统”进行比较时出现的。
当我在“分布式数据库”、“分布式缓存”和“分布式计算”等其他术语中看到“分布式”一词时,我发现数据或计算实际上是通过网络分布的。这里的“分布式”一词的意思是“分开(同样不总是)”。例如,在 Hazelcast 中的“分布式缓存系统”中,密钥实际上是在提供的节点之间划分的。但是我在“分布式版本控制系统”中没有发现这种相似性。
对于版本控制系统,“分布式”只是“集中”的反义词。集中式版本控制系统具有单个中央或主服务器。它可能有也可能没有额外的服务器,但如果它确实有额外的服务器,并且如果这些服务器与指定的中央服务器不一致,那么这些服务器是错误的:中央服务器是事实的来源。在分布式版本控制系统中,没有这样的服务器:所有存储库都是对等的,至少从设计的角度来看是这样。当然,任何具有分布式设计的系统都可以像集中式一样使用。可以通过将 Git 存储库之一指定为更新的主存储库来以这种方式使用Git。
当我在“分布式数据库”、“分布式缓存”和“分布式计算”等其他术语中看到“分布式”一词时,我发现数据或计算实际上是通过网络分布的。这里的“分布式”一词的意思是“分开(同样不总是)”。例如,在 Hazelcast 中的“分布式缓存系统”中,密钥实际上是在提供的节点之间划分的。但是我在“分布式版本控制系统”中没有发现这种相似性。
具有复制功能的分布式数据库不一定划分其存储。比如etcd使用quorum系统来选举leader;法定人数的所有成员都试图保持他们的数据副本是最新的。多处理器系统中的缓存行为通常也是分布式存储的一种形式,但通常耦合度更高。参见,例如,缓存一致性的维基百科条目。具有复制功能的分布式系统通常可以通过一致性模型进行分类。
(快速搜索表明 Hazelcast 有备份来处理节点故障,因此它们也必须使用某种一致性模型。如果分布式系统中的某些数据子集仅存储在单个节点上,如果节点失败。由于失败的概率通常随着节点数量的增加而增加,这通常是不可接受的。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句