CN108984566B - 用于文件系统日志的方法和设备 - Google Patents
用于文件系统日志的方法和设备 Download PDFInfo
- Publication number
- CN108984566B CN108984566B CN201710409031.6A CN201710409031A CN108984566B CN 108984566 B CN108984566 B CN 108984566B CN 201710409031 A CN201710409031 A CN 201710409031A CN 108984566 B CN108984566 B CN 108984566B
- Authority
- CN
- China
- Prior art keywords
- transaction
- region
- log
- resource slice
- resource
- 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
Images
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/18—File system types
- G06F16/1865—Transactional file systems
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (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
技术领域
本公开的实施例总体涉及数据存储,更具体地,涉及用于文件系统日志的方法、设备和计算程序产品。
背景技术
在由日志保护的文件系统中,一般具有串行日志记录子系统。每个IO将生成一个或多个日志事务并在元数据被冲刷之前将事务写入到日志系统中。事务的写入在这种情况下是串行的,并且这样的日志系统造成在多核平台中的当前文件系统的瓶颈。
发明内容
本公开的实施例旨在提供一种用于文件系统日志的方法、设备和计算机程序产品。
在本公开的第一方面,提供一种计算机实施的方法。该方法包括:响应于接收到与第一事务相关联的元数据写入请求,从元数据的多个区域中确定与第一事务相关联的至少一个区域,多个区域通过对元数据的条带化而形成;从日志系统的资源池中,为至少一个区域请求资源切片;以及将第一事务修改至少一个区域的日志记录到资源切片。
在本公开的第二方面,提供一种电子设备。该设备包括:至少一个处理器;以及与至少一个处理器耦合的存储器。存储器中存储有指令,该指令在被至少一个处理单元执行时,使得所述设备执行动作。该动作包括:响应于接收到与第一事务相关联的元数据写入请求,从元数据的多个区域中确定与第一事务相关联的至少一个区域,多个区域通过对元数据的条带化而形成;从日志系统的资源池中,为至少一个区域请求资源切片;以及将第一事务修改至少一个区域的日志记录到资源切片。
在本公开的第三方面,提供一种计算机程序产品。在该计算机程序产品上存储有指令,当所述指令在被至少一个处理单元执行时,使得至少一个处理单元被配置为执行一种方法。该方法包括:响应于接收到与第一事务相关联的元数据写入请求,从元数据的多个区域中确定与第一事务相关联的至少一个区域,多个区域通过对元数据的条带化而形成;从日志系统的资源池中,为至少一个区域请求资源切片;以及将第一事务修改至少一个区域的日志记录到资源切片。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开内容的关键特征或主要特征,也无意限制本公开内容的范围。
附图说明
通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例而非限制性的方式示出了本公开的若干实施例,其中:
图1示出了根据本公开的实施例的日志写入的示意图;
图2示出了根据本公开的实施例的多核文件系统的日志记录方法200的流程图;
图3示出了根据本公开的实施例的日志写入的示意图;
图4示出了根据本公开的实施例的日志写入的示意图;
图5示出了根据本公开的实施例的日志写入的示意图;
图6示出了根据本公开的实施例的日志冲刷的示意图;
图7示出了根据本公开的实施例的超级块的示意图;
图8示出了适于用来实施本公开的实施例的设备的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
在下文中,将参考附图详细描述本公开的各个示例性实施例。应当注意,这些附图和描述涉及的仅仅是作为示例性的实施例。应该指出的是,根据随后描述,很容易设想出此处公开的结构和方法的替换实施例,并且可以在不脱离本公开要求保护的原理的情况下使用这些替代实施例。
应当理解,给出这些示例性实施例仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在此使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。
应当理解,日志文件系统是在传统文件系统的基础上,加入文件系统更改的日志记录,以便跟踪记录文件系统的变化并将变化内容记录入日志。日志文件系统在磁盘分区中保存有日志记录,写操作首先是对记录文件进行操作,若整个写操作由于某种原因(如系统掉电)而中断,系统重启时,会根据日志记录来恢复中断前的写操作。在日志文件系统中,所有的文件系统的变化都被记录到日志,每隔一定时间,文件系统会将更新后的元数据及文件内容写入磁盘。在对元数据做任何改变以前,文件系统驱动程序会向日志中写入一个条目,这个条目描述了它将要做些什么,然后它修改元数据。
在由日志保护的文件系统中,一般具有串行日志记录子系统。每个IO将生成一个或多个日志事务并在元数据被冲刷到固态存储装置之前将事务写入到日志系统中。事务的写入在这种情况下是串行的,并且这样的日志系统造成在多核平台中的当前文件系统的瓶颈。
因此,需要实现一种能够行之有效的多核文件系统的日志记录方案,使得能够并行地记录文件系统日志。这能够大幅度地提高IO效率以及减少响应时间。此外,该方案还能够为非关联的事务提供更大的日志容量。
图1示出了根据本公开的实施例的日志写入的示意图。图2示出了根据本公开的实施例的多核文件系统的日志记录方法200的流程图。以下结合图1详细描述图2示出的根据本公开的实施例的多核文件系统的日志记录方案。
在本发明的某些实施例中,元数据例如能够根据文件系统块号(File SystemBlock Number,FSBN)被条带化成多个区域。应当理解,这里的文件系统块仅仅是元数据的一个实例,在不违背本发明的构思的情况下,元数据的划分还可以根据其他因素来实施。如图1所示,元数据110例如能够分成8个区域1100至1107。将元数据110划分成多个区域1100至1107之后,区域1100至1107中的每个区域能够具有各自的日志资源切片。应当理解,每个区域具有的日志资源切片可以是在需要记录日志的情况下,从日志系统请求的资源,也可以是在划分元数据的时候就分配给元数据的。如图1所示,例如的日志系统120具有128M的资源空间,能够将该资源空间分成128个切片1200至120127并且切片1200至120127中的每个切片具有1M的资源空间。
在确定了元数据的划分之后,针对所要改变不同的FSBN的不同的事务,能够将该事务修改至少一个区域的日志记录到为与该FSBN相关联的区域请求或分配的资源切片中。以此方式,日志的写入能够并行地进行并且日志的写入性能将被显著地提升。
参照图2,在210,当接收到与第一事务相关联的元数据写入请求时,可以从元数据的多个区域中确定与第一事务相关联的至少一个区域。该元数据的多个区域即在上文中提及的根据FSBN通过对元数据条带化而划分的多个区域。结合图1,第一事务的序列号例如能够是1895,该事务1895要改变的FSBN 11例如与区域1103相关联。
在220,从日志系统的资源池中,为至少一个区域请求资源切片。应当理解,图2中示出的并不是文件系统的日志记录的初始状态,在多个区域1100至1107中已经各自记录有先前事务修改元数据的日志。因此多个区域1100至1107也已经被分配有大小不等的日志资源切片。应当理解,为多个区域1100至1107分配的日志资源切片的序号并不是连续的,这是因为事务要修改的区域是随机的。
当接收到事务1895并确定该事务要修改区域1103时,例如可以为区域1103请求用于记录事务1895修改区域1103的日志的资源切片。在图1示出的实例中,区域1103中存在已经请求的、但还未用于记录日志的资源切片上的空间。在图1中,例如以斜线填充的方框示出已经用于记录日志的资源并且以空白方框示出未用于记录日志的资源。
接下来,在230,将第一事务修改至少一个区域的日志记录到资源切片。例如能够将日志“事务1895改变FSBN 11”记录到该资源切片上的空闲资源块1300上。
如图1所示,文件系统还接收了要修改FSBN 13的事务1981,与上文所述的过程一致,在确定了事务1981要修改的FSBN 13与区域1105相关联,并且为区域1105请求了用于记录事务1981修该区域的日志之后,例如能够将日志“事务1981改变FSBN 13”记录到该资源切片上的空闲资源块1301上。
应当理解,文件系统接收到的每个事务具有的连续递增的序数。事务将基于元数据的区域(事务所要改变的FSBN)进入特定的区域的日志资源切片。
在某些实施例中,事务例如可以涉及跨区域事务。这意味着,每个事务可能需要改变位于多于一个的区域上的多个FSBN,为此当前事务需要等待关联区域的先前事务,该先前事务具有比当前事务更小的序列号。
图3示出了根据本公开的实施例的日志写入的示意图。如图3所示,在某些实施例中,事务1895例如可以改变分别与FSBN 11相关联的区域1103和与FSBN 13相关联的1105。因此,事务1895修改区域1103的日志和修改区域1105的日志需要被分别记录到区域1103和区域1105。由于每次写入日志的具有一定大小的限定,因此在区域中可能存在先前事务的日志还没有被写入到区域的情况。即在当前事务修改相应区域的日志要被记录到该区域的资源切片中存在待记录日志的缓冲队列。
与待记录日志有关的信息能够通过查询每个区域的资源切片上的最大非写入序列号(LNWSN)以及最大写入序列号(LWSN)来获得。如图3所示,在区域1103,日志资源切片上的LNWSN为零,这意味着没有需要待记录的日志,以及日志资源切片上的LWSN为1893,这意味日志资源块3300记录了事务1893修改的区域1103日志。而在区域1105,日志资源切片上的LNWSN为1892而LWSN为1887,这意味着日志资源块3303记录了事务1887修改的区域1105日志而表示事务1887修改的区域1105日志的日志资源块3304还没有被写入区域1105的资源切片。这意味着,事务1895在区域1103上的日志写入无需等待而在区域1105上的日志写入需要等待。在图3中,示例性地以斜线填充的方框表示已经记录日志的资源,以菱形填充的方框表示未完成写入的日志条目。
在确定了与区域1103相关联的资源切片中不存在待记录日志的缓冲队列并且与区域1105相关联的资源切片中存在待记录日志的缓冲队列之后,将事务1895修改区域1103的日志和修改区域1105的日志均记录到与区域1103相关联的资源切片,例如在图3中的资源块3301。
在某些实施例中,可以为事务1895修改区域1105的日志生成哑元(dummy)。在此使用的术语“哑元”只存在于存储器上并其指示这是事务1985的一个镜像。相较于记录了日志的资源块,哑元并不记录事务要对元数据进行修改的具体内容,而是仅仅记录该事务对相关区域做过了修改。在图3中,示例性地以点填充的方框表示哑元。在生成哑元之后,将哑元3302添加到与区域1105相关联的资源切片的待记录日志的缓冲队列中。该哑元指明事务1895对区域1105进行了修改。
如上文所提到的,为了提高写入性能,在文件系统中每次被写入资源切片的日志例如可以具有预定的大小,例如该大小可以是8K。图4示出了根据本公开的实施例的日志写入的示意图。如图4所示,在区域1103的用于记录日志的资源切片能够存在N*8K个写入队列410和缓冲队列420。倘若当前要记录的日志大小或在缓冲队列420中的日志合计的大小没有到达8K,则将这些日志暂时保持在缓冲队列420中。一旦确定缓冲队列420中包含的待记录日志的合计大小达到8K,则将缓冲队列420中的待记录日志作为一个写入队列410记录到该资源切片。在图4中,U表示在存储器中的事务的对象。
图4所描述的块写入的方式在出现事务同时修改多于一个区域的情况下,可能会发生互锁的情况。在图3中已经说明,事物1895要同时修改区域1103和区域1105。由于区域1105的资源切片中存在待记录的缓冲队列,将事务1895修改区域1103和区域1105的日志记录到区域1103的资源块,而将指示事务1895修改了区域1105的日志的哑元加入到区域1105的资源切片中的缓冲队列。图5在图3的实施例的基础上,示出了接收到用于修改区域1103和区域1105后续事务,即事务1981的情况。
图5示出了根据本公开的实施例的日志写入的示意图。如图所示,资源块5300表示记录先前事务修改区域1103和区域1105的日志的资源块,资源块5301表示指明先前事务修改了区域1105的日志的哑元。结合图4中示出的实施例,区域1103的资源切片中的资源块5300的大小未达到一次写入的日志阈值大小,则资源块5300需要等待要记录的后续事务的日志一起被写入,而在等待要记录的后续事务的日志的缓冲队列中包括事务1981的哑元5303。在区域1105的资源切片的缓冲队列中存在指示事务1895修改了区域1105的日志的哑元5301,以及事务1981修改区域1103和区域1105的日志的资源块5302。如前文已经说明的,关于事务的日志的写入要根据事务的先后次序进行,这导致在区域1103和区域1105的资源切片中的缓冲队列中的资源块均无法写入资源切片。
在某些实施例中,能够将缓冲队列中的日志资源块切分,将不具有哑元的部分直接写入资源切片。例如在区域1103,将资源块5300,5306,5307以及5308记录到与该区域相关联的资源切片中,即便这些资源块的大小没有达到8K。同样的,在区域1105,也可以将缓冲队列中的哑元和日志资源块分割开来写入相应的资源切片。
通过结合图1到图5描述的与事务有关的日志的记录方法,能够并行地、并依据事务序号顺序地记录事务对于元数据的区域的修改。一旦文件系统由于故障或掉电发生终端,在重新上电之后,文件系统能够根据日志系统的记录重现事务对文件系统所做的修改,以便完整可靠地重新恢复系统。文件系统首先将读取在每个区域的资源切片上的关于事务的日志并将它们集中。接着根据日志对应的事务的序号排列这些日志并且根据按顺序排列的日志重新恢复之前的事务。
在文件系统中,记录到资源切片中的日志能够定期地被冲刷到固态的存储设备,以将与区域相关联的资源切片释放出来用于记录新的日志。图6示出了根据本发明的实施例的冲刷日志的示意图。对于每个资源切片的资源块,头部的资源块和尾部的资源块被用作空间管理。当为日志的资源切片冲刷空闲位图空间存储器时,头部将前移。在描述图3的实施例中说明了事务1895用于改变FSBN 11和FSBN 13。如图6所示,在要冲刷的文件系统块列表610中,改变FSBN 11和FSBN 13的日志将被冲刷。位图空间存储器620在分别写入了改变FSBN 11和FSBN 13的日志时变为2,而在将改变FSBN 11和FSBN 13的日志冲刷到固态存储设备之后重新变为零。
在当前的文件系统中,大多数事务均需要修改超级块(Super Block,SB)。串行进行的对超级块的修改往往成为系统的瓶颈。因此,在某些实施例中,能够为元数据的每个区域分配增量超级块。图7示出了根据本公开的实施例的超级块的示意图。
如图7所示,区域1100至1107具有各自的增量超级块7100至7107,这些增量超级块记录相应磁盘区域的使用情况。当事务修改区域1100至1107中的至少一个区域,例如修改区域1105时,相应区域的增量超级块被修改。对增量超级块7100至7107的修改的记录可以以预定的时间间隔冲刷到与区域1100至1107相关联的基础超级块720中,可以以预定的时间间隔在与区域1100至1107相关联的基础超级块720中重现。此外,存储器中超级块730也用于记录超级块的修改,在存储器中超级块730上的超级块修改记录也能够以预定的时间被冲刷到基础超级块730中,或响应于文件系统的需要被重现。
图8示出了可以用来实施本公开的实施例的设备800的示意性框图。如图8所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU801、ROM 802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200,可由处理单元801执行。例如,在一些实施例中,方法200可被实现为计算机软件程序,其被有形地包含于机器程序产品,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM 803并由CPU 801执行时,可以执行上文描述的方法200的一个或多个步骤。
综上所述,本公开的实施例提供了一种利用预备盘建立多级闪速缓存的方法。与现有技术相比,本公开的实施例能够将所有类型的预备盘用于建立辅缓存,其使得预备盘被更加有效地利用。以此方式,能够为缓存提供更多的缓存容量。此外,能够减少由于将冲刷到硬盘的页面再次提升到闪存盘导致的写I/O请求,因此能够延长主缓存总的闪存盘的使用寿命。
本公开内容可以是方法、设备和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开内容的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开内容操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开内容的各个方面。
这里参照根据本公开内容实施例的方法、装置(设备)和计算机程序产品的流程图和/或框图描述了本公开内容的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机程序产品则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开内容的多个实施例的方法、设备和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开内容的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文公开的各实施例。
Claims (18)
1.一种由计算机执行的方法,包括:
响应于接收到与第一事务相关联的元数据写入请求,从所述元数据的多个区域中至少确定与所述第一事务相关联的第一区域和第二区域,所述多个区域通过对所述元数据的条带化而形成;
从日志系统的资源池中,为所述至少一个区域请求至少一个资源切片;以及
将至少一个日志记录到所述至少一个资源切片,所述至少一个日志指示所述第一事务修改所述第一区域和所述第二区域,其中将所述至少一个日志记录到所述至少一个资源切片包括:
响应于确定与所述第一区域相关联的第一资源切片中不存在待记录日志的缓冲队列并且与所述第二区域相关联的第二资源切片中存在待记录日志的缓冲队列,
将与所述第一区域相关联的第一日志和与所述第二区域相关联的第二日志均记录到所述第一资源切片;
为所述第二日志生成第一哑元,其中所述第一哑元指示所述第一事务对所述第二区域进行了修改,所述第一哑元仅存在于存储器中并且指明针对所述第二区域的修改是由所述第一事务作出的;以及
将所述第一哑元添加到与所述第二资源切片相关联的所述缓冲队列中。
2.根据权利要求1所述的方法,其中将所述日志记录所述资源切片包括:
确定待存储的所述日志的大小;
响应于所述日志的所述大小小于预定阈值,将所述日志的添加到与所述资源切片中相关联的缓冲队列中。
3.根据权利要求2所述的方法,还包括:
确定所述缓冲队列中包含的待记录日志的合计大小是否达到所述阈值;
响应于将所述缓冲队列中的待记录日志记录到所述资源切片。
4.根据权利要求1所述的方法,其中所述至少一个区域包括第一区域和第二区域,其中将所述日志记录所述资源切片包括:
接收与第二事务相关联的元数据写入请求,所述第二事务具有比所述第一事务更大的事务序列号;
响应于在所述第一资源切片中的待记录日志的缓冲队列中包括所述日志和指明所述第二事务对所述第一区域进行了修改的第二哑元,以及在所述第二资源切片的待记录日志的缓冲队列中存在所述第一哑元和所述第二事务修改所述第一区域和所述第二区域的日志,将在所述第一资源切片中的待记录日志的缓冲队列中不包括所述第二哑元的部分记录到所述第一资源切片。
5.根据权利要求1所述的方法,还包括:
通过将被记录到所述资源切片上的所述日志冲刷到固态存储设备来释放所述资源切片。
6.根据权利要求1所述的方法,其中所述至少一个区域具有为其分配的增量超级块,增量超级块记录相应磁盘区域的使用情况,所述方法还包括:
响应于所述第一事务对所述至少一个区域的修改,修改所述增量超级块;
以预定的时间间隔将所述增量超级块记录冲刷到与所述多个区域相关联的基础超级块中。
7.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器耦合的存储器,所述存储器包含有存储于其中的指令,所述指令在被所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
响应于接收到与第一事务相关联的元数据写入请求,从所述元数据的多个区域中至少确定与所述第一事务相关联的第一区域和第二区域,所述多个区域通过对所述元数据的条带化而形成;
从日志系统的资源池中,为所述至少一个区域请求至少一个资源切片;以及
将至少一个日志记录到所述至少一个资源切片,所述至少一个日志指示所述第一事务修改所述第一区域和所述第二区域,其中将所述至少一个日志记录到所述至少一个资源切片包括:
响应于确定与所述第一区域相关联的第一资源切片中不存在待记录日志的缓冲队列并且与所述第二区域相关联的第二资源切片中存在待记录日志的缓冲队列,
将与所述第一区域相关联的第一日志和与所述第二区域相关联的第二日志均记录到所述第一资源切片;
为所述第二日志生成第一哑元,其中所述第一哑元指示所述第一事务对所述第二区域进行了修改,所述第一哑元仅存在于存储器中并且指明针对所述第二区域的修改是由所述第一事务作出的;以及
将所述第一哑元添加到与所述第二资源切片相关联的所述缓冲队列中。
8.根据权利要求7所述的设备,其中将所述日志记录所述资源切片包括:
确定待存储的所述日志的大小;
响应于所述日志的所述大小小于预定阈值,将所述日志的添加到与所述资源切片中相关联的缓冲队列中。
9.根据权利要求8所述的设备,还包括:
确定所述缓冲队列中包含的待记录日志的合计大小是否达到所述阈值;
响应于将所述缓冲队列中的待记录日志记录到所述资源切片。
10.根据权利要求7所述的设备,其中所述至少一个区域包括第一区域和第二区域,其中将所述日志记录所述资源切片包括:
接收与第二事务相关联的元数据写入请求,所述第二事务具有比所述第一事务更大的事务序列号;
响应于在所述第一资源切片中的待记录日志的缓冲队列中包括所述日志和指明所述第二事务对所述第一区域进行了修改的第二哑元,以及在所述第二资源切片的待记录日志的缓冲队列中存在所述第一哑元和所述第二事务修改所述第一区域和所述第二区域的日志,将在所述第一资源切片中的待记录日志的缓冲队列中不包括所述第二哑元的部分记录到所述第一资源切片。
11.根据权利要求7所述的设备,还包括:
通过将被记录到所述资源切片上的所述日志冲刷到固态存储设备来释放所述资源切片。
12.根据权利要求7所述的设备,其中所述至少一个区域具有为其分配的增量超级块,增量超级块记录相应磁盘区域的使用情况,所述设备 还包括:
响应于所述第一事务对所述至少一个区域的修改,修改所述增量超级块;
以预定的时间间隔将所述增量超级块记录冲刷到与所述多个区域相关联的基础超级块中。
13.一种计算机程序产品,所述计算机程序产品上存储有指令,当所述指令在被至少一个处理单元执行时,使得至少一个处理单元被配置为执行一种方法,所述方法包括:
响应于接收到与第一事务相关联的元数据写入请求,从所述元数据的多个区域中至少确定与所述第一事务相关联的第一区域和第二区域,所述多个区域通过对所述元数据的条带化而形成;
从日志系统的资源池中,为所述至少一个区域请求至少一个资源切片;以及
将至少一个日志记录到所述至少一个资源切片,所述至少一个日志指示所述第一事务修改所述第一区域和所述第二区域,其中将所述至少一个日志记录到所述至少一个资源切片包括:
响应于确定与所述第一区域相关联的第一资源切片中不存在待记录日志的缓冲队列并且与所述第二区域相关联的第二资源切片中存在待记录日志的缓冲队列,
将与所述第一区域相关联的第一日志和与所述第二区域相关联的第二日志均记录到所述第一资源切片;
为所述第二日志生成第一哑元,其中所述第一哑元指示所述第一事务对所述第二区域进行了修改,所述第一哑元仅存在于存储器中并且指明针对所述第二区域的修改是由所述第一事务作出的;以及
将所述第一哑元添加到与所述第二资源切片相关联的所述缓冲队列中。
14.根据权利要求13所述的程序产品,其中将所述日志记录所述资源切片包括:
确定待存储的所述日志的大小;
响应于所述日志的所述大小小于预定阈值,将所述日志的添加到与所述资源切片中相关联的缓冲队列中。
15.根据权利要求14所述的程序产品,还包括:
确定所述缓冲队列中包含的待记录日志的合计大小是否达到所述阈值;
响应于将所述缓冲队列中的待记录日志记录到所述资源切片。
16.根据权利要求13所述的程序产品,其中所述至少一个区域包括第一区域和第二区域,其中将所述日志记录所述资源切片包括:
接收与第二事务相关联的元数据写入请求,所述第二事务具有比所述第一事务更大的事务序列号;
响应于在所述第一资源切片中的待记录日志的缓冲队列中包括所述日志和指明所述第二事务对所述第一区域进行了修改的第二哑元,以及在所述第二资源切片的待记录日志的缓冲队列中存在所述第一哑元和所述第二事务修改所述第一区域和所述第二区域的日志,将在所述第一资源切片中的待记录日志的缓冲队列中不包括所述第二哑元的部分记录到所述第一资源切片。
17.根据权利要求13所述的程序产品,还包括:
通过将被记录到所述资源切片上的所述日志冲刷到固态存储设备来释放所述资源切片。
18.根据权利要求13所述的程序产品,其中所述至少一个区域具有为其分配的增量超级块,增量超级块记录相应磁盘区域的使用情况,所述方法还包括:
响应于所述第一事务对所述至少一个区域的修改,修改所述增量超级块;
以预定的时间间隔将所述增量超级块记录冲刷到与所述多个区域相关联的基础超级块中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710409031.6A CN108984566B (zh) | 2017-06-02 | 2017-06-02 | 用于文件系统日志的方法和设备 |
US15/993,791 US11010353B2 (en) | 2017-06-02 | 2018-05-31 | Method and device for file system log |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710409031.6A CN108984566B (zh) | 2017-06-02 | 2017-06-02 | 用于文件系统日志的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108984566A CN108984566A (zh) | 2018-12-11 |
CN108984566B true CN108984566B (zh) | 2022-01-28 |
Family
ID=64459802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710409031.6A Active CN108984566B (zh) | 2017-06-02 | 2017-06-02 | 用于文件系统日志的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11010353B2 (zh) |
CN (1) | CN108984566B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110196835B (zh) * | 2019-05-28 | 2023-10-13 | 腾讯科技(深圳)有限公司 | 元数据的处理方法、元数据的处理装置以及电子设备 |
CN112306956B (zh) * | 2019-07-31 | 2024-04-12 | 伊姆西Ip控股有限责任公司 | 用于元数据维护的方法、装置和计算机程序产品 |
US11474742B2 (en) * | 2020-06-30 | 2022-10-18 | Microsoft Technology Licensing, Llc | Logging operations based on memory mapping in a logging system |
CN114978885A (zh) * | 2022-08-02 | 2022-08-30 | 深圳市华曦达科技股份有限公司 | 一种日志管理方法、装置、计算机设备及系统 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021408A (en) * | 1996-09-12 | 2000-02-01 | Veritas Software Corp. | Methods for operating a log device |
US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
US7653836B1 (en) * | 2005-06-10 | 2010-01-26 | American Megatrends, Inc | Logging metadata modifications in a data storage system |
US7711897B1 (en) * | 2005-06-10 | 2010-05-04 | American Megatrends, Inc. | Method, system, apparatus, and computer-readable medium for improving disk array performance |
US8260792B1 (en) | 2008-08-29 | 2012-09-04 | Emc Corporation | System and method for committing data objects to be immutable |
CN101625655B (zh) * | 2009-08-20 | 2011-05-25 | 华中科技大学 | 一种内存数据库的并行恢复方法 |
US8595184B2 (en) * | 2010-05-19 | 2013-11-26 | Microsoft Corporation | Scaleable fault-tolerant metadata service |
US9009125B2 (en) * | 2010-10-13 | 2015-04-14 | International Business Machiness Corporation | Creating and maintaining order of a log stream |
US8706701B1 (en) | 2010-11-18 | 2014-04-22 | Emc Corporation | Scalable cloud file system with efficient integrity checks |
CN102385624B (zh) * | 2011-10-25 | 2014-01-01 | 曙光信息产业(北京)有限公司 | 一种面向分布式文件系统的日志数据组织的方法 |
US9542279B2 (en) * | 2011-11-07 | 2017-01-10 | Sap Se | Shadow paging based log segment directory |
US9158540B1 (en) | 2011-11-14 | 2015-10-13 | Emc Corporation | Method and apparatus for offloading compute resources to a flash co-processing appliance |
US9286261B1 (en) | 2011-11-14 | 2016-03-15 | Emc Corporation | Architecture and method for a burst buffer using flash technology |
US8818951B1 (en) | 2011-12-29 | 2014-08-26 | Emc Corporation | Distributed file system having separate data and metadata and providing a consistent snapshot thereof |
US9361306B1 (en) * | 2012-12-27 | 2016-06-07 | Emc Corporation | Managing concurrent write operations to a file system transaction log |
CN103077222B (zh) * | 2012-12-31 | 2016-01-27 | 中国科学院计算技术研究所 | 机群文件系统分布式元数据一致性保证方法及系统 |
CN103729442B (zh) * | 2013-12-30 | 2017-11-24 | 华为技术有限公司 | 记录事务日志的方法和数据库引擎 |
KR101674176B1 (ko) * | 2014-07-24 | 2016-11-08 | 성균관대학교산학협력단 | 파일 단위 순서 모드 저널링 기법을 이용한 fsync 시스템 호출 처리 장치 및 방법 |
CN104156420B (zh) * | 2014-08-06 | 2017-10-03 | 曙光信息产业(北京)有限公司 | 事务日志的管理方法和装置 |
US20160070644A1 (en) * | 2014-09-10 | 2016-03-10 | Netapp, Inc. | Offset range operation striping to improve concurrency of execution and reduce contention among resources |
CN104809178A (zh) * | 2015-04-15 | 2015-07-29 | 北京科电高技术公司 | 一种键值数据库内存日志的写入方法 |
US10009438B2 (en) * | 2015-05-20 | 2018-06-26 | Sandisk Technologies Llc | Transaction log acceleration |
US9612754B1 (en) | 2015-06-29 | 2017-04-04 | EMC IP Holding Company LLC | Data storage system with window allocation using window cache |
US9594513B1 (en) | 2015-06-29 | 2017-03-14 | EMC IP Holding Company LLC | Data storage system with file system stream detection |
EP3157017B1 (en) * | 2015-10-18 | 2019-05-22 | Carl Zeiss X-Ray Microscopy, Inc. | Method for combining tomographic volume data sets and image analysis tool of an x-ray imaging microscopy system |
CN105574217B (zh) * | 2016-03-16 | 2019-04-30 | 中国联合网络通信集团有限公司 | 分布式关系型数据库的数据同步方法和装置 |
US11029862B2 (en) * | 2017-04-25 | 2021-06-08 | Netapp, Inc. | Systems and methods for reducing write tax, memory usage, and trapped capacity in metadata storage |
-
2017
- 2017-06-02 CN CN201710409031.6A patent/CN108984566B/zh active Active
-
2018
- 2018-05-31 US US15/993,791 patent/US11010353B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN108984566A (zh) | 2018-12-11 |
US11010353B2 (en) | 2021-05-18 |
US20180349410A1 (en) | 2018-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984566B (zh) | 用于文件系统日志的方法和设备 | |
US10795615B2 (en) | Method and device for storage management in a hierarchical storage system | |
US10705735B2 (en) | Method and device for managing hash table, and computer program product | |
US10705935B2 (en) | Generating job alert | |
US11150949B2 (en) | Resource release method, resource allocation method, devices, and computer program products | |
US20160062900A1 (en) | Cache management for map-reduce applications | |
US10795579B2 (en) | Methods, apparatuses, system and computer program products for reclaiming storage units | |
US11226778B2 (en) | Method, apparatus and computer program product for managing metadata migration | |
US20200133870A1 (en) | Method, device and computer program product for cache management | |
US9996459B2 (en) | Reclaiming of sequential storage medium | |
US20210216231A1 (en) | Method, electronic device and computer program product for rebuilding disk array | |
US11010083B2 (en) | Method and device of managing storage system | |
US11347418B2 (en) | Method, device and computer program product for data processing | |
CN111143113A (zh) | 复制元数据的方法、电子设备和计算机程序产品 | |
US11429317B2 (en) | Method, apparatus and computer program product for storing data | |
US10705755B2 (en) | Method, apparatus and computer program product for data backup | |
US10789008B2 (en) | Reducing write collisions in data copy | |
US20190332484A1 (en) | Method, device and program product for reducing data recovery time of storage system | |
US12066937B2 (en) | Method, electronic device and computer program product for flushing metadata | |
CN112783419A (zh) | 分布式存储方法及装置、电子设备和存储介质 | |
US10678453B2 (en) | Method and device for checking false sharing in data block deletion using a mapping pointer and weight bits | |
US10664200B2 (en) | Directing read request with disk deduplication | |
US10949114B2 (en) | Data storage management devices using utilization rates and methods for data storage management using utilization rates | |
US11023158B2 (en) | Constraining placement of replica segment pairs among device pairs based on coding segment count | |
US11809717B2 (en) | Data managing method, an electric device, and a computer program product for efficient management of services |
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 |