CN107870727A - 用于存储数据的方法和设备 - Google Patents
用于存储数据的方法和设备 Download PDFInfo
- Publication number
- CN107870727A CN107870727A CN201610847731.9A CN201610847731A CN107870727A CN 107870727 A CN107870727 A CN 107870727A CN 201610847731 A CN201610847731 A CN 201610847731A CN 107870727 A CN107870727 A CN 107870727A
- Authority
- CN
- China
- Prior art keywords
- data block
- block
- data
- tracking cell
- size
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例涉及用于存储数据的方法和设备。该方法包括:生成与待存储的数据对应的数据块;将所述块与跟踪单元的边界对准,所述跟踪单元用于数据验证且具有预定大小;以及将经对准的数据块存储到存储空间的存储单位中,所述存储单位具有相同的大小。根据本公开实施例的方法,通过对数据块进行对准处理,可以最小化存储空间的浪费,并且可以避免由于部分数据消失而无法对剩余数据进行验证的情况。
Description
技术领域
本公开的实施例涉及计算机存储技术,更具体地涉及用于存储数据的方法、设备和计算机程序产品。
背景技术
弹性云服务(ECS)是云计算服务的重要组成部分,是面向各类互联网用户提供综合业务能力的服务平台。该平台整合了传统意义上的互联网应用的三大核心要素:计算、存储、网络,面向用户提供公用化的互联网基础设施服务。就存储而言,在对象被删除或对象的一部分被重写的情况下,用于存储弃用数据的存储空间应被垃圾回收(GC),以腾出空间来存储更多新数据。为了实现高效的GC机制,需求一种改进的数据存储方案。
发明内容
总体上,本公开的实施例提供用于存储数据的方法、设备和计算机程序产品。
在本公开的第一方面,提供一种用于存储数据的方法。该方法包括:生成与待存储的数据对应的数据块;将所述块与跟踪单元的边界对准,所述跟踪单元用于数据验证且具有预定大小;以及将经对准的数据块存储到存储空间的存储单位中,所述存储单位具有相同的大小。
在本公开的第二方面,提供一种电子设备。该设备包括:处理单元;以及存储器,所述存储器存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:生成与待存储的数据对应的数据块;将所述块与跟踪单元的边界对准,所述跟踪单元用于数据验证且具有预定大小;以及将经对准的数据块存储到存储空间的存储单位中,所述存储单位具有相同的大小。
本公开的其他方面还包括计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,这些机器可执行指令在被执行时使机器执行根据上述方法的一个或多个步骤。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了本公开实施例可在其中实施的ECS的示例性场景的示意图;
图2示出了现有技术中在存储空间的存储单位中存储数据的过程的示意图;
图3示出了现有技术中用于GC的跟踪单元的数据验证中的问题的示意图;
图4示出了根据本公开实施例的用于存储数据的方法的流程图;
图5示出了根据本公开实施例的数据存储方案的示意图;
图6示出了根据本公开实施例的用于存储数据的方法的流程图;
图7示出了根据本公开实施例的用于存储数据的方法的流程图;
图8至图12分别示出了根据本公开的各种实施例的数据存储过程的示意图;
图13示出了根据本公开实施例的用于存储数据的装置的示意性结构框图;以及
图14示出了适于实现本公开实施例的电子设备的示意性结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中示出了本公开的一些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
图1示出了本公开实施例可在其中实施的ECS的示例性场景的示意图100。该场景涉及云存储服务。如图1所示,云服务器110可以接收来自外部例如来自用户的待存储的数据并将该数据存储到存储装置120的存储空间中。存储装置120可以为任意类型的机器可读存储介质,例如非易失性存储器、易失性存储器等等。
通常,ECS使用几乎不依赖于文件系统的磁盘容量管理方法。将所有磁盘存储空间划分成固定大小的块的集合,这些块中的每一个即为存储空间的存储单位或称区块(chunk)。所有用户数据被存储到这些存储单位中,并且这些存储单位被共享。也就是,一个存储单位可以包含若干用户对象的若干片段。图2示出了现有技术中在存储空间的存储单位中存储数据的过程200的示意图。在如图1所示云服务器100接收到待存储的数据后,云服务器100可以生成与该数据对应的数据块,如图2中的210所示。
该数据块包括头部、主体部分和尾部,其中头部包括关于该数据块的大小的信息,主体部分包括真实数据,并且尾部包括用于头部和主体部分的校验和,以在数据块存在任何破坏时帮助检测该破坏。此外,云服务器100可以将生成的数据块存储到存储空间的存储单位中。在一个存储单位中可以存在多个用户对象的多个片段,如图2的210、220和230所示,其中210指代用户对象1的数据块,220指代用户对象2的数据块,230指代用户对象3的数据块。
通常,数据块的大小可以高达W个字节,例如W可以为2MB。如果来自一个用户对象的数据大于W,则将其分成若干数据块来写入到存储单位中。对于比W小得多的数据,对应的数据块也将小于W。作为结果,如果将这些数据块简单地一个接一个地写入,则一个存储单位中的数据块的开始偏移和结束偏移几乎是任意的。在这种情况下,由于ECS中存储单位是不可变的,在对象被删除或对象的一部分被重写之后,对应的存储单位的一些部分将变为垃圾数据。这些垃圾数据范围需要被重新使用以便于具有高效的存储消耗。
不管使用何种GC机制,都需要存在一些元数据用于跟踪垃圾数据范围位于每个存储单位中的何处,并且使用该元数据信息构建用于保持新数据的新存储单位。不可能使得元数据的量太大,以至于掩盖进行GC以释放磁盘空间的好处。为了减少GC有关的元数据大小,使用位图(bitmap)来跟踪存储单位上的从偏移0开始的每个大小单元上的数据是否完全是垃圾数据,以便于GC处理的执行。为简便起见,通常用于GC的跟踪单元的大小也被选择为W(例如2MB)。
在存在数据块的任意偏移的情况下的问题是,在GC之后,存储单位上的数据的一部分被GC处理,而其余部分则无法再利用校验和进行验证,下面结合图3详细说明这一问题。图3示出了现有技术中用于GC的跟踪单元的数据验证中的问题的示意图300。如图3所示,存在一个其中已经存在一些垃圾数据310的垃圾跟踪单元330。一个新的数据块320跨过垃圾跟踪单元330的边界。假设该数据块320此时也变成了垃圾数据,则整个垃圾跟踪单元330现在变为垃圾数据并且由此可以进行GC处理。然而,在GC处理后,由于数据块320的头部和主体部分的一部分随着GC处理的跟踪单元消失,所以当验证下一跟踪单元上的数据时,无法知道下一有效数据块开始于何处,而这是数据验证所必需的。
鉴于上述问题,本公开实施例的主要构思就在于:在将数据块存储到存储空间中时,对数据块进行对准处理以使得与跟踪单元的边界对准,由此避免上述无法执行数据验证的情形。图4示出了根据本公开实施例的用于存储数据的方法400的流程图。该方法400可以在图1所示的云服务器110处实施。
如图4所示,在410,生成与待存储的数据对应的数据块。根据本公开的实施例,可以生成包含头部、主体部分和尾部的数据块,所述头部指示所述数据块的大小,所述主体部分包括所述数据,所述尾部包括用于所述头部和所述主体部分的校验和。该处理类似于前面结合图2的210所述的那样。
在420,将数据块与跟踪单元的边界对准,所述跟踪单元用于数据验证且具有预定大小。根据本公开的实施例,用于数据验证的跟踪单元可以与GC处理有关。应理解到,除了GC处理之外,本公开实施例的方案可以应用于任何适于数据对准的情况。为方便起见,下面仅以与用于GC处理的跟踪单元的边界对准为例描述本公开的实施例。根据本公开的实施例,跟踪单元的大小可以为数据块的最大大小,例如前面所述的W。
在430,将经对准的数据块存储到存储空间的存储单位中,所述存储单位具有相同的大小。由此避免上述无法执行数据验证的情形,提高整体系统性能。
为便于理解,下面结合图5-图12描述本公开实施例的更多示例实现。图5示出了根据本公开实施例的数据存储方案的示意图500。如图5所示,在根据本公开实施例的数据存储方案中,将存储单位划分成用于保持大小等于跟踪单元(例如330)的预定大小的数据块的存储单位510和用于保持大小小于跟踪单元(例如330)的预定大小的数据块的存储单位520。
例如,跟踪单元的预定大小可以为前面所述的W,例如W=2MB。对于大小等于跟踪单元330的预定大小的整数倍的数据块,可以将其拆分成预定大小的至少一个数据块并存储到存储单位510中。在这种情况下,由于数据块自然地与跟踪单元330的边界对准,所以当移除大于W的对象时,能够确保至少一个W大小的整个块变为空闲。
对于大小小于跟踪单元330的预定大小的数据块或者大的对象数据拆分成预定大小的数据块后剩余的数据部分,可以在将其存储在存储单位520中之前,对其进行对准处理以使得与跟踪单元330的边界对准。由此避免出现前面提及的无法进行数据验证的情况。下面结合图6进行更详细描述。
图6示出了根据本公开实施例的用于存储数据的方法600的流程图。该方法600可以在图1的云服务器110处实施。如图6所示,在610,生成与待存储的数据对应的数据块。数据块的生成过程类似于前面结合图2的210以及图4的410所述的那样,这里不再赘述。
在620,判断数据块的大小是否等于跟踪单元(例如330)的预定大小(例如W)的整数倍。如果数据块的大小等于W的整数倍,则进入630,将数据块拆分成W大小的至少一个子块,并且在640,将经拆分的子块存储到用于保持W大小的数据块的存储单位中。关于630的拆分处理,根据本公开的实施例,可以将数据块的主体部分拆分成相应的数据部分,针对拆分的数据部分分别生成相应的子块,并为拆分的数据部分生成相同的元数据。即,由单个元数据指示这些拆分的至少一个子块。由此所有产生的子块仍在单个写请求中被写入,并且当读回数据时这些拆分的子块也在同一请求中被读取,因为它们由同一元数据跟踪,而无需额外的读/写请求。另外,没有用于存储元数据的额外开销,因为使用指向对象的同一元数据。
如果在620判定数据块的大小不等于W的整数倍,则进入650,判断数据块的大小是否大于W的整数倍。如果判定数据块的大小大于W的整数倍,则在660,可以将数据块拆分成W大小的至少一个第一数据块和小于W的第二数据块。该拆分的处理可以类似于前面结合630描述的处理,这里不再赘述。对于第一数据块,可以在640处将其存储在用于保持W大小的数据块的存储单位中。对于第二数据块,可以在670,基于第二数据块的结束偏移和跟踪单元的边界,对第二数据块进行对准处理,以将第二数据块与跟踪单元330的边界对准。在680,将经对准的第二数据块存储到用于保持小于W的数据块的存储单位中。类似地,如果在650处判定数据块的大小小于W的整数倍,即,数据块的大小小于W,则在670,基于数据块的结束偏移和跟踪单元的边界,对数据块进行对准处理,以将数据块与跟踪单元330的边界对准。根据本公开的实施例,可以基于第二数据块的结束偏移与跟踪单元的边界的比较,确定是否拆分第二数据块。响应于确定拆分:将第二数据块拆分成第一子块和第二子块;为第一子块和第二子块生成相同的元数据;以及基于经拆分的子块的结束偏移与跟踪单元的边界的比较,确定是否生成对应的填充块,以填充在经拆分的子块的结束偏移与跟踪单元的边界之间。由此实现数据块的对准。继而在680,将经对准的数据块存储到用于保持小于W的数据块的存储单位中。
下面结合图7至图12更具体地描述对小于跟踪单元的预定大小的数据块的对准处理(即,图6的670)的示例性过程。图7示出了根据本公开实施例的用于存储数据的方法700的流程图。该方法700同样可以在图1的云服务器110处实施。图8至图12分别示出了根据本公开的各种实施例的数据存储过程800-1200的示意图。
如图7所示,在701,针对小于跟踪单元(例如330)的预定大小(例如W)的数据块,判断数据块的结束偏移是否小于跟踪单元330的边界减去数据块的头部和尾部大小之和的两倍。在本文中,跟踪单元的边界是指与数据块的结束偏移之后的最近边界。如果判定数据块的结束偏移小于跟踪单元330的边界减去数据块的头部和尾部大小之和的两倍,则在710,将数据块存储到用于保持小于预定大小W的数据块的存储单位中。
图8示出了这种情况下的数据存储过程800的示意图。如图8所示,例如存储单位完全空闲,数据块810的结束偏移小于跟踪单元330的边界减去数据块810的头部和尾部大小之和的两倍。在这种情况下,将数据块直接存储到用于保持小于预定大小W的数据块的存储单位中。
返回图7,如果在701判定数据块的结束偏移不小于跟踪单元330的边界减去数据块的头部和尾部大小之和的两倍,则在702,判断数据块的结束偏移是否小于跟踪单元330的边界减去数据块的头部和尾部大小之和。如果在702判定数据块的结束偏移小于跟踪单元330的边界减去数据块的头部和尾部大小之和,则在703,生成填充块以填充在数据块的结束偏移与跟踪单元330的边界之间,并在710处将数据块和填充块一起存储到用于保持小于W的数据块的存储单位中。
图9示出了这种情况下的数据存储过程900的示意图。如图9所示,例如在存储单位中存在已有数据的情况下,数据块910的结束偏移小于跟踪单元330的边界减去数据块910的头部和尾部大小之和且大于跟踪单元330的边界减去数据块910的头部和尾部大小之和的两倍。在这种情况下,生成填充块920,其包括指示填充块920的大小的填充头部、为零的主体部分以及包括用于填充头部和主体部分的校验和的填充尾部。继而将数据块910和填充块920一起存储到该存储单位中。
返回图7,如果在702判定数据块的结束偏移不小于跟踪单元330的边界减去数据块的头部和尾部大小之和,则在704,判断数据块的结束偏移是否小于跟踪单元330的边界。如果在704判定数据块的结束偏移小于跟踪单元330的边界,则在705,将数据块拆分成第三数据块和第四数据块,其中为第三数据块和第四数据块生成相同的元数据。该拆分的处理类似于前面结合图6的630和660所述的处理,这里不再赘述。
在706,生成填充块以填充在第三数据块和第四数据块之间,使得填充块的结束偏移与跟踪单元330的边界对准。根据本公开的实施例,生成包含头部、主体部分和尾部的填充块,所述头部指示所述填充块的大小,所述主体部分包括零,所述尾部包括用于所述头部和所述主体部分的校验和。由于填充块具有零数据(即,空的主体部分),所以填充块始终是固定大小的,所以容易验证正确性。继而在710处将拆分的第三数据块、生成的填充块以及拆分的第四数据块一起存储到用于保持小于W的数据块的存储单位中。
图10示出了这种情况下的数据存储过程1000的示意图。如图10所示,例如在存储单位中存在已有数据的情况下,数据块1010的结束偏移小于跟踪单元330的边界且大于跟踪单元330的边界减去数据块1010的头部和尾部大小之和。在这种情况下,将数据块1010拆分成数据块1020和数据块1030,并生成填充块1040以插入在数据块1020和1030之间,使得填充块1040的结束偏移与跟踪单元330的边界对准。该拆分和填充的处理类似于前面结合图6的630和660以及图7的706所述的处理,这里不再赘述。继而如图10所示那样将数据块1020、填充块1040以及数据块1030一起存储到存储单位中。
返回图7,如果在704判定数据块的结束偏移不小于跟踪单元330的边界,则在707,判断数据块的结束偏移是否等于跟踪单元330的边界。如果在707判定数据块在存储单位中的结束偏移等于跟踪单元330的边界,则在710,将数据块直接存储到该存储单位中。
如果在707判定数据块在存储单位中的结束偏移不等于跟踪单元330的边界,即小于跟踪单元330的边界,则在708,将数据块拆分成第五数据块和第六数据块,其中为第五数据块和第六数据块生成相同的元数据,并且使得第五数据块的结束偏移与跟踪单元330的边界对准。该拆分的处理类似于前面结合图6的630和660以及图7中的705所述的处理,这里不再赘述。
图11示出了这种情况下的数据存储过程1100的示意图。如图11所示,例如在存储单位中存在已有数据的情况下,数据块1110的结束偏移超过(大于)跟踪单元330的边界。在这种情况下,将数据块1110拆分成数据块1120和数据块1130,使得数据块1120的结束偏移与跟踪单元330的边界对准,并为数据块1120和1130生成相同的元数据。
返回图7,在709,判断第六数据块在存储单位中的结束偏移与下一跟踪单元的边界(即,下一边界)之差是否小于等于该数据块的头部和尾部之和的两倍。如果判定该数据块在存储单位中的结束偏移与下一跟踪单元的边界(即,下一边界)之差小于等于该数据块的头部和尾部之和的两倍,则在711,生成填充块以填充在该数据块的结束偏移与下一边界之间。填充的处理类似于前面结合图7的706所述的处理,这里不再赘述。继而在710,将拆分的第五数据块、第六数据块和填充块一起存储到存储单位中。如果在709判定该数据块在存储单位中的结束偏移与下一跟踪单元的边界(即,下一边界)之差大于该数据块的头部和尾部之和的两倍,则在710,将拆分的第五数据块和第六数据块直接存储到存储单位中。
图12示出了这种情况下的数据存储过程1200的示意图。如图12所示,例如在存储单位中存在已有数据的情况下,数据块1110的结束偏移超过(大于)跟踪单元330的边界。在这种情况下,将数据块1210拆分成数据块1220和数据块1230,使得数据块1220的结束偏移与跟踪单元330的边界对准,并为数据块1220和1230生成相同的元数据。该过程类似于前面结合图11所示的过程。不同之处在于,基于拆分后的数据块1230进一步判断是否需要进行进一步对准,由此可以进一步提高数据对准效率,确保整体系统性能。例如,如果拆分后的数据块1230的结束偏移与下一跟踪单元的边界之差小于等于该数据块的头部和尾部大小之和的两倍,则生成填充块1240以填充在数据块1230的结束偏移与下一跟踪单元的边界之间。
应理解到,图6和图7所示的实施例仅为示例性实施例,并不用于限制本发明。本领域技术人员根据本说明书公开的内容,可以想到其它多种具体实施方式来实施图4所示的数据存储方法。至此描述了根据本公开实施例的用于存储数据的方法。根据本公开实施例的方法,通过对数据块进行对准处理,可以最小化存储空间的浪费,并且可以避免由于部分数据消失而无法对剩余数据进行验证的情况。
相应地,本公开实施例还提供用于存储数据的装置。下面结合图13对此进行描述。图13示出了根据本公开实施例的用于存储数据的装置1300的示意性结构框图。该装置1300可以在服务器侧(例如图1的云服务器110)实施。
如图13所示,装置1300可以包括生成单元1310、对准单元1320和存储单元1330。具体而言,生成单元1310可以被配置用于生成与待存储的数据对应的数据块。在一个实施例中,生成单元1310可以被进一步配置用于生成包含头部、主体部分和尾部的数据块,所述头部指示所述数据块的大小,所述主体部分包括所述数据,所述尾部包括用于所述头部和所述主体部分的校验和。
对准单元1320可以被配置用于将所述块与跟踪单元的边界对准,所述跟踪单元用于数据验证且具有预定大小。存储单元1330被配置用于将经对准的数据块存储到存储空间的存储单位中,所述存储单位具有相同的大小。在一个实施例中,对准单元1320可以包括(图中未示出):第一拆分子单元,被配置用于响应于所述数据块的大小为所述跟踪单元的所述预定大小的整数倍,将所述数据块拆分成所述预定大小的至少一个子块;以及第一生成子单元,被配置用于为所述至少一个子块生成相同的元数据。在该实施例中,存储单元1330包括:存储子单元,被配置用于将所述至少一个子块存储到用于保持所述预定大小的数据块的存储单位中。
在另一实施例中,对准单元1320可以包括(图中未示出):第二拆分子单元,被配置用于响应于所述数据块的大小大于所述跟踪单元的所述预定大小的整数倍,将所述数据块拆分成至少一个第一数据块和第二数据块,每个所述第一数据块的大小等于所述跟踪单元的所述预定大小,所述第二数据块的大小小于所述跟踪单元的所述预定大小;第二生成子单元,被配置用于为所述至少一个第一数据块和第二数据块生成相同的元数据;以及对准子单元,被配置用于基于所述第二数据块的结束偏移和所述跟踪单元的边界,将所述第二数据块与所述跟踪单元的边界对准。在本实施例中,存储单元1330可以包括(图中未示出):第一存储子单元,被配置用于将所述至少一个第一数据块存储到用于保持所述预定大小的数据块的存储单位中;以及第二存储子单元,被配置用于将经对准的所述第二数据块存储到用于保持小于所述预定大小的数据块的存储单位中。在一个实施例中,对准子单元可以包括:确定子单元,被配置用于基于所述第二数据块的结束偏移与所述跟踪单元的边界的比较,确定是否拆分所述第二数据块;以及拆分和填充子单元,被配置用于响应于确定拆分:将所述第二数据块拆分成第一子块和第二子块;为所述第一子块和所述第二子块生成相同的元数据;以及基于经拆分的子块的结束偏移与所述跟踪单元的边界的比较,确定是否生成对应的填充块,以填充在经拆分的子块的结束偏移与所述跟踪单元的边界之间。在一个实施例中,对准子单元还可以包括:填充子单元,被配置用于生成包含头部、主体部分和尾部的所述填充块,所述头部指示所述填充块的大小,所述主体部分包括零,所述尾部包括用于所述头部和所述主体部分的校验和。
在又一实施例中,对准子单元还可以被配置用于:响应于所述数据块的大小小于所述跟踪单元的所述预定大小,基于所述数据块的结束偏移和所述跟踪单元的边界,将所述数据块与所述跟踪单元的边界对准。在一个实施例中,确定子单元可以被配置用于基于所述数据块的结束偏移与所述跟踪单元的边界的比较,确定是否拆分所述数据块。拆分和填充子单元可以被配置用于响应于确定拆分:将所述数据块拆分成第三数据块和第四数据块;为所述第三数据块和所述第四数据块生成相同的元数据;以及基于经拆分的块的结束偏移与所述跟踪单元的边界的比较,确定是否生成对应的填充块,以填充在经拆分的块的结束偏移与所述跟踪单元的所述边界之间。
应当理解,装置1300中记载的每个单元分别与参考图4至图7描述的方法400-700中的每个步骤相对应。并且,装置1300及其中包含的单元的操作和特征都对应于上文结合图4至图7描述的操作和特征,并且具有同样的效果,具体细节不再赘述。
装置1300中所包括的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。在一个实施例中,一个或多个单元可以使用软件和/或固件来实现,例如存储在存储介质上的机器可执行指令。除了机器可执行指令之外或者作为替代,装置1300中的部分或者全部单元可以至少部分地由一个或多个硬件逻辑组件来实现。作为示例而非限制,可以使用的示范类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等等。
图13中所示的这些单元可以部分或者全部地实现为硬件模块、软件模块、固件模块或者其任意组合。特别地,在某些实施例中,上文描述的流程、方法或过程可以由存储系统或与存储系统对应的主机或独立于存储系统的其它计算设备中的硬件来实现。
图14示出了一个可以用来实施本公开的实施例的电子设备1400的示意性框图。如图所示,电子设备1400包括中央处理单元(CPU)1401,其可以根据存储在只读存储器(ROM)1402中的计算机程序指令或者从存储单元1408加载到随机访问存储器(RAM)1403中的计算机程序指令,来执行各种适当的动作和处理。在RAM1403中,还可存储电子设备1400操作所需的各种程序和数据。CPU 1401、ROM1402以及RAM 1403通过总线1404彼此相连。输入/输出(I/O)接口1405也连接至总线1404。
电子设备1400中的多个部件连接至I/O接口1405,包括:输入单元1406,例如键盘、鼠标等;输出单元1407,例如各种类型的显示器、扬声器等;存储单元1408,例如磁盘、光盘等;以及通信单元1409,例如网卡、调制解调器、无线通信收发机等。通信单元1409允许电子设备1400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法400-700,可由处理单元1401执行。例如,在一些实施例中,方法400-700可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1402和/或通信单元1409而被载入和/或安装到电子设备1400上。当计算机程序被加载到RAM1403并由CPU 1401执行时,可以执行上文描述的方法400-700的一个或多个步骤。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
作为示例,本公开的实施例可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。
用于实现本公开的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
在本公开的上下文中,机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。
另外,尽管操作以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。反之,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。
尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求中限定的主题并不限于上文描述的特定特征或动作。相反,上文描述的特定特征和动作是作为实现权利要求的示例形式而被公开的。
Claims (21)
1.一种用于存储数据的方法,包括:
生成与待存储的数据对应的数据块;
将所述块与跟踪单元的边界对准,所述跟踪单元用于数据验证且具有预定大小;以及
将经对准的数据块存储到存储空间的存储单位中,所述存储单位具有相同的大小。
2.根据权利要求1所述的方法,其中生成与待存储的数据对应的块包括:
生成包含头部、主体部分和尾部的所述数据块,所述头部指示所述数据块的大小,所述主体部分包括所述数据,所述尾部包括用于所述头部和所述主体部分的校验和。
3.根据权利要求1所述的方法,其中将所述块与跟踪单元的边界对准包括:
响应于所述数据块的大小为所述跟踪单元的所述预定大小的整数倍,将所述数据块拆分成所述预定大小的至少一个子块;以及
为所述至少一个子块生成相同的元数据。
4.根据权利要求3所述的方法,其中所述将经对准的数据块存储到存储单位中包括:
将所述至少一个子块存储到用于保持所述预定大小的数据块的存储单位中。
5.根据权利要求1所述的方法,其中所述将所述块与跟踪单元的边界对准包括:
响应于所述数据块的大小大于所述跟踪单元的所述预定大小的整数倍,将所述数据块拆分成至少一个第一数据块和第二数据块,每个所述第一数据块的大小等于所述跟踪单元的所述预定大小,所述第二数据块的大小小于所述跟踪单元的所述预定大小;
为所述至少一个第一数据块和第二数据块生成相同的元数据;以及
基于所述第二数据块的结束偏移和所述跟踪单元的边界,将所述第二数据块与所述跟踪单元的边界对准。
6.根据权利要求5所述的方法,其中所述将经对准的数据块存储到存储单位中包括:
将所述至少一个第一数据块存储到用于保持所述预定大小的数据块的存储单位中;以及
将经对准的所述第二数据块存储到用于保持小于所述预定大小的数据块的存储单位中。
7.根据权利要求5所述的方法,其中所述将所述第二数据块与跟踪单元的边界对准包括:
基于所述第二数据块的结束偏移与所述跟踪单元的边界的比较,确定是否拆分所述第二数据块;以及
响应于确定拆分:
将所述第二数据块拆分成第一子块和第二子块;
为所述第一子块和所述第二子块生成相同的元数据;以及
基于经拆分的子块的结束偏移与所述跟踪单元的边界的比较,确定是否生成对应的填充块,以填充在经拆分的子块的结束偏移与所述跟踪单元的边界之间。
8.根据权利要求7所述的方法,其中所述生成填充块包括:
生成包含头部、主体部分和尾部的所述填充块,所述头部指示所述填充块的大小,所述主体部分包括零,所述尾部包括用于所述头部和所述主体部分的校验和。
9.根据权利要求1所述的方法,其中所述将所述块与跟踪单元的边界对准包括:
响应于所述数据块的大小小于所述跟踪单元的所述预定大小,基于所述数据块的结束偏移和所述跟踪单元的边界,将所述数据块与所述跟踪单元的边界对准。
10.根据权利要求9所述的方法,其中所述将所述数据块与所述跟踪单元的边界对准包括:
基于所述数据块的结束偏移与所述跟踪单元的边界的比较,确定是否拆分所述数据块;以及
响应于确定拆分:
将所述数据块拆分成第三数据块和第四数据块;
为所述第三数据块和所述第四数据块生成相同的元数据;以及
基于经拆分的块的结束偏移与所述跟踪单元的边界的比较,确定是否生成对应的填充块,以填充在经拆分的块的结束偏移与所述跟踪单元的所述边界之间。
11.一种电子设备,包括:
处理单元;以及
存储器,所述存储器存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:
生成与待存储的数据对应的数据块;
将所述块与跟踪单元的边界对准,所述跟踪单元用于数据验证且具有预定大小;以及
将经对准的数据块存储到存储空间的存储单位中,所述存储单位具有相同的大小。
12.根据权利要求11所述的设备,其中所述存储器还存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:
生成包含头部、主体部分和尾部的所述数据块,所述头部指示所述数据块的大小,所述主体部分包括所述数据,所述尾部包括用于所述头部和所述主体部分的校验和。
13.根据权利要求11所述的设备,其中所述存储器还存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:
响应于所述数据块的大小为所述跟踪单元的所述预定大小的整数倍,将所述数据块拆分成所述预定大小的至少一个子块;以及
为所述至少一个子块生成相同的元数据。
14.根据权利要求13所述的设备,其中所述存储器还存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:
将所述至少一个子块存储到用于保持所述预定大小的数据块的存储单位中。
15.根据权利要求11所述的设备,其中所述存储器还存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:
响应于所述数据块的大小大于所述跟踪单元的所述预定大小的整数倍,将所述数据块拆分成至少一个第一数据块和第二数据块,每个所述第一数据块的大小等于所述跟踪单元的所述预定大小,所述第二数据块的大小小于所述跟踪单元的所述预定大小;
为所述至少一个第一数据块和第二数据块生成相同的元数据;以及
基于所述第二数据块的结束偏移和所述跟踪单元的边界,将所述第二数据块与所述跟踪单元的边界对准。
16.根据权利要求15所述的设备,其中所述存储器还存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:
将所述至少一个第一数据块存储到用于保持所述预定大小的数据块的存储单位中;以及
将经对准的所述第二数据块存储到用于保持小于所述预定大小的数据块的存储单位中。
17.根据权利要求15所述的设备,其中所述存储器还存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:
基于所述第二数据块的结束偏移与所述跟踪单元的边界的比较,确定是否拆分所述第二数据块;以及
响应于确定拆分:
将所述第二数据块拆分成第一子块和第二子块;
为所述第一子块和所述第二子块生成相同的元数据;以及
基于经拆分的子块的结束偏移与所述跟踪单元的边界的比较,确定是否生成对应的填充块,以填充在经拆分的子块的结束偏移与所述跟踪单元的边界之间。
18.根据权利要求17所述的设备,其中所述存储器还存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:
生成包含头部、主体部分和尾部的所述填充块,所述头部指示所述填充块的大小,所述主体部分包括零,所述尾部包括用于所述头部和所述主体部分的校验和。
19.根据权利要求11所述的设备,其中所述存储器还存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:
响应于所述数据块的大小小于所述跟踪单元的所述预定大小,基于所述数据块的结束偏移和所述跟踪单元的边界,将所述数据块与所述跟踪单元的边界对准。
20.根据权利要求19所述的设备,其中所述存储器还存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:
基于所述数据块的结束偏移与所述跟踪单元的边界的比较,确定是否拆分所述数据块;以及
响应于确定拆分:
将所述数据块拆分成第三数据块和第四数据块;
为所述第三数据块和所述第四数据块生成相同的元数据;以及
基于经拆分的块的结束偏移与所述跟踪单元的边界的比较,确定是否生成对应的填充块,以填充在经拆分的块的结束偏移与所述跟踪单元的所述边界之间。
21.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至10中任一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610847731.9A CN107870727B (zh) | 2016-09-23 | 2016-09-23 | 用于存储数据的方法和设备 |
US15/710,956 US10445013B2 (en) | 2016-09-23 | 2017-09-21 | Method and device for storing data |
US16/565,925 US11372566B2 (en) | 2016-09-23 | 2019-09-10 | Method and device for storing data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610847731.9A CN107870727B (zh) | 2016-09-23 | 2016-09-23 | 用于存储数据的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107870727A true CN107870727A (zh) | 2018-04-03 |
CN107870727B CN107870727B (zh) | 2021-01-01 |
Family
ID=61686226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610847731.9A Active CN107870727B (zh) | 2016-09-23 | 2016-09-23 | 用于存储数据的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10445013B2 (zh) |
CN (1) | CN107870727B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062508A (zh) * | 2018-07-19 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种数据处理的方法及装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109725824A (zh) | 2017-10-27 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 用于向存储系统中的盘阵列写入数据的方法和设备 |
US10901624B1 (en) * | 2019-07-01 | 2021-01-26 | Western Digital Technologies, Inc. | Dummy host command generation for supporting higher maximum data transfer sizes (MDTS) |
US10901733B1 (en) | 2019-07-01 | 2021-01-26 | Western Digital Technologies, Inc. | Open channel vector command execution |
US11537560B2 (en) * | 2019-07-11 | 2022-12-27 | Samsung Electronics Co., Ltd. | Markers for hash code calculations on occupied portions of data blocks |
CN112732167B (zh) | 2019-10-28 | 2024-04-16 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备 |
US11726851B2 (en) * | 2019-11-05 | 2023-08-15 | EMC IP Holding Company, LLC | Storage management system and method |
US11816342B2 (en) * | 2020-06-10 | 2023-11-14 | Samsung Electronics Co., Ltd. | Systems and methods for distributed in-storage computation-conscious erasure coding |
CN113282249B (zh) * | 2021-07-19 | 2021-10-29 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、系统、设备以及介质 |
US11934684B2 (en) | 2021-12-14 | 2024-03-19 | Western Digital Technologies, Inc. | Maximum data transfer size per tenant and command type |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050268067A1 (en) * | 2004-05-28 | 2005-12-01 | Robert Lee | Method and apparatus for memory-mapped input/output |
CN101547184A (zh) * | 2008-03-24 | 2009-09-30 | 突触计算机系统(上海)有限公司 | 一种用于对网络传输的数据块进行验证的方法和装置 |
US8909894B1 (en) * | 2011-03-16 | 2014-12-09 | Tintri Inc. | Automatically aligning virtual blocks to physical blocks |
US9317213B1 (en) * | 2013-05-10 | 2016-04-19 | Amazon Technologies, Inc. | Efficient storage of variably-sized data objects in a data store |
WO2016115737A1 (en) * | 2015-01-23 | 2016-07-28 | Hewlett-Packard Development Company, L.P. | Aligned variable reclamation |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7707184B1 (en) * | 2002-10-09 | 2010-04-27 | Netapp, Inc. | System and method for snapshot full backup and hard recovery of a database |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US7260688B1 (en) * | 2004-04-15 | 2007-08-21 | Xilinx, Inc. | Method and apparatus for controlling access to memory circuitry |
US9286198B2 (en) * | 2005-04-21 | 2016-03-15 | Violin Memory | Method and system for storage of data in non-volatile media |
US8938591B2 (en) * | 2005-09-30 | 2015-01-20 | Cleversafe, Inc. | Dispersed storage processing unit and methods with data aggregation for use in a dispersed storage system |
US7502992B2 (en) | 2006-03-31 | 2009-03-10 | Emc Corporation | Method and apparatus for detecting presence of errors in data transmitted between components in a data storage system using an I2C protocol |
US20070300013A1 (en) * | 2006-06-21 | 2007-12-27 | Manabu Kitamura | Storage system having transaction monitoring capability |
US8327080B1 (en) | 2010-09-28 | 2012-12-04 | Emc Corporation | Write-back cache protection |
US8751828B1 (en) | 2010-12-23 | 2014-06-10 | Emc Corporation | Sharing encryption-related metadata between multiple layers in a storage I/O stack |
US8798262B1 (en) | 2010-12-23 | 2014-08-05 | Emc Corporation | Preserving LBA information between layers of a storage I/O stack for LBA-dependent encryption |
US8190784B1 (en) | 2011-03-30 | 2012-05-29 | Emc Corporation | In-band transport mechanism for carrying communications among functional components of a storage I/O interface stack |
US8826041B1 (en) | 2011-03-30 | 2014-09-02 | Emc Corporation | In-band detection mechanism for detecting intermediate layer in a storage I/O driver stack |
US9787522B1 (en) | 2011-06-29 | 2017-10-10 | EMC IP Holding Company LLC | Data processing system having failover between hardware and software encryption of storage data |
US8527724B2 (en) * | 2011-08-26 | 2013-09-03 | International Business Machines Corporation | Blocked based end-to-end data protection for extended count key data (ECKD) |
US8707050B1 (en) | 2011-12-23 | 2014-04-22 | Emc Corporation | Integrity self-check of secure code within a VM environment using native VM code |
US9317123B2 (en) | 2012-06-13 | 2016-04-19 | University Of Utah Research Foundation | Skin stretch feedback devices, systems, and methods |
US10133500B2 (en) * | 2013-03-06 | 2018-11-20 | Ab Initio Technology Llc | Managing operations on stored data units |
US9430156B1 (en) * | 2014-06-12 | 2016-08-30 | Emc Corporation | Method to increase random I/O performance with low memory overheads |
JP2016122485A (ja) * | 2014-12-24 | 2016-07-07 | 富士通株式会社 | 情報記録プログラム、情報記録方法、および情報記録装置 |
US9880762B1 (en) | 2015-12-30 | 2018-01-30 | EMC IP Holding Company LLC | Compressing metadata blocks prior to writing the metadata blocks out to secondary storage |
US10437474B1 (en) | 2017-04-27 | 2019-10-08 | EMC IP Holding Company LLC | Overwriting compressed data extents |
US10762047B2 (en) | 2018-10-31 | 2020-09-01 | EMC IP Holding Company LLC | Relocating compressed extents using file-system hole list |
US10761762B2 (en) | 2018-10-31 | 2020-09-01 | EMC IP Holding Company LLC | Relocating compressed extents using batch-hole list |
US11048419B2 (en) | 2019-01-30 | 2021-06-29 | EMC IP Holding Company LLC | Adaptively over-allocating storage space for compressed data |
-
2016
- 2016-09-23 CN CN201610847731.9A patent/CN107870727B/zh active Active
-
2017
- 2017-09-21 US US15/710,956 patent/US10445013B2/en active Active
-
2019
- 2019-09-10 US US16/565,925 patent/US11372566B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050268067A1 (en) * | 2004-05-28 | 2005-12-01 | Robert Lee | Method and apparatus for memory-mapped input/output |
CN101547184A (zh) * | 2008-03-24 | 2009-09-30 | 突触计算机系统(上海)有限公司 | 一种用于对网络传输的数据块进行验证的方法和装置 |
US8909894B1 (en) * | 2011-03-16 | 2014-12-09 | Tintri Inc. | Automatically aligning virtual blocks to physical blocks |
US9317213B1 (en) * | 2013-05-10 | 2016-04-19 | Amazon Technologies, Inc. | Efficient storage of variably-sized data objects in a data store |
WO2016115737A1 (en) * | 2015-01-23 | 2016-07-28 | Hewlett-Packard Development Company, L.P. | Aligned variable reclamation |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062508A (zh) * | 2018-07-19 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种数据处理的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20180088815A1 (en) | 2018-03-29 |
CN107870727B (zh) | 2021-01-01 |
US11372566B2 (en) | 2022-06-28 |
US20200004422A1 (en) | 2020-01-02 |
US10445013B2 (en) | 2019-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870727A (zh) | 用于存储数据的方法和设备 | |
US10346780B2 (en) | Extraction of system administrator actions to a workflow providing a resolution to a system issue | |
CN104133775B (zh) | 一种用于管理存储器的方法和装置 | |
US10241681B2 (en) | Management of physical extents for space efficient storage volumes | |
US10216429B2 (en) | Performing post-processing operations for log file writes | |
US20130191105A1 (en) | Virtual systems testing | |
US20150039845A1 (en) | Transferring learning metadata between storage servers having clusters via copy services operations on a shared virtual logical unit that stores the learning metadata | |
US10956747B2 (en) | Creating sparsely labeled video annotations | |
US10643150B2 (en) | Parameter version vectors used for deterministic replay of distributed execution of workload computations | |
US11010295B2 (en) | Asynchronous update of metadata tracks in response to a cache hit generated via an i/o operation over a bus interface | |
US10656852B2 (en) | Performing preprocessing operations in anticipation of log file writes | |
US20150309731A1 (en) | Dynamic Tuning of Memory in MapReduce Systems | |
CN110007858A (zh) | 存储空间分配方法及装置 | |
CN109657261B (zh) | 预测液体容器中的静电电荷 | |
CN107515724A (zh) | 用于再现存储系统的输入输出的方法和设备 | |
US9665308B2 (en) | Optimization of the copying of change recorded data by using spare flash capacity | |
Jeong et al. | An efficient cloud storage model for cloud computing environment | |
CN107533468A (zh) | 用于云和设备套件的可扩展性捆绑包 | |
CN110443062A (zh) | 多租户数据库的操作方法、装置和计算机设备 | |
CN107491363A (zh) | 一种基于Linux内核的存储卷的快照方法及装置 | |
US20200192784A1 (en) | Estimating the number of coding styles by analyzing source code | |
JP2016081194A (ja) | 記憶情報抽出プログラム、記憶制御装置、および記憶情報抽出方法 | |
CN104268023B (zh) | 一种msvl程序内存管理方法 | |
KR102172321B1 (ko) | 데이터 중복 제거 방법 | |
US10191637B2 (en) | Workspace metadata management |
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 |