CN111858577B - 存储管理的方法、设备和计算机程序产品 - Google Patents
存储管理的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN111858577B CN111858577B CN201910356190.3A CN201910356190A CN111858577B CN 111858577 B CN111858577 B CN 111858577B CN 201910356190 A CN201910356190 A CN 201910356190A CN 111858577 B CN111858577 B CN 111858577B
- Authority
- CN
- China
- Prior art keywords
- updated
- candidate object
- memory block
- storage
- candidate
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004590 computer program Methods 0.000 title abstract description 14
- 230000004044 response Effects 0.000 claims abstract description 21
- 238000007726 management method Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 7
- 239000000473 propyl gallate Substances 0.000 description 5
- 239000004173 sunset yellow FCF Substances 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及存储管理的方法、设备和计算机程序产品。该方法包括:接收针对被存储在第一存储块中的目标对象的更新请求,以在与第一存储块不同的第二存储块中写入经更新的目标对象;利用查找树确定与目标对象相关联的至少一个候选对象,查找树指示多个对象构成的层级关系,其中在查找树中,与目标对象相对应的第一节点和与至少一个候选对象相对应的第二节点具有相同的索引节点;确定至少一个候选对象在过去的预定时间内是否被更新;以及响应于至少一个候选对象在过去的预定时间内未被更新,将至少一个候选对象从第三存储块移动到与第三存储块不同的第四存储块中。
Description
技术领域
本公开的实施例涉及计算机领域,并且更具体地,涉及存储管理的方法、设备和计算机程序产品。
背景技术
为了提高数据查找的效率,人们常利用诸如BTREE等查找树来组织元数据(例如,键值对)。例如,利用BTREE这种数据结构,人们可以快速地定位于目标键所对应的节点,从而快速定位目标数据。近年来,随着需要管理的数据的规模越来越大,存储元数据的存储开销也随之增长。因而,如何高效地管理元数据的存储称为关注的焦点。
发明内容
本公开的实施例提供一种用于存储管理的方案。
根据本公开的第一方面,提出了一种用于存储管理的方法。该方法包括:接收针对被存储在第一存储块中的目标对象的更新请求,以在与第一存储块不同的第二存储块中写入经更新的目标对象;利用查找树确定与目标对象相关联的至少一个候选对象,查找树指示多个对象构成的层级关系,其中在查找树中,与目标对象相对应的第一节点和与至少一个候选对象相对应的第二节点具有相同的索引节点;确定至少一个候选对象在过去的预定时间内是否被更新;以及响应于至少一个候选对象在过去的预定时间内未被更新,将至少一个候选对象从第三存储块移动到与第三存储块不同的第四存储块中。
根据本公开的第二方面,提出了一种用于存储管理的设备。该设备包括:至少一个处理单元;至少一个存储器,该至少一个存储器被耦合到该至少一个处理单元并且存储用于由该至少一个处理单元执行的指令,该指令当由该至少一个处理单元执行时,使得该设备执行动作,该动作包括:接收针对被存储在第一存储块中的目标对象的更新请求,以在与第一存储块不同的第二存储块中写入经更新的目标对象;利用查找树确定与目标对象相关联的至少一个候选对象,查找树指示多个对象构成的层级关系,其中在查找树中,与目标对象相对应的第一节点和与至少一个候选对象相对应的第二节点具有相同的索引节点;确定至少一个候选对象在过去的预定时间内是否被更新;以及响应于至少一个候选对象在过去的预定时间内未被更新,将至少一个候选对象从第三存储块移动到与第三存储块不同的第四存储块中。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被存储在非瞬态计算机存储介质中并且包括机器可执行指令,该机器可执行指令在设备中运行时使该设备执行根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1A至图1C图示了常规的更新查找树的示意图;
图2图示了根据本公开实施例的存储管理的方法的流程图;
图3图示了根据本公开实施例的示例查找树的示意图;
图4图示了根据本公开一个实施例的确定候选对象在过去的预定时间段是否被更新的过程的流程图;
图5图示了根据本公开另一实施例的确定候选对象在过去的预定时间段是否被更新的过程的流程图;
图6图示了根据本公开实施例的更新后的示例查找树的示意图;以及
图7图示了可以用来实施本公开内容的实施例的示例设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上文所讨论的,在例如使用BTREE等查找树的存储系统中,数据节点和索引节点所占用的存储空间的管理已经成为关注的焦点。例如,图1A示出了初始的查找树100A的示意图。如图1所示,查找树100A包括了索引节点A 102、索引节点B 104、索引节点C 106、数据节点D 108、数据节点E 110、数据节点F 112和数据节点G 114,其中用于查找数据的数据对象(例如,键值对)被存储在数据节点中,而索引节点则存储其子节点的索引信息,以更快地查找到对应的数据节点。如图1A所示,初始地,与查找树100A中的各节点相关联的数据被顺序地存储在一个存储区域120中的多个存储块(存储块122-存储块134)中。
在诸如ECS等数据存储系统中,存储系统在更新查找树100A中某个节点的数据,会将更新后的数据写入到新的存储块中,而不是在先前的存储块中直接替换数据。如图1B所示,在存储系统更新与数据节点E 110中存储的元数据时,存储系统将在存储区域140中的存储块142中写入更新后的数据,并将存储区域120’中与数据节点E 110相关联的存储块124标记为空闲,即更新为存储块124’。此外,存储系统还需要相应地更新数据节点E 110的上级节点,即索引节点B 104和索引节点A 102,以体现数据节点E 110已经被更新。例如,存储系统将在存储区域140中的存储块144和146分别写入与更新后的索引节点B’104’和更新后的索引节点A’102’相关联的数据,并将先前的存储块130和存储块134标记为空闲,即更新为存储区域120’中的存储块130’和134’。相应地,图1A中的索引节点A 102和索引节点B104被更新为图1B中的索引节点A 102’和索引节点B 104’。
类似地,如图1C所示,当存储系统需要进一步更新与数据节点G 114中存储的元数据时,存储系统将在新的存储块150、存储块152和存储块154中分别写入与更新后的元数据以及对应的索引数据,并将先前的存储块128、存储块132和存储块146标记为空闲,以得到存储块128”、存储块132”和存储块146”。相应地,数据节点G 114、索引节点C 106和索引节点A 102’被更新为数据节点G 114”、索引节点C 106”和索引节点A 102”。此时,如图1C所示,存储区域120”中仅有两个在用的存储块122和存储块126,并且占据大部分空间的空闲存储块无法被有效地利用。
一些传统的方案可以通过将存储块122和存储块126中的数据移动到新的存储区域来释放存储区域120”,以提稿存储的效率。然而,由于在移动存储块中的数据的过程中,存储块系统还需要更新与数据节点相关联的上级节点,从而导致写放大的情形。例如,一般的索引节点的大小可以为64KB,而数据节点的大小为8KB,在需要移动数据节点D 108中存储的元数据时,存储系统需要写入与数据节点D 108、数据节点B’104’和索引节点A”102”相关联的数据,即需要写入的大小数据为8KB+64KB+64KB=136KB,这样的效率往往是无法接受的。应当理解,图1A至图1C中所示的查找树中的节点的数目和具体布置仅是示意性的,并不旨在对本公开的范围进行任何限定。
根据本公开的实施例,提供了一种存储管理的方案。在该方案中,在接收针对被存储在第一存储块中的目标对象的更新请求以在与第一存储块不同的第二存储块中写入经更新的目标对象时,利用查找树确定与目标对象相关联的至少一个候选对象,其中查找树指示多个对象构成的层级关系,并且在查找树中,与目标对象相对应的第一节点和与至少一个候选对象相对应的第二节点具有相同的索引节点。随后,确定至少一个候选对象在过去的预定时间内是否被更新,并且当至少一个候选对象在过去的预定时间内未被更新时,将至少一个候选对象从第三存储块移动到与第三存储块不同的第四存储块中。基于这样的方式,本公开的实施例可以在更新目标对象时连同写入预定时间段内未被更新的候选对象,从而能够加快释放由这些对象占用的存储空间。此外,由于目标对象与候选对象与相同的索引节点相关联,因此本公开的实施例还减少了写入候选对象所需要的写入开销。
下文将参考图2至图6来描述根据本公开实施例的数据备份的过程。图2示出了根据本公开的一些实施例的存储管理的过程200的流程图。过程200例如可以由用于执行存储管理的存储系统来实现。
在框202,存储系统接收针对被存储在第一存储块中的目标对象的更新请求,以在与第一存储块不同的第二存储块中写入经更新的目标对象。以下将结合图3所示的示例来描述方法200的过程,具体地,图3示出了存储系统中的查找树300以及与查找树300中各节点所对应的存储块。具体地,如图3所示,数据节点D 308中存储的元数据被存储在存储区域320中的存储块322中,与数据节点E310、索引节点B 304、数据节点F 312、数据节点G 314、索引节点C 306和索引节点A 302相关联的数据分别被存储在存储区域330中的存储块332、存储块334、存储块336、存储块338、存储块340和存储块342中。应当理解,图3中所示的查找树中的具体节点的数目和布置只是示意性的,而不旨在对本公开进行限定。
以图3作为示例,存储系统可以接收到针对被存储在存储块332中的目标对象(即,数据节点E 310所包含的元数据)的更新请求。基于该更新请求,存储系统需要在新的存储块中写入经更新的目标对象(元数据)。在一些实施例中,目标对象为用于查找数据的键值对。通过这些键值对,存储系统可以快速定位于用户输入的键所对应的索引值,进而确定对应的目标数据。
在框204,存储系统利用查找树确定与目标对象相关联的至少一个候选对象,查找树指示多个对象构成的层级关系,其中在查找树中,与目标对象相对应的第一节点和与至少一个候选对象相对应的第二节点具有相同的索引节点。如图3所示,存储系统可以读取预先存储的查找树300,并且确定与目标对象的节点为数据节点E 310(第一节点)。进一步地,存储系统可以根据查找树300中的指针关系确定其父节点为索引节点B 304,并且进一步确定数据节点D 308与第一节点310具有相同的索引节点B 304。存储系统进一步可以数据节点D 308中的元数据(即,候选对象),并且确定该候选对象被存储块在存储区域320中的存储块322中。图3的示例中仅示处一个数据节点D 308与数据节点E 310具有相同的索引节点304,应当理解索引节点B 304可能还具有一个或多个未示出的相关联数据节点。
继续参考图2,在框206,存储系统可以确定至少一个候选对象在过去的预定时间内是否被更新。以下将结合图4来详细描述框206的具体过程,图4示出了根据本公开一个实施例的确定至少一个候选对象在过去的预定时间内是否被更新的过程的流程图。
如图4所示,针对所述至少一个候选对象中的一个候选对象,在框402,存储系统获取与候选对象相关联的更新次数标识,其中更新次数标识指示在候选对象最近被更新时查找树已经被更新的第一次数。以图3作为示例,具体地,在图3的示例中,存储系统可以在每次更新过程中为每个节点记录对应的更新次数标识。例如,在查找树最初被构建时,存储系统可以为每个节点的初始更新次数标识设置为0次。随后,在每次数据节点时,存储系统可以将数据节点和其上级节点的更新次数标识设置为查找树已经被更新的总次数。例如,当查找树的第一次更新是针对数据节点D 308时,存储系统可以将数据节点D 308、索引节点B304和索引节点A 302的更新次数标识设置为1次。在一些实施例中,存储系统可以将更新次数标识与各节点中所包含的数据相关联的存储。备选地,存储系统也可以存储专门的用于确定更新次数标记的数据结构,并在需要确定对应的更新次数标识时访问该数据结构。
如图3所示,在图3的示例,索引节点A 302、索引节点C 306、索引节点F 312和索引节点G 314的更新次数标识为12次(如框306之前的数字所指示的),索引节点B 304和数据节点E 310的更新次数标识为11次,并且数据节点D 308的更新次数标识为0次(即,自查找树300被创建后未被更新)。如图3所示,与候选对象相关联的更新次数标识为与数据节点D308相关联的更新次数标识(0次)。
在框404,存储系统可以确定第一次数与查找树当前已经被更新的第二次数之间的次数差异。继续图3的示例,在该示例中,查找树当前已经被更新的次数即为根索引节点(索引节点A 302)的更新次数标识(12次)。因此,次数差异可以被确定为12次(12次减去0次)。
在框406,存储系统可以确定次数差异是否大于预定的差异阈值。响应于在框406确定次数差异大于差异阈值,方法进行到框408,即存储系统可以确定候选对象在过去的预定时间内未被更新。在一些实施例中,响应于在框406确定次数差小于或等于差异阈值时,则方法进行到框410,即存储系统可以确定候选对象在过去的预定时间内已经被更新。在一些实施例中,预定的差异阈值可以根据实际的需要来适应性地调整,以使得既能够有效地筛选出长时间未被更新的节点(对象),也不会太过频繁地移动数据,造成额外的写开销。在一些实施例中,存储系统可以设置差异阈值的初始值,例如,存储系统可以将2周时间时查找树被更新的总次数设置为初始值。随后,存储系统可以根据在该初始值所移动的数据节点的数目与实际更新的节点数目的比较来调整初始值。例如,当移动的节点数目大于更新的节点数目时,存储系统可以递减差异阈值,以避免移动过多的节点。此外,当移动的节点数目过少,并且差异阈值的当前值小于初始值时,存储系统可以递增差异阈值,以提高存储效率。
例如,在图3的示例中,可以将差异阈值设置为10次,因此存储系统进而可以确定此处差异大于差异阈值,进而确定数据节点D308及其对应的元数据在预定的时间段内未被更新。
基于这样的方式,本公开的实施例可以利用严格递增的更新次数标识来简单高效地确定对应的对象在预定的时间段内是否被更新,并且能够适用于分布式环境中,并排除分布式环境中不同时间钟可能带来的影响。
在一些实施例中,存储系统也可以利用更新的时间戳来确定候选对象在过去预定的时间内是否被更新。具体地,图5示出了根据本公开一个实施例的确定至少一个候选对象在过去的预定时间内是否被更新的过程的流程图。
如图5所示,在框502,存储系统可以获取指示候选对象最近被更新时间的时间戳。在一些实施例中,存储系统可以在更新数据节点中所存储的对象时记录指示更新所发生时间的时间戳信息。在框504,存储系统可以基于时间戳确定最近被更新时间与当前时间的时间差。在框506,存储系统可以确定时间是否大于预定的阈值。响应于在框506确定时间差大于预定的阈值,方法进行到框508,即存储系统可以确定候选对象在过去的预定时间内未被更新。响应于在框506确定时间差小于或等于预定的阈值,则方法进行到框510,即存储系统可以确定候选对象在过去的预定时间内已经被更新。基于这样的方式,存储系统可以基于绝对的时间戳来确定特定节点内存储的对象在过去的预定时间内是否被更新。
继续参考图2,响应于在框206确定至少一个候选对象在过去的预定时间内未被更新,方法200进行到框208,即存储系统将至少一个候选对象从第三存储块移动到与第三存储块不同的第四存储块中。应当理解,当在框206确定至少一个候选对象在过去的预定时间内已经被更新时,存储系统可以不对候选对象进行任何处理,而仅进行常规的目标数据更新操作(图中未示出)。以下将参考图6来描述框206的过程,具体地,图6示出了根据本公开实施例的更新后的查找树600的示意图。如图6所示,在确定图3中的数据节点D 306中所存储的元数据在预定的时间内未被更新后,存储系统可以将存储区域320中的存储块D 322(第三存储块)中的数据,连同图6中更新后的数据节点E’610中的元数据、更新后的索引节点B’604和索引节点A’602中的数据写入到存储区域650中的存储块652、存储块654、存储块656和存储块658中,相应地,图3中的存储块322、存储块332、存储块334和存储块342可以被标记为空闲,即被更新为图6中存储区域620中的空闲的存储块622和存储区域630中的存储块634和存储块638。基于这样的方式,本公开的实施例可以避免引入多余写开销的前提下高效地将已经长时间未被更新的对象移动到新的存储块中,从而促进快速地释放所占用的存储区域。
在一些实施例中,方法200还可以包括框210至框214。具体地,在框210,存储系统在第三存储块所在的存储区域中将第三存储块标记为空闲。具体地,在图6的示例中,在将第三存储块322中的数据移动到存储块652中后,存储系统在存储区域320中第三存储块322标记为空闲,即更新为更新后的存储区域620中的存储块622。
在框212,存储系统确定存储区域是否均为空闲。响应于在框212确定存储区域均为空闲时,方法200进行到框214,即存储系统回收该存储区域。应当理解,当在框212确定第存储空间仍存在有用数据时,存储系统可以不对存储区域进行进一步的处理(图中未示出)。具体地,在图6的示例中,存储系统可以确定更新后的存储区域620中的全部存储块是否均为空闲,并且当确定存储区域620中的全部存储块均为空闲后,存储系统可以释放回收存储区域620。基于这样的方式,本公开的实施例还可以快速地释放由原来较长时间未被更新的数据占据的且利用率较低的存储空间,从而提高存储的效率。
在一些实施例中,如图6所示,当在存储块652、存储块654、存储块656和存储块658中写入更新的数据后,存储系统还可以递增查找树被更新的第二次数,并且将与至少一个候选对象相关联的次数标识更新为经递增的第二次数更新与这些存储块中存储的对象相对应的更新次数标记。具体地址,如图6所示,在当在存储块652、存储块654、存储块656和存储块658中写入更新的数据后,存储系统可以将查找树被更新的总次数从12次递增为13次,并且将与索引节点A’602、索引节点B’604、数据节点D’606和数据节点E’610的更新次数标识对应地设置为13次。因此,数据节点D’606中存储的元数据虽然未发生改变,但是其更新次数标识被更新以体现其对应的存储块发生了改变。
图7示出了可以用来实施本公开内容的实施例的示例设备700的示意性框图。例如,根据本公开实施例的备份系统和/或恢复系统可以由设备700来实施。如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU701、ROM702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200,可由处理单元701执行。例如,在一些实施例中,方法200可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序被加载到RAM 703并由CPU 701执行时,可以执行上文描述的方法200的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所述明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
Claims (18)
1.一种存储管理方法,包括:
接收针对被存储在第一存储块中的目标对象的更新请求,以在与所述第一存储块不同的第二存储块中写入经更新的所述目标对象;
利用查找树确定与所述目标对象相关联的至少一个候选对象,所述查找树指示多个对象构成的层级关系,其中在所述查找树中,与所述目标对象相对应的第一节点和与所述至少一个候选对象相对应的第二节点具有相同的索引节点;
确定所述至少一个候选对象在过去的预定时间内是否被更新;以及
响应于所述至少一个候选对象在所述过去的预定时间内未被更新,当在所述第二存储块中写入经更新的所述目标对象时,将所述至少一个候选对象从第三存储块移动到与所述第三存储块不同的第四存储块中。
2.根据权利要求1所述的方法,还包括:
在所述第三存储块所在的存储区域中将所述第三存储块标记为空闲;以及
响应于确定所述存储区域均为空闲,回收所述存储区域。
3.根据权利要求1所述的方法,其中确定所述至少一个候选对象在所述过去的预定时间内是否被更新包括:
针对所述至少一个候选对象中的一个候选对象,
获取与所述候选对象相关联的更新次数标识,所述更新次数标识指示在所述候选对象最近被更新时所述查找树已经被更新的第一次数;
确定所述第一次数与所述查找树当前已经被更新的第二次数之间的次数差异;以及
响应于所述差异大于预定的差异阈值,确定所述候选对象在所述过去的预定时间内未被更新。
4.根据权利要求3所述的方法,还包括:
递增所述查找树被更新的第二次数;以及
将与所述至少一个候选对象相关联的所述次数标识更新为经递增的所述第二次数。
5.根据权利要求1所述的方法,其中确定所述候选对象在所述过去的预定时间内是否被更新包括:
获取指示所述候选对象最近被更新时间的时间戳;
基于所述时间戳确定所述最近被更新时间与当前时间的时间差;以及
响应于确定所述时间差大于预定的阈值,确定所述候选对象在所述过去的预定时间内未被更新。
6.根据权利要求1所述的方法,其中所述目标对象为用于查找数据的键值对。
7.一种用于存储管理的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
接收针对被存储在第一存储块中的目标对象的更新请求,以在与所述第一存储块不同的第二存储块中写入经更新的所述目标对象;
利用查找树确定与所述目标对象相关联的至少一个候选对象,所述查找树指示多个对象构成的层级关系,其中在所述查找树中,与所述目标对象相对应的第一节点和与所述至少一个候选对象相对应的第二节点具有相同的索引节点;
确定所述至少一个候选对象在过去的预定时间内是否被更新;以及
响应于所述至少一个候选对象在所述过去的预定时间内未被更新,当在所述第二存储块中写入经更新的所述目标对象时,将所述至少一个候选对象从第三存储块移动到与所述第三存储块不同的第四存储块中。
8.根据权利要求7所述的设备,所述动作还包括:
在所述第三存储块所在的存储区域中将所述第三存储块标记为空闲;以及
响应于确定所述存储区域均为空闲,回收所述存储区域。
9.根据权利要求7所述的设备,其中确定所述至少一个候选对象在所述过去的预定时间内是否被更新包括:
针对所述至少一个候选对象中的一个候选对象,
获取与所述候选对象相关联的更新次数标识,所述更新次数标识指示在所述候选对象最近被更新时所述查找树已经被更新的第一次数;
确定所述第一次数与所述查找树当前已经被更新的第二次数之间的次数差异;以及
响应于所述差异大于预定的差异阈值,确定所述候选对象在所述过去的预定时间内未被更新。
10.根据权利要求9所述的设备,所述动作还包括:
递增所述查找树被更新的第二次数;以及
将与所述至少一个候选对象相关联的所述次数标识更新为经递增的所述第二次数。
11.根据权利要求7所述的设备,其中确定所述候选对象在所述过去的预定时间内是否被更新包括:
获取指示所述候选对象最近被更新时间的时间戳;
基于所述时间戳确定所述最近被更新时间与当前时间的时间差;以及
响应于确定所述时间差大于预定的阈值,确定所述候选对象在所述过去的预定时间内未被更新。
12.根据权利要求7所述的设备,其中所述目标对象为用于查找数据的键值对。
13.一种非瞬态计算机存储介质,存储机器可执行指令,所述机器可执行指令当在设备中运行时使所述设备执行动作,所述动作包括:
接收针对被存储在第一存储块中的目标对象的更新请求,以在与所述第一存储块不同的第二存储块中写入经更新的所述目标对象;
利用查找树确定与所述目标对象相关联的至少一个候选对象,所述查找树指示多个对象构成的层级关系,其中在所述查找树中,与所述目标对象相对应的第一节点和与所述至少一个候选对象相对应的第二节点具有相同的索引节点;
确定所述至少一个候选对象在过去的预定时间内是否被更新;以及
响应于所述至少一个候选对象在所述过去的预定时间内未被更新,当在所述第二存储块中写入经更新的所述目标对象时,将所述至少一个候选对象从第三存储块移动到与所述第三存储块不同的第四存储块中。
14.根据权利要求13所述的非瞬态计算机存储介质,所述动作还包括:
在所述第三存储块所在的存储区域中将所述第三存储块标记为空闲;以及
响应于确定所述存储区域均为空闲,回收所述存储区域。
15.根据权利要求13所述的非瞬态计算机存储介质,其中确定所述至少一个候选对象在所述过去的预定时间内是否被更新包括:
针对所述至少一个候选对象中的一个候选对象,
获取与所述候选对象相关联的更新次数标识,所述更新次数标识指示在所述候选对象最近被更新时所述查找树已经被更新的第一次数;
确定所述第一次数与所述查找树当前已经被更新的第二次数之间的次数差异;以及
响应于所述差异大于预定的差异阈值,确定所述候选对象在所述过去的预定时间内未被更新。
16.根据权利要求15所述的非瞬态计算机存储介质,所述动作还包括:
递增所述查找树被更新的第二次数;以及
将与所述至少一个候选对象相关联的所述次数标识更新为经递增的所述第二次数。
17.根据权利要求13所述的非瞬态计算机存储介质,其中确定所述候选对象在所述过去的预定时间内是否被更新包括:
获取指示所述候选对象最近被更新时间的时间戳;
基于所述时间戳确定所述最近被更新时间与当前时间的时间差;以及
响应于确定所述时间差大于预定的阈值,确定所述候选对象在所述过去的预定时间内未被更新。
18.根据权利要求13所述的非瞬态计算机存储介质,其中所述目标对象为用于查找数据的键值对。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910356190.3A CN111858577B (zh) | 2019-04-29 | 2019-04-29 | 存储管理的方法、设备和计算机程序产品 |
US16/557,949 US11232025B2 (en) | 2019-04-29 | 2019-08-30 | Method, device and computer program product for storage management |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910356190.3A CN111858577B (zh) | 2019-04-29 | 2019-04-29 | 存储管理的方法、设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858577A CN111858577A (zh) | 2020-10-30 |
CN111858577B true CN111858577B (zh) | 2024-05-17 |
Family
ID=72917083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910356190.3A Active CN111858577B (zh) | 2019-04-29 | 2019-04-29 | 存储管理的方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11232025B2 (zh) |
CN (1) | CN111858577B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064668A (zh) | 2020-08-07 | 2022-02-18 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、电子设备和计算机程序产品 |
CN113010805B (zh) * | 2021-02-23 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 指标数据的处理方法、装置、设备及存储介质 |
CN113449155B (zh) * | 2021-07-16 | 2024-02-27 | 百度在线网络技术(北京)有限公司 | 用于特征表示处理的方法、装置、设备和介质 |
CN114153395B (zh) * | 2021-11-30 | 2024-05-14 | 浙江大华技术股份有限公司 | 一种对象存储数据生命周期管理方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1173363A (ja) * | 1997-08-29 | 1999-03-16 | Matsushita Graphic Commun Syst Inc | メモリー制御装置 |
CN102163179A (zh) * | 2010-02-16 | 2011-08-24 | 株式会社东芝 | 半导体存储器装置 |
CN102915273A (zh) * | 2011-08-02 | 2013-02-06 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
WO2017149592A1 (ja) * | 2016-02-29 | 2017-09-08 | 株式会社日立製作所 | ストレージ装置 |
CN108183959A (zh) * | 2017-12-29 | 2018-06-19 | 深圳市轱辘车联数据技术有限公司 | 一种基于区块链的车辆共享方法、服务器及可读存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2777506C (en) * | 2009-10-15 | 2016-10-18 | Rogers Communications Inc. | System and method for grouping multiple streams of data |
US8386717B1 (en) * | 2010-09-08 | 2013-02-26 | Symantec Corporation | Method and apparatus to free up cache memory space with a pseudo least recently used scheme |
US9460097B2 (en) * | 2013-07-02 | 2016-10-04 | Hitachi Data Systems Engineering UK Limited | Method and apparatus for migration of a virtualized file system, data storage system for migration of a virtualized file system, and file server for use in a data storage system |
US10338817B2 (en) * | 2014-12-30 | 2019-07-02 | Sandisk Technologies Llc | Systems and methods for storage recovery |
US11100083B2 (en) * | 2015-01-29 | 2021-08-24 | Hewlett Packard Enterprise Development Lp | Read only bufferpool |
US10452613B2 (en) * | 2017-07-19 | 2019-10-22 | Sap Se | Persistent directory for variable-size entry container free-space handling |
-
2019
- 2019-04-29 CN CN201910356190.3A patent/CN111858577B/zh active Active
- 2019-08-30 US US16/557,949 patent/US11232025B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1173363A (ja) * | 1997-08-29 | 1999-03-16 | Matsushita Graphic Commun Syst Inc | メモリー制御装置 |
CN102163179A (zh) * | 2010-02-16 | 2011-08-24 | 株式会社东芝 | 半导体存储器装置 |
CN102915273A (zh) * | 2011-08-02 | 2013-02-06 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
WO2017149592A1 (ja) * | 2016-02-29 | 2017-09-08 | 株式会社日立製作所 | ストレージ装置 |
CN108183959A (zh) * | 2017-12-29 | 2018-06-19 | 深圳市轱辘车联数据技术有限公司 | 一种基于区块链的车辆共享方法、服务器及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11232025B2 (en) | 2022-01-25 |
US20200341893A1 (en) | 2020-10-29 |
CN111858577A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858577B (zh) | 存储管理的方法、设备和计算机程序产品 | |
CN107870728B (zh) | 用于移动数据的方法和设备 | |
CN108228646B (zh) | 用于访问数据的方法和电子设备 | |
CN113760971B (zh) | 用于检索图数据库的数据的方法、计算设备和存储介质 | |
CN111143113B (zh) | 复制元数据的方法、电子设备和计算机程序产品 | |
CN111506604B (zh) | 访问数据的方法、装置和计算机程序产品 | |
US12026071B2 (en) | Method, electronic device and computer program product for storage management | |
US10984050B2 (en) | Method, apparatus, and computer program product for managing storage system | |
CN114579561A (zh) | 数据处理方法和装置、存储介质 | |
CN110674084A (zh) | 用于数据保护的方法、设备和计算机可读存储介质 | |
CN111143231A (zh) | 用于数据处理的方法、设备和计算机程序产品 | |
CN111104249A (zh) | 用于数据备份的方法、设备和计算机程序产品 | |
US11093389B2 (en) | Method, apparatus, and computer program product for managing storage system | |
CN111488117B (zh) | 用于管理元数据的方法、电子设备和计算机可读介质 | |
CN110968649B (zh) | 用于管理数据集的方法、设备和计算机程序产品 | |
CN111831620B (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
US11226739B2 (en) | Method, device and computer program product for storage management | |
CN114816218A (zh) | 管理存储块的方法、电子设备和计算机程序产品 | |
CN113297003A (zh) | 管理备份数据的方法、电子设备和计算机程序产品 | |
CN114063884B (zh) | 扩展存储系统的分区方法、设备和计算机程序产品 | |
CN113268488B (zh) | 数据持久化的方法和装置 | |
CN113779082B (zh) | 一种更新数据的方法和装置 | |
CN112068986B (zh) | 用于管理备份任务的方法、设备和计算机程序产品 | |
CN111858145B (zh) | 数据备份与恢复的方法、设备和计算机程序产品 | |
CN113760860B (zh) | 一种数据读取方法和装置 |
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 |