System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 分布式存储系统的数据块控制方法、装置、设备及介质制造方法及图纸_技高网

分布式存储系统的数据块控制方法、装置、设备及介质制造方法及图纸

技术编号:40542890 阅读:6 留言:0更新日期:2024-03-05 18:59
本申请涉及一种分布式存储系统的数据块控制方法、装置、设备及存储介质。所述方法包括:遍历分布式存储系统的主节点对应的数据块数组,并判断数据块数组中是否存在已写满的数据块,当判断数据块数组中不存在已写满的数据块时,对控制主节点中数据块的线程加读锁,当判断数据块数组中存在已写满的数据块时,对控制主节点中数据块的线程加写锁。本申请仅在需要更换数据块时加写锁,使得客户端的数据写入基本不再受到后台读锁互斥带来的影响,大大降低了与后台读锁竞争的时间,提高了客户端写入数据至分布式存储系统的效率。

【技术实现步骤摘要】

本申请涉及数据存储领域,尤其涉及一种分布式存储系统的数据块控制方法、装置、设备及存储介质。


技术介绍

1、在分布式存储系统中,分布式存储系统的主节点写入数据时需要从链表中选取一个可用的数据块,如果该链表中的某个数据块由于写满而不可用,还需要将该数据块从链表摘除,并加入新的可用数据块插入至链表的尾部,这样不可避免要进行摘链及插链操作,且选取、摘链及插链等所有流程均需要加写锁,由于数据节点一些后台流程(例如,心跳机制)在对数据块进行遍历时需要加读锁,写锁与心跳机制的读锁产生互斥会影响数据写入性能,导致数据写入分布式存储系统的效率较低,例如,分布式存储系统中磁盘的数据节点写入99延时高,99延时是指是100个写入请求中按请求时长从小到大排序后,第99个请求的时长。


技术实现思路

1、鉴于以上内容,本申请提供一种分布式存储系统的数据块控制方法、装置、设备及存储介质,其目的在于提高数据写入分布式存储系统的效率。

2、第一方面,本申请提供一种分布式存储系统的数据块控制方法,该方法包括:

3、遍历分布式存储系统的主节点对应的数据块数组,并判断所述数据块数组中是否存在已写满的数据块;

4、当判断所述数据块数组中不存在已写满的数据块时,对控制所述主节点中数据块的线程加读锁;

5、当判断所述数据块数组中存在已写满的数据块时,对控制所述主节点中数据块的线程加写锁。

6、优选的,在遍历分布式存储系统的主节点的数据块数组之前,所述方法还包括:>

7、接收客户端发出的数据写入请求,并控制分布式存储系统的主节点响应所述写入请求。

8、优选的,在遍历分布式存储系统的主节点的数据块数组之后,所述方法还包括:

9、从所述数据块数组中选取未写满的数据块执行数据写入操作。

10、优选的,所述数据块数组是由所述主节点对应的数据块链表转换成的数组。

11、优选的,所述判断所述数据块数组中是否存在已写满的数据块,包括:

12、判断所述数据块数组中是否存在物理存储空间达到预设值的数据块;

13、若是,则判断所述数据块数组中存在已写满的数据块;

14、若否,则判断所述数据块数组中不存在已写满的数据块。

15、优选的,在对控制所述主节点中数据块的线程加写锁之后,所述方法还包括:

16、将所述数据块数组中已写满的数据块更换为未写满的数据块,并释放所述写锁。

17、优选的,所述方法还包括:

18、当判断所述数据块数组中存在已写满的数据块时,利用内存屏障指令对控制所述主节点中数据块的指令进行屏障。

19、第二方面,本申请提供一种分布式存储系统的数据块控制装置,该分布式存储系统的数据块控制装置包括:

20、遍历模块:用于遍历分布式存储系统的主节点对应的数据块数组,并判断所述数据块数组中是否存在已写满的数据块;

21、第一控制模块:用于当判断所述数据块数组中不存在已写满的数据块时,对控制所述主节点中数据块的线程加读锁;

22、第二控制模块:用于当判断所述数据块数组中存在已写满的数据块时,对控制所述主节点中数据块的线程加写锁。

23、第三方面,本申请提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

24、存储器,用于存放计算机程序;

25、处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例所述的分布式存储系统的数据块控制方法的步骤。

26、第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项实施例所述的分布式存储系统的数据块控制方法的步骤。

27、本申请实施例提供的上述技术方案与现有技术相比具有如下优点:

28、本申请通过采用数组的方式保存可写数据块,在主节点选取可写数据块时可以对数据块进行遍历,数据块的更换流程更加简便,避免了链表结构需要频繁地摘链或加链的情况,且对数据块选取流程不需要加写锁,在更换数据块时才加写锁,由于数据块在绝大部分时间都是未写满的,即绝大部分时间都是加读锁,仅在存在已写满数据块(需要更换数据块)时加写锁,使得客户端的数据写入基本不再受到与后台读锁互斥带来的影响,大大降低了与后台读锁竞争的时间,提高客户端写入数据至分布式存储系统的效率,可以将99延时的性能提升一倍以上。

本文档来自技高网...

【技术保护点】

1.一种分布式存储系统的数据块控制方法,其特征在于,所述方法包括:

2.如权利要求1所述的分布式存储系统的数据块控制方法,其特征在于,在遍历分布式存储系统的主节点的数据块数组之前,所述方法还包括:

3.如权利要求1所述的分布式存储系统的数据块控制方法,其特征在于,在遍历分布式存储系统的主节点的数据块数组之后,所述方法还包括:

4.如权利要求1所述的分布式存储系统的数据块控制方法,其特征在于,所述数据块数组是由所述主节点对应的数据块链表转换成的数组。

5.如权利要求1所述的分布式存储系统的数据块控制方法,其特征在于,所述判断所述数据块数组中是否存在已写满的数据块,包括:

6.如权利要求1所述的分布式存储系统的数据块控制方法,其特征在于,在对控制所述主节点中数据块的线程加写锁之后,所述方法还包括:

7.如权利要求1所述的分布式存储系统的数据块控制方法,其特征在于,所述方法还包括:

8.一种分布式存储系统的数据块控制装置,其特征在于,所述装置包括:

9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述分布式存储系统的数据块控制方法的步骤。

...

【技术特征摘要】

1.一种分布式存储系统的数据块控制方法,其特征在于,所述方法包括:

2.如权利要求1所述的分布式存储系统的数据块控制方法,其特征在于,在遍历分布式存储系统的主节点的数据块数组之前,所述方法还包括:

3.如权利要求1所述的分布式存储系统的数据块控制方法,其特征在于,在遍历分布式存储系统的主节点的数据块数组之后,所述方法还包括:

4.如权利要求1所述的分布式存储系统的数据块控制方法,其特征在于,所述数据块数组是由所述主节点对应的数据块链表转换成的数组。

5.如权利要求1所述的分布式存储系统的数据块控制方法,其特征在于,所述判断所述数据块数组中是否存在已写满的数据块,包括:

...

【专利技术属性】
技术研发人员:张丞
申请(专利权)人:北京金山云网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1