为数据副本设定独立的权重因子和速度因子的方法

文档序号:10724487阅读:322来源:国知局
为数据副本设定独立的权重因子和速度因子的方法
【专利摘要】为数据副本设定独立的权重因子和速度因子的方法涉及计算机技术领域。本发明主要是为每个数据副本增加一个权重,在数据读写的时候按照权重大小来依次对数据副本做读写,权重越高,越优先读写;本发明对数据写成功的返回条件可以设定,按照数据副本的权重满足设定的一致性原则,提高了系统的写效率,降低延迟;本发明根据存储节点的各自的性能设定不同速度因子,对性能好节点优先读写。
【专利说明】
为数据副本设定独立的权重因子和速度因子的方法
技术领域
[0001 ]本发明涉及计算机技术领域,尤其是计算机数据存储领域。
【背景技术】
[0002] 在软件定义存储,分布式计算,以及大数据的应用中,都使用数据副本来存储数 据。数据副本就是一份数据一般有2或者3个副本,分别存储在不同的存储节点中,目的是为 了保证数据一致性和完整性。
[0003] 下面以三个数据副本为例来详细说明。假设有100M的数据需要存储,有3个副本, 那么有同样的100M的数据分别存储在3个存储节点上。这样即使某个或者某两个存储节点 失败,数据还是完整的,不会出现数据丢失。100M的数据如何存储在存储节点通过元数据表 来定义。
[0004] 元数据表不是实际的数据,而是对实际数据存储位置的描述。假设100M按照4M- 个单位来存储,那么就需要100M/4M = 25个元数据描述。具体如下表:
在传统的数据副本存储中,每个节点的数据都是等权重的,按上述的例子,要写入一个 4M数据,需要3个节点的3个副本都完成写入操作并正确返回才算是一次写操作完成。要读 出一个4M数据,可以随机从这3个节点中任何一个读出。以上读写操作没有考虑性能开销, 假设其中一个节点是一台配置不高的机器,读写性能较差,那么就会存在性能瓶颈,导致读 写延迟。在一个较大服务器群中,服务器的性能和配置差别较大,这样依据现有的技术,整 个系统的性能被更新慢的服务器拖累。本发明设计了数据副本权重,通过权重来设定数据 副本的读写顺序和一致性检查,达到性能和数据完整性之间的平衡。

【发明内容】

[0005] 本发明的为数据副本设定独立的权重因子和速度因子的方法主要是为每个数据 副本增加一个权重,在数据读写的时候按照权重大小来依次对数据副本做读写,权重越高, 越优先读写;本发明对数据写成功的返回条件可以设定,按照数据副本的权重满足设定的 一致性原则,提高了系统的写效率,降低延迟;本发明根据存储节点的各自的性能设定不同 速度因子,对性能好节点优先读写。
[0006] 为数据副本设定独立的权重因子和速度因子的方法,其实现步骤如下: 1. 为每个数据副本设定独立的权重因子,设定原则是有且只有一个副本是高权重因 子,其它副本是低等权重因子; 2. 数据副本高权重因子的设定算法是N减去1,N为数据副本数,其它数据副本为低等权 重因子,低等权重因子全部设定为1 ; 3. 为每个数据副本设定独立速度因子,速度因子跟数据副本所存放的存储节点读写性 能有关,读与性能越尚,速度因子值越大; 4. 数据副本速度因子最大值设定算法是:1/(N+1),N为数据副本数;其它数据副本的 速度因子根据节点性能等级,可以自由设置,但是不能超过最大值,而且根据算法,所有数 据副本的速度因子总和小于1; 5. 权重因子加速度因子作为数据副本权重;数据写顺序按数据副本权重依次写,数据 读顺序按速度因子大小次序读; 6. 数据副本具有强一致性原则和弱一致性原则,数据副本权重之和大于或者等于的数 据副本数,就认为满足数据强一致性原则,在没有节点失败的情况下,数据副本必须满足强 一致性原则;数据副本权重之和大于或者等于的数据副本数减1,就认为符合数据弱一致性 原则;在有节点失败的情况下,数据副本要求满足弱一致性原则。
[0007] 为数据副本设定独立的权重因子和速度因子的方法,其实现步骤也可以描述为: 步骤S01.为系统设定使用的一致性原则,可以选择强一致性原则或弱一致性原则; 步骤S02.为每个数据副本设定独立的权重因子; 步骤S03.为每个数据副本设定独立的速度因子; 步骤S04.为每个数据副本设定副本权重; 步骤S05.数据写操作,按数据副本权重依次写; 步骤S06.数据读操作,按数据副本速度因子大小从大往小读。
【附图说明】
[0008] 图1是本发明的实现流程图。
【具体实施方式】
[0009] 参看图1,实现本发明的为数据副本设定独立的权重因子和速度因子的方法的实 施例如下: 假设有100M的数据需要存储,按照3个副本方式存储在10个存储节点上,按照10M-个 单元来存储,传统的数据分布表如下:
X表示节点上数据副本分布,每个存储节点都有3个数据副本。本发明在传统的数据分 布基础上设计一个权重因子,设定原则有且只有一个副本是高权重,这个例子中,高权重因 子是3-1=2,其它副本是等低权重,都是1。这样上述的数据分布表就变化为:
X表不有数据分布,2表不权重因子为2,1表不权重因子为1。 在实际环境中,有可能这10个存储节点性能不一致,因此本专利设计了一个速度因子, 读写性能越高,速度因子值越大,这个最大值设定为l/(n+l)。那么所有节点速度因子加起 来的最大值也小于或等于n/(n+l),小于1。这样的设计是为了在后面计算总权重的时候,速 度因子不会影响到权重因子,权重因子大的权重肯定大。
[0010] 其它数据副本的速度因子根据节点性能可以自由设置,可以无限分级。延续上面 的例子,假设10个节点中,有节点1、4、7的性能高于节点2、5、8,而节点2、5、8高于节点3、6, 节点3、6高于节点9、10。这相当于有4档,根据专利对速度因子的设计,最高档的速度因子值 为1/( 3+1 )=0.25,那么第二档设置为0.2,第三档设计为0.1,第四档设计为0.5。
[0011] 数据分配表中速度因子如下下表:
权重因子+速度因子=数据副本权重。数据写顺序按数据副本权重依次写,数据读顺序 按速度因子大小次序读。
[0012]继续上述的例子,权重因子+速度因子后的数据副本权重表如下:

