一种数据写入方法和装置制造方法及图纸

技术编号:31450225 阅读:22 留言:0更新日期:2021-12-18 11:12
本申请实施例提供一种分布式内存读写方法和装置,所述方法包括:根据待写数据生成n个数据分片和m个校验分片;对所述m个校验分片分别进行数据压缩,以分别生成m个压缩校验分片;分别写入所述n个数据分片和所述m个压缩校验分片。通过本申请实施例提供的方法,节省了数据存储空间,减少了存储成本。减少了存储成本。减少了存储成本。

【技术实现步骤摘要】
一种数据写入方法和装置


[0001]本申请涉及计算机
,具体涉及对计算机的数据写入方法和装置。

技术介绍

[0002]为保障数据的可靠性,一般会将数据分成多个分片数据,然后根据分片生成校验数据,并将分片数据和校验数据分别存储在不同设备上,这样,如果有数据损坏,则可以通过校验分片恢复损坏的数据。例如现在常用的磁盘阵列(Redundant Arrays of Independent Disks,RAID)算法及纠删码(Erasure Coding,EC)算法。
[0003]但是校验数据只有在数据丢失时才会使用,使用的几率比较少,但却要和分片数据同样存储,所以占用了存储空间。

技术实现思路

[0004]本申请实施例旨在提供一种更有效的数据写入方法,以解决现有技术中的不足。
[0005]为实现上述目的,本申请一方面提供一种数据写入方法,由服务器执行,所述方法包括:根据待写数据生成n个数据分片和m个校验分片;对所述m个校验分片分别进行数据压缩,以分别生成m个压缩校验分片;分别写入所述n个数据分片和所述m个压缩校验分片。在该方法中,通过对校验分片进行压缩,节省了数据存储空间。
[0006]在一种实施方式中,所述分别写入所述n个数据分片和所述m个压缩校验分片包括:分别将所述n个数据分片和所述m个压缩校验分片写入n+m个服务器中。在该实施方式中,通过对校验分片进行压缩,减少了在向其它服务器传输数据时的数据传输量。
[0007]在一种实施方式中,所述服务器包括网卡,其特征在于,所述方法还包括:在根据待写数据生成n个数据分片和m个校验分片之后,将分配给所述n+m个服务器中的其它服务器的数据分片和校验分片传输给所述网卡;其中,对所述m个校验分片分别进行数据压缩包括:所述网卡在确定接收的数据为所述m个校验分片中的一个校验分片时,对所述校验分片进行压缩,以生成压缩校验分片;分别将所述n个数据分片和所述m个压缩校验分片写入n+m个服务器中包括,所述网卡将所述压缩校验分片发送给其它服务器存储。在该实施方式中,通过使用网卡进行对校验分片的数据压缩,减少对CPU的占用,提高了服务器的执行速度。
[0008]在一种实施方式中,分别将所述n个数据分片和所述m个压缩校验分片写入n+m个服务器中包括,分别将所述n个数据分片和所述m个压缩校验分片写入n+m个服务器的内存中。在该实施方式中,通过对校验分片进行压缩,节省了内存中的数据存储空间。
[0009]在一种实施方式中,所述服务器包括内存控制器,其特征在于,所述方法还包括:在将待写数据生成n个数据分片和m个校验分片之后,将分配给所述服务器的校验分片传输给所述内存控制器;其中,对所述m个校验分片分别进行数据压缩包括,所述内存控制器在确定接收的数据为所述m个校验分片中的一个校验分片时,对所述校验分片进行压缩,以生成压缩校验分片;分别将所述n个数据分片和所述m个压缩校验分片写入n+m个服务器的内存中包括,所述内存控制器将所述压缩校验分片存储至所述服务器的内存。在该实施方式
中,通过使用内存控制器进行压缩,减少对CPU的占用,提高了服务器的执行速度。
[0010]在一种实施方式中,所述服务器包括主内存和次内存,所述服务器中记录了其它服务器的主内存的地址及次内存的地址,分别写入所述n个数据分片和所述m个压缩校验分片包括:当待写入的为压缩校验分片且所述待写入的压缩校验分片待写入所述服务器时,将所述压缩校验分片写入所述服务器的次内存中,或者当待写入的为校验分片且所述待写入的校验分片待写入所述其它服务器时,获取所述其它服务器的次内存的地址,根据所述其它服务器的内存地址将所述压缩校验分片写入其它服务器的次内存中。在该实施方式中,通过将压缩校验分片写入次内存,节省DRAM内存空间,节省了内存成本。
[0011]在一种实施方式中,所述m个校验分片包括p个一级校验分片和q个二级校验分片,所述二级校验分片用于恢复一级校验分片。在该实施方式中,通过二级EC算法,进一步提高了服务器集群的系统可靠性。
[0012]本申请另一方面提供一种分布式内存读取方法,所述分布式内存分布于n+m台服务器中,其中n和m分别为预定的自然数,所述方法由所述服务器执行,其特征在于,包括:从所述分布式内存中读取与第一数据对应的n个分片,所述n个分片中包括至少一个压缩校验分片和多个数据分片;对所述至少一个压缩校验分片分别解压缩,以获取至少一个校验分片;基于所述多个数据分片及所述至少一个校验分片,生成第二数据,其中,所述第二数据为所述第一数据中包括的数据。
[0013]在一种实施方式中,从n+m台服务器的内存中读取与第一数据对应的n个分片包括,从相应服务器的次内存中读取与所述第一数据对应的压缩校验分片。
[0014]在一种实施方式中,所述服务器中包括内存控制器,其中,对所述至少一个压缩校验分片分别解压缩包括,通过所述内存控制器对从本地内存读取的压缩校验分片进行解压缩。
[0015]在一种实施方式中,所述服务器中包括网卡,其中,对所述至少一个压缩校验分片分别解压缩包括,通过所述网卡对从其它服务器的内存读取的压缩校验分片进行解压缩。
[0016]本申请另一方面提供一种数据写入装置,部署于服务器,所述装置包括:生成单元,用于根据待写数据生成n个数据分片和m个校验分片;数据压缩单元,用于对所述m个校验分片分别进行数据压缩,以分别生成m个压缩校验分片;写入单元,用于分别写入所述n个数据分片和所述m个压缩校验分片。
[0017]在一种实施方式中,所述写入单元还用于:分别将所述n个数据分片和所述m个压缩校验分片写入n+m个服务器中。
[0018]在一种实施方式中,所述服务器包括网卡,其特征在于,所述装置还包括:第一传输单元,用于在根据待写数据生成n个数据分片和m个校验分片之后,将分配给所述n+m个服务器中的其它服务器的数据分片和校验分片传输给所述网卡;其中,所述数据压缩单元还用于:所述网卡在确定接收的数据为所述m个校验分片中的一个校验分片时,对所述校验分片进行压缩,以生成压缩校验分片;所述写入单元还用于,所述网卡将所述压缩校验分片发送给其它服务器存储。
[0019]在一种实施方式中,所述写入单元还用于,分别将所述n个数据分片和所述m个压缩校验分片写入n+m个服务器的内存中。
[0020]在一种实施方式中,所述装置还包括:第二传输单元,用于在将待写数据生成n个
数据分片和m个校验分片之后,将分配给所述服务器的校验分片传输给所述内存控制器;其中,所述数据压缩单元还用于,所述内存控制器在确定接收的数据为所述m个校验分片中的一个校验分片时,对所述校验分片进行压缩,以生成压缩校验分片;所述写入单元还用于,所述内存控制器将所述压缩校验分片存储至所述服务器的内存。
[0021]在一种实施方式中,所述服务器包括主内存和次内存,所述服务器中记录了其它服务器的主内存的地址及次内存的地址,所述写入单元还用于:当待写入的为压缩校验分片且所述待写入的压缩校验分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据写入方法,由服务器执行,所述方法包括:根据待写数据生成n个数据分片和m个校验分片;对所述m个校验分片分别进行数据压缩,以分别生成m个压缩校验分片;分别写入所述n个数据分片和所述m个压缩校验分片。2.根据权利要求1所述的方法,其特征在于,所述分别写入所述n个数据分片和所述m个压缩校验分片包括:分别将所述n个数据分片和所述m个压缩校验分片写入n+m个服务器中。3.根据权利要求2所述的方法,所述服务器包括网卡,其特征在于,所述方法还包括:在根据待写数据生成n个数据分片和m个校验分片之后,将分配给所述n+m个服务器中的其它服务器的数据分片和校验分片传输给所述网卡;其中,对所述m个校验分片分别进行数据压缩包括:所述网卡在确定接收的数据为所述m个校验分片中的一个校验分片时,对所述校验分片进行压缩,以生成压缩校验分片;分别将所述n个数据分片和所述m个压缩校验分片写入n+m个服务器中包括,所述网卡将所述压缩校验分片发送给其它服务器存储。4.根据权利要求2或3所述的方法,其特征在于,分别将所述n个数据分片和所述m个压缩校验分片写入n+m个服务器中包括,分别将所述n个数据分片和所述m个压缩校验分片写入n+m个服务器的内存中。5.根据权利要求1-4任意一项所述的方法,所述服务器包括内存控制器,其特征在于,所述方法还包括:在将待写数据生成n个数据分片和m个校验分片之后,将分配给所述服务器的校验分片传输给所述内存控制器;其中,对所述m个校验分片分别进行数据压缩包括,所述内存控制器在确定接收的数据为所述m个校验分片中的一个校验分片时,对所述校验分片进行压缩,以生成压缩校验分片;分别将所述n个数据分片和所述m个压缩校验分片写入n+m个服务器的内存中包括,所述内存控制器将所述压缩校验分片存储至所述服务器的内存。6.根据权利要求1所述的方法,其特征在于,所述服务器包括主内存和次内存,所述服务器中记录了其它服务器的主内存的地址及次内存的地址,分别写入所述n个数据分片和所述m个压缩校验分片包括:当待写入的为压缩校验分片且所述待写入的压缩校验分片待写入所述服务器时,将所述压缩校验分片写入所述服务器的次内存中,或者当待写入的为校验分片且所述待写入的校验分片待写入所述其它服务器时,获取所述其它服务器的次内存的地址,根据所述其它服务器的内存地址将所述压缩校验分片写入其它服务器的次内存中。7.一种数据写入装置,部署于服务器,所述装置包括:生成单元,用于根据待写数据生成n...

【专利技术属性】
技术研发人员:赵智杰陈晓雨严雪过
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1