典型的分布式 KVS 是啥样的?

Posted

技术标签:

【中文标题】典型的分布式 KVS 是啥样的?【英文标题】:What the typical distributed KVS look like?典型的分布式 KVS 是什么样的? 【发布时间】:2022-01-09 13:23:48 【问题描述】:

据我了解,分布式 KVS 通常如下所示:

有一个负责管理元数据的领导 有多个关注者管理数据 客户端与领导者交互 当客户端要求向领导者写入数据时,它会决定哪个节点应该拥有数据,然后通过某种哈希算法(例如一致哈希)传递它 另外,Leader 将数据复制到其他一些节点,以免在发生中断时丢失数据

这是我的理解。我的观点是,在这个架构中,数据不会复制到所有的follower节点。

但是,在 etcd 中,它使用 Raft 复制所有数据。在我的理解中,它不应该被称为分布式 kvs,而只是一个主副本复制。

分布式kvs有什么定义吗?如果它由多个服务器组成,它们应该被称为分布式 kvs 吗?请让我知道我遗漏了一些要点。

【问题讨论】:

【参考方案1】:

我相信您对分布式 KVS(键值存储)的定义非常具体。这是wiki分布式数据存储的定义:

分布式数据存储是一种计算机网络,其中信息存储在多个节点上,通常以复制的方式。它通常专门用于指代用户在多个节点上存储信息的分布式数据库,或用户在多个对等网络节点上存储信息的计算机网络。

Etcd 符合这个定义。我还认为 etcd 不仅仅是复制,因为它的炉膛中有共识算法(如您提到的那样)。它提供了一些(我相信)复制没有提供的保证:

容错最多 (n-1)/2 个节点 任何节点故障都不会丢失任何已提交的值(只要我们处于容错边界内)

【讨论】:

感谢您的评论。根据 wiki 的定义,看起来“分布式 KVS”这个词可以指定比我想象的更多的东西。我认为一般分布式的 KVS 分为 2 类; 1. 像 Cassandra 这样的一致性哈希数据库 2. 像 Redis 或 etcd 这样的复制数据库。但看起来事情并没有那么简单。我会继续学习各种KVS架构。再次感谢。 > 在它的壁炉里有共识算法(你提到的筏)这听起来很正确。

以上是关于典型的分布式 KVS 是啥样的?的主要内容,如果未能解决你的问题,请参考以下文章

scipy.stats 中可用的所有发行版是啥样的?

大数据需要学习啥样的知识?

阿里巴巴和腾讯的职级体系与对应的待遇是啥样的

是啥样的测试?巢穴

它是啥样的数据?

对于数组结果,optimisticResponse 是啥样的?