CN109828722B - 异构分布式键值存储系统Raft组数据自适应分布方法 - Google Patents
异构分布式键值存储系统Raft组数据自适应分布方法 Download PDFInfo
- Publication number
- CN109828722B CN109828722B CN201910084290.5A CN201910084290A CN109828722B CN 109828722 B CN109828722 B CN 109828722B CN 201910084290 A CN201910084290 A CN 201910084290A CN 109828722 B CN109828722 B CN 109828722B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- read
- performance
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种异构分布式键值存储系统Raft组数据自适应分布方法,包括以下内容:根据磁盘读写性能和节点KV接口读写性能间的拟合函数,估计节点的读写性能;根据写性能分配数据;每隔设定时间采集系统读写数据情况,并对读写数据情况进行判断;如果是写为主,将Leader在所有副本中设置为最快节点;如果是读为主,根据读性能分配Leader。本发明结合Raft协议的特性,有效利用了节点的性能,对系统的读写性能大幅度提升。
Description
技术领域
本发明是关于一种异构分布式键值存储系统的Raft组数据自适应分布方法,涉及分布式存储、键值存储、异构以及Raft协议领域。
背景技术
异构分布式键值存储系统:随着分布式存储系统的大规模部署,相当一部分大数据存储于键值(KV)存储系统。与传统关系数据库相比,KV存储具有更高的可扩展性和效率,适应大数据的要求。随着分布式KV存储系统的规模增大,目前异构分布式KV存储系统将成为趋势。主要原因有两点:一、SSD等磁盘的使用寿命有限,并且磁盘在分布式存储系统中损坏率高,因此会常常替换磁盘,而新盘一般比旧盘性能更好、性价比更高;二、高端SSD和NVM等新型硬件价格贵,在集群中只部署一部分这些设备能获得更高的性价比。
Raft协议:之前分布式系统中是使用Paxos协议来保证数据的一致性,但是Paxos协议特别难懂,且不能作为构建实际应用的好基础。直至2014年Raft协议的提出,Raft协议易懂且适应实际的系统,许多系统如Etcd、TiKV等都使用Raft协议。Raft协议处理读写请求的过程如下,假设分布式系统中有3个节点:首先,Raft会选举一个节点成为Leader,Leader负责处理读写请求等,另外2个节点成为Follower。当一个写请求从用户到达Leader时,Leader会把该写请求追加到本地日志并分发给Follower。当有一半以上节点追加该请求日志成功时,Leader会应用该请求日志。当Leader应用请求日志完成时,会把结果返回给客户端。读请求只能从Leader上读取,不能从Follower上读取。当一个读请求从用户到达Leader时,为了保证线性一致性,会确保前面所有已经提交的请求日志应用完成了才会执行读请求,之后返回结果给客户端。
非易失内存:即Non-Volatile Memory(NVM),是近年来正在兴起的新型快速存储介质,可以像内存一样按位进行访问,也可以像磁盘一样长期保存数据,断电后数据不丢失。目前最主流的NVM介质包括PCM、STT-MRAM和ReRAM等,其中,PCM相对最为成熟。Intel和镁光已经发布新型的NVM产品,分为PCIe接口和内存的DIMM接口两种产品形态,预期近期正式上市销售。
闪存:闪存(Flash)是过去几年内最为成功的新型存储介质,可以提供比磁盘高很多的性能,尤其是在随机访问性能方面优势非常明显。一般以固态硬盘(SSD)的产品形态出现,是标准的块设备,与磁盘的访问方式一样。按照接口不同一般分为PCIe接口、SAS接口和SATA接口的不同固态硬盘产品。
均衡分布技术:均衡分布技术是指每个节点都看成能力相同的同构节点,任意时刻每个节点存储的数据都差不多一样,Raft组的Leader在每个节点的数量也都差不多一样。在基于Raft协议的异构分布式键值存储系统中,Raft组的分布如图1所示,图中有六个节点,六个节点上总共有四个Raft组,每个Raft组都是三副本,每个节点都看成同构的节点,每个节点都有两份数据,Leader也均匀地分布在每个节点。这种均衡的数据和leader分布方式在同构分布式KV存储中是没问题的,但是在异构分布式KV存储中却出现了问题。
综上所述,现有的数据分布技术,例如均衡分布技术,没有考虑到异构场景,在异构分布式KV存储中,没有利用好快节点的性能,相反系统的性能常常被慢节点给拖慢。这是因为在Raft协议中,Leader必须要处理好数据才会反馈结果给客户端,如图1所示,Raft组2的Leader在最慢的节点上,系统的性能将被该节点给拖慢。
发明内容
针对上述问题,本发明的目的是提供一种能够有效利用节点的性能,对系统的读写性能大幅度提升的异构分布式键值存储系统Raft组数据自适应分布方法。
为实现上述目的,本发明采取以下技术方案:一种异构分布式键值存储系统Raft组数据自适应分布方法,包括以下内容:
根据磁盘读写性能和节点KV接口读写性能间的拟合函数,估计节点的读写性能;
根据写性能分配数据;
每隔设定时间采集系统读写数据情况,并对读写数据情况进行判断;
如果是写为主,将Leader在所有副本中设置为最快节点;
如果是读为主,根据读性能分配Leader。
进一步地,根据写性能分配数据的具体过程为:基于Raft协议的异构分布式键值存储系统中六个节点上共有四个Raft组Raft Group1~Raft Group4,当六个节点Node0~Node5的写性能比例分别是3:3:2:2:1:1时,刚开始写入数据的速度比例分别是3:3:2:2:1:1,系统运行一段时间后,快节点Faster Nodes可能会先达到磁盘容量限制,此时快节点Faster Nodes会把冷数据迁移给慢节点Slower Nodes,其中,冷数据为过去一个时间窗口内访问量少于某个阈值的数据块,迁移原则为:数据迁移给节点的实际数据量/写入数据的速度比例值最小的节点。
进一步地,对读写数据情况进行判断的具体过程为:读取数据比例超过设定阈值则认为以读为主,否则为写为主。
进一步地,如果是读为主,根据读性能分配Leader具体过程为:如果检测到现在是读为主,将Leader按照节点的读性能比例进行分配,具体为比较每个节点上的Leader个数/该节点的读性能,将Leader从最大值的节点迁移到最小值的节点,直至各个节点的值均衡为止。
本发明由于采取以上技术方案,其具有以下优点:本发明提出了一种Raft组数据自适应分布方法,结合Raft协议的特性,有效利用了节点的性能,对系统的读写性能大幅度提升。
附图说明
图1是现有均衡分布技术Raft组的分布示意图;
图2是本发明系统架构图;
图3是本发明Raft组数据自适应分布方法流程图;
图4是本发明磁盘写性能与节点写性能的拟合函数示意图;
图5是本发明根据写性能分配数据示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,本发明提供的异构分布式键值存储系统Raft组数据自适应分布系统架构由三部分组成:
客户端:用于写入或读取数据,提供压力测试,测试系统的性能;
异构分布式KV(Key-Value)存储系统:由不同性能的节点组成,用于根据客户端操作对不同性能的节点进行操作并存储数据;
Raft组自适应分布优化(Adaptive Layout Optimization of Raft Groups,ALOR)模块:用来控制数据和Leader的分布,充分利用节点的性能。
如图3所示,本发明提供的异构分布式键值存储系统的Raft组数据自适应分布方法,包括以下内容:
S1:程序开始,首先估计节点读写性能。
由于采用异构分布式KV存储系统,节点的规模可能非常大,如果去测试每个节点的读写性能,将是非常费事费力。因此可以去测试几个典型的节点,典型的节点通常包括NVM的结点、高端SSD的节点和普通SSD的节点的读写性能和它们的磁盘读写性能,从而得出磁盘读写性能和节点KV接口读写性能之间的拟合函数,拟合函数表达式是指磁盘读写性能和节点KV接口的读写性能之间的映射关系。通过拟合函数表达式,当测试出了任一节点的硬盘读写性能,即可以比较准确地推测出节点KV接口的读写性能。如图4所示。在系统开始运行时,每个节点可以自动测试磁盘读写性能,通过磁盘读写性能根据拟合函数估计出节点的读写性能。
S2:根据写性能分配数据;
每个节点刚开始所含有的数据与写性能比例相关,写性能越高,应当写入的数据越多,如图5所示,基于Raft协议的异构分布式键值存储系统中六个节点上总共有四个Raft组Raft Group1~Raft Group4,当六个节点Node0~Node5的写性能比例分别是3:3:2:2:1:1时,刚开始写入数据的速度比例分别是3:3:2:2:1:1。系统运行一段时间后,快节点FasterNodes可能会先达到磁盘容量限制,图中是Node0和Node1,此时快节点Faster Nodes根据迁移原则将冷数据迁移给慢节点Slower Nodes,其中,冷数据的定义为过去一个时间窗口内访问量少于某个阈值的数据块,迁移原则为:数据迁移给(节点的实际数据量/写入数据的速度比例)值最小的节点(除了达到磁盘容量限制的节点)。
S3:采集系统读写情况即每隔一段时间收集这段时间内系统写入和读取多少数据,并对读写情况进行判断,读取数据比例超过设定阈值(例如90%)为读为主,否则为写为主;
S4:如果是写为主,将Leader在所有副本中设置为最快节点,其中,副本为每份数据要存多份在不同节点,目的是以防节点挂点,数据不会丢失;
如图5所示,Leader都在所有副本中最快节点。这是因为在Raft协议中Leader起到的作用最大,必须等Leader写完数据才会返回结果给客户端,因此写为主的情况下,Leader应该在所有副本中最快节点。
S6:如果是读为主,根据读性能分配Leader。
在读为主的情况下,Leader不能集中在快节点上,不然读性能将下降,因此如果系统检测到现在是读为主,应该把Leader按照节点的读性能比例来分配,具体为比较(每个节点上的Leader个数/该节点的读性能),把Leader从最大值的节点迁移到最小值的节点,直至各个节点的值均衡为止。
根据上述说明书的揭示和教导,本发明所属领域的技术人员还可以对上述实施方式进行适当的变更和修改。因此,本发明并不局限于上面揭示和描述的具体实施方式,对本发明的一些修改和变更也应当落入本发明的权利要求的保护范围内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何限制。
Claims (3)
1.一种异构分布式键值存储系统Raft组数据自适应分布方法,其特征在于包括以下内容:
根据磁盘读写性能和节点KV接口读写性能间的拟合函数,估计节点的读写性能;
根据写性能分配数据;
每隔设定时间采集系统读写数据情况,并对读写数据情况进行判断;
如果是写为主,将Leader在所有副本中设置为最快节点;
如果是读为主,根据读性能分配Leader,具体过程为:
如果检测到现在是读为主,将Leader按照节点的读性能比例进行分配,具体为比较每个节点上的Leader个数/该节点的读性能,将Leader从最大值的节点迁移到最小值的节点,直至各个节点的值均衡为止。
2.根据权利要求1所述的异构分布式键值存储系统Raft组数据自适应分布方法,其特征在于,根据写性能分配数据的具体过程为:
基于Raft协议的异构分布式键值存储系统中六个节点上共有四个Raft组Raft Group1~Raft Group4,当六个节点Node0~Node5的写性能比例分别是3:3:2:2:1:1时,刚开始写入数据的速度比例分别是3:3:2:2:1:1,系统运行一段时间后,快节点Faster Nodes可能会先达到磁盘容量限制,此时快节点Faster Nodes会把冷数据迁移给慢节点Slower Nodes,其中,冷数据为过去一个时间窗口内访问量少于某个阈值的数据块,迁移原则为:数据迁移给节点的实际数据量/写入数据的速度比例值最小的节点。
3.根据权利要求1所述的异构分布式键值存储系统Raft组数据自适应分布方法,其特征在于,对读写数据情况进行判断的具体过程为:
读取数据比例超过设定阈值则认为以读为主,否则为写为主。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910084290.5A CN109828722B (zh) | 2019-01-29 | 2019-01-29 | 异构分布式键值存储系统Raft组数据自适应分布方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910084290.5A CN109828722B (zh) | 2019-01-29 | 2019-01-29 | 异构分布式键值存储系统Raft组数据自适应分布方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109828722A CN109828722A (zh) | 2019-05-31 |
CN109828722B true CN109828722B (zh) | 2022-01-28 |
Family
ID=66862811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910084290.5A Active CN109828722B (zh) | 2019-01-29 | 2019-01-29 | 异构分布式键值存储系统Raft组数据自适应分布方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109828722B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726856A (zh) * | 2022-02-28 | 2022-07-08 | 重庆市先进区块链研究院 | 一种基于Raft的自适应的选主方法 |
CN114513525B (zh) * | 2022-04-19 | 2022-07-05 | 北京易鲸捷信息技术有限公司 | 采用跨机房链式转发的数据一致性优化方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047246B1 (en) * | 2014-07-31 | 2015-06-02 | Splunk Inc. | High availability scheduler |
CN106372165A (zh) * | 2016-08-31 | 2017-02-01 | 天津南大通用数据技术股份有限公司 | 一种基于totem协议的集群的leader选取方法及装置 |
CN107528710A (zh) * | 2016-06-22 | 2017-12-29 | 华为技术有限公司 | raft分布式系统领导节点的切换方法、设备及系统 |
CN108462756A (zh) * | 2018-03-29 | 2018-08-28 | 新华三技术有限公司 | 一种数据写入方法和装置 |
CN108810046A (zh) * | 2017-04-28 | 2018-11-13 | 华为技术有限公司 | 一种选举领导者Leader的方法、装置及设备 |
CN108958920A (zh) * | 2018-07-13 | 2018-12-07 | 众安在线财产保险股份有限公司 | 一种分布式任务调度方法及系统 |
CN109241015A (zh) * | 2018-07-24 | 2019-01-18 | 北京百度网讯科技有限公司 | 用于在分布式存储系统中写入数据的方法 |
-
2019
- 2019-01-29 CN CN201910084290.5A patent/CN109828722B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047246B1 (en) * | 2014-07-31 | 2015-06-02 | Splunk Inc. | High availability scheduler |
CN107528710A (zh) * | 2016-06-22 | 2017-12-29 | 华为技术有限公司 | raft分布式系统领导节点的切换方法、设备及系统 |
CN106372165A (zh) * | 2016-08-31 | 2017-02-01 | 天津南大通用数据技术股份有限公司 | 一种基于totem协议的集群的leader选取方法及装置 |
CN108810046A (zh) * | 2017-04-28 | 2018-11-13 | 华为技术有限公司 | 一种选举领导者Leader的方法、装置及设备 |
CN108462756A (zh) * | 2018-03-29 | 2018-08-28 | 新华三技术有限公司 | 一种数据写入方法和装置 |
CN108958920A (zh) * | 2018-07-13 | 2018-12-07 | 众安在线财产保险股份有限公司 | 一种分布式任务调度方法及系统 |
CN109241015A (zh) * | 2018-07-24 | 2019-01-18 | 北京百度网讯科技有限公司 | 用于在分布式存储系统中写入数据的方法 |
Non-Patent Citations (2)
Title |
---|
Response Time and Availability Study of RAFT Consensus in Distributed SDN Control Plane;Ermin Sakic.etc;《TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT》;20180331;第15卷(第1期);全文 * |
改进的Raft一致性算法及其研究;陈陆;《江苏科技大学学报(自然科学版)》;20180831;第32卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109828722A (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102370760B1 (ko) | 존 네임스페이스에 대한 존 형성 | |
KR101629615B1 (ko) | 저전력 저지연 고용량 스토리지 클래스 메모리용 장치 및 방법 | |
EP3869316B1 (en) | Hybrid storage | |
CN102622189B (zh) | 存储虚拟化的装置、数据存储方法及系统 | |
US12001359B2 (en) | Identification and classification of write stream priority | |
US20180341425A1 (en) | Migrating data between memories | |
WO2023207562A1 (zh) | 一种数据处理方法、装置及设备 | |
CN109828722B (zh) | 异构分布式键值存储系统Raft组数据自适应分布方法 | |
CN111124264A (zh) | 用于重建数据的方法、设备和计算机程序产品 | |
US20240086315A1 (en) | Memory access statistics monitoring | |
US20140082318A1 (en) | Apparatus and Method for Sharing Resources between Storage Devices | |
CN117632808B (zh) | 多控存储阵列、存储系统、数据处理方法以及存储介质 | |
CN116364148A (zh) | 一种面向分布式全闪存储系统的磨损均衡方法及系统 | |
US11175837B2 (en) | Quantization of peak power for allocation to memory dice | |
US20150370635A1 (en) | Implementing enhanced wear leveling in 3d flash memories | |
WO2016032486A1 (en) | Moving data chunks | |
WO2023000686A1 (zh) | 存储系统中的数据存储方法以及装置 | |
US20220043588A1 (en) | Localized memory traffic control for high-speed memory devices | |
US11275680B2 (en) | Profile and queue-based wear leveling of memory devices | |
WO2024031734A1 (zh) | 数据写入方法、存储装置及计算机可读存储装置 | |
JP2019083082A (ja) | フラッシュメモリモジュール及びフラッシュメモリ | |
US11893280B2 (en) | Concurrent command limiter for a memory system | |
US11747994B2 (en) | Power loss protection of data in memory devices | |
US11868661B2 (en) | Row hammer attack alert | |
US10908828B1 (en) | Enhanced quality of service (QoS) for multiple simultaneous replication sessions in a replication setup |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |