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

     2023-02-19     91

关键词:

【中文标题】典型的分布式 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架构。再次感谢。 > 在它的壁炉里有共识算法(你提到的筏)这听起来很正确。

是啥样的测试?巢穴

】是啥样的测试?巢穴【英文标题】:Whatkindoftestisit?Nestjs是什么样的测试?巢穴【发布时间】:2021-11-0809:01:49【问题描述】:我正在尝试测试我的nestjs应用程序,但我不太确定我必须编写什么样的测试,我想测试我的服务,所... 查看详情

Android StackView 是啥样的?

】AndroidStackView是啥样的?【英文标题】:WhatdoesanAndroidStackViewlooklike?AndroidStackView是什么样的?【发布时间】:2011-09-1920:53:09【问题描述】:谁能提供一个AndroidStackView的屏幕截图,显示此小部件的潜在应用程序?我不确定它的用... 查看详情

它是啥样的数据?

】它是啥样的数据?【英文标题】:Whatisitkindofdata?它是什么样的数据?【发布时间】:2017-05-2916:50:57【问题描述】:我使用红蜘蛛吊舱。当我从客户端发送“KID:NOOP-sendMessage:Testfromchild”时,服务器得到的数据如图所示请帮助了... 查看详情

花式指针是啥样的?

】花式指针是啥样的?【英文标题】:Howdoesafancypointerlooklike?花式指针是什么样的?【发布时间】:2017-04-1812:24:56【问题描述】:C++参考文献提到了一个名为fancypointers的概念。我是从最近一个被严重否决且随后被删除的问题中了... 查看详情

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

】对于数组结果,optimisticResponse是啥样的?【英文标题】:WhatdoestheoptimisticResponselooklikeforanarrayresult?对于数组结果,optimisticResponse是什么样的?【发布时间】:2017-03-2916:42:02【问题描述】:这是一个列表,其中项目可以重新排序... 查看详情

addSubview 方法是啥样的?

】addSubview方法是啥样的?【英文标题】:WhatdoestheaddSubviewmethodlooklike?addSubview方法是什么样的?【发布时间】:2011-12-1708:47:42【问题描述】:我知道它的功能以及如何使用addSubview方法。想知道该方法是什么样的,该方法中使用的... 查看详情

SynonymType.entities 的映射是啥样的?

】SynonymType.entities的映射是啥样的?【英文标题】:WhatdoesthemapforSynonymType.entitieslooklike?SynonymType.entities的映射是什么样的?【发布时间】:2021-04-2720:21:30【问题描述】:我似乎不知道如何为Google助理创建一个同义词,以便在回答... 查看详情

非凡的发布过程是啥样的?

】非凡的发布过程是啥样的?【英文标题】:Whatdoesanextraordinaryreleaseprocesslooklike?非凡的发布过程是什么样的?【发布时间】:2011-01-2415:57:37【问题描述】:非凡的发布过程是什么样的?我问是因为我们一直遇到与发布相关的生... 查看详情

“版本文件”是啥样的?

】“版本文件”是啥样的?【英文标题】:Whatdoesa"versionfile"looklike?“版本文件”是什么样的?【发布时间】:2013-01-1511:07:37【问题描述】:我已经在谷歌上搜索了很长时间,但没有结果。PyInstaller手册说:--版本文件=文... 查看详情

数据映射器通常是啥样的?

】数据映射器通常是啥样的?【英文标题】:WhatdoesaDataMappertypicallylooklike?数据映射器通常是什么样的?【发布时间】:2009-12-2817:46:13【问题描述】:我有一个名为Cat的表和一个名为Cat的PHP类。现在我想做一个CatDataMapper类,这样C... 查看详情

PHP:长格式的双重赋值是啥样的?

】PHP:长格式的双重赋值是啥样的?【英文标题】:PHP:whatdoesadoubleassignmentlooklikeinlongform?PHP:长格式的双重赋值是什么样的?【发布时间】:2016-03-0606:11:23【问题描述】:我什至不知道如何谷歌这个。如何将这个PHP语句写成长格... 查看详情

Windows 进程的内存映射是啥样的?

】Windows进程的内存映射是啥样的?【英文标题】:HowdoesamemorymapofaWindowsprocesslooklike?Windows进程的内存映射是什么样的?【发布时间】:2011-08-0613:11:54【问题描述】:这可能是一个重复的问题。我想知道windows进程的内存映射是什... 查看详情

GraphQL 文件上传请求应该是啥样的?

】GraphQL文件上传请求应该是啥样的?【英文标题】:HowshouldaGraphQLrequestforfileuploadlooklike?GraphQL文件上传请求应该是什么样的?【发布时间】:2019-04-0308:03:54【问题描述】:我在服务器端使用Graphene,其代码与documentation中的代码相... 查看详情

OBEX 协议是啥样的?

】OBEX协议是啥样的?【英文标题】:HowdoestheOBEXprotocollooklike?OBEX协议是什么样的?【发布时间】:2021-06-0121:31:02【问题描述】:我正在尝试使用蓝牙在手机和计算机之间交换数据。我想使用OBEX。我已阅读OBEX_documentation和Wikipedia... 查看详情

对象对象的 GraphQL 模式/解析器是啥样的?

】对象对象的GraphQL模式/解析器是啥样的?【英文标题】:WhatdoestheGraphQLschema/resolverlooklikeforanobjectofobjects?对象对象的GraphQL模式/解析器是什么样的?【发布时间】:2017-02-1409:10:39【问题描述】:数据user_id:\'abc\',movies:\'111\':title:\'... 查看详情

CSP nonce 实现是啥样的?

】CSPnonce实现是啥样的?【英文标题】:WhatdoestheCSPnonceimplementationlooklike?CSPnonce实现是什么样的?【发布时间】:2021-12-2415:07:24【问题描述】:我最近一直在阅读CSP的资料,但我没有找到关于nonce将如何工作的清晰解释或可靠示例... 查看详情

Unity 项目的 .gitignore 文件是啥样的?

】Unity项目的.gitignore文件是啥样的?【英文标题】:Whatdoesyour.gitignorefilelooklikeforaUnityproject?Unity项目的.gitignore文件是什么样的?【发布时间】:2017-03-0915:55:24【问题描述】:我刚开始使用Unity,我注意到即使是小的代码更改也会... 查看详情

Dreamweaver 自动生成的代码是啥样的?

】Dreamweaver自动生成的代码是啥样的?【英文标题】:Whatdoesdreamweaverauto-generatedcodelooklike?Dreamweaver自动生成的代码是什么样的?【发布时间】:2011-11-0902:24:11【问题描述】:我以前从未使用过Dreamweaver,但我正在查看一些HTML,但... 查看详情