法律状态公告日
法律状态信息
法律状态
2020-02-28
授权
授权
2018-08-31
实质审查的生效 IPC(主分类):G06F3/06 申请日:20180123
实质审查的生效
2018-08-07
公开
公开
技术领域
本发明涉及计算机存储领域,特别涉及一种支持原地更新的瓦记录写顺序化方法及装置。
背景技术
作为主要存储介质的传统磁盘的面密度很快将要接近1TB/In2极限,也就意味着单盘的存储空间已经很难再有大幅度的提升,为了解决这一问题,近几年,一种新的磁盘技术被业内提出,即瓦记录技术,其采用部分叠加相邻磁道的方式进一步提升磁盘的存储密度,然而这种叠加磁道的方式在增大了磁盘存储容量的同时却使得磁盘无法直接原地更新,因为更新写一条磁道上的数据会覆盖其相邻磁道上的数据,为避免相邻磁道数据的损坏,需要做读修改写(Read-Modify-Write,RMW),正如名字描述的那样,首先从磁盘上读出部分数据,然后修改其中的一部分数据,最后再将修改后的和未修改的数据一起写回磁盘,其中读出的部分数据要保证在写回时不会覆盖磁盘上其他位置的有效数据,因此,最坏的情况下,如果磁盘存满有效数据,一次RMW可能需要操作整个磁盘,导致严重的写放大,极大的降低磁盘的非顺序写性能,为了减小写放大,将RMW控制在一定范围内,减小写性能开销,可以将磁盘划分为连续的区域,即带(Band),如图1所示(假设写一条磁道(Track)最远只会覆盖下一条磁道上的数据,即覆盖率K=2,每个Band由两条Track组成),Band之间的编址是连续的,但是Band之间需预留一定空间(Gap),确保写Band0上的任意位置都不会覆盖到Band1上的任何数据,这样,就可以将写放大控制在一条Band的范围内,因此写放大程度取决于Band的大小(Band>
发明内容
针对瓦记录技术RMW严重的写放大问题,本发明将带分为三种类型:随机带、半随机带和顺序带。磁盘中的大部分带初始类型为随机带,随机带采用顺序写的方式写入数据,但是支持原地更新,当随机带内写入空间用完后,开始对随机带进行整理,整理后的随机带转换为半随机带,此时带内部分支持原地更新,当半随机带继续整理到只有最后一条包含有效数据的磁道可以支持原地更新时,带的状态转变为顺序带,此时带内只有最后一条包含有效数据的磁道可以支持原地更新,其余写请求以顺序的方式写入带,此时带变为循环日志。本发明通过将带分为三种类型,并通过带的动态类型转换来避免瓦记录的RMW过程,从而提升瓦记录磁盘的非顺序写性能。
本发明提出一种支持原地更新的瓦记录写顺序化方法,包括:
步骤1、将瓦记录磁盘中的带划分为随机带,并根据该随机带中的覆盖率在该随机带中设置缓冲区,以存储该随机带中被移动磁道的数据,将带内的非顺序写请求顺序写入该随机带,以支持原地更新;
步骤2、通过该缓冲区将该随机带中磁道数据上移,以将该随机带转换为半随机带,采用顺序的方式将新数据写入该半随机带;
步骤3、通过该缓冲区将该半随机带中磁道数据上移,以将该半随机带转换为顺序带,采用循环日志结构更新该顺序带,该循环日志结构中的头指针处为新数据写入点,尾指针处为回收读的起始位置;
步骤4、以该尾指针向该头指针方向进行扫描,将有效数据读出后写入该头指针处,以释放无效数据占用的空间,将该尾指针和该头指针前移;
步骤5、循环该步骤4,通过释放无效数据占用的空间以实现对该瓦记录磁盘的更新。
该支持原地更新的瓦记录写顺序化方法,其中对于随机带,带内的非顺序写请求顺序写入,并支持原地更新;对于半随机带,非顺序写请求依然是顺序写入,但只能部分支持原地更新;对于顺序带,非顺序写请求依然是顺序写入,但只有包含有效数据的最后一条磁道支持原地更新。
该支持原地更新的瓦记录写顺序化方法,其中将应用的数据顺序写入随机带。
该支持原地更新的瓦记录写顺序化方法,其中所述步骤2包括将随机带的磁道中的数据按照顺序依次上移,以释放空间,并产生半随机带。
该支持原地更新的瓦记录写顺序化方法,其中所述步骤3包括将半随机带的磁道中的数据按照顺序依次上移,以释放空间,并产生顺序带。
本发明还提出了一种支持原地更新的瓦记录写顺序化装置,其中包括:
随机带划分模块,用于将瓦记录磁盘中的带划分为随机带,并根据该随机带中的覆盖率在该随机带中设置缓冲区,以存储该随机带中被移动磁道的数据,将带内的非顺序写请求顺序写入该随机带,以支持原地更新;
半随机带划分模块,用于通过该缓冲区将该随机带中磁道数据上移,以将该随机带转换为半随机带,采用顺序的方式将新数据写入该半随机带;
顺序带划分模块,用于通过该缓冲区将该半随机带中磁道数据上移,以将该半随机带转换为顺序带,采用循环日志结构更新该顺序带,该循环日志结构中的头指针处为新数据写入点,尾指针处为回收读的起始位置;
空间释放模块,用于从该尾指针向该头指针方向进行扫描,将有效数据读出后写入该头指针处,以释放无效数据占用的空间,将该尾指针和该头指针前移;
循环模块,用于循环调用该空间释放模块,通过释放无效数据占用的空间以实现对该瓦记录磁盘的更新。
该支持原地更新的瓦记录写顺序化装置,其中对于随机带,带内的非顺序写请求顺序写入,并支持原地更新;对于半随机带,非顺序写请求依然是顺序写入,但只能部分支持原地更新;对于顺序带,非顺序写请求依然是顺序写入,但只有包含有效数据的最后一条磁道支持原地更新。
该支持原地更新的瓦记录写顺序化装置,其中将应用的数据顺序写入随机带。
该支持原地更新的瓦记录写顺序化装置,其中该半随机带划分模块包括将随机带的磁道中的数据按照顺序依次上移,以释放空间,并产生半随机带。
该支持原地更新的瓦记录写顺序化装置,其中该顺序带划分模块包括将半随机带的磁道中的数据按照顺序依次上移,以释放空间,并产生顺序带。
由以上方案可知,本发明的优点在于:
本发明将瓦记录磁盘的带划分为三种类型,将随机写顺序化,并且支持原地更新,从而避免了瓦记录整带的RMW过程,一定程度上提升了瓦记录磁盘非顺序写性能。
附图说明
图1为盘片空间按带划分图;
图2为随机带图;
图3为半随机带图;
图4为顺序带图;
图5为循环日志图。
具体实施方式
本发明提出一种支持原地更新的瓦记录写顺序化方法,包括:
步骤1、将瓦记录磁盘中的带划分为随机带,并根据该随机带中的覆盖率在该随机带中设置缓冲区,以存储该随机带中被移动磁道的数据,将带内的非顺序写请求顺序写入该随机带,以支持原地更新;
步骤2、通过该缓冲区将该随机带中磁道数据上移,以将该随机带转换为半随机带,采用顺序的方式将新数据写入该半随机带;
步骤3、通过该缓冲区将该半随机带中磁道数据上移,以将该半随机带转换为顺序带,采用循环日志结构更新该顺序带,该循环日志结构中的头指针处为新数据写入点,尾指针处为回收读的起始位置;
步骤4、以该尾指针向该头指针方向进行扫描,将有效数据读出后写入该头指针处,以释放无效数据占用的空间,将该尾指针和该头指针前移;
步骤5、循环该步骤4,通过释放无效数据占用的空间以实现对该瓦记录磁盘的更新。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
本发明包括带的三种类型划分。将瓦记录磁盘中的带划分为随机带(如图2)、半随机带(如图3)和顺序带(如图4)三种类型,对于随机带,带内的非顺序写请求顺序写入,并支持原地更新;对于半随机带,非顺序写请求依然是顺序写入,但只能部分支持原地更新;对于顺序带,写入依然是顺序的,但只有包含有效数据的最后一条磁道可以支持原地更新。
本发明包括带的状态转换。初始时磁盘中的带由随机带和顺序带组成,数量比例可由应用特性而定,如果应用以非顺序写为主,则随机带的比例高;如果应用以顺序写为主,则顺序带的比例高,当随机带中的可写磁道被写满时,将写满的随机带转换为半随机带,以增加带内可写入空间;当半随机带中的可写磁道被写满时,将被写满的半随机带转换为顺序带,以进一步增加带内可写入空间,最终当所有半随机带都转换为顺序带后,磁盘无法再释放可写空间。
下面给出本发明的具体实施方式,结合附图对本发明做出了详细描述。
(一)随机带状态
磁盘初始时可根据应用特性按一定比例将带的状态设置为随机带和顺序带,如图2,以覆盖率K=2为例,阴影磁道(1-5)为随机带内可写入空间,白色磁道不能写入数据,因为更新阴影磁道上的数据会覆盖掉其下方的白色磁道上的数据,在白色磁道写入数据又会继续向下覆盖阴影区域上的数据。带内最后两行深色磁道为缓存区,用来在带状态进行转换时临时存储被移动磁道上的数据,避免转换过程中掉电导致磁道上的数据丢失,随机带的写入方式是顺序化的,即磁道1-5上的数据写入是顺序的,但是可以支持原地更新,因为更新时不会产生写覆盖。
(二)半随机带
当随机带内空间被写满,但是依然有无法产生更新的新数据需要写入时,需要启动带的状态转换,将随机带转换为半随机带,以释放带内可写入空间,如图3,转换过程为将随机带的磁道2-5中的数据依次上移,即先将磁道2的数据复制到带内缓存区,然后在磁道1的下方写入一份磁道2的数据,成功后对磁道3-5依次进行如上操作,移动完成后磁道1-5变成了相邻磁道,此时带内产生了可写磁道6和7,磁道6、7为新产生的可写入空间,可以继续采用顺序的方式写入新数据,但是带内只有磁道5、6和7三条磁道可以支持原地更新,磁道1-4由于变为相邻磁道,因此不能再支持原地更新,之后对于磁道1-4上的更新写被顺序的写入新产生的磁道6和7中,磁道1-4上产生的无效空间需等待回收释放。
(三)顺序带
当半随机带被写满数据后,需要将半随机带转换为顺序带,以进一步释放带内可写入空间,如图4,与随机带转换为半随机带类似,将磁道6、7的数据上移,从而产生新的可写磁道8,最终只有新产生的磁道8可以支持原地更新,此时带变为了循环日志结构,如图5,头指针处是数据写入点,当数据写入后头指针前移,黑色区域为有效数据区,阴影部分是更新产生的无效数据区,由于瓦记录不能支持原地更新,因此无效数据区只能通过回收来释放,尾指针是回收读的起始位置,当循环日志启动回收时,从尾指针向头指针方向进行扫描,将有效数据读出后写入头指针处以实现无效空间的释放,然后将尾指针前移,因此当磁道8写满数据后可继续顺序向后写入。头尾指针之间需保持一定距离,避免在头指针处写入数据时覆盖掉尾指针处的有效数据。
本发明还提出一种支持原地更新的瓦记录写顺序化装置,包括:
随机带划分模块,用于将瓦记录磁盘中的带划分为随机带,并根据该随机带中的覆盖率在该随机带中设置缓冲区,以存储该随机带中被移动磁道的数据,将带内的非顺序写请求顺序写入该随机带,以支持原地更新;
半随机带划分模块,用于通过该缓冲区将该随机带中磁道数据上移,以将该随机带转换为半随机带,采用顺序的方式将新数据写入该半随机带;
顺序带划分模块,用于通过该缓冲区将该半随机带中磁道数据上移,以将该半随机带转换为顺序带,采用循环日志结构更新该顺序带,该循环日志结构中的头指针处为新数据写入点,尾指针处为回收读的起始位置;
空间释放模块,用于从该尾指针向该头指针方向进行扫描,将有效数据读出后写入该头指针处,以释放无效数据占用的空间,将该尾指针和该头指针前移;
循环模块,用于循环调用该空间释放模块,通过释放无效数据占用的空间以实现对该瓦记录磁盘的更新。
该支持原地更新的瓦记录写顺序化装置,其中对于随机带,带内的非顺序写请求顺序写入,并支持原地更新;对于半随机带,非顺序写请求依然是顺序写入,但只能部分支持原地更新;对于顺序带,非顺序写请求依然是顺序写入,但只有包含有效数据的最后一条磁道支持原地更新。
该支持原地更新的瓦记录写顺序化装置,其中将应用的数据顺序写入随机带。
该支持原地更新的瓦记录写顺序化装置,其中该半随机带划分模块包括将随机带的磁道中的数据按照顺序依次上移,以释放空间,并产生半随机带。
该支持原地更新的瓦记录写顺序化装置,其中该顺序带划分模块包括将半随机带的磁道中的数据按照顺序依次上移,以释放空间,并产生顺序带。
机译: 具有写顺序保留功能的位图写日志记录,支持辅助存储的异步更新
机译: 作为非平稳状态检测装置,顺序更新非固定检测装置,顺序更新非固定检测方法,每条记录介质为空1个记录的样本
机译: 电子零件安装装置中的电子零件安装顺序最优化方法,电子零件安装顺序中的可读取计算机的记录介质,电子零件安装顺序的最佳化,电子零件安装顺序的最佳化