A method of indirect replay for a flash memory system. The method is included in a host stream to write the data into a block set of a flash memory storage system. The host block set assigns the main sequence number from the recently closed host block set. The method includes writing an indirect log in each host block that is associated with the assigned main sequence number. This method includes writing data into other blocks of the flash memory storage system in the garbage collection (GC) stream. Based on the recently closed host block set, the main sequence number is assigned to the GC block set, and the GC block set is assigned a secondary sequence number from the recently closed GC block set. This method includes writing an indirect log in each GC block that is associated with the assigned main sequence number and the secondary sequence number. An indirect table is constructed by rebroadcasting the log of the block set in order of the main sequence number and the sequence number.
【技术实现步骤摘要】
多流日志重播
本公开涉及闪存存储设备,并且更具体地,涉及为闪存存储设备恢复间接系统。
技术介绍
用于闪存存储设备的间接系统针对每个主机可访问逻辑块地址(logicalblockaddress,LBA)跟踪闪存存储器设备上的物理位置。在闪存存储设备断电并在电源恢复时再次启动后,间接系统恢复到间接系统在断电之前的状态,被称为间接重播或重播的处理。间接重播通常利用与用户数据一起记录的新的写入或写入增量的日志将间接系统的快照的组合用作一个整体。但是,基于快照的重播可能会提高固件的复杂性,因为必须管理快照和日志记录之间的同步。由于快照所需的资源,运行时性能可能会受到影响。当使用快照来重播时,启动时性能也可能受损。
技术实现思路
本技术避免使用针对重播的快照。从写入增量(deltas)重播整个闪存存储设备。本技术还允许在多流系统中的无快照重播。根据本技术的方面,提供了一种用于重播闪存存储设备的方法。该方法包括在主流中,将数据写入到存储设备的第一多个块集。该方法包括将各个主序列号分配给所述第一多个块集的每个块集,其中所述各个主序列号是从被分配给所述第一多个块集的最近关闭的块集的先前主序列号增加的。该方法还包括将各个间接日志写入到所述第一多个块集的每一个,其中所述各个间接日志对应于被写入(例如,写入增量)到各个块集的数据并且与被分配给所述各个块集的所述各个主序列号相关联。该方法还包括在与所述主流同时操作的次流中,将数据写入到所述存储设备的第二多个块集。该方法包括将各个主-次序列号分配给所述第二多个块集的每个块集,其中所述各个主-次序列号包含被分配给所述第一多个块集的最近关闭的 ...
【技术保护点】
一种方法,包含:在主流中,将数据写入到存储设备的第一多个块集;将各个主序列号分配给所述第一多个块集的每个块集,其中所述各个主序列号是从被分配给所述第一多个块集的最近关闭的块集的先前主序列号增加的;将各个间接日志写入到所述第一多个块集的每一个,其中所述各个间接日志对应于被写入到各个块集的数据并且与被分配给所述各个块集的所述各个主序列号相关联;在与所述主流同时操作的次流中,将数据写入到所述存储设备的第二多个块集;将各个主‑次序列号分配给所述第二多个块集的每个块集,其中所述各个主‑次序列号包含被分配给所述第一多个块集的最近关闭的块集的先前主序列号以及从所述第二多个块集中的最近关闭的块集增加的各个次序列号;将各个间接日志写入到所述第二多个块集中的每一个,其中所述各个间接日志对应于被写入到所述各个块集的数据并且与被分配给所述各个块集的所述各个主‑次序列号相关联;以及通过重播来自所述第一多个块集和所述第二多个块集的间接日志来在所述存储设备的存储器中构造间接表,所述第一多个块集和第二多个块集首先根据各个主序列号并且其次根据各个次序列号来排序。
【技术特征摘要】
2016.07.27 US 15/221,5471.一种方法,包含:在主流中,将数据写入到存储设备的第一多个块集;将各个主序列号分配给所述第一多个块集的每个块集,其中所述各个主序列号是从被分配给所述第一多个块集的最近关闭的块集的先前主序列号增加的;将各个间接日志写入到所述第一多个块集的每一个,其中所述各个间接日志对应于被写入到各个块集的数据并且与被分配给所述各个块集的所述各个主序列号相关联;在与所述主流同时操作的次流中,将数据写入到所述存储设备的第二多个块集;将各个主-次序列号分配给所述第二多个块集的每个块集,其中所述各个主-次序列号包含被分配给所述第一多个块集的最近关闭的块集的先前主序列号以及从所述第二多个块集中的最近关闭的块集增加的各个次序列号;将各个间接日志写入到所述第二多个块集中的每一个,其中所述各个间接日志对应于被写入到所述各个块集的数据并且与被分配给所述各个块集的所述各个主-次序列号相关联;以及通过重播来自所述第一多个块集和所述第二多个块集的间接日志来在所述存储设备的存储器中构造间接表,所述第一多个块集和第二多个块集首先根据各个主序列号并且其次根据各个次序列号来排序。2.根据权利要求1所述的方法,其中,构造所述间接表还包含:根据各个主序列号来对所述第一多个块集排序;根据各个主序列号来对所述第二多个块集排序;以及根据各个次序列号来对所述第二多个块集中具有相同主序列号的块集排序。3.根据权利要求2所述的方法,其中,构造所述间接表还包含:重播来自所排序的第一多个块集的每个块集的间接日志,直到所重播的块集的主序列号与所排序的第二多个块集中的最旧的主序列号匹配;以及重播来自所排序的第二多个块集的每个块集的间接日志,直到具有与最旧的主序列号匹配的主序列号的所有块集已经被重播。4.根据权利要求1所述的方法,其中,构造所述间接表还包含:将所述第一多个块集和所述第二多个块集组合成第三多个块集;根据各个主序列号来对所述第三多个块集排序;根据各个次序列号来对所述第二多个块集中具有相同主序列号的块集排序;以及重播来自所排序的第三多个块集的每个块集的间接日志。5.根据权利要求1所述的方法,还包含:在与所述主流同时操作的第二主流中,将数据写入到所述存储设备的第三多个块集;将各个主序列号分配给所述第三多个块集的每个块集,其中所述各个主序列号是从被分配给所述第一多个块集或所述第三多个块集的最近关闭的块集的先前主序列号增加的;以及将各个间接日志写入到所述第三多个块集中的每一个。6.根据权利要求5所述的方法,其中所述主-次序列号包含被分配给所述第一多个块集或第三多个块集的最近关闭的块集的先前主序列号。7.根据权利要求5所述的方法,其中所述主-次序列号包含被分配给所述第一多个块集的最近关闭的块集与所述第三多个块集的最近关闭的块集之间的较旧的块集的先前主序列号。8.根据权利要求5所述的方法,其中所述主流对应于主机流,所述第二主流对应于第二主机流,并且所述次流对应于垃圾收集流。9.根据权利要求1所述的方法,其中所述主流对应于主机流,并且所述次流对应于垃圾收集流。10.根据权利要求9所述的方法,其中所述垃圾收集流为所述第二多个块集选择具有比所分配的主-次序列号的主序列号小的各个主序列号的块集。11.根据权利要求1所述的方法,其中响应于启动所述存储设备,构造所述间接表。12.一种闪存存储系统,包含:存储器;多个闪存设备;以及控制器,所述控制器被配置为:在主机流中,将数据写入到所述闪存存储系统的第一多个块集;将各个主序列号分配给所述第一多个块集的每个块集,其中所述各个主序列号是从被分配给所述第一多个块集的最近关闭的块集的先前主序列号增加的;将各个间接日志写入到所述第一多个块集的每一个,其中所述各个间接日志对应于被写入到各个块集的数据并且与被分配给所述各个块集的所述各个主序列号相关联;在与所述主机流同时操作的垃圾收集流中,将数据写入到所述闪存存储系统的第二多个块集;将各个主-次序列号分...
【专利技术属性】
技术研发人员:DG德雷尔,CC麦坎布里奇,P彼得森,S苏巴拉奥,
申请(专利权)人:西部数据技术公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。