CN107533507A - 根据日志结构管理存储装置中的数据 - Google Patents
根据日志结构管理存储装置中的数据 Download PDFInfo
- Publication number
- CN107533507A CN107533507A CN201680011434.9A CN201680011434A CN107533507A CN 107533507 A CN107533507 A CN 107533507A CN 201680011434 A CN201680011434 A CN 201680011434A CN 107533507 A CN107533507 A CN 107533507A
- Authority
- CN
- China
- Prior art keywords
- daily record
- address
- record
- processed
- index
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种用于管理存储装置中的数据的计算机程序产品、系统、以及方法。索引中的每个索引项标识记录中的一个记录在日志中的日志地址。所述日志中的每个记录包括键和值,并且所述日志地址映射到所述存储装置中的物理地址。处理所述日志中的多个被处理日志地址,方式为:判定所述索引是否指示该被处理日志地址包括所述日志中的所述记录的当前版本;响应于判定所述索引指示该被处理日志地址包括所述记录的当前版本,将该被处理日志地址处的所述记录添加到所述日志中的选定日志地址;以及删除所述存储装置中该被处理日志地址映射到的所述物理地址处的记录。
Description
技术领域
本发明涉及用于根据日志结构管理存储装置中的数据的计算机程序产品、系统、以及方法。
背景技术
在日志结构化存储系统中,对数据的更新未被就地写入,而是被写入选定的逻辑和物理地址。数据可以被存储在键-值存储库中,其中数据被存储在非结构化记录中,所述非结构化记录由键加上与该记录关联的值组成。可以使用具有日志中的记录的键和日志地址的索引来查找记录在日志中的日志地址。每个索引项具有在命名空间或数据集中唯一的索引键以及日志中的数据的地址。
在日志结构化存储装置中,更新被写入日志的一端,并且保留日志中的记录的先前版本。当日志中的日志地址处的项不再具有标识日志地址的对应索引项时,则日志中的项被视为未使用并且能够被垃圾回收。但是,因为垃圾回收的粒度(“区域/槽”)比数据的粒度(键-值记录)大得多(更粗糙),为了对整个槽进行垃圾回收,槽中的某些潜在有效项可能必须被重新定位。为了查找索引仍然指向旧位置的重新定位项,存储层可以维护将旧项映射到新项的间接表。当索引不可用于提供记录的当前地址时,间接表用于将指向旧地址的记录的请求重定向到新地址。间接导致更长的查找时间和将旧地址映射到新地址的性能损失,新地址然后必须被映射到物理地址以便访问记录。
用于执行垃圾回收的另一种技术是压缩过程,其读取所有数据并且将它们重写到回收空间。这需要移动活动(live)数据和旧数据以便释放空间以使其可用于随后接收的数据。压缩是输入/输出密集型的,因为需要读取活动数据和被删除数据并且将它们重写到新空间。
在存储层在日志中放置指示过时记录的墓碑记录(tombstone record)的实施例中,垃圾回收必须扫描日志以处理墓碑记录以便确定要删除的记录。
本领域中需要用于执行存储系统并且特别地日志结构化存储系统中的垃圾回收的改进的技术。
发明内容
根据第一方面,提供一种用于管理存储装置中的数据的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有包含在其中的计算机可读程序代码,所述计算机可读程序代码执行以便执行操作,所述操作包括:提供对日志中的记录的索引,其中所述索引中的每个索引项标识所述记录中的一个记录在所述日志中的日志地址,其中所述日志中的每个记录包括键和值,并且其中所述日志地址映射到所述存储装置中的物理地址;处理所述日志中的多个被处理日志地址,方式为:对于所述日志地址中的每个日志地址,执行以下操作:判定所述索引是否指示该被处理日志地址包括所述日志中的所述记录的当前版本;响应于判定所述索引指示该被处理日志地址包括所述记录的当前版本,将该被处理日志地址处的所述记录添加到所述日志中的选定日志地址;以及删除所述存储装置中该被处理日志地址映射到的所述物理地址处的记录。
根据第二方面,提供一种用于管理存储装置中的数据的系统,所述系统包括:处理器;以及计算机可读存储介质,所述计算机可读存储介质具有包含在其中的计算机可读程序代码,当被执行时,所述计算机可读程序代码执行:执行以便执行操作,所述操作提供对日志中的记录的索引,其中所述索引中的每个索引项标识所述记录中的一个记录在所述日志中的日志地址,其中所述日志中的每个记录包括键和值,并且其中所述日志地址映射到所述存储装置中的物理地址;处理所述日志中的多个被处理日志地址,方式为:对于所述日志地址中的每个日志地址,执行以下操作:判定所述索引是否指示该被处理日志地址包括所述日志中的所述记录的当前版本;响应于判定所述索引指示该被处理日志地址包括所述记录的当前版本,将该被处理日志地址处的所述记录添加到所述日志中的选定日志地址;以及删除所述存储装置中该被处理日志地址映射到的所述物理地址处的记录。
根据第三方面,提供一种用于管理存储装置中的数据的方法,所述方法包括:提供对日志中的记录的索引,其中所述索引中的每个索引项标识所述记录中的一个记录在所述日志中的日志地址,其中所述日志中的每个记录包括键和值,并且其中所述日志地址映射到所述存储装置中的物理地址;处理所述日志中的多个被处理日志地址,方式为:对于所述日志地址中的每个日志地址,执行以下操作:判定所述索引是否指示该被处理日志地址包括所述日志中的所述记录的当前版本;响应于判定所述索引指示该被处理日志地址包括所述记录的当前版本,将该被处理日志地址处的所述记录添加到所述日志中的选定日志地址;以及删除所述存储装置中该被处理日志地址映射到的所述物理地址处的记录。
根据一个优选实施例,提供一种用于根据日志结构管理存储装置中的数据的计算机程序产品、系统、以及方法。根据该优选实施例,对日志中的记录的索引具有项,其中所述索引中的每个索引项标识所述记录中的一个记录在所述日志中的日志地址。所述日志中的每个记录优选地包括键和值,并且所述日志地址优选地映射到所述存储装置中的物理地址。处理所述日志中的多个被处理日志地址,方式为:对于所述日志地址中的每个日志地址,执行以下操作:判定所述索引是否指示该被处理日志地址包括所述日志中的所述记录的当前版本;响应于判定所述索引指示该被处理日志地址包括所述记录的当前版本,将该被处理日志地址处的所述记录添加到所述日志中的选定日志地址;以及删除所述存储装置中该被处理日志地址映射到的所述物理地址处的记录。
附图说明
现在将仅通过实例的方式并参考附图描述本发明的优选实施例:
图1示出存储环境的一个实施例;
图2示出索引项的一个实施例;
图3示出日志存储装置中的记录的一个实施例;
图4示出逻辑到物理映射的一个实施例;
图5示出move命令的一个实施例;
图6示出PUT命令的一个实施例;
图7和8示出用于执行日志结构化存储装置的垃圾回收的操作的实施例;
图9示出与所述实施例一起使用的计算机架构的一个实施例。
具体实施方式
所描述的实施例提供用于执行日志结构化存储装置的垃圾回收的技术,其中日志在日志地址中具有记录,根据日志结构,这些日志地址映射到一个或多个存储设备中的物理地址。日志的索引具有包含键和日志地址的索引项。日志中的每个记录包括在记录的索引项中标识的键-值。日志地址可以描述映射到存储装置中的物理地址的日志偏移。通过判定索引是否指示被处理记录包括日志中的记录的当前版本,处理日志中的多个记录。如果记录是当前版本,则记录被写入日志中的选定日志地址。被处理记录在日志中被删除,以便回收存储装置中映射到被删除处理记录的日志地址的存储空间。此外,作为被移动到选定日志地址的数据的当前版本的被处理记录的索引项被更新,以便指示日志中的新选定日志地址。
某些实施例可以避免使用间接表的需要,因为作为垃圾回收过程的一部分,使用记录的新地址更新索引,因此不需要在日志中的记录的旧地址与新地址之间转换。此外,使用所描述的实施例,仅日志中具有活动(即,有效)数据的记录才被写入日志中的新位置,从而避免读取和移动所有数据记录的需要。实际上,在所描述的实施例中,索引用于确定需要被移动到日志结尾的活动记录。在将具有活动数据的所有记录移动到日志结尾之后,已被处理的日志项中的所有记录可以被删除,因此避免压缩垃圾回收操作需要的密集输入/输出操作。
图1示出存储环境,其具有管理数据在一个或多个存储设备102上的存储的存储管理器100。主机系统(未示出)可以将输入/输出(I/O)请求传送到存储管理器100以便访问存储设备102中的数据。存储管理器100包括处理器104(包括一个或多个处理器设备)和存储器106,操作系统108被加载到存储器106中以便由处理器104执行。操作系统108包括用于管理日志112的存储服务110,日志112具有标识被存储在存储设备102中的各位置处的数据的记录。存储服务110维护逻辑到物理映射400,其将日志112中的记录的日志地址映射到存储设备102中的物理地址。索引服务116维护索引200,索引200允许在日志112中进行记录的键-日志地址查找。索引服务116指示具有记录的当前版本的日志地址,这些当前版本具有日志地址的指示键。日志112可以包括顺序日志,其中将新记录添加到日志结尾,即,最近使用端,例如日志结构化阵列数据结构。存储服务110使用索引200在日志112中查找记录,以便判定日志112中的日志地址处的记录是否具有记录的当前或活动版本。存储管理器100可以在管理来自多个主机系统的I/O请求的服务器中实现,或者可以在存储控制器固件或系统中的其它组件中实现。
在接收对与具有提供的键和值的记录关联的数据的请求时,存储服务110能够调用索引服务116以便在索引200中查找具有该指定键的记录的日志地址。通过从索引返回的这些日志地址,存储服务110能够从返回的日志地址确定具有被请求记录的键和值的日志地址记录。从日志112中的日志地址,存储服务110能够使用逻辑到物理映射400确定一个存储设备102中的物理地址,在该物理地址处存储日志地址处的记录的数据。
存储管理器100经由连接120与存储设备102通信。连接120可以包括一个或多个网络,例如局域网(LAN)、存储区域网络(SAN)、广域网(WAN)、对等网络、无线网络、因特网、内联网等。备选地,连接120可以包括总线接口,例如外围组件互连(PCI)总线或串行接口。
存储设备102可以包括不同类型或类别的存储设备,例如由固态电子设备组成的固态存储设备(SSD)、EEPROM(电可擦式可编程只读存储器)、闪存、闪存盘、随机存取存储器(RAM)驱动器、存储级存储器(SCM)、相变存储器(PCM)、电阻随机存取存储器(RRAM)、自旋转移力矩存储器(STM-RAM)、导电桥接RAM(CBRAM)、硬磁盘驱动器、光盘、磁带等。存储设备102可以还被配置成设备阵列,例如简单磁盘捆绑(JBOD)、直接存取存储设备(DASD)、独立磁盘冗余阵列(RAID)阵列、虚拟化设备等。此外,存储设备102可以包括来自不同供应商或来自同一供应商的异构存储设备。
图1将存储服务110和索引服务116示为同一操作系统108中的组件。备选地,存储服务110和/或索引服务116可以包括在用户空间中而不是在操作系统108内核空间中执行的应用程序。此外,存储服务110和索引服务116可以在不同计算机或不同计算机节点中实现并且通过网络通信,或者在存储控制器之外的系统中实现。备选地,存储服务110和索引服务116可以使用诸如专用集成电路(ASIC)之类的硬件逻辑实现,或者实现为执行计算机可读存储介质中的代码的可编程处理器。存储服务110和索引服务116还可以在虚拟机中实现。
图2示出索引200中的索引项200i的实例的一个实施例,并且包括键202和日志地址204对,其中日志地址204标识由索引项200i标识的记录在日志112中的位置。尽管可以在日志112中具有记录(即,唯一键-值对)的多个版本,但索引200将针对一个键和日志地址仅包括一个索引项200i,以便提供具有记录的当前版本的日志地址。日志112中其日志地址未被包括在索引200中的键-值对的其它记录包括记录的非活动或先前版本,这些版本映射到存储设备102中没有由该记录标识的数据的最新版本的物理地址。
图3示出包括在日志112中的记录300i的实例的一个实施例,并且包括键302和值304对。记录300i可以进一步包括指向日志112中具有记录的先前版本的日志地址的指针。日志112可以按照连续顺序存储记录,因此将新记录添加到日志结尾,例如图1中所示的项112e。记录300i可以进一步指示键大小和值大小。
图4示出在逻辑到物理映射400中并且包括日志地址402和一个存储设备102中的对应设备物理地址404的项400i的一个实施例。设备物理地址404可以包括网络地址(例如,网际协议地址、MAC地址)、唯一设备ID、以及存储设备102中的物理位置。以这种方式,映射400根据具体情况将日志112中的日志112地址或项映射到多个存储设备102或单个存储设备102中的物理地址。例如,如果存在两个存储设备,则日志112可以包括如下抽象:其用于将数据存储在第一存储设备中的连续地址中,然后将数据存储在第二存储设备中的地址中。在备选实施例中,逻辑到物理映射400可以提供连续日志地址的映射以在存储设备之间交替,以便根据在逻辑到物理映射400中实现的预定义序列在不同存储设备中交错存储数据。
图5示出move命令500的一个实施例,存储服务110可以发出该命令以便导致索引服务116将记录移动到新日志地址处的日志结尾112e,以作为垃圾回收或其它操作的一部分。move命令500包括标识move命令的move命令代码502、键504、键值506、以及具有键504和值506对并且要移动到日志结尾112e的记录的日志地址508。
图6示出PUT命令600的一个实施例,索引服务108使用该命令将新记录添加到日志结尾112e或者日志112的最近使用端的任何位置。PUT命令600包括PUT命令代码602、键604、键值606、以及由键602和值604更新的记录的日志地址608,其中将所添加记录添加到日志的最近使用端112e。存储服务110可以返回日志112e中的如下位置的日志地址:向该位置添加具有命令600的键602和值604的记录。
用于包括图5和6中的信息的命令可以包括MOVE和PUT命令之外的命令类型。
图7示出由存储管理器100组件(例如存储服务110和索引服务116,其用于执行垃圾回收以便回收日志112和存储装置102中的空间)或其它组件执行的操作的一个实施例。在开始(在方框700)垃圾回收操作时,针对日志112中的日志地址子集的多个被处理日志地址中的每一者,在方框702至716执行操作循环,其中每个子集可以包括日志112中固定范围的顺序日志地址记录。对于子集的被处理日志地址i,判定(在方框704)索引200是否指示该被处理日志地址i包括记录的当前版本。在某些实施例中,判定日志地址是否具有记录的当前版本可以包括判定是否在具有该被处理日志地址i处的记录的键的索引200i项中指示日志112中的记录的日志地址。在此类实施例中,索引200指示包括以下项:这些项指示具有包含所指示键的记录的当前版本的日志地址。以这种方式,当在具有该被处理日志地址i的记录300i中的键202的索引项200i的日志地址204中指示日志112中的该日志地址i时,该被处理日志地址i具有记录的当前版本。
如果(在方框704)被处理日志地址i具有该记录(键-值对)的当前版本,则该记录i被写入(在方框706)到日志112中的选定日志地址,例如日志的最近使用(MRU)端112e处。从存储设备102之一中的物理地址的逻辑到物理映射400确定(在方框708)映射到该选定日志地址的存储设备。存储服务110然后可以将存储设备102中的记录i的当前版本的数据写入(在方框710)到存储设备102中的所确定的物理地址。索引服务116然后可以更新(在方框712)具有键202和被处理日志地址i的索引项200i,以便指示日志112中被处理日志地址i处的记录被复制或移动到的选定日志地址206。然后可以从日志112中删除(在方框714)根据被处理日志地址i的逻辑到物理映射项400i,被处理日志地址i映射到的存储设备102中的物理地址处的记录,以便回收存储设备102中被处理日志地址i映射到的空间。此外,如果(在方框704)记录i不是记录的当前版本(即,其日志地址未在记录i的索引项中被指示),则控制继续到方框714以便从记录子集中从其处理记录i的日志地址中删除记录i。以这种方式,删除存储设备102中映射到具有非活动数据的日志地址的数据。从方框714,控制继续到方框716以便处理子集中尚未被处理的任何其它日志地址。
使用图7的所述操作,处理日志112中的日志地址子集以便将任何当前或活动记录复制到日志的最近使用端112e,并且删除被处理日志地址处的记录的较旧版本的数据。在日志地址子集的处理结束时,任何活动记录已被移动到日志结尾112e,存储设备102中的数据的较旧版本被删除,并且存储设备102中的数据被复制到对应于另一个记录的选定新日志地址的物理地址。然后可以通过删除存储设备102中映射到子集中的被处理日志地址的物理地址处的数据,回收该子集中的记录。这允许删除记录和数据的较旧版本以释放存储设备102中的空间以便进行新写入。此外,可以使被处理日志地址无效以便可用于其它活动数据。
图8示出由存储服务110和索引服务116为了针对日志112中的日志地址子集执行垃圾回收操作而执行的操作的一个实施例。控制开始于存储服务110发起(在方框800)垃圾回收操作,方式为:针对日志112中的日志地址子集中的多个日志地址的每个被处理日志地址i,在方框802至826执行操作循环。在方框804,存储服务110发送包括该被处理日志地址i的日志地址i和键的live命令,以使索引服务116判定被处理日志地址i是否具有记录的当前版本。响应于live命令,索引服务116判定(在方框808)索引200是否具有在live命令中指示的用于键和被处理日志地址i的项200i,其中项200i的存在指示被处理日志地址i具有记录的当前版本。
如果(在方框808)索引200没有用于被处理日志地址i和键的项,则索引服务116向live命令返回(在方框812)响应,该响应指示被处理日志地址i没有记录的当前版本。否则,如果(在方框810)索引200包括具有live命令中的被处理日志地址记录i和键的项200i,则索引服务116向live命令返回(在方框812)响应,该响应指示被处理日志地址i是当前版本。
在从方框810或812接收响应时,如果(在方框814)所述响应指示被处理日志地址i具有记录300i的当前版本,则存储服务110向索引服务116发送(在方框816)MOVE命令500,MOVE命令500在字段504、506和508中指示键302、值304和被处理日志地址i。在接收(在方框818)move命令500时,索引服务116向存储服务110发送(在方框820)PUT命令600,PUT命令600分别具有move命令500中的键504和值506以及PUT命令600的字段604、606和608中的被处理日志地址i。响应于PUT命令600,存储服务110将具有键604和日志地址606处的值606的记录写入(在方框822)选定日志地址,例如日志的结尾或最近使用端112e处。响应于PUT命令600,将记录被写入到的选定日志地址112e返回(在方框824)到索引服务116。用于选定日志地址112e的指针可以递增到日志112中的下一个项,以便用于要添加到日志的下一个记录。
在返回记录的选定新日志地址之后,存储服务110可以继续(在方框826)回到方框802,以便处理正在被处理的日志112中的记录子集(例如日志112中的一系列连续记录)中的下一个记录。
响应于接收对具有新日志地址的PUT命令600的响应,索引服务116更新(在方框828)日志地址i的索引项200i以便指示该选定日志地址,该选定日志地址现在具有日志112e中的记录的当前版本。
使用所描述的实施例,索引服务116通过在PUT命令600中包含键值来使用键值,但不将MOVE命令500中的键值506存储在索引200中。在一个备选实施例中,MOVE命令500可能不包括键值506,但可能仅提供键504和日志地址508,并且然后索引服务116能够从存储服务110中取回键值以便包括在PUT命令600中。
在一个实施例中,索引服务116可以向存储服务110发送(在方框830)具有其记录被移动到选定日志地址的旧日志地址i的delete命令,以便导致存储服务110删除存储设备102中旧日志地址的数据。此外,如果(在方框814)对live命令的返回响应指示记录i不是当前版本,则存储服务110可以删除(在方框832)存储设备102中的如下物理地址处的数据:该物理地址映射到在旧日志地址i的逻辑到物理映射400i中指示的被处理日志地址i。以这种方式,索引服务116和存储服务110一起工作以便更新索引200并且从日志112和存储设备102回收记录和存储空间。
在一个备选实施例中,步骤830和834可能不发生,并且实际上,当处理日志中没有记录的当前版本的日志地址时,存储服务110将在方框832删除记录。
在另一实施例中,索引服务116还可以包括作为PUT操作的一部分,其记录被移动到选定日志地址的旧日志地址i,从而允许存储管理器维护指向记录的前一个日志地址的后链。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是—但不限于—电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读存储介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
存储管理器100和其中的组件(例如索引服务116和存储服务110)可以在一个或多个计算机系统(例如图9中所示的计算机系统902)中实现。计算机系统/服务器902可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的资源或者实现特定的抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器902可以在通过通信网络链接的远程处理设备执行资源的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地和远程计算机系统存储介质上。
如图9中所示,计算机系统/服务器902以通用计算设备的形式表现。计算机系统/服务器902的组件可以包括但不限于:一个或者多个处理器或者处理单元904、系统存储器906、将包括系统存储器906的不同系统组件连接到处理器904的总线908。总线908表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系架构包括但不限于工业标准体系架构(ISA)总线,微通道体系架构(MCA)总线,增强型ISA(EISA)总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器902典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器902访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器906可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)910和/或高速缓冲存储器912。计算机系统/服务器902可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统913可以用于读写不可移动的、非易失性磁介质(图9中未显示,通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM、DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个组件可以通过一个或者多个数据介质接口与总线908相连。如下面进一步示出和描述的,存储器906可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明实施例的功能。
具有一组(至少一个)程序模块916的程序/实用工具914,可以存储在存储器906中,这样的程序模块916包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。计算机902的组件可以实现为程序模块916,这些程序模块通常执行在此描述的本发明实施例的功能和/或方法。
计算机系统/服务器902也可以与一个或多个外部设备918(例如键盘、指向设备、显示器920等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器902交互的设备通信,和/或与使得该计算机系统/服务器902能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口922进行。并且,计算机系统/服务器902可以通过网络适配器924与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器924通过总线908与计算机系统/服务器902的其它组件通信。应当明白,尽管图中未示出,其它硬件和/或软件组件可以与计算机系统/服务器902一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。出于示例和说明目的提供了本发明的各个实施例的上述说明。其并非旨在是穷举的或将本发明限于所公开的精确形式。根据上述教导,许多修改和变化都是可能的。其旨在本发明的范围并非由此详细说明来限制,而是由此后所附的权利要求来限制。以上说明、实例和数据提供了对本发明的组成部分的制造和使用的完整说明。由于可以在不偏离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明存在于此后所附的权利要求之内。
计算机系统/服务器902也可以与一个或多个外部设备918(例如键盘、指向设备、显示器920等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器902交互的设备通信,和/或与使得该计算机系统/服务器902能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口922进行。并且,计算机系统/服务器902可以通过网络适配器924与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器924通过总线908与计算机系统/服务器902的其它组件通信。应当明白,尽管图中未示出,其它硬件和/或软件组件可以与计算机系统/服务器902一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
出于示例和说明目的提供了本发明的各个实施例的上述说明。其并非旨在是穷举的或将本发明限于所公开的精确形式。根据上述教导,许多修改和变化都是可能的。其旨在本发明的范围并非由此详细说明来限制,而是由此后所附的权利要求来限制。以上说明、实例和数据提供了对本发明的组成部分的制造和使用的完整说明。由于可以在不偏离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明存在于此后所附的权利要求之内。
Claims (30)
1.一种用于管理存储装置中的数据的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有包含在其中的计算机可读程序代码,所述计算机可读程序代码执行以便执行操作,所述操作包括:
提供对日志中的记录的索引,其中所述索引中的每个索引项标识所述记录中的一个记录在所述日志中的日志地址,其中所述日志中的每个记录包括键和值,并且其中所述日志地址映射到所述存储装置中的物理地址;
处理所述日志中的多个被处理日志地址,方式为:对于所述日志地址中的每个日志地址,执行以下操作:
判定所述索引是否指示该被处理日志地址包括所述日志中的所述记录的当前版本;响应于判定所述索引指示该被处理日志地址包括所述记录的当前版本,将该被处理日志地址处的所述记录添加到所述日志中的选定日志地址;以及
删除所述存储装置中该被处理日志地址映射到的所述物理地址处的记录。
2.根据权利要求1所述的计算机程序产品,其中判定所述索引是否指示该被处理日志地址具有所述记录的当前版本包括:
判定所述索引是否针对该被处理日志地址处的所述记录的所述键指示该被处理日志地址,其中响应于在具有该被处理日志地址处的所述记录的所述键的所述索引项中指示该被处理日志地址,所述索引指示该被处理日志地址记录包括所述记录的当前版本。
3.根据权利要求1所述的计算机程序产品,其中处理所述日志地址进一步包括:
更新所述索引以指示所述日志中的所述选定日志地址并且不指示该被处理日志地址。
4.根据权利要求1所述的计算机程序产品,其中处理所述日志地址由垃圾回收过程执行,并且其中被处理的所述多个日志地址包括所述日志中的日志地址子集,其中所述日志中的所述日志地址被分组成多个子集,所述多个子集包括具有所述被处理日志地址的子集。
5.根据权利要求1所述的计算机程序产品,其中所述存储装置包括多个存储设备,其中所述日志地址映射到所述多个存储设备中的物理地址,并且其中所述日志中的所述记录的数据被存储在所述存储设备中映射到标识所述记录的所述日志地址的所述物理地址处。
6.根据权利要求5所述的计算机程序产品,其中所述存储设备包括固态驱动器和硬盘驱动器中的至少一者,并且其中所述计算机程序产品、索引、以及日志在所述存储设备外部的系统中实现,所述存储设备耦合到所述系统。
7.根据权利要求1所述的计算机程序产品,其中响应于判定所述索引不包括用于该被处理日志地址的项和该被处理日志地址处的所述记录的键,该被处理日志地址处的所述记录不被写入选定日志地址。
8.根据权利要求1所述的计算机程序产品,其中所述操作进一步包括:由存储服务向索引服务发送包括该被处理日志地址和该被处理日志地址的键的live命令,其中响应于所述live命令,所述索引服务执行该被处理日志地址是否具有所述记录的当前版本的判定;
由所述索引服务向所述存储服务发送put命令,以便执行该被处理日志地址处的所述记录到所述选定日志地址的写入;
响应于将该被处理日志地址处的所述记录写入所述选定日志地址,由所述存储服务向所述索引服务发送所述记录的所述选定日志地址;以及响应于从所述存储服务接收所述选定日志地址,由所述索引服务更新具有所述put命令中的该被处理日志地址和所述键的所述索引项以便指示所述选定日志地址。
9.根据权利要求8所述的计算机程序产品,其中所述操作进一步包括:响应于所述索引服务响应于所述live命令而指示该被处理日志地址包括所述记录的当前版本,由所述存储服务发送具有所述键和该被处理日志地址的move命令;以及
由所述索引服务接收所述move命令,其中响应于所述move命令,所述索引服务执行向所述存储服务发送所述put命令以将被处理记录写入所述选定日志地址,其中所述put命令包括所述键的值。
10.根据权利要求8所述的计算机程序产品,其中所述存储服务执行所述存储装置中该被处理日志地址映射到的所述物理地址处的所述记录的删除。
11.一种用于管理存储装置中的数据的系统,所述系统包括:
处理器;以及
计算机可读存储介质,所述计算机可读存储介质具有包含在其中的计算机可读程序代码,当被执行时,所述计算机可读程序代码执行:
执行以便执行操作,所述操作提供对日志中的记录的索引,其中所述索引中的每个索引项标识所述记录中的一个记录在所述日志中的日志地址,其中所述日志中的每个记录包括键和值,并且其中所述日志地址映射到所述存储装置中的物理地址;
处理所述日志中的多个被处理日志地址,方式为:对于所述日志地址中的每个日志地址,执行以下操作:
判定所述索引是否指示该被处理日志地址包括所述日志中的所述记录的当前版本;
响应于判定所述索引指示该被处理日志地址包括所述记录的当前版本,将该被处理日志地址处的所述记录添加到所述日志中的选定日志地址;以及
删除所述存储装置中该被处理日志地址映射到的所述物理地址处的记录。
12.根据权利要求11所述的系统,其中判定所述索引是否指示该被处理日志地址具有所述记录的当前版本包括:
判定所述索引是否针对该被处理日志地址处的所述记录的所述键指示该被处理日志地址,其中响应于在具有该被处理日志地址处的所述记录的所述键的所述索引项中指示该被处理日志地址,所述索引指示该被处理日志地址记录包括所述记录的当前版本。
13.根据权利要求11所述的系统,其中处理所述日志地址进一步包括:
更新所述索引以指示所述日志中的所述选定日志地址并且不指示该被处理日志地址。
14.根据权利要求11所述的系统,其中处理所述日志地址由垃圾回收过程执行,并且其中被处理的所述多个日志地址包括所述日志中的日志地址子集,其中所述日志中的所述日志地址被分组成多个子集,所述多个子集包括具有所述被处理日志地址的子集。
15.根据权利要求11所述的系统,其中所述存储装置包括多个存储设备,其中所述日志地址映射到所述多个存储设备中的物理地址,并且其中所述日志中的所述记录的数据被存储在所述存储设备中映射到标识所述记录的所述日志地址的所述物理地址处。
16.根据权利要求15所述的系统,其中所述存储设备包括固态驱动器和硬盘驱动器中的至少一者,并且其中所述计算机可读存储介质、索引、以及日志在所述存储设备外部的系统中实现,所述存储设备耦合到所述系统。
17.根据权利要求11所述的系统,其中响应于判定所述索引不包括用于该被处理日志地址的项和该被处理日志地址处的所述记录的键,该被处理日志地址处的所述记录不被写入选定日志地址。
18.根据权利要求11所述的系统,其中所述操作进一步包括:
由存储服务向索引服务发送包括该被处理日志地址和该被处理日志地址的键的live命令,其中响应于所述live命令,所述索引服务执行该被处理日志地址是否具有所述记录的当前版本的判定;
由所述索引服务向所述存储服务发送put命令,以便执行该被处理日志地址处的所述记录到所述选定日志地址的写入;
响应于将该被处理日志地址处的所述记录写入所述选定日志地址,由所述存储服务向所述索引服务发送所述记录的所述选定日志地址;以及
响应于从所述存储服务接收所述选定日志地址,由所述索引服务更新具有所述put命令中的该被处理日志地址和所述键的所述索引项以便指示所述选定日志地址。
19.根据权利要求18所述的系统,其中所述操作进一步包括:
响应于所述索引服务响应于所述live命令而指示该被处理日志地址包括所述记录的当前版本,由所述存储服务发送具有所述键和该被处理日志地址的move命令;以及
由所述索引服务接收所述move命令,其中响应于所述move命令,所述索引服务执行向所述存储服务发送所述put命令以将被处理记录写入所述选定日志地址,其中所述put命令包括所述键的值。
20.根据权利要求18所述的系统,其中所述存储服务执行所述存储装置中该被处理日志地址映射到的所述物理地址处的所述记录的删除。
21.一种用于管理存储装置中的数据的方法,所述方法包括:
提供对日志中的记录的索引,其中所述索引中的每个索引项标识所述记录中的一个记录在所述日志中的日志地址,其中所述日志中的每个记录包括键和值,并且其中所述日志地址映射到所述存储装置中的物理地址;
处理所述日志中的多个被处理日志地址,方式为:对于所述日志地址中的每个日志地址,执行以下操作:
判定所述索引是否指示该被处理日志地址包括所述日志中的所述记录的当前版本;
响应于判定所述索引指示该被处理日志地址包括所述记录的当前版本,将该被处理日志地址处的所述记录添加到所述日志中的选定日志地址;以及
删除所述存储装置中该被处理日志地址映射到的所述物理地址处的记录。
22.根据权利要求21所述的方法,其中判定所述索引是否指示该被处理日志地址具有所述记录的当前版本包括:
判定所述索引是否针对该被处理日志地址处的所述记录的所述键指示该被处理日志地址,其中响应于在具有该被处理日志地址处的所述记录的所述键的所述索引项中指示该被处理日志地址,所述索引指示该被处理日志地址记录包括所述记录的当前版本。
23.根据权利要求21所述的方法,其中处理所述日志地址进一步包括:
更新所述索引以指示所述日志中的所述选定日志地址并且不指示该被处理日志地址。
24.根据权利要求21所述的方法,其中处理所述日志地址由垃圾回收过程执行,并且其中被处理的所述多个日志地址包括所述日志中的日志地址子集,其中所述日志中的所述日志地址被分组成多个子集,所述多个子集包括具有所述被处理日志地址的子集。
25.根据权利要求21所述的方法,其中所述存储装置包括多个存储设备,其中所述日志地址映射到所述多个存储设备中的物理地址,并且其中所述日志中的所述记录的数据被存储在所述存储设备中映射到标识所述记录的所述日志地址的所述物理地址处。
26.根据权利要求25所述的方法,其中所述存储设备包括固态驱动器和硬盘驱动器中的至少一者,并且其中所述方法、索引、以及日志在所述存储设备外部的系统中实现,所述存储设备耦合到所述系统。
27.根据权利要求21所述的方法,其中响应于判定所述索引不包括用于该被处理日志地址的项和该被处理日志地址处的所述记录的键,该被处理日志地址处的所述记录不被写入选定日志地址。
28.根据权利要求21所述的方法,进一步包括:
由存储服务向索引服务发送包括该被处理日志地址和该被处理日志地址的键的live命令,其中响应于所述live命令,所述索引服务执行该被处理日志地址是否具有所述记录的当前版本的判定;
由所述索引服务向所述存储服务发送put命令,以便执行该被处理日志地址处的所述记录到所述选定日志地址的写入;
响应于将该被处理日志地址处的所述记录写入所述选定日志地址,由所述存储服务向所述索引服务发送所述记录的所述选定日志地址;以及
响应于从所述存储服务接收所述选定日志地址,由所述索引服务更新具有所述put命令中的该被处理日志地址和所述键的所述索引项以便指示所述选定日志地址。
29.根据权利要求28所述的方法,进一步包括:
响应于所述索引服务响应于所述live命令而指示该被处理日志地址包括所述记录的当前版本,由所述存储服务发送具有所述键和该被处理日志地址的move命令;以及
由所述索引服务接收所述move命令,其中响应于所述move命令,所述索引服务执行向所述存储服务发送所述put命令以将被处理记录写入所述选定日志地址,其中所述put命令包括所述键的值。
30.根据权利要求21所述的方法,其中所述存储服务执行所述存储装置中该被处理日志地址映射到的所述物理地址处的所述记录的删除。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/629,041 US10210168B2 (en) | 2015-02-23 | 2015-02-23 | Managing data in storage according to a log structure |
US14/629,041 | 2015-02-23 | ||
PCT/IB2016/050749 WO2016135578A1 (en) | 2015-02-23 | 2016-02-12 | Managing data in storage according to a log structure |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107533507A true CN107533507A (zh) | 2018-01-02 |
CN107533507B CN107533507B (zh) | 2020-09-11 |
Family
ID=56689914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680011434.9A Active CN107533507B (zh) | 2015-02-23 | 2016-02-12 | 管理存储装置中的数据的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10210168B2 (zh) |
JP (1) | JP6704207B2 (zh) |
CN (1) | CN107533507B (zh) |
GB (1) | GB2550800B (zh) |
WO (1) | WO2016135578A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543463A (zh) * | 2019-09-16 | 2019-12-06 | 南方电网科学研究院有限责任公司 | 一种日志存储方法、装置、设备及可读存储介质 |
TWI695322B (zh) * | 2019-01-18 | 2020-06-01 | 旺宏電子股份有限公司 | 記憶體及記憶體操作方法 |
CN111656325A (zh) * | 2018-02-23 | 2020-09-11 | 国际商业机器公司 | 在按时间排序的日志结构化键-值存储系统中从故障快速恢复 |
CN111742301A (zh) * | 2018-02-23 | 2020-10-02 | 微软技术许可有限责任公司 | 通过请求来日志记录对更高级别的缓存的缓存流入量 |
CN112486403A (zh) * | 2019-09-12 | 2021-03-12 | 伊姆西Ip控股有限责任公司 | 管理存储对象的元数据的方法、装置和计算机程序产品 |
CN112740198A (zh) * | 2018-09-24 | 2021-04-30 | 易享信息技术有限公司 | 用于在数据库中提早移除墓碑记录的系统和方法 |
CN113196259A (zh) * | 2018-12-14 | 2021-07-30 | 美光科技公司 | 使用以选择性数据存储格式进行日志记录的键值存储 |
CN113378199A (zh) * | 2021-06-28 | 2021-09-10 | 展讯通信(天津)有限公司 | 一种智能终端系统日志保存方法及设备 |
CN114116367A (zh) * | 2020-08-25 | 2022-03-01 | 荣耀终端有限公司 | 一种生成日志的方法及电子设备 |
CN116561108A (zh) * | 2022-01-27 | 2023-08-08 | 慧与发展有限责任合伙企业 | 用于元数据内务处理操作的日志分组 |
US12079105B2 (en) | 2016-08-31 | 2024-09-03 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9594674B1 (en) * | 2014-09-30 | 2017-03-14 | EMC IP Holding Company LLC | Method and system for garbage collection of data storage systems using live segment records |
US10210168B2 (en) | 2015-02-23 | 2019-02-19 | International Business Machines Corporation | Managing data in storage according to a log structure |
US9792066B2 (en) | 2015-02-23 | 2017-10-17 | International Business Machines Corporation | Handling failure of a command to add a record to a log |
US20180089074A1 (en) * | 2016-09-28 | 2018-03-29 | Intel Corporation | Techniques to Manage Key-Value Storage at a Memory or Storage Device |
US10783073B2 (en) * | 2018-02-23 | 2020-09-22 | International Business Machines Corporation | Chronologically ordered out-of-place update key-value storage system |
US10642680B2 (en) * | 2018-02-23 | 2020-05-05 | International Business Machines Corporation | Chronologically ordered log-structured key-value store from failures during garbage collection |
US10831734B2 (en) | 2018-05-07 | 2020-11-10 | Intel Corporation | Update-insert for key-value storage interface |
US11042464B2 (en) * | 2018-07-16 | 2021-06-22 | Red Hat Israel, Ltd. | Log record analysis based on reverse engineering of log record formats |
CN111104047B (zh) * | 2018-10-25 | 2023-08-25 | 伊姆西Ip控股有限责任公司 | 管理冗余磁盘阵列的方法、设备和计算机可读存储介质 |
CN109992475B (zh) * | 2019-03-20 | 2023-09-01 | 网宿科技股份有限公司 | 一种日志的处理方法、服务器及存储介质 |
CN110377531B (zh) * | 2019-07-19 | 2021-08-10 | 清华大学 | 基于日志结构的持久性内存存储引擎装置及控制方法 |
US11347619B2 (en) | 2019-08-01 | 2022-05-31 | Red Hat, Inc. | Log record analysis based on log record templates |
US11221925B2 (en) * | 2019-11-08 | 2022-01-11 | International Business Machines Corporation | Continuous storage of data in a system with limited storage capacity |
EP3851950B1 (en) | 2020-01-15 | 2024-09-04 | Samsung Electronics Co., Ltd. | Storage device and operation method thereof |
KR20210092361A (ko) | 2020-01-15 | 2021-07-26 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
CN114785677B (zh) * | 2022-04-22 | 2023-12-22 | 武汉联影医疗科技有限公司 | 日志管理方法、装置、计算机设备、存储介质和程序产品 |
CN115168921B (zh) * | 2022-09-08 | 2022-11-18 | 中国电子科技集团公司第十五研究所 | 一种适用于多固态硬盘系统的无损删除管理装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070260645A1 (en) * | 2006-04-28 | 2007-11-08 | Oliver Augenstein | Methods and infrastructure for performing repetitive data protection and a corresponding restore of data |
CN101165660A (zh) * | 2006-10-19 | 2008-04-23 | 三星电子株式会社 | 在非易失性存储器中重用日志块的方法、非易失性存储器件 |
US9460008B1 (en) * | 2013-09-20 | 2016-10-04 | Amazon Technologies, Inc. | Efficient garbage collection for a log-structured data store |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5530850A (en) * | 1993-10-25 | 1996-06-25 | International Business Machines Corporation | Data storage library array with log-structured file system which allows simultaneous write and garbage collection |
JPH1011337A (ja) * | 1996-06-24 | 1998-01-16 | Hitachi Ltd | 記憶装置におけるデータ制御方法 |
JP3785586B2 (ja) | 1997-06-20 | 2006-06-14 | カヤバ工業株式会社 | 油圧式パワーステアリングにおける制御バルブのコントローラ |
US8452938B1 (en) * | 2004-12-30 | 2013-05-28 | Azul Systems, Inc. | Garbage collection with memory quick release |
JP4766240B2 (ja) * | 2005-11-08 | 2011-09-07 | 日本電気株式会社 | ファイル管理方法、装置、およびプログラム |
US8266609B2 (en) * | 2005-12-07 | 2012-09-11 | Microsoft Corporation | Efficient placement of software transactional memory operations around procedure calls |
US8745012B2 (en) * | 2007-08-10 | 2014-06-03 | Sybase, Inc. | Log-structured store for streaming data |
US8495036B2 (en) | 2008-10-24 | 2013-07-23 | Microsoft Corporation | Blob manipulation in an integrated structured storage system |
JP2011192260A (ja) * | 2010-02-16 | 2011-09-29 | Toshiba Corp | 半導体記憶装置 |
US10013354B2 (en) | 2010-07-28 | 2018-07-03 | Sandisk Technologies Llc | Apparatus, system, and method for atomic storage operations |
US10558705B2 (en) | 2010-10-20 | 2020-02-11 | Microsoft Technology Licensing, Llc | Low RAM space, high-throughput persistent key-value store using secondary memory |
US20120159098A1 (en) | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Garbage collection and hotspots relief for a data deduplication chunk store |
US9645758B2 (en) * | 2011-07-22 | 2017-05-09 | Sandisk Technologies Llc | Apparatus, system, and method for indexing data of an append-only, log-based structure |
US8527544B1 (en) * | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
US8788788B2 (en) | 2011-08-11 | 2014-07-22 | Pure Storage, Inc. | Logical sector mapping in a flash storage array |
US9026717B2 (en) | 2011-09-30 | 2015-05-05 | SanDisk Technologies, Inc. | Apparatus, system, and method for a persistent object store |
US9256410B2 (en) | 2012-08-09 | 2016-02-09 | Apple Inc. | Failure profiling for continued code optimization |
US10509776B2 (en) * | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
US9489297B2 (en) | 2013-01-21 | 2016-11-08 | Sandisk Technologies Llc | Pregroomer for storage array |
CA2881206A1 (en) * | 2014-02-07 | 2015-08-07 | Andrew WARFIELD | Methods, systems and devices relating to data storage interfaces for managing address spaces in data storage devices |
US10210168B2 (en) | 2015-02-23 | 2019-02-19 | International Business Machines Corporation | Managing data in storage according to a log structure |
US9792066B2 (en) * | 2015-02-23 | 2017-10-17 | International Business Machines Corporation | Handling failure of a command to add a record to a log |
-
2015
- 2015-02-23 US US14/629,041 patent/US10210168B2/en active Active
-
2016
- 2016-02-12 JP JP2017541259A patent/JP6704207B2/ja active Active
- 2016-02-12 CN CN201680011434.9A patent/CN107533507B/zh active Active
- 2016-02-12 WO PCT/IB2016/050749 patent/WO2016135578A1/en active Application Filing
- 2016-02-12 GB GB1713659.9A patent/GB2550800B/en active Active
-
2019
- 2019-01-14 US US16/247,551 patent/US11157449B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070260645A1 (en) * | 2006-04-28 | 2007-11-08 | Oliver Augenstein | Methods and infrastructure for performing repetitive data protection and a corresponding restore of data |
CN101165660A (zh) * | 2006-10-19 | 2008-04-23 | 三星电子株式会社 | 在非易失性存储器中重用日志块的方法、非易失性存储器件 |
US9460008B1 (en) * | 2013-09-20 | 2016-10-04 | Amazon Technologies, Inc. | Efficient garbage collection for a log-structured data store |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12079105B2 (en) | 2016-08-31 | 2024-09-03 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
CN111656325A (zh) * | 2018-02-23 | 2020-09-11 | 国际商业机器公司 | 在按时间排序的日志结构化键-值存储系统中从故障快速恢复 |
CN111742301A (zh) * | 2018-02-23 | 2020-10-02 | 微软技术许可有限责任公司 | 通过请求来日志记录对更高级别的缓存的缓存流入量 |
CN111656325B (zh) * | 2018-02-23 | 2023-09-29 | 国际商业机器公司 | 在按时间排序的日志结构化键-值存储系统中从故障快速恢复 |
CN112740198A (zh) * | 2018-09-24 | 2021-04-30 | 易享信息技术有限公司 | 用于在数据库中提早移除墓碑记录的系统和方法 |
CN113196259A (zh) * | 2018-12-14 | 2021-07-30 | 美光科技公司 | 使用以选择性数据存储格式进行日志记录的键值存储 |
CN113196259B (zh) * | 2018-12-14 | 2022-08-05 | 美光科技公司 | 使用以选择性数据存储格式进行日志记录的键值存储 |
TWI695322B (zh) * | 2019-01-18 | 2020-06-01 | 旺宏電子股份有限公司 | 記憶體及記憶體操作方法 |
CN112486403A (zh) * | 2019-09-12 | 2021-03-12 | 伊姆西Ip控股有限责任公司 | 管理存储对象的元数据的方法、装置和计算机程序产品 |
CN110543463A (zh) * | 2019-09-16 | 2019-12-06 | 南方电网科学研究院有限责任公司 | 一种日志存储方法、装置、设备及可读存储介质 |
CN114116367A (zh) * | 2020-08-25 | 2022-03-01 | 荣耀终端有限公司 | 一种生成日志的方法及电子设备 |
CN113378199A (zh) * | 2021-06-28 | 2021-09-10 | 展讯通信(天津)有限公司 | 一种智能终端系统日志保存方法及设备 |
CN116561108A (zh) * | 2022-01-27 | 2023-08-08 | 慧与发展有限责任合伙企业 | 用于元数据内务处理操作的日志分组 |
CN116561108B (zh) * | 2022-01-27 | 2024-09-20 | 慧与发展有限责任合伙企业 | 用于元数据内务处理操作的日志分组 |
Also Published As
Publication number | Publication date |
---|---|
JP6704207B2 (ja) | 2020-06-03 |
WO2016135578A1 (en) | 2016-09-01 |
GB2550800B (en) | 2018-10-17 |
US20190146952A1 (en) | 2019-05-16 |
US10210168B2 (en) | 2019-02-19 |
GB2550800A (en) | 2017-11-29 |
US20160246830A1 (en) | 2016-08-25 |
CN107533507B (zh) | 2020-09-11 |
GB201713659D0 (en) | 2017-10-11 |
JP2018509695A (ja) | 2018-04-05 |
US11157449B2 (en) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107533507A (zh) | 根据日志结构管理存储装置中的数据 | |
CN105912557B (zh) | 用于管理存储器中的数据的系统和方法 | |
CN105027070B (zh) | 卷操作的安全性 | |
CN107003935A (zh) | 优化数据库去重 | |
JP4733461B2 (ja) | 計算機システム、管理計算機及び論理記憶領域の管理方法 | |
CN103927261B (zh) | 用于精简供应存储的高效分配和回收的方法和系统 | |
CN103902623B (zh) | 用于在存储系统上存取文件的方法和系统 | |
CN101669092B (zh) | 管理本机/受管对等体的对象寿命 | |
CN108139902A (zh) | 用于提供混合模式来访问ssd驱动器的方法和装置 | |
EP1953636A2 (en) | Storage module and capacity pool free capacity adjustment method | |
CN106687910A (zh) | 优化分段清除技术 | |
CN104657672B (zh) | 用于对表的预定义部分存档的方法和系统 | |
CN101233517A (zh) | 把包括工作文件的集合保持在存储池中 | |
CN102841854A (zh) | 根据动态分级存储器缓存认知执行数据读取的方法和系统 | |
CN106682186A (zh) | 文件访问控制列表管理方法和相关装置和系统 | |
CN113568566B (zh) | 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN110109915A (zh) | 用于管理哈希表的方法、设备和计算机程序产品 | |
CN106610903A (zh) | 层级化存储器系统、存储器控制器和去重及存储器层级化方法 | |
CN108604165A (zh) | 存储装置 | |
CN108255620A (zh) | 一种业务逻辑处理方法、装置、业务服务器及系统 | |
CN109918352B (zh) | 存储器系统和存储数据的方法 | |
CN109144431A (zh) | 数据块的缓存方法、装置、设备及存储介质 | |
US11080239B2 (en) | Key value store using generation markers | |
CN107846327A (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 |