数据写入装置及方法

文档序号:9910610阅读:303来源:国知局
数据写入装置及方法
【技术领域】
[0001 ]本发明涉及数据存储技术领域,特别涉及一种数据写入装置及方法。
【背景技术】
[0002]SMR(Shingled Magnetic Recording,叠瓦式磁记录)技术是一种新兴的硬盘存储技术。目前的SMR硬盘都是按照磁轨进行分区,每一个硬盘分区的末端不采用叠瓦式布局。
[0003]KV(Key-Value,键值)存储是一种常用的非关系型存储方式,采用键值存储方式存储数据时,通常将一个键值数据对象切分成若干子数据对象,然后通过哈希(hash)方式将所有子数据对象打散到硬盘中进行存储。当键值数据对象存储入SMR硬盘时,一个键值数据对象的若干个子数据对象将会分散在各个硬盘分区,或者同一个硬盘分区上不连续的物理区域中。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]在键值存储中,业务删除时通常针对整个键值数据对象进行操作,由于SMR硬盘中同一个键值数据对象的子数据对象可能分散在多个硬盘分区,或者同一个硬盘分区上不连续的物理区域,因此,删除键值数据对象会在SMR硬盘上造成多个空洞,使得硬盘碎片化严重,影响存储系统垃圾回收的效率。

【发明内容】

[0006]为了解决现有技术中删除键值数据对象会在SMR硬盘上造成多个空洞,使得硬盘碎片化严重,影响存储系统垃圾回收的效率的问题,本发明实施例提供了一种数据写入装置及方法,用于键值存储系统中,所述键值存储系统建立于叠瓦式磁记录SMR硬盘中,所述技术方案如下:
[0007]第一方面,提供了一种数据写入方法,该方法包括:
[0008]接收写入指令,所述写入指令用于指示将键值数据对象写入所述SMR硬盘,所述SMR硬盘包含多个硬盘分区;在所述多个硬盘分区中确定第一目标分区;将所述键值数据对象切分成至少一个子数据对象,并将所述至少一个子数据对象顺序写入所述第一目标分区中的相邻磁轨。
[0009]本发明实施例提供的数据写入方法,通过接收用于指示将键值数据对象写入该SMR硬盘的写入指令,在SMR硬盘的多个硬盘分区中确定第一目标分区,并在确定的该第一目标分区中顺序写入该键值数据对象包含的至少一个子数据对象,在后续删除该键值数据对象中的部分或者全部子数据对象时,形成的无效数据也会相对集中,不会在SMR硬盘上造成过多的空洞,缓解了 SMR硬盘的碎片化程度,从而提高系统的垃圾回收效率。
[0010]在第一方面的第一种可能的实现方式中,所述在所述多个硬盘分区中确定第一目标分区,包括:判断所述SMR硬盘中是否已存在与所述键值数据对象具有相同的对象标识的数据;若判断结果为所述SMR硬盘中已存在与所述键值数据对象具有相同的对象标识的数据,则将与所述键值数据对象具有相同的对象标识的数据所在的、剩余空间不小于所述键值数据对象的数据量的硬盘分区确定为所述第一目标分区。对键值数据对象进行写入时,可以优先将该键值数据对象写入到其它对应相同的对象标识的子数据对象所在的硬盘分区中,从而使对应相同的对象标识的数据更加集中,进一步缓解了删除数据时,SMR硬盘的碎片化程度。
[0011]在第一方面的第二种可能的实现方式中,所述键值数据对象包含的至少一个子数据对象各自对应所述键值数据对象的对象标识,所述方法还包括:在对所述SMR硬盘中的无效数据进行垃圾回收时,检测对应所述对象标识的各个有效的子数据对象是否存储于同一个硬盘分区;若检测结果为所述各个有效的子数据对象未存储于同一个硬盘分区,则在所述多个硬盘分区中确定第二目标分区;将所述各个有效的子数据对象搬移到所述第二目标分区。通过在对该SMR硬盘中的无效数据进行垃圾回收时,检测对应该对象标识的各个有效的子数据对象是否存储于同一个硬盘分区,若检测结果为该各个有效的子数据对象未存储于同一个硬盘分区,则在该多个硬盘分区中确定第二目标分区,将该各个有效的子数据对象搬移到该第二目标分区中的相邻磁轨,在统一进行垃圾回收,可以将有效数据搬移到一起,使具有相同的object-1d的数据继续保持集中存储的状态,进一步缓解SMR硬盘的碎片化程度,提高垃圾回收效率。
[0012]结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,所述在所述多个硬盘分区中确定第二目标分区,包括:判断存储所述各个有效的子数据对象的硬盘分区中,是否存在满足预设条件的硬盘分区,所述预设条件为:所述硬盘分区的剩余空间不小于存储于所述硬盘分区之外的其它有效的子数据对象的数据量之和;若判断结果为存在满足所述预设条件的硬盘分区,则将所述满足所述预设条件的硬盘分区确定为所述第二目标分区。在进行垃圾回收时,将对应同一对象标识的各个有效的子数据对象优先搬移到已经存储有部分对应该对象标识的有效子数据对象的硬盘分区中,这样只需要将其它有效的子数据对象搬移到第二目标分区中即可,减少了数据搬移量。
[0013]第二方面,本发明实施例提供了一种存储设备,该存储设备包括:处理器和存储器;处理器被配置为执行存储器中存储的指令;处理器通过执行指令来实现上述第一方面或第一方面中任意一种可能的实现方式所提供的数据写入方法。
[0014]第三方面,本发明实施例提供了一种数据写入装置,该数据写入装置包括至少一个单元,该至少一个单元用于实现上述第一方面或第一方面中任意一种可能的实现方式所提供的数据写入方法。
[0015]可选的,所述在所述多个硬盘分区中确定第一目标分区,还包括:若判断结果为所述SMR硬盘中不存在与所述键值数据对象具有相同的对象标识的数据,则将所述多个硬盘分区中一个剩余空间不小于所述键值数据对象的数据量的硬盘分区确定为所述第一目标分区。
[0016]可选的,所述在所述多个硬盘分区中确定第二目标分区,还包括:若判断结果为不存在满足所述预设条件的硬盘分区,则将所述多个硬盘分区中一个剩余空间不小于所述各个有效的子数据对象的数据量之和的硬盘分区确定为所述第二目标分区。
【附图说明】
[0017]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1是本发明示例性实施例所示出的存储设备的结构示意图;
[0019]图2A是本发明一示例性实施例示出的数据写入方法的方法流程图;
[0020]图2B是图2A所示实施例涉及的第一目标分区确定方法的流程图;
[0021]图2C是图2A所示实施例涉及的第二目标分区确定方法的流程图;
[0022]图3是本发明一个示例性实施例提供的数据写入装置的框图。
【具体实施方式】
[0023]为使本发明的目的、技术方案和优点更
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1