CN114721586A - 用于存储管理的方法、电子设备和计算机程序产品 - Google Patents
用于存储管理的方法、电子设备和计算机程序产品 Download PDFInfo
- Publication number
- CN114721586A CN114721586A CN202110014398.4A CN202110014398A CN114721586A CN 114721586 A CN114721586 A CN 114721586A CN 202110014398 A CN202110014398 A CN 202110014398A CN 114721586 A CN114721586 A CN 114721586A
- Authority
- CN
- China
- Prior art keywords
- target data
- identification information
- information
- determining
- data
- 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.)
- Pending
Links
Images
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/061—Improving I/O performance
-
- 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
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0614—Improving the reliability of 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/1016—Performance 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
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
技术领域
本公开的实施例总体涉及存储管理,具体涉及用于存储管理的方法、电子设备和计算机程序产品。
背景技术
为了提高数据处理效率,诸如RAID(Redundant Arrays of Independent Disks,独立磁盘冗余阵列)的持久性存储设备中的数据将被加载到存储器中以在任务执行过程中使用。在任务执行过程中,存储器中的数据可能被临时更新,而持久性存储设备中的对应数据尚未更新。在这种情况下,被临时更新的数据可以被称为脏数据。脏数据将被刷新到持久性存储设备中以更新持久性存储设备中的对应数据。在脏数据被刷新之前,需要执行预处理。然而,传统的预处理过程是低效的。
发明内容
本公开的实施例提供了用于存储管理的方法、电子设备和计算机程序产品。
在本公开的第一方面,提供了一种用于存储管理的方法。该方法包括:获取存储器内的目标存储页中的目标数据;基于目标数据,确定与目标数据相关联的校验信息和标识信息,校验信息用于验证目标数据是否正确,并且标识信息用于标识目标数据;以及基于标识信息,确定与目标数据和校验信息相关联的存储信息,存储信息指示是否将目标数据和校验信息存储到持久性存储设备中。
在本公开的第二方面,提供了一种电子设备。该设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得设备执行动作,该动作包括:获取存储器内的目标存储页中的目标数据;基于目标数据,确定与目标数据相关联的校验信息和标识信息,校验信息用于验证目标数据是否正确,并且标识信息用于标识目标数据;以及基于标识信息,确定与目标数据和校验信息相关联的存储信息,存储信息指示是否将目标数据和校验信息存储到持久性存储设备中。
在本公开的第三方面,提供了一种计算机程序产品。计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器实现根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的一些实施例能够在其中实现的存储管理环境的示例的示意图;
图2示出了根据本公开的一些实施例的用于存储管理的方法的示例的流程图;
图3示出了根据本公开的一些实施例的用于确定存储信息的方法的示例的流程图;以及
图4示出了可以用来实施本公开内容的实施例的示例设备的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所述,在脏数据刷新之前,需要执行预处理。在某些情况下,存储器中的数据可以以存储页(page)为单位进行组织。每个存储页具有预定大小,诸如4千字节(4KB)。在这种情况下,脏数据可以被称为脏存储页数据。在脏存储页数据的预处理过程中,需要计算循环冗余校验值以用于验证数据一致性,然后计算非加密哈希值以查找持久性存储设备中与脏存储页数据重复的数据。
传统上,循环冗余校验值和非加密哈希值的计算是独立的。在循环冗余校验中,需要每次将8字节(8B)的脏存储页数据从存储器加载到寄存器,并且循环遍历脏存储页数据以进行循环冗余校验计算。而在非加密哈希计算中,需要再次经历相同的过程。即,在非加密哈希计算中,也需要每次将8B的脏存储页数据从存储器加载到寄存器,并且循环遍历脏存储页数据以进行非加密哈希计算。对于4KB的存储页,总共需要加载4096/8*2=1024次。
根据本公开的示例实施例,提出了一种用于存储管理的改进方案。在该方案中,可以获取存储器内的目标存储页中的目标数据。可以基于目标数据,确定与目标数据相关联的校验信息和标识信息。校验信息用于验证目标数据是否正确。标识信息用于标识目标数据。由此,可以基于标识信息,确定与目标数据和校验信息相关联的存储信息。存储信息指示是否将目标数据和校验信息存储到持久性存储设备中。
以此方式,本方案可以在脏存储页数据的预处理过程中,在一次数据加载循环中同时确定校验信息和标识信息,以避免针对校验信息和标识信息两次循环遍历脏存储页数据。因为使用单次循环代替两次循环进行存储页刷新,可以将要加载的数据量减半,从而减少CPU(Center Processing Unit,中央处理单元)负载,节省CPU周期,提高CPU效率,并且改进IO(Input/Output,输入/输出)性能。以下将参照附图来具体描述本公开的实施例。
图1示出了本公开的一些实施例能够在其中实现的存储管理环境100的示例的示意图。存储管理环境100包括处理器110、存储器120和持久性存储设备130。作为示例,处理器110可以是具有计算能力的任何设备。例如,处理器110可以是个人计算机、平板计算机、可穿戴设备、云服务器、大型机、分布式计算系统等的处理器。
存储器120可以是具有存储能力的任何设备。例如,存储器可以是诸如SDRAM(Synchronous Dynamic random access memory,同步动态随机存取存储器)和DDR SDRAM(Double Data Rate Synchronous Dynamic random access memory,双倍速率同步动态随机存储器)等的易失性存储器。类似地,持久性存储设备130可以是具有存储能力的任何设备。不同于存储器120,持久性存储设备130可以是诸如磁盘、固态硬盘和RAID等的非易失性存储器。
在存储管理环境100中,处理器110被配置为进行存储管理。如上所述,存储器120中的数据可以以存储页(page)为单位进行组织。每个存储页具有预定大小,诸如4千字节(4KB)。在任务执行过程中,存储器120中的某些存储页中的数据可能被临时更新,而持久性存储设备130中的对应数据尚未更新。在这种情况下,被临时更新的数据可以被称为脏存储页数据。这种脏存储页数据可以作为目标数据150,该目标数据150将被刷新到持久性存储设备130中以更新持久性存储设备130中的对应数据。
在刷新之前,处理器110可以执行预处理。具体地,在预处理过程中,处理器110可以在一次数据加载循环中同时确定目标数据150的校验信息160和标识信息170。校验信息160用于验证目标数据150是否正确。例如,在目标数据被存储到持久性存储设备130的情况下,校验信息160可以用于在将来从持久性存储设备130读取目标数据150时,验证目标数据150的一致性。标识信息170用于标识目标数据。例如,标识信息170可以用于查找持久性存储设备130中是否已经存储有目标数据150。由此,由于在一次数据加载循环中同时确定校验信息160和标识信息170,可以避免针对校验信息160和标识信息170两次循环遍历目标数据150。
在某些实施例中,处理器110包括寄存器140。在这种情况下,处理器110可以将目标数据150从存储器120加载到寄存器140中,并且基于目标数据150确定校验信息160和标识信息170。进一步地,处理器110可以基于标识信息160,确定存储信息180。该存储信息180指示是否将目标数据150和校验信息160存储到持久性存储设备130中,即是否将目标数据150和校验信息160刷新到持久性存储设备130。在下文中,将参考图2和图3对处理器110所进行的存储管理操作进行详细描述。
图2示出了根据本公开的一些实施例的用于存储管理的方法200的流程图。方法200可以由如图1所示的处理器110来实现。备选地,方法200也可以由除了处理器110之外的其他主体实现。应当理解的是,方法200还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的范围在此方面不受限制。
在210,处理器110获取存储器120内的目标存储页中的目标数据150。在某些实施例中,在具有脏数据的存储页超过阈值数目(例如,2048个存储页)的情况下,才启动刷新。鉴于此,处理器110可以确定存储器120中的至少一个候选存储页的数目是否超过阈值数目。例如,这些候选存储页可以是具有脏数据的存储页。如果该数目超过阈值数目,则处理器120可以从这些候选存储页中确定目标存储页。
此外,如上所述,在某些实施例中,处理器110包括寄存器140。在这种情况下,处理器110可以将目标数据150从存储器120加载到寄存器140中以获取目标数据150。在某些实施例中,由于寄存器140的存储空间大小通常小于目标数据150的大小,因此可以将目标数据150的多个部分分别从存储器120加载到寄存器140。例如,目标数据150的大小可以为4KB。在这种情况下,可以在每次循环中将目标数据150的一部分(例如,8B)从存储器120加载到寄存器140,直到循环遍历目标数据150。
在220,处理器110基于目标数据150,确定与目标数据150相关联的校验信息160和标识信息170。校验信息160用于验证目标数据150是否正确。在某些实施例中,处理器110可以对目标数据150进行校验运算,以确定校验信息160。在这种情况下,校验信息160可以是对目标数据150进行校验运算之后得到的校验值。例如,校验运算可以包括奇偶校验运算、CRC(Cyclic Redundancy Check,循环冗余校验)运算和BCC(Block Check Character,信息组校验码)异或校验运算等。在某些实施例中,处理器110还可以为校验信息160分配缓冲区,以存储校验信息160。
标识信息170用于标识目标数据150。在某些实施例中,处理器110可以对目标数据150进行哈希运算,以确定标识信息170。在这种情况下,标识信息170可以是对目标数据150进行哈希运算之后得到的哈希值。例如,哈希运算可以包括诸如MurmurHash、xxHash、SipHash等的非加密哈希运算。非加密哈希运算适用于基于哈希的查找。与加密哈希运算不同,非加密哈希运算没有专门被设计为难以逆转,从而使其不适合加密目的。
在某些实施例中,在将目标数据150的多个部分分别从存储器120加载到寄存器140中的情况下,处理器110可以分别对目标数据150的多个部分进行校验运算,以生成第一组中间值,以及基于第一组中间值确定校验信息160。在分配有缓冲区的情况下,第一组中间值还可以被存储在缓冲区中。类似地,处理器110可以分别对目标数据150的多个部分进行哈希运算,以生成第二组中间值,以及基于第二组中间值确定标识信息170。
例如,在将目标数据150的一个部分从存储器120加载到寄存器140中的情况下,处理器110可以对该部分进行校验运算,以生成与校验信息160相关联的中间值,并且还可以对该部分进行哈希运算,以生成与标识信息170相关联的另一中间值。此外,在某些实施例中,与校验信息160相关联的中间值还可以被存储在所分配的缓冲区中。
在230,处理器110基于标识信息170,确定与目标数据150和校验信息160相关联的存储信息180。存储信息180指示是否将目标数据150和校验信息160存储到持久性存储设备130中。在下文中,将参考图3对处理器110所进行的确定存储信息的操作进行详细描述。图3示出了根据本公开的一些实施例的用于确定存储信息的方法300的示例的流程图。
在某些实施例中,处理器110可以在刷新之前,进行重复数据删除。由此,在310,处理器110可以获取与已经被存储在持久性存储设备130中的一组参考存储页中的相应参考数据相关联的一组参考标识信息项。在320,处理器110可以将标识信息170与这组参考标识信息项分别进行比较。
如果标识信息170与这组参考标识信息项中的每一项都不匹配,则这意味着持久性存储设备130中尚未存储有目标数据150。在这种情况下,在330,处理器110可以将存储信息180确定为指示将目标数据150和校验信息160存储到持久性存储设备130中。
如果标识信息170与这组参考标识信息项中的一项匹配,则这意味着持久性存储设备130中已经存储有目标数据150。在这种情况下,处理器110可以将存储信息180确定为指示不将目标数据150和校验信息160存储到持久性存储设备130中。在某些实施例中,处理器110可以将目标存储页或与匹配的参考标识信息项相对应的参考存储页标记为重复存储页。此外,在某些实施例中,持久性存储设备130中存储的目标数据150可以具有引用计数值。在确定持久性存储设备130中已经存储有目标数据150的情况下,处理器110可以递增目标数据150的引用计数值,以记录目标数据150被引用的次数。由此,可以实现重复数据删除。
在某些实施例中,为了确保正确判断持久性存储设备130中是否已经存储有目标数据150,在将标识信息170与一组参考标识信息项中的一项匹配的情况下,在340,处理器110还可以将目标数据150和与匹配的参考标识信息项相对应的参考数据进行比较。如果目标数据150与参考数据不匹配,则这意味着持久性存储设备130中尚未存储有目标数据150。在这种情况下,在350,处理器110可以将存储信息180确定为指示将目标数据150和校验信息160存储到持久性存储设备130中。如果目标数据150与参考数据匹配,则这意味着持久性存储设备130中已经存储有目标数据150。在这种情况下,在360,处理器110可以将存储信息180确定为指示不将目标数据150和校验信息160存储到持久性存储设备130中。
在某些实施例中,在存储信息180指示将目标数据150和校验信息160存储到持久性存储设备130中的情况下,处理器110可以将校验信息160附加到目标数据150,以得到待存储数据。进一步地,处理器110可以将待存储数据存储到持久性存储设备130中。由此,在将来从持久性存储设备130中读取目标数据150时,可以利用校验信息160对读取的目标数据150进行一致性检查。
以此方式,本方案可以在脏存储页数据的预处理过程中,在一次数据加载循环中同时确定校验信息和标识信息,以避免针对校验信息和标识信息两次循环遍历脏存储页数据。因为使用单次循环代替两次循环进行存储页刷新,可以将要加载的数据量减半,从而减少CPU负载,节省CPU周期,提高CPU效率,并且改进IO性能。以下将参照附图来具体描述本公开的实施例。
图4示出了可以用来实施本公开内容的实施例的示例设备400的示意性框图。例如,如图1所示的处理器110可以由设备400来实施。如图所示,设备400包括中央处理单元(CPU)410,其可以根据存储在只读存储器(ROM)420中的计算机程序指令或者从存储单元480加载到随机访问存储器(RAM)430中的计算机程序指令,来执行各种适当的动作和处理。在RAM 430中,还可存储设备400操作所需的各种程序和数据。CPU 410、ROM 420以及RAM430通过总线440彼此相连。输入/输出(I/O)接口450也连接至总线440。
设备400中的多个部件连接至I/O接口450,包括:输入单元460,例如键盘、鼠标等;输出单元470,例如各种类型的显示器、扬声器等;存储单元480,例如磁盘、光盘等;以及通信单元490,例如网卡、调制解调器、无线通信收发机等。通信单元490允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如过程200和300,可由处理单元410执行。例如,在一些实施例中,过程200和300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元480。在一些实施例中,计算机程序的部分或者全部可以经由ROM 420和/或通信单元490而被载入和/或安装到设备400上。当计算机程序被加载到RAM 430并由CPU 410执行时,可以执行上文描述的过程200和300的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (15)
1.一种用于存储管理的方法,包括:
获取存储器内的目标存储页中的目标数据;
基于所述目标数据,确定与所述目标数据相关联的校验信息和标识信息,所述校验信息用于验证所述目标数据是否正确,并且所述标识信息用于标识所述目标数据;以及
基于所述标识信息,确定与所述目标数据和所述校验信息相关联的存储信息,所述存储信息指示是否将所述目标数据和所述校验信息存储到持久性存储设备中。
2.根据权利要求1所述的方法,其中确定所述校验信息包括:
分别对所述目标数据的多个部分进行校验运算,以生成第一组中间值;以及
基于所述第一组中间值确定所述校验信息。
3.根据权利要求1所述的方法,其中确定所述标识信息包括:
分别对所述目标数据的多个部分进行哈希运算,以生成第二组中间值;以及
基于所述第二组中间值确定所述标识信息。
4.根据权利要求1所述的方法,其中确定所述存储信息包括:
获取与已经被存储在所述持久性存储设备中的一组参考存储页中的相应参考数据相关联的一组参考标识信息项;
将所述标识信息与所述一组参考标识信息项分别进行比较;以及
如果所述标识信息与所述一组参考标识信息项中的一项匹配,将所述存储信息确定为指示不将所述目标数据和所述校验信息存储到所述持久性存储设备中。
5.根据权利要求1所述的方法,其中确定所述存储信息包括:
获取与已经被存储在所述持久性存储设备中的一组参考存储页中的相应参考数据相关联的一组参考标识信息项;
将所述标识信息与所述一组参考标识信息项分别进行比较;以及
如果所述标识信息与所述一组参考标识信息项中的一项匹配,将所述目标数据和与匹配的参考标识信息项相对应的参考数据进行比较;以及
如果所述目标数据与所述参考数据匹配,将所述存储信息确定为指示不将所述目标数据和所述校验信息存储到所述持久性存储设备中。
6.根据权利要求1所述的方法,其中所述存储信息指示将所述目标数据和所述校验信息存储到所述持久性存储设备中,并且所述方法还包括:
将所述校验信息附加到所述目标数据,以得到待存储数据;以及
将所述待存储数据存储到所述持久性存储设备中。
7.根据权利要求1所述的方法,还包括:
确定所述存储器中的至少一个候选存储页的数目是否超过阈值数目;以及
如果所述数目超过所述阈值数目,从所述至少一个候选存储页中确定所述目标存储页。
8.一种电子设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
获取存储器内的目标存储页中的目标数据;
基于所述目标数据,确定与所述目标数据相关联的校验信息和标识信息,所述校验信息用于验证所述目标数据是否正确,并且所述标识信息用于标识所述目标数据;以及
基于所述标识信息,确定与所述目标数据和所述校验信息相关联的存储信息,所述存储信息指示是否将所述目标数据和所述校验信息存储到持久性存储设备中。
9.根据权利要求8所述的设备,其中确定所述校验信息包括:
分别对所述目标数据的多个部分进行校验运算,以生成第一组中间值;以及
基于所述第一组中间值确定所述校验信息。
10.根据权利要求8所述的设备,其中确定所述标识信息包括:
分别对所述目标数据的多个部分进行哈希运算,以生成第二组中间值;以及
基于所述第二组中间值确定所述标识信息。
11.根据权利要求8所述的设备,其中确定所述存储信息包括:
获取与已经被存储在所述持久性存储设备中的一组参考存储页中的相应参考数据相关联的一组参考标识信息项;
将所述标识信息与所述一组参考标识信息项分别进行比较;以及
如果所述标识信息与所述一组参考标识信息项中的一项匹配,将所述存储信息确定为指示不将所述目标数据和所述校验信息存储到所述持久性存储设备中。
12.根据权利要求8所述的设备,其中确定所述存储信息包括:
获取与已经被存储在所述持久性存储设备中的一组参考存储页中的相应参考数据相关联的一组参考标识信息项;
将所述标识信息与所述一组参考标识信息项分别进行比较;以及
如果所述标识信息与所述一组参考标识信息项中的一项匹配,将所述目标数据和与匹配的参考标识信息项相对应的参考数据进行比较;以及
如果所述目标数据与所述参考数据匹配,将所述存储信息确定为指示不将所述目标数据和所述校验信息存储到所述持久性存储设备中。
13.根据权利要求8所述的设备,其中所述存储信息指示将所述目标数据和所述校验信息存储到所述持久性存储设备中,并且所述动作还包括:
将所述校验信息附加到所述目标数据,以得到待存储数据;以及
将所述待存储数据存储到所述持久性存储设备中。
14.根据权利要求8所述的设备,所述动作还包括:
确定所述存储器中的至少一个候选存储页的数目是否超过阈值数目;以及
如果所述数目超过所述阈值数目,从所述至少一个候选存储页中确定所述目标存储页。
15.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至7任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110014398.4A CN114721586A (zh) | 2021-01-06 | 2021-01-06 | 用于存储管理的方法、电子设备和计算机程序产品 |
US17/316,960 US11592983B2 (en) | 2021-01-06 | 2021-05-11 | Method, electronic device and computer program product for storage management |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110014398.4A CN114721586A (zh) | 2021-01-06 | 2021-01-06 | 用于存储管理的方法、电子设备和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114721586A true CN114721586A (zh) | 2022-07-08 |
Family
ID=82219591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110014398.4A Pending CN114721586A (zh) | 2021-01-06 | 2021-01-06 | 用于存储管理的方法、电子设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11592983B2 (zh) |
CN (1) | CN114721586A (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7231497B2 (en) | 2004-06-15 | 2007-06-12 | Intel Corporation | Merging write-back and write-through cache policies |
US8732409B2 (en) | 2008-11-17 | 2014-05-20 | Entropic Communications, Inc. | Cache management policy and corresponding device |
US8121993B2 (en) * | 2009-10-28 | 2012-02-21 | Oracle America, Inc. | Data sharing and recovery within a network of untrusted storage devices using data object fingerprinting |
US8402226B1 (en) | 2010-06-18 | 2013-03-19 | Emc Corporation | Rate proportional cache write-back in a storage server |
US9425953B2 (en) * | 2013-10-09 | 2016-08-23 | Intel Corporation | Generating multiple secure hashes from a single data buffer |
US9575681B1 (en) * | 2016-04-29 | 2017-02-21 | International Business Machines Corporation | Data deduplication with reduced hash computations |
CN111124267B (zh) | 2018-10-31 | 2023-10-31 | 伊姆西Ip控股有限责任公司 | 数据写入的方法、设备和计算机程序产品 |
-
2021
- 2021-01-06 CN CN202110014398.4A patent/CN114721586A/zh active Pending
- 2021-05-11 US US17/316,960 patent/US11592983B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220214806A1 (en) | 2022-07-07 |
US11592983B2 (en) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8332367B2 (en) | Parallel data redundancy removal | |
US9875153B2 (en) | Validation bits and offsets to represent logical pages split between data containers | |
CN108027713B (zh) | 用于固态驱动器控制器的重复数据删除 | |
US9985656B2 (en) | Generating ECC values for byte-write capable registers | |
US20170250708A1 (en) | High-Throughput Compression of Data | |
US11449400B2 (en) | Method, device and program product for managing data of storage device | |
US9766975B2 (en) | Partial ECC handling for a byte-write capable register | |
US20170063401A1 (en) | Partial ecc mechanism for a byte-write capable register | |
US10048880B1 (en) | Efficient scrubbing of mirrored memory | |
US9639418B2 (en) | Parity protection of a register | |
US10776271B2 (en) | Method, device and computer program product for validating cache file | |
CN106528322B (zh) | 检测数据的无记载损坏的方法和设备 | |
US10747452B1 (en) | Hybrid log-structured array and allocated storage device | |
US20200133583A1 (en) | Method, apparatus and computer program product for storing data | |
CN114721586A (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
US11314430B2 (en) | Reading data in sub-blocks using data state information | |
US10521299B2 (en) | Method and apparatus for data protection | |
US9430403B1 (en) | Optimizing system memory usage | |
US11500590B2 (en) | Method, device and computer program product for data writing | |
US11809709B2 (en) | Metadata size reduction for data objects in cloud storage systems | |
US20220206699A1 (en) | Method, electronic device and computer program product for managing data blocks | |
US11435912B2 (en) | Method, electronic device, and computer program product for data storage | |
CN111831620B (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
US11023158B2 (en) | Constraining placement of replica segment pairs among device pairs based on coding segment count | |
CN115168850A (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 |