CN111913924A - 一种基于热度的日志结构文件系统数据管理方法 - Google Patents
一种基于热度的日志结构文件系统数据管理方法 Download PDFInfo
- Publication number
- CN111913924A CN111913924A CN202010705796.6A CN202010705796A CN111913924A CN 111913924 A CN111913924 A CN 111913924A CN 202010705796 A CN202010705796 A CN 202010705796A CN 111913924 A CN111913924 A CN 111913924A
- Authority
- CN
- China
- Prior art keywords
- data
- heat
- log
- file system
- written
- 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
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000013523 data management Methods 0.000 title claims abstract description 11
- 238000004140 cleaning Methods 0.000 claims abstract description 46
- 238000005070 sampling Methods 0.000 claims abstract description 29
- 238000003860 storage Methods 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 21
- 238000009826 distribution Methods 0.000 claims description 15
- 230000005012 migration Effects 0.000 claims description 12
- 238000013508 migration Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 235000019633 pungent taste Nutrition 0.000 claims description 6
- 238000000926 separation method Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000003321 amplification Effects 0.000 abstract description 12
- 238000003199 nucleic acid amplification method Methods 0.000 abstract description 12
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 7
- 238000005457 optimization Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling 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/172—Caching, prefetching or hoarding of files
-
- 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/178—Techniques for file synchronisation in file systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于热度的日志结构文件系统数据管理方法,属于计算机信息存储领域,包括:追踪写入数据的热度值直至达到预设条件,并将所追踪的数据的热度值作为热度元数据进行缓存;对所追踪的数据的热度值进行抽样后,对抽样结果进行聚类,以将数据的热度值划分为多个热度类别,热度类别总数为k;在日志结构文件系统中维护k个日志,分别用于写入属于k个热度类别的数据。本发明通过对近期写入数据的热度值聚类,将数据的热度值划分为不同的热度类别,并利用不同的日志管理不同热度类别的数据,能够动态地准确地识别冷热数据,减小段清理开销和文件系统写放大。
Description
技术领域
本发明属于计算机信息存储领域,更具体地,涉及一种基于热度的日志结构文件系统数据管理方法。
背景技术
大数据时代背景下,应大量数据的快速存储要求,闪存替代磁盘成为主流的存储设备。日志结构文件系统的异地更新特性对闪存友好,表现为良好的随机写性能和较低的一致性维护成本。日志结构文件系统的布局数据结构分为区(zone)、节(section)、段(segment)、块(block),以匹配底层NAND闪存的组织和管理方式。段是日志结构文件系统中管理的基本单元,用于确定初始文件系统元数据布局。由于采用异地更新策略,随着系统的不断运行,会逐渐产生无效块,因此,需要清理回收分散的无效块,并确保有空闲段用于接下来的写入过程。一般地,在日志结构文件系统中,清理以段为单位进行,称为段清理,在段清理过程中,选中作为清理目标的段称为牺牲段。段清理可以保证日志结构文件系统中有足够的空闲段,但是,日志结构文件系统仍然存在段清理开销过高、文件系统写放大严重等问题,这降低了日志结构文件系统的性能。
日志结构文件系统中冷热数据混合,随着热数据失效会导致有效数据与无效数据混合,造成较大的段清理开销和用户数据写入量。一般地,冷热数据分离通过统计数据访问的频率和新近度实现。Wang和Hu通过跟踪数据访问模式,区分缓存中的活跃数据和不活跃数据,并在段清理时分离,但没有在源头上避免冷热数据混合,具体请参考“A novelreordering write buffer to improve write performance of log-structured filesystem”(IEEE Transactions on Computers,2003)。SFS(the file system for SSDs)统计块的写入时间和频率获得块和段的热度,对所有段的热度迭代量化得到分组标准,利用分组标准分离冷热数据。若能在日志结构文件系统运行时动态判断数据热度分布,能准确地识别冷热数据,但是SFS缺乏对热度维护开销的考虑,热度元数据的内存开销过大,具体请参考“SFS:random write considered harmful in solid state drives”(Proceedingsof the 10thUSENIX Conference on File and Storage Technologies,2012)。现有的日志结构文件系统选择牺牲段做段清理时,主要考虑牺牲段中的有效块数或有效数据的热度,但因为段热度的计算不够精确或没有考虑段清理开销,优化没有达到预期的效果。此外,I/O工作负载的数据呈现较大的热度差异。
总的来说,现有的识别分离冷热数据管理日志结构文件系统数据的方法,一部分识别标准无法适应负载的动态变化,一部分工作在识别热度时引入较高的存储和访问开销,影响正常的读写过程。此外,在选择牺牲段做段清理时,没有考虑热度或使用热度不准确没有选择到最优牺牲段。因此,现有的方法没有取得理想的效果。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种基于热度的日志结构文件系统数据管理方法,旨在解决现有的日志结构文件系统数据管理方法在识别热度时会引入较高的存储和访问开销,且无法适应负载的动态变化的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于热度的日志结构文件系统数据管理方法,包括:
追踪写入数据的热度值直至达到预设条件,并将所追踪的数据的热度值作为热度元数据进行缓存;
对所追踪的数据的热度值进行抽样后,对抽样结果进行聚类,以将数据的热度值划分为多个热度类别,热度类别总数为k;
在日志结构文件系统中维护k个日志,分别用于写入属于k个热度类别的数据。
本发明基于追踪的近期写入数据的热度值,通过聚类的方法将数据的热度值划分为多个热度类别,最终划分的热度类别与负载的实际特性相符,因此能够准确识别数据的热度;本发明维护多个日志,分别用于写入各热度类别的数据,由于同一热度类别的数据很大概率上会一起失效,因此,日志中的数据写入段中后,整个段中的数据很大概率上会一起失效,从而在段回收中有效减少迁移的有效块数量,减少段清理开销和文件系统写放大;本发明在将数据的热度值作为元数据并在缓存中对其进行管理,能够有效减少热度元数据的维护开销。总的来说,本发明通过对近期写入数据的热度值聚类,将数据的热度值划分为不同的热度类别,并利用不同的日志管理不同热度类别的数据,能够动态地准确地识别冷热数据,减小段清理开销和文件系统写放大。
进一步地,本发明提供的基于热度的日志结构文件系统数据管理方法,还包括:
持续追踪写入数据的热度值并更新所缓存的热度元数据,以热度条件为分隔点,将整个追踪过程划分为多个追踪轮次;
在当前追踪轮次,若所追踪到的热度值,与对应数据在当前追踪轮次之前的热度值之间的差值超过预设的第一阈值,则判定该数据的热度值发生了变化;若在当前追踪轮次追踪的数据中,热度值发生变化的数据所占的比例超过预设的第二阈值,则判定数据的热度分布在当前追踪轮次发生了变化,重新对当前追踪轮次所追踪的数据的热度值进行抽样后,对抽样结果进行聚类,以更新所划分的热度类别。
本发明通过持续追踪写入数据的热度值,并在数据热度值的分布发生变化时,重新通过聚类将数据的热度值划分为不同的热度类别,由此能够在负载发生动态变化时,仍然准确地识别冷热数据。
进一步地,对数据的热度值进行抽样,其方法为:
按照数据写入时间的先后顺序,对所追踪到的热度值进行排序,并将排序之后的热度值等分为两个部分;
按照预设的第一比例从先写入的一部分数据的热度值中抽取部分样本,并按照预设的第二比例从后写入的一部分数据的热度值中抽取部分样本,由两部分样本共同作为抽样结果;
其中,第一比例与第二比例之和为1,且第一比例小于第二比例。
相比于先写入的数据,后写入的数据更能反映近期负载的热度分布情况,本发明在对所追踪的数据热度值进行抽样时,从后写入的数据热度值中抽取更多的样本,从先写入的数据热度值中抽取更少的样本,由此保证所抽取的样本能够很好地反映近期数据的热度分布情况,使得基于抽样结果进行聚类后,能够更为准确地识别冷热数据。
进一步地,对抽样结果进行聚类时,质心的选择方法为:
统计抽样结果中样本极小值和样本极大值,在样本极小值和样本极大值之间划分多个区间,并统计各区间内的样本数;选取样本数量最多且不相邻的前k个区间的中心作为聚类的质心。
本发明基于样本极值划分区间,并选取样本数量最多且不相邻的前k个区间的中心作为聚类的质心,保证了所选取的质心能够粗略反映样本的热度分布情况,从而提高聚类的效率和准确度。
进一步地,本发明提供的基于热度的日志结构文件系统数据管理方法,还包括:
对于每一个日志,当写入其中的数据达到一个段的大小时,再将其中的数据批量写入文件系统的段中。
本发明当写入其中的数据达到一个段的大小时,再将其中的数据批量写入段中,能够延迟日志写入文件系统,有效提高日志结构文件系统的写入性能。
进一步地,本发明提供的基于热度的日志结构文件系统数据管理方法,还包括:
在将数据写入对应的日志之前,若待写入数据对应的日志中已写入了与所述待写入数据逻辑地址相同的数据,则不将所述待写入数据写入对应的日志,而直接在页缓存中完成数据更新;
当所述待写入数据对应的日志中的数据达到一个段的大小时,直接以所述待写入数据替代日志中与其逻辑地址相同的数据,连同日志中其余数据批量写入段中。
本发明通过上述操作,延迟了非同步写的热数据提交到日志,直接在页缓存中完成数据更新,由此能够避免因热数据快速失效带来的不必要的写日志操作,从而减少日志结构文件系统异地更新特性造成的索引数据写放大。
进一步地,本发明提供的基于热度的日志结构文件系统数据管理方法,还包括:
在段清理操作中,选择牺牲段时,以各段内所有有效块的热度值之和作为对应段的热度值。
传统日志结构文件系统数据管理方法在段清理操作中,采用Cost-Benefit(成本-效益)算法确定进行清理的牺牲段,该算法以段中最近写入有效块的热度值作为段的热度值,由于该方法基于一个文件块的热度值确定整个段的热度值,并且现有的日志结构文件系统对于冷热数据的识别精度不高,所以该方法并不能准确获取段的冷热属性,相应地,所选取的牺牲段也并不是最优的;本发明在能够准确识别冷热数据的基础上,利用整个段中所有的有效块共同确定段的热度值,能够准确获取段的冷热属性,从而选取最优的牺牲段。
进一步地,本发明提供的基于热度的日志结构文件系统数据管理方法,还包括:
在段清理操作中,确定进行清理的牺牲段之后,查询在最近一次检查点时牺牲段中所有的有效块,并确定在当前时刻各有效块是否仍然有效;
对于在最近一次检查点有效,在当前时刻同样有效的数据块,将其迁移至其他段中,同时,将迁移相关的直接索引节点写入文件系统,并在该直接索引节点中添加迁移标记;
对于在最近一次检查点有效,在当前时刻无效的数据块,获取该数据块的直接索引节点号inode,将直接索引节点号inode相关的脏索引块写入文件系统,同时,将直接索节点号inode记录到段清理日志文件中,并将段清理日志文件写入文件系统;
其中,迁移标记用于指示数据块在段清理过程中发生了迁移。
本发明在清理牺牲段的过程中,以最近一次检查点为基准,对于牺牲段中,在最近一次检查点有效且在当前时刻仍然有效的数据块,进行迁移并将相关的直接索引节点写入文件系统;对于在最近一次检查点有效而在当前时刻无效的数据块,则仅写入可能丢失的索引数据部分,即该数据块的直接索引节点号相关的脏索引块,由此能够避免写入无关的索引数据和文件系统元数据,有效减小文件系统写放大。
进一步地,数据的热度值为该数据对应的文件最近两次被更新的更新间距。
文件块最近两次更新间距(File block Update Distance,FUD),即文件系统两次写入的文件块的序号的差值;本发明以文件块最近两次更新间距作为相应数据的热度值,在热数据长期未更新变成冷数据的情况也能准确统计数据的热度值。
按照本发明的另一个方面,提供了一种计算机可读存储介质,该计算机可读存储介质包括存储的计算机程序,其中,在计算机程序被处理器运行时,控制存储介质所在设备执行本发明提供的基于热度的日志结构文件系统数据管理方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明通过对近期写入数据的热度值聚类,将数据的热度值划分为不同的热度类别,并利用不同的日志管理不同热度类别的数据,能够动态地准确地识别冷热数据,减小段清理开销和文件系统写放大。
(2)本发明通过持续追踪写入数据的热度值,并在数据热度值的分布发生变化时,重新通过聚类将数据的热度值划分为不同的热度类别,由此能够在负载发生动态变化时,仍然准确地识别冷热数据。
(3)本发明当写入其中的数据达到一个段的大小时,再将其中的数据批量写入段中,能够延迟日志写入文件系统,有效提高日志结构文件系统的写入性能。
(4)本发明延迟了非同步写的热数据提交到日志,直接在页缓存中完成数据更新,由此能够避免因热数据快速失效带来的不必要的写日志操作,从而减少日志结构文件系统异地更新特性造成的索引数据写放大。
(5)本发明在能够准确识别冷热数据的基础上,利用整个段中所有的有效块共同确定段的热度值,能够准确获取段的冷热属性,从而选取最优的牺牲段。
(6)本发明在清理牺牲段的过程中,对于自上一次检查点之后失效的数据块,仅写入可能丢失的索引数据部分,能够避免写入无关的索引数据和文件系统元数据,有效减小文件系统写放大。
(7)本发明在抽样时,从后写入的数据热度值中抽取更多的样本,从先写入的数据热度值中抽取更少的样本;基于样本极值划分区间,并选取样本数量最多且不相邻的前k个区间的中心作为聚类的质心;以文件块最近两次更新间距作为相应数据的热度值;这些手段能够有效保证准确识别冷热数据。
附图说明
图1为本发明实施例提供的基于热度的日志结构文件系统数据管理方法示意图;
图2为本发明实施例提供的基于动态识别冷热数据流程图;
图3为本发明实施例提供的多日志延迟写过程示意图;
图4为本发明实施例提供的多日志延迟写过程流程图;
图5为本发明实施例提供的清理牺牲段的流程图;
图6为本发明实施例提供的基于热度的日志结构文件系统数据管理方法执行系统示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例一:
一种基于热度的日志结构文件系统数据管理方法,如图1所示,包括:
追踪写入数据的热度值直至达到预设条件,并将所追踪的数据的热度值作为热度元数据进行缓存;
对所追踪的数据的热度值进行抽样后,对抽样结果进行聚类,以将数据的热度值划分为多个热度类别,热度类别总数为k;
在日志结构文件系统中维护k个日志,分别用于写入属于k个热度类别的数据;
其中,预设条件可根据负载的实际特性相应确定,以保证所追踪的数据热度值的抽样结果能够准确反映负载近期的热度分布情况;可选地,在本实施例中,所述预设条件为追踪的数据写入次数达到5000次;在本发明其他的一些实施例中,该预设条件也可以是固定长度的时间段,等等;
作为一种可选的实施方式,本实施例中,数据的热度值为该数据对应的文件最近两次被更新的更新间距(File block Update Distance,FUD),以保证在热数据长期未更新变成冷数据的情况也能准确统计数据的热度值;FUD值可使用CWS-LWS来计算FUD,CWS是文件系统当前写入的文件块序号,LWS表示某个文件块上次更新的文件块序号;系统中维护了总的写入块序号CWS,它随系统写入块数的增加而增加;在本发明其他一些实施例中,也可以使用其他的方式衡量数据的热度值,在此不做一一列举;
相应地,本实施例中,热度元数据具体包括热度值FUD,逻辑块地址LBA等等;热度元数据的缓存算法为LRU(Least Recently Used)算法,以逻辑地址为键维护一条热度条目缓存的LRU链表,该逻辑地址随着数据异地更新而更新;
作为一种可选的实施方式,本实施例对数据的热度值进行抽样的具体方法为:
先将LRU链表等分为前后两个部分,前半段数据,数据访问时间较远,从中抽取30%的样本,后半段表尾数据,写入时间较近,能反应近期负载的热度分布情况,从中抽取70%的样本;
应当说明的是,此处从前、后两部分数据中抽取样本的比例,可根据负载实际的动态特性确定,以保证所抽取的样本能够准确反映近期负载的热度分布情况;在本发明其他一些实施例中,从前、后两部分数据中抽取样本的比例可能相应调整为20%和80%,也可能是其他的比例,总体而言,两个比例之和为1,且从前半部分数据中抽取样本的比例小于从后半部分数据中抽取样本的比例;
作为一种可选的实施方式,在本实施例中,对抽样结果进行聚类时,质心的选择方法为:
统计抽样结果中样本极小值和样本极大值,在样本极小值和样本极大值之间划分多个区间,并统计各区间内的样本数;选取样本数量最多且不相邻的前k个区间的中心作为聚类的质心;
本实施例基于样本极值划分区间,并选取样本数量最多且不相邻的前k个区间的中心作为聚类的质心,保证了所选取的质心能够粗略反映样本的热度分布情况,从而提高聚类的效率和准确度;
在本实施例中,对数据热度值的抽样结果进行聚类时,所采用的聚类方法为K-means聚类算法;应当说明的是,此处仅为一种可选的实施方式,在本发明其他的一些实施例中,也可以使用均值漂移聚类(Mean Shift)等其他聚类算法。
本实施例通过对近期写入数据的热度值聚类,将数据的热度值划分为不同的热度类别,并利用不同的日志管理不同热度类别的数据,能够动态地准确地识别冷热数据,减小段清理开销和文件系统写放大。
实施例二:
一种基于热度的日志结构文件系统数据管理方法,本实施例与上述实施例一类似,所不同之处在于,本实施例还包括:
持续追踪写入数据的热度值并更新所缓存的热度元数据,以热度条件为分隔点,将整个追踪过程划分为多个追踪轮次;即每当追踪的数据的写入次数达到5000次,则当前追踪轮次结束,并开始下一追踪轮次;
在当前追踪轮次,若所追踪到的热度值,与对应数据在当前追踪轮次之前的热度值之间的差值超过预设的第一阈值,则判定该数据的热度值发生了变化;若在当前追踪轮次追踪的数据中,热度值发生变化的数据所占的比例超过预设的第二阈值,则判定数据的热度分布在当前追踪轮次发生了变化,重新对当前追踪轮次所追踪的数据的热度值进行抽样后,对抽样结果进行聚类,以更新所划分的热度类别;
具体过程如图2所示,文件块写入时追踪热度变化,实时通过系统的CWS和当前文件块的LWS计算新的FUD值,和旧的FUD值作比较,若新旧FUD值差距超过阈值,则记录发生变化的写入数n;实时统计追踪的写入次数m,直到追踪的写入次数达到5000次,停止当前追踪轮次的追踪过程,接着判断发生变化的写入次数占追踪过程中总写入次数的比例n/m,若发生变化的比例超过阈值则认定当前数据热度分布发生了变化,通过抽样聚类的计算方法重新进行热度类别的划分。
本实施例通过持续追踪写入数据的热度值,并在数据热度值的分布发生变化时,重新通过聚类将数据的热度值划分为不同的热度类别,由此能够在负载发生动态变化时,仍然准确地识别冷热数据。
实施例三:
一种基于热度的日志结构文件系统数据管理方法,本实施例与上述实施例一类似,所不同之处在于,本实施例还包括:
对于每一个日志,当写入其中的数据达到一个段的大小时,再将其中的数据批量写入段中,由此能够延迟日志写入文件系统,有效提高日志结构文件系统的写入性能;
为了进一步提高日志结构文件系统的性能,本实施例还包括:
在将数据写入对应的日志之前,若待写入数据对应的日志中已写入了与所述待写入数据逻辑地址相同的数据,则不将所述待写入数据写入对应的日志,而直接在页缓存中完成数据更新;
当所述待写入数据对应的日志中的数据达到一个段的大小时,直接以所述待写入数据替代日志中与其逻辑地址相同的数据,连同日志中其余数据批量写入段中;
本发明通过上述操作实现了多日志延迟写,具体实施时,可以维护一个数据页(page)的状态,用于表示该数据页是否已经位于日志的延迟队列中,即该数据页是否已经写入了日志中,具体写入过程如图3所示:
放置不同热度数据的日志位于页缓存和文件系统之间的内存中,数据从页缓存准备写入文件系统时,若当前页正处于日志延迟写状态,则直接在页缓存中完成数据更新;否则,根据冷热数据识别结果,将当前页划写入对应的日志;若日志中的延迟页数不足一个段大小(闪存友好型文件系统是一种典型的日志结构文件系统,其一个段包括512个页),则延迟提交日志到文件系统,直到日志积累的延迟页数达到一个段大小后,再统一地批量提交;在日志提交到文件系统时,通过批量写入日志数据,增大单次写请求大小,减少多日志随机写对文件系统写性能的影响;
采用上述多日志延迟写,对数据的处理具体如图4所示:
数据从虚拟文件系统写入后,先在页缓存中获取文件块缓存页page和热度值FUD,若page的状态显示已经处于某个日志的延迟队列中,则直接将page停留在页缓存,等待所属日志批量写入文件系统;否则,用当前FUD值通过冷热数据识别模块识别热度类别(这里页page和日志结构文件系统中的块大小一致),并将page提交给对应日志;
然后判断当前日志中的数据是否满一个段大小(一般地,为512个页),若已满段大小,则将日志中所有延迟页批量写入文件系统中,并将日志中记录的所有状态清零,重新统计;否则,将page加入日志延迟队列,并将日志的延迟页数加一,修改page的状态为正处于日志延迟队列中,等待批量写入。
本发明通过上述操作,延迟了日志写入文件系统,当写入其中的数据达到一个段的大小时,再将其中的数据批量写入段中,有效提高日志结构文件系统的写入性能。
实施例四:
一种基于热度的日志结构文件系统数据管理方法,本实施例与上述实施例1类似,所不同之处在于,本实施例还包括:
在段清理操作中,选择牺牲段时,以各段内所有有效块的热度值之和作为对应段的热度值;
计算得到段的热度值之后,就可以结合段中有效块的数量,选取迁移开销最小的段作为牺牲段;
可以看到,本实施例确定牺牲段的方式与传统的Cost-Benefit算法类似,所不同之处在于,传统的Cost-Benefit算法以段的最近一次修改时间作为age用在计算公式中,段的热度计算受某一个块的影响,相当于以段中某一个有效块的热度作为整个段的热度值,而本实施例以各段内所有有效块的热度值之和作为对应段的热度值;
相比于传统的获取牺牲段的方法,实施例在能够准确识别冷热数据的基础上,利用整个段中所有的有效块共同确定段的热度值,能够准确获取段的冷热属性,从而选取最优的牺牲段;
为了进一步优化日志结构文件系统的性能,本实施例还包括:
在段清理操作中,确定进行清理的牺牲段之后,查询在最近一次检查点时牺牲段中所有的有效块,并确定在当前时刻各有效块是否仍然有效;
对于在最近一次检查点有效,在当前时刻同样有效的数据块,将其迁移至其他段中,同时,将迁移相关的直接索引节点写入文件系统,并在该直接索引节点中添加迁移标记;
对于在最近一次检查点有效,在当前时刻无效的数据块,获取该数据块的直接索引节点号inode,将直接索引节点号inode相关的脏索引块写入文件系统,同时,将直接索节点号inode记录到段清理日志文件中,并将段清理日志文件写入文件系统;
其中,迁移标记用于指示数据块在段清理过程中发生了迁移;
在实际应用中,为了查询牺牲段在最近一次检查点时的有效块,可查询牺牲段在上一检查点时的有效块位图;以victim表示迁移标记,以victim_free_journal表示段清理日志文件,则按照上述方法选定牺牲段后,清理该牺牲段的具体过程如图5所示:
查询牺牲段在上一检查点时的有效块位图,获取该状态下的有效块,判断有效块在当前状态是否仍然有效。若有效,则通过段清理迁移,把相关的直接索引节点写入文件系统,添加victim标记;否则,通过文件系统中的SSA(SegmentSummaryArea)获取块的直接索引节点号inode,将索引节点页缓存中属于该inode的脏索引块写入文件系统,并将inode记录到victim_free_journal中,最后释放牺牲段;其中victim_free_journal记录了释放牺牲段被重写后,会受到影响的直接索引节点的信息,包括直接索引节点号和记录的直接索引节点数目。
在传统的段清理方法中,在牺牲段释放时,为了维护文件系统一致性,会执行创建检查点的操作,该操作会写入无关索引数据和文件系统元数据,造成文件系统写放大;
与传统的段清理方法相比,本实施例在清理牺牲段的过程中,仅写入可能丢失的索引数据部分,能够避免写入无关的索引数据和文件系统元数据,有效减小文件系统写放大。
结合以上实施例可知,与现有技术相比,本发明通过K-means数据聚类识别冷热数据、热度的元数据缓存、多日志延迟写入优化和段清理牺牲段优化对日志结构文件系统的数据管理方法进行了改进,其中,多日志延迟写入优化具体包括多级日志维护、日志批量提交和热数据延迟写,段清理时牺牲段的优化包括考虑热度的牺牲段选择和牺牲段释放优化过程。应当说明的是,上述实施例所作出的改进,也可以有其他的组合方式,也可以在同一个数据管理方法中同时实现。如图6所示,实际应用中,数据读写操作经虚拟文件系统进入实际挂载的日志结构文件系统,使用本发明提供的基于热度的日志结构文件系统管理方法优化写入逻辑地址的过程,然后通过闪存转换层映射写入闪存设备中。最终,系统的整体性能将得到有效提升。
实施例五:
一种计算机可读存储介质,该计算机可读存储介质包括存储的计算机程序,其中,在计算机程序被处理器运行时,控制存储介质所在设备执行上述任一实施例提供的基于热度的日志结构文件系统数据管理方法。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于热度的日志结构文件系统数据管理方法,其特征在于,包括:
追踪写入数据的热度值直至达到预设条件,并将所追踪的数据的热度值作为热度元数据进行缓存;
对所追踪的数据的热度值进行抽样后,对抽样结果进行聚类,以将数据的热度值划分为多个热度类别,热度类别总数为k;
在日志结构文件系统中维护k个日志,分别用于写入属于k个热度类别的数据。
2.如权利要求1所述的基于热度的日志结构文件系统数据管理方法,其特征在于,还包括:
持续追踪写入数据的热度值并更新所缓存的热度元数据,以所述热度条件为分隔点,将整个追踪过程划分为多个追踪轮次;
在当前追踪轮次,若所追踪到的热度值,与对应数据在当前追踪轮次之前的热度值之间的差值超过预设的第一阈值,则判定该数据的热度值发生了变化;若在当前追踪轮次追踪的数据中,热度值发生变化的数据所占的比例超过预设的第二阈值,则判定数据的热度分布在当前追踪轮次发生了变化,重新对当前追踪轮次所追踪的数据的热度值进行抽样后,对抽样结果进行聚类,以更新所划分的热度类别。
3.如权利要求1或2所述的基于热度的日志结构文件系统数据管理方法,其特征在于,对数据的热度值进行抽样,其方法为:
按照数据写入时间的先后顺序,对所追踪到的热度值进行排序,并将排序之后的热度值等分为两个部分;
按照预设的第一比例从先写入的一部分数据的热度值中抽取部分样本,并按照预设的第二比例从后写入的一部分数据的热度值中抽取部分样本,由两部分样本共同作为抽样结果;
其中,所述第一比例与所述第二比例之和为1,且所述第一比例小于所述第二比例。
4.如权利要求3所述的基于热度的日志结构文件系统数据管理方法,其特征在于,对抽样结果进行聚类时,质心的选择方法为:
统计所述抽样结果中样本极小值和样本极大值,在所述样本极小值和所述样本极大值之间划分多个区间,并统计各区间内的样本数;选取样本数量最多且不相邻的前k个区间的中心作为聚类的质心。
5.如权利要求1或2所述的基于热度的日志结构文件系统数据管理方法,其特征在于,还包括:
对于每一个日志,当写入其中的数据达到一个段的大小时,才将其中的数据批量写入文件系统的段中。
6.如权利要求5所述的基于热度的日志结构文件系统数据管理方法,其特征在于,还包括:
在将数据写入对应的日志之前,若待写入数据对应的日志中已写入了与所述待写入数据逻辑地址相同的数据,则不将所述待写入数据写入对应的日志,而直接在页缓存中完成数据更新;
当所述待写入数据对应的日志中的数据达到一个段的大小时,直接以所述待写入数据替代日志中与其逻辑地址相同的数据,连同日志中其余数据批量写入段中。
7.如权利要求1或2所述的基于热度的日志结构文件系统数据管理方法,其特征在于,还包括:
在段清理操作中,选择牺牲段时,以各段内所有有效块的热度值之和作为对应段的热度值。
8.如权利要求7所述的基于热度的日志结构文件系统数据管理方法,其特征在于,还包括:
在段清理操作中,确定进行清理的牺牲段之后,查询在最近一次检查点时所述牺牲段中所有的有效块,并确定在当前时刻各有效块是否仍然有效;
对于在最近一次检查点有效,在当前时刻同样有效的数据块,将其迁移至其他段中,同时,将迁移相关的直接索引节点写入文件系统,并在该直接索引节点中添加迁移标记;
对于在最近一次检查点有效,在当前时刻无效的数据块,获取该数据块的直接索引节点号inode,将直接索引节点号inode相关的脏索引块写入文件系统,同时,将直接索节点号inode记录到段清理日志文件中,并将所述段清理日志文件写入文件系统;
其中,迁移标记用于指示数据块在段清理过程中发生了迁移。
9.如权利要求1或2所述的基于热度的日志文件系统数据管理方法,其特征在于,数据的热度值为该数据对应的文件最近两次被更新的更新间距。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序被处理器运行时,控制所述存储介质所在设备执行权利要求1-8任一项所述的基于热度的日志结构文件系统数据管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010705796.6A CN111913924B (zh) | 2020-07-21 | 2020-07-21 | 一种基于热度的日志结构文件系统数据管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010705796.6A CN111913924B (zh) | 2020-07-21 | 2020-07-21 | 一种基于热度的日志结构文件系统数据管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913924A true CN111913924A (zh) | 2020-11-10 |
CN111913924B CN111913924B (zh) | 2024-03-19 |
Family
ID=73281926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010705796.6A Active CN111913924B (zh) | 2020-07-21 | 2020-07-21 | 一种基于热度的日志结构文件系统数据管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913924B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150254013A1 (en) * | 2014-03-05 | 2015-09-10 | Electronics And Telecommunications Research Institute | Method for storing metadata of log-structured file system for flash memory |
CN109471875A (zh) * | 2018-09-25 | 2019-03-15 | 网宿科技股份有限公司 | 基于缓存数据的热度管理方法、服务器及存储介质 |
CN110554999A (zh) * | 2018-05-31 | 2019-12-10 | 华为技术有限公司 | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 |
CN110765037A (zh) * | 2018-07-27 | 2020-02-07 | 湖南移商动力网络技术有限公司 | 一种热数据智能识别的ubifs数据闪存系统 |
CN111078143A (zh) * | 2019-11-27 | 2020-04-28 | 华中科技大学 | 基于段映射进行数据布局和调度的混合存储方法及系统 |
-
2020
- 2020-07-21 CN CN202010705796.6A patent/CN111913924B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150254013A1 (en) * | 2014-03-05 | 2015-09-10 | Electronics And Telecommunications Research Institute | Method for storing metadata of log-structured file system for flash memory |
CN110554999A (zh) * | 2018-05-31 | 2019-12-10 | 华为技术有限公司 | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 |
CN110765037A (zh) * | 2018-07-27 | 2020-02-07 | 湖南移商动力网络技术有限公司 | 一种热数据智能识别的ubifs数据闪存系统 |
CN109471875A (zh) * | 2018-09-25 | 2019-03-15 | 网宿科技股份有限公司 | 基于缓存数据的热度管理方法、服务器及存储介质 |
CN111078143A (zh) * | 2019-11-27 | 2020-04-28 | 华中科技大学 | 基于段映射进行数据布局和调度的混合存储方法及系统 |
Non-Patent Citations (3)
Title |
---|
任育伟 等: "基于查询热度和实体识别的查询推荐", 计算机应用研究, 6 September 2015 (2015-09-06) * |
李红燕, 王力: "日志结构文件系统技术的研究", 计算机应用研究, no. 01, 28 January 2003 (2003-01-28) * |
陈游?;朱博弘;韩银俊;屠要峰;舒继武;: "一种持久性内存文件系统数据页的混合管理机制", 计算机研究与发展, no. 02, 15 February 2020 (2020-02-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN111913924B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220100377A1 (en) | Memory system and method of controlling memory system | |
US10387315B2 (en) | Region migration cache | |
US9767140B2 (en) | Deduplicating storage with enhanced frequent-block detection | |
US9235508B2 (en) | Buffer management strategies for flash-based storage systems | |
US8712984B2 (en) | Buffer pool extension for database server | |
US5778430A (en) | Method and apparatus for computer disk cache management | |
US8719501B2 (en) | Apparatus, system, and method for caching data on a solid-state storage device | |
Liu et al. | Hybrid storage management for database systems | |
Lv et al. | Operation-aware buffer management in flash-based systems | |
CN109446117B (zh) | 一种固态硬盘页级闪存转换层设计方法 | |
JP2012141946A (ja) | 半導体記憶装置 | |
Lee et al. | iLSM-SSD: An intelligent LSM-tree based key-value SSD for data analytics | |
CN105917303A (zh) | 一种控制器、识别数据块稳定性的方法和存储系统 | |
CN113672166A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109002400B (zh) | 一种内容感知型计算机缓存管理系统及方法 | |
He et al. | Improving update-intensive workloads on flash disks through exploiting multi-chip parallelism | |
On et al. | Lazy-update B+-tree for flash devices | |
Fevgas et al. | LB-Grid: An SSD efficient grid file | |
Kim et al. | Optimizing key-value stores for flash-based ssds via key reshaping | |
CN111913924A (zh) | 一种基于热度的日志结构文件系统数据管理方法 | |
Lakshman et al. | Magma: A high data density storage engine used in couchbase | |
Yang et al. | M2H: Optimizing F2FS via multi-log delayed writing and modified segment cleaning based on dynamically identified hotness | |
CN113296686A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN111796757B (zh) | 一种固态硬盘缓存区管理方法和装置 | |
Zhang et al. | HaLSM: A Hotspot-aware LSM-tree based Key-Value Storage Engine |
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 |