X表示有数据分布,数值表示数据副本权重。
[0013] 有了这个表后,对数据副本的读写就根据权重值来读写。比如要写第5个10M数据, 最优先写节点5的数据副本,然后写节点7的数据副本,最后写节点6的数据副本。如果要读 第5个10M数据,最优先读是节点7数据,如果节点7的数据被堵塞,则读节点5的数据副本。
[0014] 传统的数据数据副本的一致性原则主要体现在写操作过程。一份数据写成功意味 着所有节点上的数据副本都写成功。如果有的节点性能很低,这个节点就会成为写性能的 短板。按照本专利设计的数据副本强一致原则,以上述的写第5个10M数据例子来说,按权重 优先原则,只要写节点5和节点7的数据,两个节点写成功后,权重值为2.2+1.25=3.45 > 3 (数据副本数),这时就可以认为写完成了,挺高了写的效率,降低了写操作的延迟。
[0015] 在某个节点失败情况,就要遵循弱一致性原则。还是用上述例子,有节点失败可能 有3种情况,比较复杂,用下表来解释(此时数据副本数减1 =2)
在上述的例子中,节点失败情况下,无论是写剩下2个节点还是单写节点5都能满足写 成功,特别单写节点5的情况,能在某个节点失败的情况提供写效率,降低写延迟。在实际应 用场景中,可以根据数据的重要性来做进一步设定,比如存储的是历史备份数据,可以设置 为满足弱一致性原则就可以了,就是允许单写节点5情况出现。如果是生产环境,可以设置 为除了满足弱一致性原则外,必须写保证写2个副本,这就保证了数据可靠性。
【主权项】
1. 为数据副本设定独立的权重因子和速度因子的方法,其特征在于实现步骤包括: 1) 为每个数据副本设定独立的权重因子,设定原则是有且只有一个副本是高权重因 子,其它副本是低等权重因子; 2) 数据副本高权重因子的设定算法是N减去1,N为数据副本数,其它数据副本为低等权 重因子,低等权重因子全部设定为1 ; 3) 为每个数据副本设定独立速度因子,速度因子跟数据副本所存放的存储节点读写性 能有关,读与性能越尚,速度因子值越大; 4) 数据副本速度因子最大值设定算法是:1/(N+1),N为数据副本数;其它数据副本的 速度因子根据节点性能等级,可以自由设置,但是不能超过最大值,而且根据算法,所有数 据副本的速度因子总和小于1; 5) 权重因子加速度因子作为数据副本权重;数据写顺序按数据副本权重依次写,数据 读顺序按速度因子大小次序读; 6) 数据副本具有强一致性原则和弱一致性原则,数据副本权重之和大于或者等于的数 据副本数,就认为满足数据强一致性原则,在没有节点失败的情况下,数据副本必须满足强 一致性原则;数据副本权重之和大于或者等于的数据副本数减1,就认为符合数据弱一致性 原则;在有节点失败的情况下,数据副本要求满足弱一致性原则。2. 根据权利要求1所述的为数据副本设定独立的权重因子和速度因子的方法,其特征 在于实现步骤可以描述为: 步骤SOI.为系统设定使用的一致性原则,可以选择强一致性原则或弱一致性原则; 步骤S02.为每个数据副本设定独立的权重因子; 步骤S03.为每个数据副本设定独立的速度因子; 步骤S04.为每个数据副本设定副本权重; 步骤S05.数据写操作,按数据副本权重依次写; 步骤S06.数据读操作,按数据副本速度因子大小从大往小读。
【文档编号】G06F3/06GK106095336SQ201610401472
【公开日】2016年11月9日
【申请日】2016年6月10日
【发明人】关宁风
【申请人】北京银信长远科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1