CN105955664B - 一种基于段结构的瓦记录转换层的读写方法 - Google Patents
一种基于段结构的瓦记录转换层的读写方法 Download PDFInfo
- Publication number
- CN105955664B CN105955664B CN201610279310.0A CN201610279310A CN105955664B CN 105955664 B CN105955664 B CN 105955664B CN 201610279310 A CN201610279310 A CN 201610279310A CN 105955664 B CN105955664 B CN 105955664B
- Authority
- CN
- China
- Prior art keywords
- data
- section
- lru
- write
- sstl
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于段结构的瓦记录转换层的读写方法,将瓦记录磁盘直接应用到现有的存储系统中,基于段结构的瓦记录转换层进行读写处理;对于地址映射表,采用段内动态块映射的方法,有效的减少了瓦记录磁盘的写放大倍数,提高了磁盘性能;同时,SSTL使用了一种基于最近最久未被访问段的写缓存替换算法来管理瓦记录磁盘中的非易失性缓存NVRAM;本发明提供的这种基于段结构的瓦记录转换层的读写方法,有效的减少了数据写入操作和段整理操作的次数,降低了瓦记录磁盘的写放大倍数,显著的提高了瓦记录磁盘的性能。
Description
技术领域
本发明属于数据存储技术领域,更具体地,涉及一种基于段结构的瓦记录转换层的读写方法。
背景技术
磁盘作为计算机系统最主要的数据存储设备,发展至今已经有60余年的历史。但是,超顺磁效应阻碍了磁记录面密度的提升。当前,使用垂直磁记录技术的磁盘的面密度已经达到了上限值1Tb=in2。瓦记录技术通过部分重叠磁道的方式来提升磁道密度。
磁记录磁盘存在一个固有的缺点:写入数据到当前磁道会覆盖后续磁道的数据,导致后续磁道数据的丢失;瓦记录技术采用部分重叠磁道的方式来记录数据;瓦记录磁盘不能直接替代传统磁盘应用到现有的存储系统中。为了克服瓦记录技术写入操作的物理限制,现在有两种解决方案,一是采用瓦记录转换层STL(ShingleTranslationLayer)来掩盖写入操作上的差异;二是设计瓦记录磁盘专用的文件系统或对象存储系统;上述两种方案,均需解决瓦记录磁盘不能覆盖写引入的写放大问题。
现有技术中,采用基于段结构的数据布局管理方法读写,将磁盘的整个盘面分成多个瓦记录区,每个区包含了多个连续的磁道;在径向方向上,每个瓦记录区分割成大小相同的段,每个段有唯一逻辑段号;在每个段中,同一磁道上的扇区组成一个块;由此,整个磁盘按照“区-段-块-扇区”的形式组织起来;该方案将写放大从区降到了段大小,但基于段结构的瓦记录磁盘的就地更新模式和段级写放大仍需要进一步优化。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种基于段结构的瓦记录转换层的读写方法,其目的在于对段结构瓦记录磁盘的存储地址映射和非易失缓存区管理进行优化,解决段结构瓦记录磁盘就地更新带来的写放大问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于段结构的瓦记录转换层的读写方法,包括如下步骤:
(1)当SSTL(基于段结构的瓦记录转换层,Segment based Shingle TranslationLayer)接收到上层请求,判断请求类型,若为读请求,进入步骤(2),若为写请求,则进入步骤(7);
(2)由SSTL查找读、写缓存,判断读、写缓存中是否存在与请求匹配的内容,若是,则获取请求的数据,并向请求方反馈所述数据;若否,则进入步骤(3);
(3)由SSTL获取逻辑段号(LSN)、逻辑块索引(LCI)和逻辑区号(LRN);
(4)以逻辑段号作为索引,在地址映射表中获取段转换页;
(5)采用逻辑块索引从所述段转换页中获取实际的块索引值;
(6)获取请求的物理地址PBA=LRN*Sreg+LCI*ST+(LBA mod Sreg)/Sseg*Schk+Noffset;从所述物理地址获取数据,并向请求方反馈所述数据;
其中,Sreg是指区大小,ST是指磁道大小,Sseg是指段大小,Schk是指块大小;LBAmod Sreg是指逻辑块地址对Sreg取余操作;Noffset是指块内偏移地址;
(7)由SSTL查找写缓存,判断写缓存中是否存在与请求匹配的内容,若是,由SSTL用拟写入的数据替换缓存中的旧数据;若否,则进入步骤(8);
(8)由SSTL查找读缓存,判断读缓存中是否存在与请求匹配的内容,若是,则删除读缓存中的旧数据,并进入步骤(9);若否,则将写请求的数据写入写缓存中,并进入步骤(9);
其中,旧数据是指缓存中与写请求对应的地址上存储的数据;
(9)判断写缓存是否足够空闲空间,若是,则由SSTL将写请求的数据写入写缓存中;若否,则进入步骤(10);
(10)由SSTL采用最近最久未被访问段的写缓存替换算法,选择拟替换出缓存的段;
(11)判断磁盘是否有足够的空间容纳拟写入的数据,若是,则将所述拟替换出缓存的段按照动态块映射方法写入磁盘;若否,则进入步骤(12);
(12)由SSTL将磁盘上整个段的内容存储到内存,并与从缓存中替换出来的段进行合并,将合并获得的数据写到磁盘。
优选地,上述基于段结构的瓦记录转换层的读写方法,地址映射表按照如下方法进行管理:
(a)地址映射表包含多个段转换页,每个段转换页记录一个段的地址映射信息;
(b)将经动态块映射的每个数据块的索引值作为地址映射信息保存在段转换页中;
(c)将段转换页按照逻辑段号顺序存储在地址映射表中;
(d)当SSTL接收到逻辑段号,将所述逻辑段号作为索引值顺次查找,从地址映射表中获取段转换页。
优选地,上述基于段结构的瓦记录转换层的读写方法,其段内动态块映射方法具体如下:
(I)以段作为数据管理单位;段内的数据块可以存放在段内任意位置;
(II)对于数据的写入或修改操作,将拟写入或修改的数据顺序追加到数据段的尾部;
(III)对于数据段段尾数据的更新操作,则采用拟写入数据直接覆盖段尾的旧版本数据。
优选地,上述基于段结构的瓦记录转换层的读写方法,其步骤(10)中所述最近最久未被访问段的写缓存替换算法,具体如下:
(10-1)由LRU-S(Least Recently Used—Segment,最近最久未访问段)将LRU(Least Recently Used)链表划分为LRU工作链表和LRU替换链表;
其中,LRU工作链表采用块的形式组织数据,替换单元为块;LRU替换链表采用段的形式组织数据,替换单元为段所包含的数据块组;
(10-2)当收到数据写入请求,而写入请求所对应的数据块不在缓存中时,则将该数据块直接插入到LRU工作链表中;
(10-3)当LRU链表中的数据块被再次访问,将该数据块插入到LRU工作链表的头部;
(10-4)当LRU工作链表已满,而有新的数据插入时,采用新的数据替换LRU工作链表尾部的数据块;将被替换出的数据块插入到LRU替换链表中;
(10-5)将LRU替换链表中的段按照各段所包含的块的数目由少到多依次排序;
(10-6)当LRU替换链表已满,则由LRU-S把LRU替换链表中包含数据块最多的段写到磁盘。
优选地,上述基于段结构的瓦记录转换层的读写方法,其步骤(10-6)具体如下:
由LRU-S从指针数组的第N个指针开始,往第(N+i)个指针方向顺序查找;当遇到包含数据段的指针,则将所述指针包含的数据段从缓存中替换出来,将替换出的数据段写到磁盘;i大于等于1。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明提供的基于段结构的瓦记录转换层的读写方法,由于采用了段内动态块映射方法和地址映射管理算法,更新的数据块总是追加在段尾,不需要重写数据块所在段的后续所有数据块,充分利用数据局部性原理和磁盘空间的利用率状态,更新操作不带来额外的磁盘读写操作;具有减少基于段结构的瓦记录磁盘的写放大倍数的有益效果;
(2)本发明提供的基于段结构的瓦记录转换层的读写方法,采用了最近最久未被访问段的写缓存替换方法来管理瓦记录磁盘中的非易失性缓存NVRAM,在LRU工作链表中命中了大量的热写数据,把冷数据聚集在LRU替换链表中;替换时,最近最久未被访问且包含数据块最多的段才会被替换出缓存,减少了瓦记录磁盘的写操作次数,且每次写回操作都能带来最大的收益;
(3)本发明提供的基于段结构的瓦记录转换层的读写方法,将需要频繁更新的地址映射元数据和热数据都存储在高速缓存介质中,具有提高瓦记录磁盘的读写性能的效果。
附图说明
图1是段结构瓦记录磁盘的数据布局示意图;
图2是瓦记录转换层SSTL在系统中的位置示意图;
图3是基于段结构的瓦记录转换层SSTL的架构图;
图4是实施例中的地址映射表结构示意图;
图5是实施例中LRU-S缓存的双链表结构示意图;
图6是实施例中动态映射块数据与传统段结构块数据的比较图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
图1所示,是现有技术中基于段结构的数据布局管理方法HWSR,该方法把磁盘分成多个瓦记录区,每个区包含了多个连续的磁道;在径向方向上,把每个瓦记录区分割成大小相同的段,每个段有一个独一无二的逻辑段号;在每一个段中,同一磁道上的扇区组成一个块;整个磁盘划分为“区-段-块-扇区”的形式。
当段结构的瓦记录磁盘收到一个逻辑地址为LBA的请求时,该请求的物理地址PBA通过下式计算得到;该方法中,段结构的瓦记录磁盘将写放大从区降到了段大小,但基于段结构的瓦记录磁盘的就地更新模式和段级写放大仍需要进一步优化。
LRN=LBA=Sreg (1)
LSN=LBA=Sseg (2)
LCI=(LBA mod Sseg)=Schk (3)
Noffset=LBA mod Schk (4)
PBA=LRN*Sreg+LCI*ST+(LBAmodSreg)/Sseg*Schk+Noffset (5);
上述式1到5中的各个参数的意义如下:LRN表示逻辑区号;LSN表示逻辑段号;LCI表示一个块在一个段中的逻辑块索引;Noffset表示块内偏移地址;ST,Sreg,Sseg和Schk分别表示磁道大小,区大小,段大小和块大小。
图2所示,是瓦记录转换层在整个SSTL系统中的位置示意图,瓦记录转换层是在设备层掩饰瓦记录磁盘随机写性能缺陷的一种方式。本发明在瓦记录存储介质上对瓦记录转换层进行优化,同时在瓦记录转换层上的增加非易失性缓存提升系统整体性能。
图3所示,是基于段结构的瓦记录转换层SSTL的架构;SSTL系统的整体结构包括设备层和SSTL地址转换层,本发明提供的改进策略在地址转换层实现。
结合实施例和附图,具体阐述本发明提供的基于段结构的瓦记录转换层的读写方法,具体包括如下步骤:
(1)当SSTL接收到上层请求,判断请求类型,若为读请求,进入步骤(2),若为写请求,则进入步骤(7);
(2)由SSTL查找读、写缓存,判断读、写缓存中是否存在与请求匹配的内容,若是,则获取请求的数据,并向请求方反馈所述数据;若否,则进入步骤(3);
(3)由SSTL获取逻辑段号(LSN)、逻辑块索引(LCI)和逻辑区号(LRN);
(4)以逻辑段号作为索引,在地址映射表中获取段转换页;
实施例中,SSTL地址映射表管理方法,其地址映射表结构如图4所示,将请求定位到物理地址所采用的地址管理策略,具体如下:
SSTL采用的段内动态块映射的方式,地址映射表只需记录段中每一个块的实际块索引值;每一个段在地址映射表都存在一个段转换页,所有的段转换页按照逻辑段号顺序的存储在地址映射表中;每一个段包含的块数据都是相等的,所以每一个段转换页的大小也相等,SSTL使用逻辑段号作为索引值在地址映射表中取得段转换页。
如图4所示,段35(LSN=35)和段36(LSN=36)的段转换页存储在地址映射表中的相邻位置,段转换页一次记录了块C0-C8的实际块索引值;如图4中虚线箭头所指示,逻辑段36的逻辑块C3的实际块索引值为0(Idx0),即段36的块C3实际存储在虚线箭头所指示的位置;图中每个段包含8个块,每一个块索引值的大小为一个字节,因此每一个段转换页为8个字节;为了取得段36的段转换页,只需要往地址映射表的起始位置向后偏移368个字节。
(5)采用逻辑块索引从所述段转换页中获取实际的块索引值;
(6)获取请求的物理地址PBA=LRN*Sreg+LCI*ST+(LBA mod Sreg)/Sseg*Schk+Noffset;从所述物理地址获取数据,并向请求方反馈所述数据;
(7)由SSTL查找写缓存,判断写缓存中是否存在与请求匹配的内容,若是,由SSTL用拟写入的数据替换缓存中的旧数据,若否,则进入步骤(8);
(8)由SSTL查找读缓存,判断读缓存中是否存在与请求匹配的内容,若是,则删除读缓存中的旧数据,将写请求数据写入写缓存中,进入步骤(9);若否,则直接将写请求的数据写入写缓存中,进入步骤(9);
(9)数据写入写缓存时,判定写缓存空闲空间是否足够,若是,则由SSTL将写请求的数据写入写缓存中;若否,则进入步骤(10);
(10)由SSTL采用最近最久未被访问段(LRU-S)的写缓存替换算法,选择需要替换出缓存的段;
实施例提供的NVRAM写缓存管理算法LRU-S,其双链表结构如图5所示,是缓存空间不足情况下的缓存淘汰策略,具体如下:
LRU-S把整个LRU链表分为两部分:LRU工作链表和LRU替换链表。LRU工作链表采用块的形式组织数据,替换的单元也是块,图5中S2C1表示逻辑段S1中的数据块C1。当一个数据被写入到缓存,而这个数据块本身又不存在缓存中时,这个数据块将被插入到LRU工作链表中。无论何时,整个LRU链表中的某一个数据块被再次访问,这个数据块都会被插入到LRU工作链表的头部。当LRU工作链表已满,而又有新的数据插入时,LRU工作链表尾部的数据块将被替换出LRU工作链表,插入到LRU替换链表中。LRU工作链表用于保存负载中当前的热数据,大多数的缓存命中率也将产生在LRU工作链表中。
LRU替换链表采用段的形式组织数据,替换的单元是某个段所包含的数据块组。图5中的N表示段结构的瓦记录磁盘每个段所包含的块的数目。LRU替换链表中的段按照每个段所包含的块的数目来排序;譬如:对于一个包含了3个数据块的段,该段被链接在图5中指针数组的第3个指针中。图5中,每个带有LSN字样的方块表示一个段,它也是一个链表,它把这个段内的属于LRU替换链表的数据块链起来。当一个数据块从LRU工作链表替换出来时,该数据块会被插入LRU替换链表中相应段的链表中。当LRU替换链表满了,LRU-S就会把LRU替换链表中包含数据块最多的段写回到磁盘;LRU-S从指针数组的第N个指针开始,往第(N+i)个指针方向顺序查找;当遇到包含数据段的指针,则将所述指针包含的数据段从缓存中替换出来,将替换出的数据段写回磁盘;i大于等于1。
LRU-S把热数据块集中在LRU工作链表中,把冷数据聚集在LRU替换链表中。替换的时候,最近最久未被访问的段,并且包含数据块最多的段才会被替换出缓存,LRU-S不仅利用了数据的时间局部性原理来增加缓存的命中率,而且像FAB一样能够减少数据写入操作的次数,同时减少了数据的写放大;LRU-S不仅能够把热数据存储在缓存中,还能减少数据写入的次数。
(11)判断磁盘是否有足够的空间容纳拟写入的数据,若是,则将替换出缓存的数据按照动态块映射方法写入磁盘;若否,则进入步骤(12);
实施例中采用的动态块映射方法,如图6所示意的,将其与现有HSWR技术进行对比,具体如下:
使用动态块映射方法进一步减少基于段结构的瓦记录磁盘的写放大倍数,如图6中段36中数据块C0-C8存储的方式,数据块可以存储在段中任意位置,而且数据被修改后,只要以追加的形式写在段尾部。而在HWSR瓦记录磁盘系统中,一个段内的数据块严格按照顺序的方式存储,如图6中段35(LSN=35)中数据块C0-C8所示,数据块C0-C8中任何一个数据块被修改了,都要被写回到原来的位置,导致段中后续的数据被覆盖。
下面结合实施例来比较SSTL和HWSR的写放大情况;根据NVRAM写缓存管理算法LRU-S,LRU-S总是把同一个段中的多个数据块同时替换出缓存,HWSR也采用类似的算法;如图6中4个缓存刷新操作,图中F{S1,(C5,C4,C3)}表示把段S1中的数据块C5,C4,C3刷新到磁盘,其中F表示Flush,表示刷新操作。
刷新操作①F{S1,(C5,C4,C3)}:开始的时候段S1是空的,但是HWSR要把数据块C5、C4和C3写到对应的位置,没有覆盖数据块,而SSTL总是以追加的形式把数据写入到段的尾部,也没有覆盖数据块。
刷新操作②F{S1,(C2,C1,C0)}:HWSR在写入数据块C2、C1和C0时,会覆盖数据块C3-C5;即,在写入数据块C0-C2之前,HWSR要把数据块C3-C5先读出来,并写入到磁盘,而SSTL仍然没有覆盖数据块。
刷新操作③F{S1,(C1’,C0’)}:数据块C0,C1被修改了,同样,HWSR在写入C0’和C1’时会覆盖后面的C2-C5的数据块,而SSTL仅仅是把C0’和C1’追加到段S1的尾部。
刷新操作④F{S1,(C1”,C0”)}:数据块C0和C1又被修改了,HWSR的写入过程如同刷新操作③一样,SSTL不覆盖任何数据块,因为段S1尾部存储的就是C0和C1的旧数据,SSTL只需要覆盖原来的C1’和C0’。
上述的实施例中,HWSR覆盖了11个数据块而SSTL没有覆盖任何的数据块;HWSR就地更新数据的方式,导致每一次写数据都可能需要重写整个段;而SSTL仅在一个段被写满了才需要重写整个段,减少了额外的写操作,从而减少了写放大倍数。
(12)由SSTL将磁盘上整个段的内容读到内存,与从缓存中替换出来的数据块进行合并,将合并后的数据写回到磁盘。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于段结构的瓦记录转换层的读写方法,其特征在于,包括如下步骤:
(1)当瓦记录转换层SSTL接收到读写请求,判断请求类型,若为读请求,进入步骤(2),若为写请求,则进入步骤(7);
(2)由SSTL判断读、写缓存中是否存在与请求匹配的内容,若是,则获取请求的数据,并向请求方反馈所述数据;若否,则进入步骤(3);
(3)由SSTL获取逻辑段号、逻辑块索引和逻辑区号;
(4)以所述逻辑段号作为索引,在地址映射表中获取段转换页;
(5)采用所述逻辑块索引从所述段转换页中获取块索引值;
(6)获取请求的物理地址PBA=LRN*Sreg+LCI*ST+(LBA mod Sreg)/Sseg*Schk+Noffset;从所述物理地址获取数据,并向请求方反馈所述数据;
其中,LRN是指逻辑区号,LCI是指逻辑块索引,Sreg是指区大小,ST是指磁道大小,Sseg是指段大小,Schk是指块大小;LBA mod Sreg是指逻辑块地址对Sreg取余操作;Noffset是指块内偏移地址;
(7)由SSTL查找写缓存,判断写缓存中是否存在与请求匹配的内容,若是,由SSTL用拟写入的数据替换缓存中的旧数据;若否,则进入步骤(8);
(8)由SSTL查找读缓存,判断读缓存中是否存在与请求匹配的内容,若是,则删除读缓存中的旧数据,并进入步骤(9);若否,则将写请求的数据写入写缓存中,并进入步骤(9);
其中,旧数据是指缓存中与写请求对应的地址上存储的数据;
(9)判断写缓存是否足够空闲空间,若是,则由SSTL将写请求的数据写入写缓存中;若否,则进入步骤(10);
(10)由SSTL采用最近最久未被访问段的写缓存替换算法,选择拟替换出缓存的段;
所述最近最久未被访问段的写缓存替换算法,具体如下:
(10-1)由LRU-S将LRU链表划分为LRU工作链表和LRU替换链表;
(10-2)当收到数据写入请求,而写入请求所对应的数据块不在缓存中时,则将该数据块直接插入到LRU工作链表中;
(10-3)当LRU链表中的数据块被再次访问,将该数据块插入到LRU工作链表的头部;
(10-4)当LRU工作链表已满,而有新的数据插入时,采用新的数据替换LRU工作链表尾部的数据块;将被替换出的数据块插入到LRU替换链表中;
(10-5)将LRU替换链表中的段按照各段所包含的块的数目由少到多依次排序;
(10-6)当LRU替换链表已满,则由LRU-S把LRU替换链表中包含数据块最多的段写到磁盘;
(11)判断磁盘是否有足够的空间容纳拟写入的数据,若是,则将所述拟替换出缓存的段按照动态块映射方法写入磁盘;若否,则进入步骤(12);
(12)由SSTL将磁盘上整个段的内容存储到内存,并与从缓存中替换出来的段进行合并,将合并获得的数据写到磁盘。
2.如权利要求1所述的读写方法,其特征在于,按照如下方法管理所述地址映射表:
(a)地址映射表包含多个段转换页,每个段转换页记录一个段的地址映射信息;
(b)将经动态块映射的每个数据块的索引值作为地址映射信息保存在段转换页中;
(c)将段转换页按照逻辑段号顺序存储在地址映射表中;
(d)当SSTL接收到逻辑段号,将所述逻辑段号作为索引值在地址映射表中顺次查找,获取段转换页。
3.如权利要求1所述的读写方法,其特征在于,所述动态块映射方法具体如下:
(I)以段作为数据管理单位;段内的数据块可以存放在段内任意位置;
(II)对于数据的写入或修改操作,将拟写入或修改的数据顺序追加到数据段的尾部;
(III)对于数据段段尾数据的更新操作,则采用拟写入数据直接覆盖段尾的旧版本数据。
4.如权利要求1所述的读写方法,其特征在于,所述步骤(10-6)具体为:由LRU-S从指针数组的第N个指针开始,往第(N+i)个指针方向顺序查找;当遇到包含数据段的指针,则将所述指针包含的数据段从缓存中替换出来,将替换出的数据段写到磁盘;i大于等于1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610279310.0A CN105955664B (zh) | 2016-04-29 | 2016-04-29 | 一种基于段结构的瓦记录转换层的读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610279310.0A CN105955664B (zh) | 2016-04-29 | 2016-04-29 | 一种基于段结构的瓦记录转换层的读写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105955664A CN105955664A (zh) | 2016-09-21 |
CN105955664B true CN105955664B (zh) | 2018-11-02 |
Family
ID=56916682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610279310.0A Active CN105955664B (zh) | 2016-04-29 | 2016-04-29 | 一种基于段结构的瓦记录转换层的读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105955664B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106970764B (zh) * | 2017-02-24 | 2019-08-16 | 中国科学院计算技术研究所 | 一种基于条带版本的瓦记录raid写顺序化方法及系统 |
CN108829720B (zh) * | 2018-05-07 | 2022-01-14 | 麒麟合盛网络技术股份有限公司 | 数据处理方法及装置 |
CN109697033B (zh) * | 2018-12-19 | 2022-01-07 | 中国人民解放军国防科技大学 | 瓦记录磁盘感知的存储缓存方法及系统 |
CN110674170B (zh) * | 2019-09-05 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 基于链表逆序访问的数据缓存方法、装置、设备及介质 |
CN111400204B (zh) * | 2020-02-29 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 一种固态盘缓存方法、系统及相关设备 |
CN111722797B (zh) * | 2020-05-18 | 2021-06-29 | 西安交通大学 | 面向ssd与ha-smr混合存储系统数据管理方法、存储介质及设备 |
CN114327297B (zh) * | 2021-12-28 | 2024-03-19 | 华中科技大学 | 一种交错式记录磁盘的数据请求处理方法、设备及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999428A (zh) * | 2012-11-01 | 2013-03-27 | 华中科技大学 | 一种瓦记录磁盘的四级编址方法 |
CN103295594A (zh) * | 2011-05-23 | 2013-09-11 | Hgst荷兰公司 | 具有混合e区的瓦写磁记录装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8599507B2 (en) * | 2011-12-06 | 2013-12-03 | HGST Netherlands B.V. | Distributed field self-test for shingled magnetic recording drives |
US8793431B2 (en) * | 2012-03-17 | 2014-07-29 | HGST Netherlands B.V. | Shingled magnetic recording disk drive with inter-band disk cache and minimization of the effect of far track erasure on adjacent data bands |
-
2016
- 2016-04-29 CN CN201610279310.0A patent/CN105955664B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103295594A (zh) * | 2011-05-23 | 2013-09-11 | Hgst荷兰公司 | 具有混合e区的瓦写磁记录装置 |
CN102999428A (zh) * | 2012-11-01 | 2013-03-27 | 华中科技大学 | 一种瓦记录磁盘的四级编址方法 |
Non-Patent Citations (1)
Title |
---|
High Performance and High Capacity Hybrid Shingled-Recording Disk System;Jiguang Wan等;《2012 IEEE International Conference on Cluster Computing》;20120928;第173-181页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105955664A (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955664B (zh) | 一种基于段结构的瓦记录转换层的读写方法 | |
US10303596B2 (en) | Read-write control method for memory, and corresponding memory and server | |
CN104035729B (zh) | 一种日志映射的块设备精简配置方法 | |
CN104298610B (zh) | 资料储存系统及其管理方法 | |
CN105574104B (zh) | 一种基于ObjectStore的LogStructure存储系统及其数据写入方法 | |
CN103080910B (zh) | 存储系统 | |
US8225029B2 (en) | Data storage processing method, data searching method and devices thereof | |
JP5184462B2 (ja) | ページ−ディファレンシャルを使用して、dbmsに独立的な方法でフラッシュメモリーにデータを格納する方法 | |
CN106095342B (zh) | 一种动态可变长条带的瓦记录磁盘阵列构建方法及系统 | |
US10740251B2 (en) | Hybrid drive translation layer | |
CN103631536B (zh) | 一种利用ssd的无效数据优化raid5/6写性能的方法 | |
US10956071B2 (en) | Container key value store for data storage devices | |
CN107526689B (zh) | 读高速缓存管理 | |
US5875455A (en) | Information recording and reproducing apparatus merging sequential recording requests into a single recording request, and method of data caching for such apparatus | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件系统 | |
CN107784121A (zh) | 一种基于非易失内存的日志文件系统的小写优化方法 | |
US20100070733A1 (en) | System and method of allocating memory locations | |
KR20100115090A (ko) | 버퍼를 고려한 가비지 컬렉션 기법 | |
Lee et al. | An efficient index buffer management scheme for implementing a B-tree on NAND flash memory | |
CN107992269A (zh) | 一种基于去重ssd的事务写入方法 | |
CN105975215A (zh) | 一种基于Ondemand算法的STL映射表管理方法 | |
JPS63186348A (ja) | 1回書込み多数回読取記憶媒体の効用を高める装置および方法 | |
CN114356246B (zh) | Ssd内部数据的存储管理方法、装置、存储介质及ssd设备 | |
US20140258591A1 (en) | Data storage and retrieval in a hybrid drive | |
CN114969069A (zh) | 一种应用于键值存储系统的热度感知本地更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |