CN108804019A - 一种数据存储方法及装置 - Google Patents

一种数据存储方法及装置 Download PDF

Info

Publication number
CN108804019A
CN108804019A CN201710289023.2A CN201710289023A CN108804019A CN 108804019 A CN108804019 A CN 108804019A CN 201710289023 A CN201710289023 A CN 201710289023A CN 108804019 A CN108804019 A CN 108804019A
Authority
CN
China
Prior art keywords
sstable
groups
target
free space
continuous free
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
Application number
CN201710289023.2A
Other languages
English (en)
Other versions
CN108804019B (zh
Inventor
姚婷
王中华
万继光
桂清鑫
戴芬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Huazhong University of Science and Technology
Original Assignee
Huawei Technologies Co Ltd
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Huazhong University of Science and Technology filed Critical Huawei Technologies Co Ltd
Priority to CN201710289023.2A priority Critical patent/CN108804019B/zh
Publication of CN108804019A publication Critical patent/CN108804019A/zh
Application granted granted Critical
Publication of CN108804019B publication Critical patent/CN108804019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

一种数据存储方法及装置,用以解决将瓦记录技术与LSM树技术结合应用时导致多重的读写放大,降低存储系统性能的问题。所述数据存储方法包括:从瓦记录SMR磁盘上确定能够存储目标排序字符串表SSTable组的目标磁轨带band;其中,目标SSTable组存储于日志结构合并LSM树中,所述LSM树包括至少两层,每一层包括至少一个SSTable,每一层中的键值范围位于上一层中一个SSTable的键值范围内的至少两个SSTable为一个SSTable组;在所述目标band内存储所述目标SSTable组。

Description

一种数据存储方法及装置
技术领域
本申请涉及存储技术领域,尤其涉及一种数据存储方法及装置。
背景技术
叠瓦式磁记录(shingled magnetic recording,SMR)是提高磁盘存储密度的一种技术,其原理是磁盘上的相邻磁道部分重叠,像重叠屋瓦一样记录数据,通常又称作瓦记录。在瓦记录磁盘中写入数据时,写当前磁道时会重叠覆盖后续K个磁道,对覆盖磁道的数据造成破坏,为了避免整个磁盘范围内的数据重写,瓦记录磁盘表面分成多个磁轨带(band),相邻band之间用隔离带(gap)分开。
日志结构合并(log structured合并,LSM)树是一种广泛应用于数据存储领域的结构。LSM树针对随机I/O对持久化存储的性能影响问题,做了如下设计:
(1)数据分层放置:数据在最初时写入的是存储系统(以LSM树结构存储数据的系统)中的内存空间,再从上到下逐渐写入其他层次的硬盘驱动器(Hard Disk Drive,HDD)或固态硬盘(Solid State Drive,SSD)等持久化存储设备中。
(2)数据异地更新,将key-value结构的数据以日志(log)的方式写入。
(3)系统的后台进程不断地将数据从上层到下层(即从level0到level N)合并,将键(key)值相同的数据中的较旧的版本删除,保留排序的新版本。数据随着合并的进行,数据不断由上层存储空间向下层存储空间移动。
LSM树的每一层包括一个或一个以上的排序字符串表(Sorted String Table,SSTable),相邻两层中下层的多个(例如10个左右)SSTable的键值范围的集合等于上层的一个SSTable的键值范围。在相邻两层进行合并时,针对上层的一个SSTable,要从下层读取多个SSTable,这多个SSTable的键值范围集合等于上层SSTable的键值范围,在将上层SSTable的键值与下层的多个SSTable的键值合并后,再写回下层的多个SSTable。因此,相邻两层的合并,需要进行多个SSTable的写操作。
可见,瓦记录技术和LSM树技术都具有读写放大的特性,在将二者结合应用时,将导致多重的读写放大,降低存储系统性能。
发明内容
本申请提供一种数据存储方法及装置,用以解决现有技术中存在的将瓦记录技术与LSM树技术结合应用时导致多重的读写放大,降低存储系统性能的问题。
第一方面,本申请实施例提供了一种数据存储方法,包括:在需要存储SSTable组中的多个SSTable时,从瓦记录SMR磁盘上确定能够存储目标SSTable组的目标磁轨带band,其中,目标SSTable组存储于日志结构合并LSM树中,所述LSM树包括至少两层,每一层包括至少一个SSTable,每一层中的键值范围位于上一层中一个SSTable的键值范围内的至少两个SSTable为一个SSTable组;然后,在所述目标band内存储所述目标SSTable组。
由于在相邻两层进行键值合并时下层读写操作的单位都是一个SSTable组,将一个SSTable组存储在SMR磁盘的一个band内,不仅可以减少寻址耗时,而且,由于SMR磁盘的一个band用于存储一个SSTable组,而不是单个SSTable,保证band具有足够的大小,能够充分发挥SMR磁盘的扩容优势。再者,在一个band写入SSTable组也能够避免SMR磁盘的读写放大特性影响LSM树的性能。
作为一种可选的方式,采用动态band技术来为SSTable组分配band。所谓动态band,指的是在SMR磁盘的空闲空间中插入有效数据时在有效数据末尾预留一个隔离带的位置,而并不在该隔离带位置设置一个物理隔离带。因此,从SMR磁盘中确定能够容纳目标SSTable组以及一个隔离带的连续空闲空间,该连续空闲空间可以作为目标band。采用动态band技术后,SMR磁盘的每个动态band的大小与其所存储的SSTable组是适配的,能够有效避免SMR磁盘存储空间的浪费。
作为一种可选的方式,从所述SMR磁盘中确定目标band时,从SMR磁盘中确定能够容纳目标SSTable组以及一个隔离带的所有连续空闲空间中容量最小的连续空闲空间,将容量最小的连续空闲空间作为存储目标SSTable组的连续空闲空间,进而充分利用连续空闲空间。
作为一种可选的方式,从所述SMR磁盘中确定目标band时,确定SMR磁盘的每个连续空闲空间物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值,将键值作为连续空闲空间的特征值;将特征值与目标SSTable组存储的首个键值最接近的连续空闲空间作为存储目标SSTable组的连续空闲空间。上述方式中,将相近键值范围的SSTable组尽可能的放置在相邻物理位置,会大大优化LSM树的查找性能。
作为一种可选的方式,从所述SMR磁盘中确定目标band时,从SMR磁盘中确定能够容纳目标SSTable组以及一个隔离带的所有连续空闲空间中容量最小的连续空闲空间,在确定的容量最小的连续空闲空间的个数大于1时,确定每个所述容量最小的连续空闲空间的特征值,所述特征值为与连续空闲空间的物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值;将特征值与目标SSTable组存储的首个键值最接近的容量最小的连续空闲空间作为存储目标SSTable组的连续空闲空间。上述方式中,既提高SMR磁盘的利用率,也优化LSM树的查找性能。
作为一种可选的方式,从所述SMR磁盘中确定目标band时,确定与所述SMR磁盘的每个连续空闲空间的物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值,将键值作为连续空闲空间的特征值;在特征值与目标SSTable组存储的首个键值最接近的连续空闲空间的个数大于1时,确定其中最小的连续空闲空间作为存储目标SSTable组的连续空闲空间。上述方式中,既提高SMR磁盘的利用率,也优化LSM树的查找性能。
作为一种可选的方式,在所述目标band内存储所述目标SSTable组时,在所述目标band中紧邻已存储的SSTable组的位置追加写入所述目标SSTable组。在上述方式中,SSTable组均存储在SMR磁盘的空闲空间上,采用异地更新的方式对SSTable组进行更新,故而采用追加写的方式在目标band中写入目标SSTable组,既不会对SMR磁盘上已存数据造成影响,而且后续再SMR磁盘上写入新数据也不会对追加写方式写入的SSTable组产生影响。由于两个SSTable组之间可以没有gap,减少了磁盘空间浪费,提高SMR磁盘利用率。
作为一种可选的方式,在相邻两层中上层第一SSTable与下层第一SSTable组进行键值合并后,将所述SMR磁盘中原用于存储所述上层第一SSTable以及所述下层第一SSTable组的存储空间设置为空闲空间,进而提高SMR磁盘的存储空间的利用率,其中,所述第一SSTable为上层包括的至少一个SSTable中的任意一个,所述第一SSTable组为下层中与所述第一SSTable键值范围相对应的SSTable组。
作为一种可选的方式,在预设条件满足时,对SMR磁盘上分散的空闲空间进行整理,通过将分散的空闲空间之间的数据迁移,使得分散的空闲空间合并为一个连续的空闲空间,提高SMR磁盘的利用率。
作为一种可选的方式,触发对SMR磁盘上分散的空闲空间进行整理的预设条件可以为:在定时整理磁盘的方案中,在预定的时刻到达时即触发对空闲空间的整理;或者,管理所述SMR磁盘的设备的负载低于设置阈值时触发对空闲空间的整理;或者,SMR磁盘的空闲空间的容量小于预设阈值触发对空闲空间的整理;或者,SMR磁盘无法满足SSTable组的写需求时触发对空闲空间的整理。
作为一种可选的方式,基于以下原则从SMR磁盘上选择待整理的区域,包括:选择SMR磁盘中分散的空闲空间最多的存储区域作为待整理区域;或者,选择选择SMR磁盘中分散的空闲空间最离散的存储区域作为待整理区域;或者,综合分散的空闲空间的数量以及离散程度,选择分散的空闲空间的数量较多、分散程度较大的区域作为待整理区域。
第二方面,本申请实施例提供一种数据存储装置,包括:确定模块,用于从瓦记录SMR磁盘上确定能够存储目标SSTable组的目标磁轨带band,其中,目标SSTable组存储于日志结构合并LSM树中,所述LSM树包括至少两层,每一层包括至少一个SSTable,每一层中的键值范围位于上一层中一个SSTable的键值范围内的至少两个SSTable为一个SSTable组;存储模块,用于在所述目标band内存储所述目标SSTable组。
作为一种可选的方式,所述确定模块用于:从所述SMR磁盘中确定能够容纳所述目标SSTable组以及一个隔离带的连续空闲空间,将所述连续空闲空间作为所述目标band。
作为一种可选的方式,所述确定模块用于:从所述SMR磁盘中确定能够容纳所述目标SSTable组以及一个隔离带的所有连续空闲空间中容量最小的连续空闲空间,将所述容量最小的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间。
作为一种可选的方式,所述确定模块用于:在确定的所述容量最小的连续空闲空间的个数大于1时,确定每个所述容量最小的连续空闲空间物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值,将所述键值作为所述容量最小的连续空闲空间的特征值;将特征值与所述目标SSTable组存储的首个键值最接近的所述容量最小的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间。
作为一种可选的方式,所述确定模块用于:确定所述SMR磁盘的每个连续空闲空间物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值,将所述键值作为所述连续空闲空间的特征值;将特征值与所述目标SSTable组存储的首个键值最接近的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间。
作为一种可选的方式,所述存储模块用于:在所述目标band中紧邻已存储的SSTable组的位置追加写入所述目标SSTable组。
作为一种可选的方式,数据存储装置还包括删除模块,用于:在相邻两层中上层第一SSTable与下层第一SSTable组进行键值合并后,将所述SMR磁盘中原用于存储所述上层第一SSTable以及所述下层第一SSTable组的存储空间设置为空闲空间,其中,所述第一SSTable为上层包括的至少一个SSTable中的任意一个,所述第一SSTable组为下层中与所述第一SSTable键值范围相对应的SSTable组。
第三方面,本申请实施例还提供一种数据存储装置,包括:存储器,存储有计算机指令;处理器,与所述存储器相连,用于调用所述存储器中存储的计算机指令,以执行第一方面或第一方面任一可选的实施方式所述的数据存储方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述可读存储介质中存储有计算机指令,所述指令在计算机上运行时,使得计算机执行第一方面或第一方面任一可选的实施方式所述的数据存储方法。
附图说明
图1为LSM树的示意图;
图2为本申请实施例提供的数据存储方法的流程示意图;
图3a至图3d为对SMR磁盘进行操作的示意图;
图4为本申请实施例中空闲空间链表的示意图;
图5至图6为从SMR磁盘选择待整理区域的示意图;
图7为本申请实施例提供的数据存储装置的示意图;
图8为本申请实施例提供的另一数据存储装置的示意图。
具体实施方式
本申请实施例提供一种数据存储方法及装置,用以解决将瓦记录技术与LSM树技术结合应用时导致多重的读写放大,降低存储系统性能的问题。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
LSM树是一种有序非本地更新的数据结构,在基于LSM树的Key-Value分布式存储系统中,Key-Value数据分层存储。LSM包括多层(level),当某层的数据大小超过预设阈值时,该层中的某个键范围(key range)内的数据与下一层中的相同的键范围内的数据进行合并操作。因此,先写入LSM的数据经过多次合并排序之后,一般被置于相对较大的层级,而后写入LSM的数据则被置于相对较小的层级。
图1所示为LSM树的一种可能的存储结构的示意图,LSM树包括7层,自上而下将每层分别标记为Li,其中,0≤i≤6,从第0层到第6层每层的存储空间大小呈递增趋势,也就是,第0层的存储空间最小,第6层的存储空间最大;通常,第0层设置在内存中,也是数据最开始写入的一层,其他各层设置在持久化存储设备(如磁盘)中;根据键值将每层划分为多个键范围,不同键值范围的键值存储在不同的SSTable中。
例如:L2层包括四个SSTable,分别为SSTable21~SSTable24,键值范围分别为K1-K100、K101-K200、K201-K300、K301-K400;而在L3层中键值的数量远大于L2层键值的数量,因此,针对L2层中的一个SSTable,L3层中需要多个(如几个或十几个)SSTable来存储L2层中的一个SSTable键值范围内的键值。以L2层的SSTable21为例,其键值范围为K1-K100,L3层中SSTable31~SSTable34的键值范围集合才为K1-K100。在L2层中数据大小超过预设阈值时,按照轮询规则确定L2层中待合并的键范围的SSTable,例如待合并的SSTable为SSTable21,则需要从L3层中读取键值范围属于K1-K100的SSTable31~SSTable34,将SSTable21与SSTable31~SSTable34的键值进行合并排序操作,具体是,从相同的键值中确定一个最新版本,删除所有旧版本,实现对键值的压缩,然后,对各键值进行排序,将压缩排序之后的键值写入到L3的SSTable31~SSTable34中。
可见,在LSM树中,相邻层之间的键值合并后需要在下层中写入多个SSTable,而在采用瓦记录技术的持久化存储设备时,多个SSTable的写入量被进一步放大,导致数据存储系统的效率低下。
现有技术中解决上述问题的一种方式为:将一个SSTable对应SMR磁盘的一个band,这样,在LSM树的相邻层进行键值合并后,向下层写入排序合并后的K个SSTable时,只需要在SMR磁盘的K个band内分别写入SSTable。但是,为了使LSM树具有较高的搜索效率以及较小的合并开销,LSM树的一个SSTable不能设置的过大,导致SMR磁盘的band较小,而过小的band使SMR磁盘容量减小,削减SMR磁盘的容量优势。
下面结合附图介绍本申请实施例提供的数据存储方法,本申请实施例提出SSTable组的概念,所谓SSTable组指LSM树结构的每一层中的键值范围位于上一层中一个SSTable的键值范围内的至少两个SSTable。例如,图1所示的L3层中的SSTable31~SSTable34的键值范围分别为:K1~K25、K26~K50、K51~K75、K76~K100,这四个SSTable键值范围的集合等于L2层中SSTable21的键值范围,则确定SSTable31~SSTable34为一个SSTable组。需要说明的是,在一些LSM树结构中,LSM树中的L1和L2中同一层中的两个SSTable的键值可以重叠,在这种情况下,可以不在L1和L2中设置SSTable组。
图2所示为本申请实施例提供的数据存储方法,包括如下步骤:
步骤101:从SMR磁盘上确定能够存储目标SSTable组的目标band。
步骤102:在目标band内存储目标SSTable组。
例如,将SSTable31~SSTable34所形成的SSTable组存储在一个band内,这样,在对L2层的SSTable21的键值进行压缩合并时,将SSTable21以及SSTable31~SSTable34读入内存进行合并排序操作,然后,形成新的K1~K100范围的键值排序,该新的键值排序由L3层中的SSTable31~SSTable34保存,其中,SSTable31保存该新的键值排序中K1~K25范围内的键值,SSTable32保存该新的键值排序中K26~K50范围内的键值,以此类推。然后,在SMR磁盘中写入新的SSTable31~SSTable34,由于SSTable31~SSTable34形成一个SSTable组,将被保存在SMR磁盘的一个band内。该SSTable组的写操作可以是就地更新,也可以是异地更新,就地更新即在存储该SSTable组原band内覆盖写入新的SSTable组,异地更新指的是将SSTable组写入空闲的band内。
本申请实施例上述技术方案中,将一个SSTable组存储在SMR磁盘的一个band内,可以带来很多好处:
其一,由于在相邻两层进行键值合并时下层读操作的单位都是一个SSTable组,将一个SSTable组存储在SMR磁盘的一个band内,读操作时只需要进行一次SSTable组的寻址,寻址耗时短。与现有技术中将SSTable组内的不同SSTable存储在不同band内时,需要针对每个SSTable进行寻址,寻址总耗时较长。因此,将一个SSTable组存储在SMR磁盘的一个band内,可以大幅减少读取SSTable时的读寻址耗时。
其二,由于在相邻两层进行键值合并后在下层写入合并后的键值时,写操作的单位是一个SSTable组,将一个SSTable组存储在SMR磁盘的一个band内,写操作时只需要进行一次SSTable组的寻址,寻址耗时短。更重要的是,由于SMR磁盘的一个band用于存储一个SSTable组,而不是单个SSTable,保证band具有足够的大小,能够充分发挥SMR磁盘的扩容优势。再者,在一个band写入SSTable组也能够避免SMR磁盘的读写放大特性影响LSM树的性能。
本申请实施例中,步骤101可以有多种实现方式,包括:
方式1,SMR磁盘被划分为多个band,相邻band之间用隔离带分开。执行步骤101时,查找SMR磁盘中空闲的band中能够容纳目标SSTable组的band作为目标band。可选的,从SMR磁盘的能够容纳目标SSTable组的空闲band中选择最小的band作为目标band,提高band的利用率。
方式2,采用动态band技术来为SSTable组分配band。
所谓动态band,指的是在SMR磁盘的空闲空间中插入有效数据时在有效数据末尾预留一个隔离带的位置,而并不在该隔离带位置设置一个物理隔离带。执行步骤101时,从SMR磁盘中确定能够容纳目标SSTable组以及一个隔离带的连续空闲空间,将连续空闲空间作为目标band。在该目标band写入SSTable组后,由于该SSTable组后预留有一个隔离带的位置,因此,写入SSTable组的写操作不会覆盖SMR磁盘上的已有数据,避免写操作的放大效应。
因为不同SSTable组的大小可以不同,且同一SSTable组的大小也可能发生变化,如果SMR磁盘采用固定band,势必造成SMR磁盘的空间浪费。而采用动态band技术后,SMR磁盘的每个动态band的大小与其所存储的SSTable组是适配的,能够有效避免SMR磁盘存储空间的浪费。
可选的,上述方式2中为目标SSTable组分配动态band可以采用如下方式实现:
其一,基于容量确定目标band。
从SMR磁盘中确定能够容纳目标SSTable组以及一个隔离带的所有连续空闲空间中容量最小的连续空闲空间,将容量最小的连续空闲空间作为存储目标SSTable组的连续空闲空间,进而充分利用连续空闲空间。
其二,基于SSTable组之间的连续性确定目标band。
确定SMR磁盘的每个连续空闲空间物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值,将键值作为连续空闲空间的特征值;将特征值与目标SSTable组存储的首个键值最接近的连续空闲空间作为存储目标SSTable组的连续空闲空间。
上述方式中,将相近key范围的SSTable组尽可能的放置在相邻物理位置,会大大优化LSM树的查找性能。
其三,结合其一与其二的方案,以其一的方案优先。
从SMR磁盘中确定能够容纳目标SSTable组以及一个隔离带的所有连续空闲空间中容量最小的连续空闲空间,在确定的容量最小的连续空闲空间的个数大于1时,确定每个容量最小的连续空闲空间物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值,将键值作为容量最小的连续空闲空间的特征值;将特征值与目标SSTable组存储的首个键值最接近的容量最小的连续空闲空间作为存储目标SSTable组的连续空闲空间。
其四,结合其一与其二的方案,以其二的方案优先。
确定SMR磁盘的每个连续空闲空间物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值,将键值作为连续空闲空间的特征值;在特征值与目标SSTable组存储的首个键值最接近的连续空闲空间的个数大于1时,确定其中最小的连续空闲空间作为存储目标SSTable组的连续空闲空间。
上述其三以及其四的方案,既提高SMR磁盘的利用率,也优化LSM树的查找性能。
可选的,结合上述方式2,在采用动态band技术时,可以采用追加写的方式在目标band中写入目标SSTable组。所谓追加写的方式,指的是在目标band中紧邻已存储的SSTable组的位置追加写入目标SSTable组。
例如在图3a中,SMR磁盘上已存储有SSTable组1,在SSTable组a后预留有隔离带gap的位置。在图3b中,在需要存储SSTable组b时,不在该gap之后写入SSTable组b,而是直接在SSTable组a之后写入SSTable组b。
在本实现方式中,SSTable组均存储在SMR磁盘的空闲空间上,采用异地更新的方式对SSTable组进行更新,故而采用追加写的方式在目标band中写入目标SSTable组,既不会对SMR磁盘上已存数据造成影响,而且后续再SMR磁盘上写入新数据也不会对追加写方式写入的SSTable组产生影响。由于两个SSTable组之间可以没有gap,减少了磁盘空间浪费,提高SMR磁盘利用率。
下面介绍采用动态band存储SSTable组时对SMR磁盘的几种操作方式。
(1)读操作,本申请实施例技术方案对SMR磁盘的读操作方式没有改变,与现有技术相同。
(2)写操作,除了图3b所示的追加写方式之外,也可以采用非追加写的方式,在写入的SSTable组的前后均保留一个gap,如图3c所示。
(3)删除操作,在采用异地更新方式对SSTable组进行更新后,需要删除原SSTable组。另一种需要进行删除操作的情形为:上层SSTable与下层SSTable组进行合并后,需要删除原上层SSTable以及原下层SSTable组。本申请实施例中的删除操作,可以采用对需要删除的SSTable或SSTable组进行标记实现,在SSTable或SSTable组被标记为无效后,存储SSTable或SSTable组的存储空间被视为空闲空间。例如,在相邻两层中上层第一SSTable与下层第一SSTable组进行键值合并后,将所述SMR磁盘中原用于存储所述上层第一SSTable以及所述下层第一SSTable组的存储空间设置为空闲空间,其中,所述第一SSTable为上层包括的至少一个SSTable中的任意一个,所述第一SSTable组为下层中与所述第一SSTable键值范围相对应的SSTable组。
(4)合并操作,所谓合并操作指的是一个SSTable或SSTable组被标记为无效后,查询该SSTable或SSTable组相邻位置是否已经存在空闲空间,若是,则将两个空闲空间合并为一个连续的空闲空间,如图3d所示。
(5)拆分操作,所谓拆分操作指的是从连续的空闲空间中划分出动态band,用于存放SSTable组,如图3b、图3c所示。
可选的,本申请实施例中,空闲空间的管理可以通过空闲空间链表实现,在空闲空间链表中可以记录每个空闲空间的地址、最后一个键值等参数。图4为空闲空间链表的一种实现方式,在图4所示的空闲空间链表中,相似大小的空闲空间(如图中4M、8M等的空闲空间)被放在同一个双向空闲链表中,不同大小的空闲链表被组织在一个空闲空间数组中,双向链表中的空闲空间按其特征值大小升序排列,所谓特征值为与该空闲空间的物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值。这种方式可以将相近key范围的SSTable组尽可能的放置在相邻物理位置,会在大规模中大大优化范围查找和扫描。
可选的,结合上述方式2,本发明实施例还提供对SMR磁盘上的空闲空间进行整理的技术方案,避免SMR磁盘的碎片化。
空闲空间整理方式为:在满足预设条件时,将分散的空闲空间之间存储的数据迁移,对其进行集中存储,这样不仅有利于提高对LSM树的查找性能,而且,由于分散的空闲空间之间存储的数据被迁移,将使得分散的空闲空间合并为连续的空闲空间,提高SMR磁盘的利用率。
上述所谓预设条件可以有多种实现方式,包括:在定时整理磁盘的方案中,在预定的时刻到达时即触发对空闲空间的整理;或者,管理所述SMR磁盘的设备的负载低于设置阈值时触发对空闲空间的整理;或者,SMR磁盘的空闲空间的容量小于预设阈值触发对空闲空间的整理;或者,SMR磁盘无法满足SSTable组的写需求时触发对空闲空间的整理。
可选的,在空闲空间整理时,可以采用以下方式选择SMR磁盘上的待整理区域,对其分散的空闲空间进行合并。
方式A,选择SMR磁盘中分散的空闲空间最多的存储区域作为待整理区域。
方式B,选择选择SMR磁盘中分散的空闲空间最离散的存储区域作为待整理区域。
方式C,结合方式A以及方式B,综合分散的空闲空间的数量以及离散程度确定待整理区域。
本申请实施例中管理垃圾回收的粒度可以是区域(zone),一个区域是一个确定的磁盘卷,大小可以为1G。每个区域保存一个位图用来表示内区域内每个SSTable的状态,本申请实施例提出了GC–zone-score算法,区域内一段被标记为无效的数据或一段连续的空闲空间标记为0,区域内一段有效数据标记为1,区域内0与1之间的一次跳变标记为-1。
在上述方式A中,区域回收特征值表示为:Gzone1=Nvalid*1+Ninvalid*0,其中,Nvalid为区域内1的数量,Ninvalid为区域内0的数量。Gzone1值越低表示有效数据越少,因此区域得分低的区域整理收益越高,将其作为待整理区域。
需要说明的是,Gzone1中还考虑区域内有效数据的数量,这是因为在具有相同数量的空闲空间的情况下,更少的有效数据的数量意味着需要迁移的数据更少,对该区域进行回收的成本更低。例如,参照图5,虽然图示的4个候选回收窗口中无效数据的个数均为3,但是窗口4中有效数据的数量更少,数据迁移量少,以窗口4作为待整理区域。
在上述方式B中,区域回收特征值表示为:Gzone2=Njump*(-1),Njump为区域内-1的数量。Gzone2值越低表示有效数据与无效数据跳变越多,空闲空间越分散,因此区域得分低的区域整理收益越高,将其作为待整理区域。
在上述方式C中,区域回收特征值可以表示为:Gzone3=Nvalid*1+Ninvalid*0+Njump*(-1)。区域得分Gzone越低表示有效数据越少,或空闲空间越分散,即有效数据与无效数据跳变越多。反之,区域得分越高表示有效数据越多,空相空间越集中。因此区域得分低的区域整理收益越高,将其作为待整理区域。
如图6所示,区域1包含3个有效SSTable,9个无效空间,4次跳变,Gzone3=3×1+9×0+4×(-1)=-1;区域2包含6个有效SSTable,6个无效空间,11次跳变,Gzone3=6×1+6×0+11×(-1)=-5;区域3包含6个有效SSTable,6个无效空间,1次跳变,Gzone3=6×1+6×0+1×(-1)=5。因此区域的整理顺序为区域2>>区域1>>区域3。
图7为本申请实施例提供的数据存储装置的示意图,该数据存储装置包括:
确定模块201,用于从瓦记录SMR磁盘上确定能够存储目标SSTable组的目标磁轨带band;
存储模块202,用于在所述目标band内存储所述目标SSTable组。
作为一种可选的方式,所述确定模块201用于:
从所述SMR磁盘中确定能够容纳所述目标SSTable组以及一个隔离带的连续空闲空间,将所述连续空闲空间作为所述目标band。
作为一种可选的方式,所述确定模块201用于:
从所述SMR磁盘中确定能够容纳所述目标SSTable组以及一个隔离带的所有连续空闲空间中容量最小的连续空闲空间,将所述容量最小的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间。
作为一种可选的方式,所述确定模块201用于:
在确定的所述容量最小的连续空闲空间的个数大于1时,确定每个所述容量最小的连续空闲空间物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值,将所述键值作为所述容量最小的连续空闲空间的特征值;
将特征值与所述目标SSTable组存储的首个键值最接近的所述容量最小的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间。
作为一种可选的方式,所述确定模块201用于:
确定所述SMR磁盘的每个连续空闲空间物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值,将所述键值作为所述连续空闲空间的特征值;
将特征值与所述目标SSTable组存储的首个键值最接近的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间。
作为一种可选的方式,所述存储模块202用于:
在所述目标band中紧邻已存储的SSTable组的位置追加写入所述目标SSTable组。
作为一种可选的方式,数据存储装置还包括删除模块203,用于:
在相邻两层中上层SSTable与下层SSTable组进行键值合并后,将所述SMR磁盘中原用于存储所述上层第一SSTable以及所述下层第一SSTable组的存储空间设置为空闲空间,其中,所述第一SSTable为上层包括的至少一个SSTable中的任意一个,所述第一SSTable组为下层中与所述第一SSTable键值范围相对应的SSTable组。
上述数据存储装置中各模块的实施方式可以参照图2至图6所述的数据存储方法。
图8为本申请实施例提供的另一数据存储装置的示意图,该数据存储装置包括:
存储器301,存储有计算机指令;
处理器302,与所述存储器相连,用于调用所述存储器中存储的计算机指令,以执行图2至图6所述实施例的数据存储方法。
本申请实施例提供一种计算机可读存储介质,所述可读存储介质中存储有计算机指令,所述指令在计算机上运行时,使得计算机执行图2至图6所述实施例的数据存储方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (16)

1.一种数据存储方法,其特征在于,包括:
从瓦记录SMR磁盘上确定能够存储目标排序字符串表SSTable组的目标磁轨带band;其中,目标SSTable组存储于日志结构合并LSM树中,所述LSM树包括至少两层,每一层包括至少一个SSTable,每一层中的键值范围位于上一层中一个SSTable的键值范围内的至少两个SSTable为一个SSTable组;
在所述目标band内存储所述目标SSTable组。
2.根据权利要求1所述的数据存储方法,其特征在于,从SMR磁盘上确定能够存储目标SSTable组的目标band,包括:
从所述SMR磁盘中确定能够容纳所述目标SSTable组以及一个隔离带的连续空闲空间,将所述连续空闲空间作为所述目标band。
3.根据权利要求2所述的数据存储方法,其特征在于,从所述SMR磁盘中确定能够容纳所述目标SSTable组以及一个隔离带的连续空闲空间,将所述连续空闲空间作为所述目标band,包括:
从所述SMR磁盘中确定能够容纳所述目标SSTable组以及一个隔离带的所有连续空闲空间中容量最小的连续空闲空间,将所述容量最小的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间。
4.根据权利要求3所述的数据存储方法,其特征在于,将所述容量最小的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间,包括:
在确定的所述容量最小的连续空闲空间的个数大于1时,确定每个所述容量最小的连续空闲空间的特征值,所述特征值为与连续空闲空间的物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值;
将特征值与所述目标SSTable组存储的首个键值最接近的所述容量最小的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间。
5.根据权利要求2所述的数据存储方法,其特征在于,从所述SMR磁盘中确定能够容纳所述目标SSTable组以及一个隔离带的连续空闲空间,将所述连续空闲空间作为所述目标band,包括:
确定与所述SMR磁盘的每个连续空闲空间的物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值,将所述键值作为所述连续空闲空间的特征值;
将特征值与所述目标SSTable组存储的首个键值最接近的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间。
6.根据权利要求2至6任一项所述的数据存储方法,其特征在于,在所述目标band内存储所述目标SSTable组,包括:
在所述目标band中紧邻已存储的SSTable组的位置追加写入所述目标SSTable组。
7.根据权利要求1至7任一项所述的数据存储方法,其特征在于,还包括:
在相邻两层中上层第一SSTable与下层第一SSTable组进行键值合并后,将所述SMR磁盘中原用于存储所述上层第一SSTable以及所述下层第一SSTable组的存储空间设置为空闲空间,其中,所述第一SSTable为上层包括的至少一个SSTable中的任意一个,所述第一SSTable组为下层中与所述第一SSTable键值范围相对应的SSTable组。
8.一种数据存储装置,其特征在于,包括:
确定模块,用于从瓦记录SMR磁盘上确定能够存储目标SSTable组的目标band,其中,目标SSTable组存储于日志结构合并LSM树中,所述LSM树包括至少两层,每一层包括至少一个SSTable,每一层中的键值范围位于上一层中一个SSTable的键值范围内的至少两个SSTable为一个SSTable组;
存储模块,用于在所述目标band内存储所述目标SSTable组。
9.根据权利要求8所述的数据存储装置,其特征在于,所述确定模块用于:
从所述SMR磁盘中确定能够容纳所述目标SSTable组以及一个隔离带的连续空闲空间,将所述连续空闲空间作为所述目标band。
10.根据权利要求9所述的数据存储装置,其特征在于,所述确定模块用于:
从所述SMR磁盘中确定能够容纳所述目标SSTable组以及一个隔离带的所有连续空闲空间中容量最小的连续空闲空间,将所述容量最小的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间。
11.根据权利要求10所述的数据存储装置,其特征在于,所述确定模块用于:
在确定的所述容量最小的连续空闲空间的个数大于1时,确定每个所述容量最小的连续空闲空间的特征值,所述特征值为与连续空闲空间的物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值;
将特征值与所述目标SSTable组存储的首个键值最接近的所述容量最小的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间。
12.根据权利要求9所述的数据存储装置,其特征在于,所述确定模块用于:
确定所述SMR磁盘的每个连续空闲空间物理位置相邻的前一个存储空间所存储的SSTable组存储的最后一个键值,将所述键值作为所述连续空闲空间的特征值;
将特征值与所述目标SSTable组存储的首个键值最接近的连续空闲空间作为存储所述目标SSTable组的所述连续空闲空间。
13.根据权利要求9至12任一项所述的数据存储装置,其特征在于,所述存储模块用于:
在所述目标band中紧邻已存储的SSTable组的位置追加写入所述目标SSTable组。
14.根据权利要求1至7任一项所述的数据存储装置,其特征在于,所述数据存储装置还包括删除模块,用于:
在相邻两层中上层第一SSTable与下层第一SSTable组进行键值合并后,将所述SMR磁盘中原用于存储所述上层第一SSTable以及所述下层第一SSTable组的存储空间设置为空闲空间,其中,所述第一SSTable为上层包括的至少一个SSTable中的任意一个,所述第一SSTable组为下层中与所述第一SSTable键值范围相对应的SSTable组。
15.一种数据存储装置,其特征在于,包括:
存储器,存储有计算机指令;
处理器,与所述存储器相连,用于调用所述存储器中存储的计算机指令,以执行如权利要求1至7任一项所述的数据存储方法。
16.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有计算机指令,所述指令在计算机上运行时,使得计算机执行如权利要求1至7任一项所述的数据存储方法。
CN201710289023.2A 2017-04-27 2017-04-27 一种数据存储方法及装置 Active CN108804019B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710289023.2A CN108804019B (zh) 2017-04-27 2017-04-27 一种数据存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710289023.2A CN108804019B (zh) 2017-04-27 2017-04-27 一种数据存储方法及装置

Publications (2)

Publication Number Publication Date
CN108804019A true CN108804019A (zh) 2018-11-13
CN108804019B CN108804019B (zh) 2020-07-07

Family

ID=64069018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710289023.2A Active CN108804019B (zh) 2017-04-27 2017-04-27 一种数据存储方法及装置

Country Status (1)

Country Link
CN (1) CN108804019B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558084A (zh) * 2018-11-29 2019-04-02 文华学院 一种数据处理方法以及相关设备
CN110007860A (zh) * 2019-03-28 2019-07-12 深圳大普微电子科技有限公司 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置
CN111026329A (zh) * 2019-11-18 2020-04-17 华中科技大学 基于主机管理瓦记录磁盘的键值存储系统及数据处理方法
CN111309258A (zh) * 2020-02-14 2020-06-19 苏州浪潮智能科技有限公司 一种b+树的存取方法、装置和计算机可读存储介质
CN111722797A (zh) * 2020-05-18 2020-09-29 西安交通大学 面向ssd与ha-smr混合存储系统数据管理方法、存储介质及设备
CN112306404A (zh) * 2020-10-10 2021-02-02 苏州浪潮智能科技有限公司 一种瓦记录磁盘数据布局方法、系统及相关设备
CN113157600A (zh) * 2021-03-08 2021-07-23 网宿科技股份有限公司 一种叠瓦式硬盘的空间分配方法、文件存储系统及服务器
CN114090536A (zh) * 2022-01-19 2022-02-25 苏州浪潮智能科技有限公司 一种基于分布式存储的日志文件存储方法、装置及介质
CN114691039A (zh) * 2022-03-22 2022-07-01 北京达佳互联信息技术有限公司 数据处理方法、装置、电子设备及存储介质
WO2022246953A1 (zh) * 2021-05-25 2022-12-01 南京大学 一种面向lsm树的键值存储方法和存储系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150179214A1 (en) * 2013-12-23 2015-06-25 Inodyn Newmedia Gmbh Method for replacing defective sections on a data carrier with overlapping data tracks and device thereof
CN105224237A (zh) * 2014-05-26 2016-01-06 华为技术有限公司 一种数据存储方法及装置
CN105824579A (zh) * 2016-03-17 2016-08-03 中国科学院计算技术研究所 一种捎带读写减小瓦记录写放大开销的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150179214A1 (en) * 2013-12-23 2015-06-25 Inodyn Newmedia Gmbh Method for replacing defective sections on a data carrier with overlapping data tracks and device thereof
CN105224237A (zh) * 2014-05-26 2016-01-06 华为技术有限公司 一种数据存储方法及装置
CN105824579A (zh) * 2016-03-17 2016-08-03 中国科学院计算技术研究所 一种捎带读写减小瓦记录写放大开销的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
REKHA PITCHUMANI 等: "SMRDB: Key-Value Data Store for Shingled Magnetic Recording Disks", 《ACM》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558084B (zh) * 2018-11-29 2021-08-17 文华学院 一种数据处理方法以及相关设备
CN109558084A (zh) * 2018-11-29 2019-04-02 文华学院 一种数据处理方法以及相关设备
CN110007860A (zh) * 2019-03-28 2019-07-12 深圳大普微电子科技有限公司 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置
WO2020192710A1 (zh) * 2019-03-28 2020-10-01 深圳大普微电子科技有限公司 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置
CN111026329A (zh) * 2019-11-18 2020-04-17 华中科技大学 基于主机管理瓦记录磁盘的键值存储系统及数据处理方法
CN111026329B (zh) * 2019-11-18 2021-04-20 华中科技大学 基于主机管理瓦记录磁盘的键值存储系统及数据处理方法
CN111309258A (zh) * 2020-02-14 2020-06-19 苏州浪潮智能科技有限公司 一种b+树的存取方法、装置和计算机可读存储介质
US11762827B2 (en) 2020-02-14 2023-09-19 Inspur Suzhou Intelligent Technology Co., Ltd. B-plus tree access method and apparatus, and computer-readable storage medium
CN111309258B (zh) * 2020-02-14 2021-10-15 苏州浪潮智能科技有限公司 一种b+树的存取方法、装置和计算机可读存储介质
CN111722797B (zh) * 2020-05-18 2021-06-29 西安交通大学 面向ssd与ha-smr混合存储系统数据管理方法、存储介质及设备
CN111722797A (zh) * 2020-05-18 2020-09-29 西安交通大学 面向ssd与ha-smr混合存储系统数据管理方法、存储介质及设备
CN112306404A (zh) * 2020-10-10 2021-02-02 苏州浪潮智能科技有限公司 一种瓦记录磁盘数据布局方法、系统及相关设备
CN112306404B (zh) * 2020-10-10 2022-09-20 苏州浪潮智能科技有限公司 一种瓦记录磁盘数据布局方法、系统及相关设备
CN113157600A (zh) * 2021-03-08 2021-07-23 网宿科技股份有限公司 一种叠瓦式硬盘的空间分配方法、文件存储系统及服务器
WO2022246953A1 (zh) * 2021-05-25 2022-12-01 南京大学 一种面向lsm树的键值存储方法和存储系统
CN114090536A (zh) * 2022-01-19 2022-02-25 苏州浪潮智能科技有限公司 一种基于分布式存储的日志文件存储方法、装置及介质
CN114691039A (zh) * 2022-03-22 2022-07-01 北京达佳互联信息技术有限公司 数据处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN108804019B (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
CN108804019A (zh) 一种数据存储方法及装置
CN105589812B (zh) 磁盘碎片整理方法、装置及主机
CN106548789B (zh) 用于操作叠瓦式磁记录设备的方法和装置
CN104298681B (zh) 一种数据存储方法及装置
CN103164490B (zh) 一种不固定长度数据的高效存储实现方法和装置
CN103838853B (zh) 一种基于不同存储介质的混合文件系统
CN103064639A (zh) 数据存储方法及装置
US9606746B2 (en) Shiftable memory supporting in-memory data structures
CN101169972A (zh) 管理非易失性存储器的设备和方法
CN111026329B (zh) 基于主机管理瓦记录磁盘的键值存储系统及数据处理方法
CN103186350A (zh) 混合存储系统及热点数据块的迁移方法
CN108021513A (zh) 一种数据存储方法及装置
CN107102819A (zh) 向固态硬盘写入数据的方法及设备
CN107003809A (zh) 一种存储设备存储数据的方法及存储设备
CN109558084A (zh) 一种数据处理方法以及相关设备
CN108733306A (zh) 一种文件合并方法及装置
CN109446174A (zh) 日志数据记录方法、装置及计算机可读存储介质
CN102306124A (zh) Nand Flash芯片硬件驱动层的实现方法
CN102253985B (zh) 一种文件系统数据的管理方法及系统
CN107704633A (zh) 一种文件迁移的方法和系统
CN105512325B (zh) 多版本数据索引的更新、删除与建立方法及装置
CN103092849A (zh) 文件系统簇管理方法
CN102955787A (zh) 一种文件目录表的使用方法、文件写入方法及应用的主电路板、cpu和外部存储器
CN103823634B (zh) 一种支持无随机写模式的数据处理方法及系统
KR20080098104A (ko) 메타 데이터 저장 방법 및 메타 데이터 저장 시스템

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