数据存储方法、装置及系统与流程

    技术2026-07-04  16


    本技术涉及数据处理和云存储,具体涉及一种数据存储方法、装置及系统。


    背景技术:

    1、为了追求高的数据写性能和高的磁盘带宽利用率,云存储(cloud storage)等存储场景采用数据追加写(data append)的方式将待存储的数据写入到磁盘,实现数据存储。为了避免存储空间浪费,业内不允许在采用数据追加写进行数据存储时出现磁盘空洞。

    2、现有技术中,为了避免磁盘空洞,数据存储端严格按照存储请求端发送存储请求的发送顺序,将存储请求所请求存储的数据写入到磁盘。由于用于发送存储请求的多个路径中不同路径的网络性能具有差异、某个或某些存储请求接收失败等所导致的重试等因素,导致数据存储端接收到的存储请求可能是乱序的,即先接收到存储请求端后发送的存储请求。

    3、因此,在严格按照存储请求端发送存储请求的发送顺序,将存储请求所请求存储的数据写入到磁盘的方案中,当发生存储请求接收乱序时,先接收到的存储请求所请求存储的数据不能及时写入磁盘,而必须等待发送顺序在前的存储请求所请求存储的数据写入磁盘后,才能写入磁盘。这导致了存储效率低、时延大,以及磁盘带宽利用率低等。


    技术实现思路

    1、本技术实施例提供了一种数据存储方法、装置及系统,可以在避免磁盘空洞的同时,实现存储请求的先接收先存储,提高了存储效率和磁盘带宽利用率。

    2、第一方面,提供了一种数据存储方法,应用于存储系统的数据处理装置,该存储系统还包括存储请求端和磁盘,该方法包括:依次接收存储请求端发送的n个存储请求,n是大于1的正整数,其中每个存储请求携带有待写入数据和用于指示待写入数据在磁盘中的存储位置的偏移地址;根据每个存储请求的偏移地址,对n个存储请求进行排序以产生响应顺序;按照n个存储请求的接收顺序,以追加写的方式将n个存储请求的待写入数据写入到磁盘中;根据响应顺序,依次向存储请求端发送n个存储响应。

    3、其中,该n个存储响应中存储响应的数量和该n个存储请求中存储请求的数量是相同的,该n个存储响应和该n个存储请求一一对应,存储请求对应的存储响应为该存储请求的存储响应。

    4、在有数据需要存储时,存储请求端按照存储请求的偏移地址从小到大的顺序,依次向数据处理装置发送n个存储请求,以请求存储该数据。不同存储请求的传输路径可能不同,并且不同传输路径的网络性能可能不同,这导致数据处理装置接收该n个存储请求的接收顺序和存储请求端发送该n个存储请求的发送顺序可能是不同的。

    5、由于追加写的存储模式不允许出现磁盘空洞。为保障不出现磁盘空洞,存储请求端要确保数据是按照偏移地址从小到大依次存储的,因此,需要按照存储请求的偏移地址从小到大的顺序,向存储请求端发送存储请求的存储响应,即保序发送存储响应。现有技术中,为了实现存储响应的保序发送,数据处理装置按照n个存储请求的发送顺序,依次在磁盘中写入该n个存储请求的待写入数据。n个存储请求的接收顺序和该n个存储请求的发送顺序不同,使得数据处理装置不能先处理先接收到的存储请求,从而导致存储效率低、磁盘带宽利用率低。

    6、在本技术实施例提供的方法中,数据处理装置可以按照存储请求的接收顺序,将n个存储请求写入到磁盘,实现了存储请求的先接收先存储;以及,基于该n个存储请求携带的偏移地址得到响应顺序,并且基于该响应顺序,依次向存储请求端发送该n个存储请求的存储响应,实现了存储响应的保序发送。简而言之,本技术实施例提供的方法,既实现了存储响应保序发送,也提高了数据存储效率和磁盘带宽利用率。

    7、在一种可能的实现方式中,根据每个存储请求的偏移地址,对n个存储请求进行排序之后,包括:将n个存储请求的响应顺序存储到数据处理装置的请求队列中。

    8、在该实现方式中,可以采用请求队列记录基于存储请求携带的偏移地址得到的响应顺序,使得数据处理装置每当接收到一存储请求时,可基于该存储请求的偏移地址和请求队列中已有存储请求的偏移地址,得到该存储请求在响应顺序中的位置,实现了n个存储请求的边接收边排序,从而无需等待n个存储请求全部接收完成,才开始向存储请求端发送存储响应。

    9、在一种可能的实现方式中,该方法包括:确定在磁盘中与n个存储请求中的第一存储请求的第一偏移地址和第一数据长度匹配的第一逻辑区块;将第一存储请求的待写入数据存储至第一逻辑区块。

    10、在该实现方式中,对于独占逻辑区块的存储请求,可以基于该存储请求的偏移地址和数据长度,得到该存储请求独占的逻辑区块,进而可直接通过该逻辑区块,存储该存储请求的待写入数据。

    11、在一种可能的实现方式中,该方法包括:确定在磁盘中与n个存储请求中的第二存储请求的第二偏移地址和第二数据长度、以及在磁盘中与n个存储请求中的第三存储请求的第三偏移地址和第三数据长度匹配的第二逻辑区块;将第二存储请求的待写入数据和第三存储请求的待写入数据合并存储至第二逻辑区块。

    12、在该实现方式中,对于一个逻辑区块存储两个及以上存储请求的待写入数据的情形,可以基于该两个及以上存储请求的偏移地址和数据长度,得到该逻辑区块,进而该两个及以上存储请求的待写入数据合并存储到该逻辑区块中。

    13、在一种可能的实现方式中,数据处理装置设置在存储系统的异构硬件中。

    14、在该实现方式中,可通过存储系统的异构硬件实现数据处理装置的功能,从而使得存储相关操作无需经过cpu,进而使得数据及时写入到磁盘中。

    15、在一种可能的实现方式中,数据处理装置设置在磁盘的磁盘控制器中。

    16、在该实现方式中,可通过磁盘的磁盘控制器实现数据处理装置的功能,也就是说,可以将数据处理装置集成到磁盘的磁盘控制器中,从而无需额外的硬件实现本技术实施例提供的方法。

    17、在一种可能的实现方式中,数据处理装置包括硬件加速芯片;根据每个存储请求携带的偏移地址,对n个存储请求进行排序以产生响应顺序包括:硬件加速芯片根据每个存储请求携带的偏移地址,对n个存储请求进行排序以产生响应顺序。

    18、硬件加速芯片具有较高的计算能力,通过硬件加速芯片对存储请求进行排序,提高了排序效率。

    19、在一种可能的实现方式中,数据处理装置包括多核处理器;按照n个存储请求的接收顺序,以追加写的方式将n个存储请求的待写入数据依次写入到磁盘中包括:按照n个存储请求的接收顺序,以追加写的方式将n个存储请求的待写入数据依次写入到磁盘中。

    20、多核处理器具有多个计算核,其中,不同的计算核可以并行向磁盘存储数据,从而提高了数据存储效率。

    21、第二方面,提供了一种数据处理装置,数据处理装置所在的存储系统还包括存储请求端和磁盘,装置包括:接收模块,用于依次接收存储请求端发送的n个存储请求,n是大于1的正整数,其中每个存储请求携带有待写入数据和用于指示待写入数据在磁盘中的存储位置的偏移地址;排序模块,用于根据每个存储请求的偏移地址,对n个存储请求进行排序以产生响应顺序;存储模块,用于按照n个存储请求的接收顺序,以追加写的方式将n个存储请求的待写入数据写入到磁盘中;发送模块,用于根据响应顺序,依次向存储请求端发送n个存储响应。

    22、在一种可能的实现方式中,排序模块用于:将n个存储请求的响应顺序存储到数据处理装置的请求队列中。

    23、在一种可能的实现方式中,存储模块用于:确定在磁盘中与n个存储请求中的第一存储请求的第一偏移地址和第一数据长度匹配的第一逻辑区块;将第一存储请求的待写入数据存储至第一逻辑区块。

    24、在一种可能的实现方式中,存储模块用于:确定在磁盘中与n个存储请求中的第二存储请求的第二偏移地址和第二数据长度、以及在磁盘中与n个存储请求中的第三存储请求的第三偏移地址和第三数据长度匹配的第二逻辑区块;将第二存储请求的待写入数据和第三存储请求的待写入数据合并存储至第二逻辑区块。

    25、在一种可能的实现方式中,数据处理装置设置在存储系统的异构硬件中。

    26、在一种可能的实现方式中,数据处理装置设置在磁盘的磁盘控制器中。

    27、在一种可能的实现方式中,数据处理装置包括硬件加速芯片,硬件加速芯片用作排序模块。

    28、在一种可能的实现方式中,数据处理装置包括多核处理器,多核处理器用作存储模块。

    29、第三方面,提供了一种存储系统,存储系统包括:存储请求端、磁盘和第二方面提供的装置。

    30、第四方面,提供了一种计算设备集群,包括至少一个计算设备,每个计算设备包括处理器和存储器;至少一个计算设备的处理器用于执行至少一个计算设备的存储器中存储的指令,以使得计算设备集群执行第一方面提供的方法。

    31、第五方面,提供了一种包含指令的计算机程序产品,当指令被计算设备集群运行时,使得计算设备集群执行第一方面提供的方法。

    32、第六方面,提供了一种计算机可读存储介质,包括计算机程序指令,当计算机程序指令由计算设备集群执行时,计算设备集群执行第一方面提供的方法。

    33、第二方面至第六方面的有益效果可参考上文对第一方面的有益效果的介绍,在此不再赘述。


    技术特征:

    1.一种数据存储方法,其特征在于,应用于存储系统的数据处理装置,所述存储系统还包括存储请求端和磁盘,所述方法包括:

    2.根据权利要求1所述的方法,其特征在于,所述根据每个存储请求的偏移地址,对所述n个存储请求进行排序之后,所述方法包括:

    3.根据权利要求1或2所述的方法,其特征在于,所述方法包括:

    4.根据权利要求1或2所述的方法,其特征在于,所述方法包括:

    5.根据权利要求1至4任一项所述的方法,其特征在于,所述数据处理装置设置在所述存储系统的异构硬件中。

    6.根据权利要求1至4任一项所述的方法,其特征在于,所述数据处理装置设置在所述磁盘的磁盘控制器中。

    7.根据权利要求1至6任一项所述的方法,其特征在于,所述数据处理装置包括硬件加速芯片;

    8.根据权利要求1至6任一项所述的方法,所述数据处理装置包括多核处理器;

    9.一种数据处理装置,其特征在于,所述数据处理装置所在的存储系统还包括存储请求端和磁盘,所述装置包括:

    10.根据权利要求9所述的装置,其特征在于,所述排序模块用于:

    11.根据权利要求9或10所述的装置,其特征在于,所述存储模块用于:

    12.根据权利要求9或10所述的装置,其特征在于,所述存储模块用于:

    13.根据权利要求9至12任一项所述的装置,其特征在于,所述数据处理装置设置在所述存储系统的异构硬件中。

    14.根据权利要求9至12任一项所述的装置,其特征在于,所述数据处理装置设置在所述磁盘的磁盘控制器中。

    15.根据权利要求9至14任一项所述的装置,其特征在于,所述数据处理装置包括硬件加速芯片,所述硬件加速芯片用作所述排序模块。

    16.根据权利要求9至15任一项所述的装置,所述数据处理装置包括多核处理器,所述多核处理器用作所述存储模块。

    17.一种存储系统,其特征在于,所述存储系统包括:存储请求端、磁盘和权利要求9至16中任一项所述的装置。

    18.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;

    19.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求1至8任一项所述的方法。

    20.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至8任一项所述的方法。


    技术总结
    一种数据存储方法、装置及系统,可应用于数据处理和云存储技术领域。该方法包括:依次接收存储请求端发送的N个存储请求,N是大于1的正整数,其中每个存储请求携带有待写入数据和用于指示待写入数据在磁盘中的存储位置的偏移地址;根据每个存储请求的偏移地址,对N个存储请求进行排序以产生响应顺序;按照N个存储请求的接收顺序,以追加写的方式将N个存储请求的待写入数据写入到磁盘中;根据响应顺序,依次向存储请求端发送N个存储响应。该方法可以在避免磁盘空洞的同时,实现存储请求的先接收先存储,提高了存储效率和磁盘带宽利用率。

    技术研发人员:刘长红,单一舟,刘强,邓晓阳
    受保护的技术使用者:华为云计算技术有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-44671.html

    最新回复(0)