写入信息存储设备、方法和记录介质的制作方法

文档序号:10475884阅读:294来源:国知局
写入信息存储设备、方法和记录介质的制作方法
【专利摘要】本发明有效地从差异数据中读出写入数据并且恢复写入状态回到过去的任意时间。本发明的存储设备包括列表存储装置,用于存储记录写入记录的数据列表,写入记录包括每个发布给数据存储单元的写入请求要写的数据串和地址范围,以便清楚显示写入请求的时间序列,以及索引存储装置,用于存储用于节点的二进制搜索树,所述节点包括数据存储单元的地址范围作为键值范围以及到写入记录的指示符信息,写入记录包括在这样的地址范围中的最新的数据。
【专利说明】
写入信息存储设备、方法和记录介质
技术领域
[0001]本发明涉及写入信息存储设备、方法和记录介质,并且具体地涉及用于累积向用于存储数据的存储设备发出以从其读出更新的数据的的写入请求信息的写入信息存储设备、方法和记录介质。
【背景技术】
[0002]为了保护存储设备中的数据,在存储设备中的数据仅可以被参考(读出)的同时,无法执行需要写入处理的程序。为了允许程序被执行,使用一种用于在另一存储设备中保持表示与存储设备中的数据的差异的差异数据并且仅写入差异数据的方法。在该方法中,首先从写入数据当读出差异数据,并且如果不存在相应数据,则读出在受保护的存储设备中所保存的数据。
[0003]NPL I公开了一种差异数据的格式。该格式保持具有由于写入而产生的差异的块的比特映射并且保持更新的块数据。
[0004]NPL 2公开了一种AVL树(AVL树,Adelson-Velskii和Landis树)。
[0005]PTL I公开了一种存储设备,包括用于存储关于存储数据的第一卷(volume)的写入历史的第二卷以及用于存储从特定时间开始的第一卷中的复制数据的第三卷。该存储设备参考在第二卷中存储的写入历史,并且将第三卷中存储的复制数据重新写成从与这样的特定时间不同的时间开始第一卷中的复制数据。
[0006]PTL 2的计算机系统累积独立于文件系统的辅助存储设备上的文件系统的更新历史。该更新历史存储更新之前的内容。因此,该计算机系统可以将文件系统镜像恢复回到过去预定的时间。
[0007]PTL 3技术的系统使用修正历史来将数据恢复回到过去的时间。
[0008]引用列表
[0009]专利文献
[0010]PTL 1:日本未审专利申请公布N0.2008-33527
[0011]PTL 2:日本未审专利申请公布N0.2005-50024
[0012]PTL 3:日本未审专利申请公布(PCT申请的翻译)N0.2008-511083
[0013]非专利文献
[0014]NPL I:Virtual Hard Disk Image Format Specificat1n,微软公司,Ver.1.0,2006
[0015]NPL 2:Georgii M.Adelson-Velskii和Evgenii M.Landis,An algorithm forthe organizat1n of informat1n,Doklady Akademii Nauk SSSR,146:263-266,1962(俄语).(英语翻译Myron J.Ricci于Soviet Math.Doklady ,3:1259-1263,1962.)

【发明内容】

[0016]技术问题
[0017]利用前述方法的系统在从差异数据中有效读出写入的数据并且将写入状态恢复为过去任何时间中具有问题。
[0018]当存在对重叠地址段的写入时,使用NPLI的格式的差异数据的系统覆写该差异数据。因此,该系统无法将写入状态恢复回到过去任意时间。
[0019]PTL I的系统使用仅用于第三卷的数据更新的写入历史数据,并且不从写入历史数据中读出最新的写入数据。相同方式适用于PTL 2和PTL 3的技术。
[0020]本发明的示例方面在于提供写入历史存储设备、方法和记录介质以解决上述的问题。
[0021]问题的解决方案
[0022]根据本发明的示例性方面,一种写入信息存储设备,包括:
[0023]列表存储装置,用于存储记录写入记录的数据列表,写入记录包括按向数据存储单元发出的写入请求而要被写入的数据串和地址范围,以清楚示出写入请求的时间序列,以及
[0024]索引存储装置,用于存储用于节点的二进制搜索树,包括作为键值范围的数据存储单元的地址范围以及对写入记录的指示符信息,写入记录包括在这样的地址范围中的最新数据。
[0025]根据本发明的示例方面的方法包括:
[0026]存储用于记录写入记录的数据列表,写入记录包括按向数据存储单元发出的写入请求而要被写入的数据串和地址范围,以清楚示出写入请求的时间序列,以及
[0027]存储用于节点的二进制搜索树,括作为键值范围的数据存储单元的地址范围以及对写入记录的指示符信息,写入记录包括在这样的地址范围中的最新数据。
[0028]发明的有益效果
[0029]关于本发明的设备可以从差异数据中有效读出更新的数据并且将写入状态恢复回到过去任意时间。
【附图说明】
[0030]图1是关于本发明的第一示例实施例的写入信息存储设备I的配置图。
[0031]图2是示出数据列表221的数据结构的图。
[0032]图3是示出配置半平衡二进制搜索树111的每个节点112的数据结构的图。
[0033]图4是示出针对写入请求的序列示例创建的数据列表221和自平衡二进制搜索树111的配置方法的示例的图。
[0034]图5是当数据存储单元21被写入保护时接收写入请求的搜索和更新单元33的操作的流程图。
[0035]图6A是示出搜索和更新单元33将重叠部分从用于重叠节点的键值范围中移除的处理的图(情况1-A)。
[0036]图6B是示出搜索和更新单元33减小键值范围并且将新的节点插入到顶部重叠节点的位置的处理的图(情况1-B)。
[0037]图6C是示出搜索和更新单元33旋转节点的处理的图(情况1-C)。
[0038]图7A是示出搜索和更新单元33将重叠部分从用于重叠节点的键值范围中移除重叠的部分的处理的图。
[0039]图7B是示出搜索和更新单元33将划分的节点插入到子树的处理的图。
[0040]图8是第二示例实施例的写入信息存储设备I的配置图。
[0041]图9是第三示例实施例的写入信息存储设备I的配置图。
【具体实施方式】
[0042]〈第一示例实施例〉
[0043]图1是关于本发明的第一示例实施例的写入信息存储设备I的配置图。
[0044]写入信息存储设备I是例如计算机。写入信息存储设备I中的处理器30执行应用程序31和来自文件系统32的指令。文件系统32读取在数据存储单元21中存储的数据并且向其写入数据。写入信息存储设备I还包括搜索和更新单元33、列表存储单元22和索引存储单元
Ilo
[0045]搜索和更新单元33接收来自文件系统32的指令,并且读取数据存储单元21中的数据并向其写入数据。然而,数据存储单元21可以临时是写保护和只读的。该写保护是通过例如备份程序(未示出)来完成的,该备份程序用于将数据存储单元21的备份数据存储在诸如备份磁盘设备(未示出)中。备份程序可以由写入信息存储设备I或共享数据存储单元21的另一计算机(未示出)来执行。
[0046]如果文件系统32在写保护时段期间作出写入请求,则搜索和更新单元33在列表存储单元22中的数据列表221上存储包括写入数据的写入请求。当写保护被取消时,搜索和更新单元33基于数据列表221中的内容来更新(前滚)数据存储单元21中的数据。
[0047]如果文件系统32在写保护时段期间作出读取请求,则搜索和更新单元33在数据被存储在数据列表221上的情况下,从数据列表221上的读取区域读取数据,或者在数据没有被存储在数据列表221上的读取区域中的情况下,从数据存储单元21中读出数据。如果数据在读取区域中被写入多次,则数据的生成被重复存储在数据列表221上的读取区域中。在该情况下,搜索和更新单元33按读取区域中的地址读取最新数据。为了改善从数据列表221中读出最新数据的速率,搜索和更新单元33在索引存储单元11中创建用于数据列表221的索弓丨。该索引是自平衡二进制搜索树111。
[0048]注意,当向搜索和更新单元33发出写入指令时,文件系统32指派数据存储单元21中的存储区域的地址范围和数据串。当发出读取指令时,文件系统32指派数据存储单元21中的存储区域的地址范围。注意,地址范围例如是开始地址和结束地址、或者开始地址和数据长度。
[0049]搜索和更新单元33通过逻辑电路来配置。搜索和更新单元33可以是主要通过与处理器30不同的微处理器来配置的逻辑电路。而且,搜索和更新单元33可以被存储在写入信息存储设备I的存储器中,并且由处理器30执行的程序来实现。数据存储单元21和列表存储单元22例如是磁盘设备。索引存储单元11是IC存储器(集成电路)或磁盘设备。
[0050]图2是示出数据列表221的数据结构的图。数据列表221按写入请求存储写入记录,包括其地址范围和数据串。写入记录例如以写入时间的顺序被存储。写入记录可以包含写入时间,并且基于该值,搜索和更新单元33可以确定写入记录的时间序列。
[0051]图3是示出配置自平衡二进制搜索树111的每个节点112的数据结构的图。每个节点112包含地址范围、数据列表221中的写入记录,包括在这样的地址范围中的最新数据或者对写入记录中的字符串的指示符(例如,从数据列表221的文件顶部开始的偏移)、以及对子树中左右低级节点112(下文成为子节点)的指示符。自平衡二进制搜索树111使用地址作为关键字来进行搜索。因此,节点112的地址范围有时被称为键值范围。
[0052]自平衡二进制搜索树111是AVL树(参见NPL2)。自平衡二进制搜索树111在各个左右子树之间具有至多I的高度差。
[0053]搜索和更新单元33需要确定AVL树中的键值之间的幅度关系。由此,可能重叠、包含另一个或被包含在另一个中(下文称之为写入段)的写入请求地址范围无法在不改变的情况下变成键值。因此,当更新自平衡二进制搜索树111时,搜索和更新单元33消除了节点112之间的键值范围中的重叠。这允许搜索和更新单元33使用特定地址作为搜索关键字,并且在包括这样的检索关键字的段中或者在该段前后的段中检索节点112。
[0054]搜索和更新单元33可以在节点112的根节点处开始,并且在节点112的键值范围大于检索关键值的地址段的情况下跟随右子节点,并且在节点112的键值范围小于检索关键字的地址段的情况下跟随左子节点。以该方式,搜索和更新单元33可以检索对应于包括特定地址的段或者该段前后的段的数据列表221上的数据串的位置信息。
[0055]注意,为了简化,该本说明书中,键值范围小于父节点中的一个的子节点被称为左节点,并且其键值范围大于父节点中的一个的子节点被称为右节点,但是键值的名称和幅度关系不限于这些示例。
[0056]图4是解释针对写入请求100的序列示例创建的数据列表221和自平衡二进制搜索树111的配置方法的示例的图。
[0057]图4的左上方示出了写入请求100的序列示例。在序列示例中,水平轴示出数据存储单元21的地址,并且垂直轴示出时间(包括时间11、t2、t3和t4) ο在该序列示例中,搜索和更新单元33以时间序列顺序接收下面的四个写入请求作为写入请求100。
[0058].在时间tl,地址6到12的区域中的字符串“AB⑶EFG”
[0059].在时间t2,地址I到4的区域中的字符串“HIJK”
[0060].在时间t3,在地址3到10的区域中的字符串“LMN0PQRRS”
[0061 ].在时间t4,在地址5到8的区域中的字符串“TUVW”
[0062]写入请求100包括上述字符串作为数据串。当接收图4的写入请求100时,搜索和更新单元33创建图4的右上方所示的数据列表221。对于在时间tl处的写入,搜索和更新单元33首先存储写入记录Rtl,其包含在数据列表221上的写入请求100的写入段和数据串。然后,对于时间t2、t3和t4处的写入请求,搜索和更新单元33按顺序在数据列表221处的末尾处另外写入写入记录Rt2、Rt3和Rt4。
[0063]当接收图4的写入请求100时,搜索和更新单元33生成包括五个节点112的自平衡二进制搜索树111,如图4的左下方所示。这意味着,各个节点112的任何地址范围不相互重叠或互相包含,并且节点I位于根节点O的左边的子节点处,节点3位于节点I的左边的子节点处,节点2位于根节点O的右边的子节点处,并且节点4位于节点2的右边的子节点处。因此,搜索和更新单元33可以使用地址作为检索关键字来在自平衡二进制搜索树111中搜索最新数据。自平衡二进制搜索树111的每个节点的内容如下。
[0064].节点3:该节点112包括键值范围I到2和对写入记录Rt2的指示符,并且示出地址I到2的区域中的最新数据是“HI”,这是时间t2处的写入数据串。
[0065].节点1:该节点112包括键值范围3到4和对写入记录Rt3的指示符并且示出地址3至IJ4的区域中的最新数据是“LM”,这是时间t3的写入数据串。
[0066]?节点O:该节点112包括键值范围5到8和对写入记录Rt4的指示符,并且示出了地址5到8的区域中的最新数据是“TUVW”,这是时间t4处的写入数据串。
[0067].节点2:该节点112包括键值范围9到10和对写入记录Rt3的指示符,并且示出了地址9到10的区域中的最新数据是“RS”,这是时间t3处的写入数据串。
[0068]?节点4:该节点112包括键值范围11到12和对写入记录Rtl的指示符,并且示出了地址11到12的区域中的最新数据是“FG”,这是时间tl处的写入数据串。
[0069]图5是当数据存储单元21被写保护时接收写入请求的搜索和更新单元33的操作的流程图。搜索和更新单元33更新数据列表221和自平衡二进制搜索树111。
[0070]搜索和更新单元33在数据列表221的末尾处另外写入包括写入段和写入数据串的新的写入记录(SI)。接下来,搜索和更新单元33创建新节点112,包括新写入记录的写入段和对新写入记录的指示符信息(S2)。
[0071]然后,搜索和更新单元33搜索重叠节点(S3)。该重叠节点是节点112,其键值范围与写入段的至少一部分重叠。如果存在重叠节点(S4为Y),则搜索和更新单元33从重叠节点的键值范围中移除重叠部分(S5、S6、S10),并且在与重叠节点(下文称为顶部重叠节点)相同的位置处插入新创建的节点112,其从根节点112开始跟随并且被首先发现(S7)。在相同位置处插入节点112指示节点112由相同父节点的相同子节点指示符来指出。然后,搜索和更新单元33使自平衡二进制树再次平衡(S8)。
[0072]更具体地,为了移除重叠部分,搜索和更新单元33跟随从根节点开始的节点以搜索顶部重叠节点(S3),并且如果存在顶部重叠节点(S4中为Y),则比较写入段和该节点112的键值范围(S5)。
[0073]如果二者相同或者写入段大于顶部重叠节点的键值范围(S5中为Y),则搜索和更新单元33从左右子树中删除其键值范围全部被包含在写入段中的节点112 (S6中的(a))。
[0074]参考图6A到6C,现在描述重叠节点的搜索和删除操作的示例。图6A是示出搜索和更新单元33从用于重叠节点的键值范围中移除重叠部分的处理的图。这被称为情况1-A。图6B是示出搜索和更新单元33减小键值范围并且将新节点插入到顶部重叠节点的位置的处理的图。这被称为情况1-B。而且,图6C是示出搜索和更新单元33旋转节点的处理的图。这被称为情况1-C。
[0075]例如,在情况1-A中,搜索和更新单元33删除图6A中所示的自平衡二进制搜索树111中虚线内的写入段中的阴影节点112(其键值范围与写入段重叠的节点)。在情况1-B中,搜索和更新单元33进一步将节点112的键值范围,其键值范围与写入段重叠(二者之一)的一部分,减小到排除重叠范围的范围(二者中另一个)(S6中的(b))。在该情况下,搜索和更新单元33例如从图6A中的节点X和y的键值范围中剪切与写入段重叠的部分以减小键值范围(图6B)。
[0076]搜索和更新单元33将新创建的节点112(图6B中的节点z)插入到顶部重叠节点的位置(S7)。例如,搜索和更新单元33将新节点z插入到顶部重叠节点的位置。注意,搜索和更新单元33可以用新节点112的数据来更新顶部重叠节点数据。
[0077]最后,如图6C中所示的情况1-C,搜索和更新单元33通过节点112的旋转来使树再次平衡(S8)。具体地,搜索和更新单元33旋转节点X,以使得左右子树之间的高度差至多为
I。注意,旋转的详细解释被省略,因为这是对于二进制搜索树的公知的操作。
[0078]搜索和更新单元33可以如下执行上述S6和S7的处理。
[0079]首先,搜索和更新单元33从根节点112开始跟随节点,找到顶部重叠节点,用新的写入信息来更新该节点112,并且删除在由这个写从左右子树覆写的段中的节点112。
[0080]在该处理中,搜索和更新单元33使用写入段的结束位置地址作为右子树的搜索关键字,并且在节点142的键值大于检索关键字的地址段的情况下跟随左子节点,并且在节点112的键值小于检索关键字的地址段的情况下统一删除节点112及其左子树。此时,搜索和更新单元33改变指示符,使得节点112的右子节点可以作为父节点的新的子节点被跟随。接下来,搜索和更新单元33跟随右子节点,并且减小键值段,使得检索关键字左边的段在包括搜索关键字的段的情况下被剪切。
[0081]在搜索和更新单元33在没有子节点(叶节点)或者其具有包括搜索关键字作为键值的段的情况下到达节点112之后,其通过跟随返回路径来使AVL树再次平衡。这意味着,如果左右子树之间的高度差为2或更大,则搜索和更新单元33通过对树结构的旋转操作来进行用于减小左右树之间的高度差的处理。
[0082]搜索和更新单元33类似地处理顶部重叠节点左边的子树。这意味着,搜索和更新单元33使用写入段的开始位置地址作为搜索关键字,并且在节点112的键值小于搜索关键字的地址段的情况下跟随右子节点,并且在节点112的键值大于搜索关键的地址段的情况下统一删除节点112及其右子树。此时,搜索和更新单元33改变指示符,使得节点112的左子节点可以作为父节点的新的子节点被跟随。接下来,搜索和更新单元33跟随左子节点并且减小键值段,使得检索关键子右边的段在包括检索关键字的段的情况下被剪切。
[0083]然后,在搜索和更新单元33到达叶节点或具有包括搜索关键作为键值的段的节点112之后,其跟随返回路径以进行再次平衡处理。
[0084]同时,如果前述S5处的确定为假(S5中为N)并且写入段比顶部重叠节点的键值范围窄,则搜索和更新单元33将这样的节点112划分成其键值范围大于写入段的节点112和其键值范围小于写入段的节点112(S10中的(a))。搜索和更新单元33例如将具有键值小于写入段的段(图7A中虚线内的段)的节点P和具有键值大于写入段的段的节点q与图7A中所示的阴影节点112分离。
[0085]接下来,搜索和更新单元33在右子树上添加具有较大键值范围的节点112并且在左子树上添加具有较小键值范围的节点112 (S 1中的(b))。例如,如图7B中所示,搜索和更新单元33将具有键值小于写入段的段的节点P插入到左子树中,并且将具有键值大于写入段的段的节点q插入到右子树中。作为插入的节点P和q的键值的这些段不与子树中的段重叠。因此,类似于用于AVL树的一般插入处理,搜索和更新单元33可以插入节点P和q。
[0086]搜索和更新单元33将新创建的节点112插入到顶部重叠节点的位置(S7)。例如,搜索和更新单元33将新节点r插入到顶部重叠节点的位置。注意,搜索和更新单元33可以利用新节点112的数据来更新顶部重叠节点数据。
[0087]然后,搜索和更新单元33可以跟随从根节点112返回到顶部重叠节点的路径以进行再次平衡处理(S8)。
[0088]注意,如果上述S5的确定为假(S5中为N)并且写入段与顶部重叠节点的键值范围重叠但不是全部重叠,则搜索和更新单元33进行下述处理(在图5中未示出)。首先,搜索和更新单元33进行S6中所述的处理,用于a)写入段和顶部重叠节点的键值范围重叠的重叠部分,以及b)写入段超过顶部重叠节点的键值范围(大于或小于顶部重叠节点的键值)的部分。此外,对于c)顶部重叠节点的键值范围不超过写入段的键值范围(大于或小于写入段的键值)的部分,搜索和更新单元33在左或右子树上添加具有这样的段的节点112,例如在其键值范围减小之后的顶部重叠节点。
[0089]注意,如果不存在重叠节点(S4中为N),则搜索和更新单元33将新的节点112插入根据写入段的位置(S11)。该作为插入的节点112的键值的段不与自平衡二进制搜索树111中的段重叠。因此,类似于用于AVL树的一般插入处理,搜索和更新单元可以插入这样的节点 112。
[0090]当应用程序31请求通过文件系统32的数据读出时,搜索和更新单元33使用指派的地址范围(下文称为读出段)的开始地址作为用于从自平衡二进制搜索树111中检索其开始地址被包含在键值范围中的节点112的关键字。当找到这样的节点112时,搜索和更新单元33从这样的节点112的指示符所指示的数据列表221的写入记录中读出这样的节点112的键值范围和读取段重叠的分段中的数据。
[0091]此后,搜索和更新单元以地址顺序读出写入数据串,直至读取段的结束地址。注意,搜索和更新单元33读出用于段的数据存储单元21中的数据,而不是在读取段中的数据列表221上的数据串。
[0092]最后,搜索和更新单元33将从数据列表221或数据存储单元21中读出的数据串进行组合以生成读取段的数据串,并通过文件系统32向应用程序31返回数据串作为读结果。
[0093]当写入状态被恢复回到过去的特定时间时,搜索和更新单元33在索引存储单元11上初始化自平衡二进制搜索树111。然后,搜索和更新单元33从数据列表221中删除作为不必要写入的写入记录。该不必要写入是在前述特定时间之后写入的代码。
[0094]最后,搜索和更新单元33基于数据列表221的写入记录来创建新的自平衡二进制搜索树111。例如,搜索和更新单元33以数据列表221上的第一写入记录(具有最老写入时间的写入记录)开始的顺序将写入记录的地址范围和写入数据串的位置信息重新插入自平衡二进制搜索树111。
[0095]该示例性实施例的写入信息存储设备I可以有效地从数据列表221的差异数据中读出最新数据,同时其保留数据存储单元21的数据。这是因为,搜索和更新单元33针对数据检索来创建和使用自平衡二进制搜索树111。
[0096]对于在数据列表221上记录的写入记录的数目n,自平衡二进制搜索树111中节点的数目高达2n-l,并且树的高度为log2(2n-l)或更小。因此,搜索处理可以在最坏情况下以节点数目的对数数量级来实现,并且读取处理所需要的时间不会与写入记录数目的增加成比例地增加。
[0097]此外,该示例性实施例的写入信息存储设备I可以将写入状态恢复回在数据列表221上记录的在写入任意数据之前的状态。这是因为数据列表221按写入请求存储写入记录以使得写入顺序清楚。
[0098]该示例性实施例的写入信息存储设备I还可以通过删除多个重叠节点来有效地实现自平衡二进制搜索树111的更新处理。在AVL树中的一般删除处理的情况下,需要与要删除的节点112的数目成比例的时间。该示例性实施例的搜索和更新单元33可以以节点112的数目的对数数量级来实现更新处理,因为其在对其进行检索的同时基于子树删除重叠节点。这就是为什么在该示例性实施例的写入信息存储设备I中写入处理所需时间不会与写入记录数目的增加成比例地增加的原因。
[0099]〈第二示例实施例〉
[0100]图8是本示例实施例的写入信息存储设备的配置图。本示例实施例的数据存储单元21存储多个数据列表221。列表存储单元22存储自平衡二进制搜索树111,其对应于各个数据列表221。
[0101]在第一示例实施例中,数据列表221添加无限制写入记录。即使自平衡二进制搜索树111在写入记录数目的对数数量级的控制下带来索引检索和更新所需的时间,当写入记录的数目无限制增加时,用于操作自平衡二进制搜索树111所需的时间不能被忽略。
[0102]对于这个问题,可以进行测量来对于在数据列表221上记录的写入记录的数目设置限制,至此,数据可以基于写而被恢复,反映比数据存储单元21上的限制更旧的写入数据并且将其从数据列表221中删除。但是,这对于每次从数据列表221中删除旧的写入数据时重新组织自平衡二进制搜索树111并不有效。
[0103]因此,在本示例实施例的写入信息存储设备I中,搜索和更新单元33具有多个数据列表221和对应于各个数据列表221的多个自平衡二进制搜索树111。当数据列表221的写入记录的数目达到限制时,搜索和更新单元33切换目的以添加写入记录到新数据列表221并共同地反映数据存储单元21上的旧数据列表221的内容。这让搜索和更新单元33反映数据存储单元21上的旧写入记录,而不用重新组织自平衡二进制搜索树111。
[0104]为了读出数据,搜索和更新单元33首先从正在另外写入写入记录的数据列表221检索和读出写入数据串。搜索和更新单元33以时间逆序从多个数据列表221中检索数据。例如,如果在段中没有数据,其从之前(更老一代)数据列表221中检索并读出数据,且如果在之前数据列表221中没有数据,其从更老的数据列表中检索和读出数据。如果爱人和数据列表221中都没有数据,搜索和更新单元33从数据存储单元21中读出数据。
[0105]在最新数据列表221的检索和更新处理的后台中,搜索和更新单元33反映数据存储单元21上的旧数据列表221。在完成反映之后,搜索和更新单元33删除数据列表和对应于数据列表221的自平衡二进制搜索树111。这使得搜索和更新单元33能够在反映旧数据列表221期间保持写入或者读出数据。
[0106]当写入状态恢复回到过去特定时间时,搜索和更新单元33从数据列表221删除不必要的写入记录并且初始化和仅仅重新组织用于数据列表221的自平衡二进制搜索树111。这允许写入状态恢复回到写入任意数据之前记录在数据列表221上而未反应在数据存储单元21上的状态。
[0107]即使在数据存储单元21的写保护期间写入多个数据,本示例实施例的写入信息存储设备I可以有效检索和更新自平衡二进制搜索树111。这是因为,本示例实施例的写入信息存储设备包括多个数据列表221和自平衡二进制搜索树111。
[0108]〈第三示例实施例〉
[0109]图9是本示例实施例的写入信息存储设备I的配置图。本示例实施例的写入信息存储设备I包括索引存储单元11和列表存储单元22。
[0110]列表存储单元22记录写入记录,包括在发布到数据存储单元的每个写入请求的要与入的数据串和地址范围,以清楚不出与入请求的时间序列。索引存储单兀11存储一.进制搜索树用于节点(例如图3中所示的节点112),包括数据存储单元的地址范围作为键值范围和到该地址范围中包括最新数据的写入记录的指示符信息。
[0111]在本示例实施例中,写入信息存储设备I可以是计算机或可互换的存储介质,用于存储数据库。当写入信息存储设备I是用于存储数据库的可互换介质时,例如磁带介质,该磁带介质安装在计算机设备的磁带驱动设备上且数据库安装在计算机上。
[0112]本示例实施例的写入信息存储设备I可以有效从在列表记录单元22中记录的数据列表的差异数据中读取最新数据,同时其保留数据存储单元的数据。这是因为其具有用于数据检索的二进制搜索树。
[0113]使用前述的示例实施例作为好的示例来描述本发明。但是,本发明不限于前述的示例实施例。因此,本发明还适用于各种实施例,本领域普通技术人员能够理解这些实施例在本发明的范围之内。
[0114]本申请要求基于2013年12月17日提交的日本专利申请N0.2013-260132的优先权,其公开内容在此整体加入进来。
[0115]附图标记列表
[0116]I写入信息存储设备
[0117]11索引存储单元
[0118]111自平衡二进制搜索树
[0119]112 节点
[0120]21数据存储单元
[0121]22列表存储单元
[0122]221数据列表
[0123]30处理器
[0124]31应用程序
[0125]33搜索和更新单元
【主权项】
1.一种写入信息存储设备,包括: 列表存储装置,所述列表存储装置用于存储记录写入记录的数据列表,所述写入记录包括按向数据存储单元发出的写入请求要被写入的地址范围和数据串,以清楚示出写入请求的时间序列,以及 索引存储装置,所述索引存储装置用于存储用于节点的二进制搜索树,所述二进制搜索树包括作为键值范围的所述数据存储单元的地址范围以及对包括这样的地址范围中的最新数据的写入数据的指示符信息。2.根据权利要求1所述的写入信息存储设备,进一步包括检索和更新装置,所述检索和更新装置用于获得新的写入请求,将对应于这样的新的写入请求的新的写入记录添加到所述数据列表,从用于其键值范围与这样的新的写入请求的写入段的至少一部分重叠的节点(下文称为重叠节点)的键值范围中移除重叠的部分,将包括所述写入段和对所述新的写入记录的指示符信息的节点插入到最接近根节点的重叠节点的位置,并且更新所述二进制搜索树。3.根据权利要求2所述的写入信息存储设备,其中,所述检索和更新装置以从所述数据列表开始的倒序时间顺序删除写入记录直到数指定时间,并且基于剩余写入记录来创建新的二进制搜索树。4.根据权利要求2到3中任意一项所述的写入信息存储设备,其中,所述检索和更新装置获得读取请求,并且输出由节点指示的写入记录中所包括的数据串,其键值范围的至少一部分被包括在这样的读请求的地址范围中。5.根据权利要求2到4中任意一项所述的写入信息存储设备,其中,所述检索和更新装置删除其整个键值范围被包含在写入段中的节点,将其一部分被包含在所述写入段中的节点的键值范围减小到排除这样的部分的范围,通过将其键值范围包含所有写入段的节点划分成两个节点来移除重叠的部分,所述节点中的每一个分别具有比所述写入段更大或更小的键值范围,并且进一步通过替代节点位置以保持每个节点的左右子树之间的高度差至多为I,来使所述二进制搜索树平衡。6.根据权利要求2到5中任意一项所述的写入信息存储设备,其中,如果当所述检索和更新装置获得新的写入记录请求时,所述数据列表中的写入记录的数目达到预定数目,则所述检索和更新装置创建新的数据列表和对应于这样的新的数据列表的新的二进制搜索树,基于所述数据列表上的写入记录来更新所述数据存储单元的数据,并且删除所述二进制搜索树和所述数据列表。7.一种方法,包括: 存储用于记录写入记录的数据列表,所述写入记录包括按向数据存储单元发出的写入请求要被写入的地址范围和数据串,以清楚示出写入请求的时间序列,以及 存储用于节点的二进制搜索树,所述二进制搜索树包括作为键值范围的所述数据存储单元的地址范围以及对包括这样的地址范围中的最新数据的写入数据的指示符信息。8.根据权利要求7所述的方法,包括:获得新的写入请求,将对应于这样的新的写入请求的新的写入记录添加到所述数据列表,从用于其键值范围与这样的新的写入请求的写入段的至少一部分重叠的节点(下文称为重叠节点)的键值范围中移除重叠的部分,将包括所述写入段和对所述新的写入记录的指示符信息的节点插入到最接近根节点的重叠节点的位置,并且更新所述二进制搜索树。9.根据权利要求8所述的方法,包括:以从所述数据列表开始的倒序时间顺序删除写入记录直到数指定时间,并且基于剩余写入记录来创建新的二进制搜索树。10.—种记录程序的记录介质,所述程序用于使得计算机执行处理器,所述处理器存储记录写入记录的数据列表,所述写入记录包括按向数据存储单元发出的写入请求要被写入的地址范围和数据串,以清楚示出写入请求的时间序列,以及 存储用于节点的二进制搜索树,所述二进制搜索树包括作为键值范围的所述数据存储单元的地址范围以及对包括这样的地址范围中的最新数据的写入数据的指示符信息。
【文档编号】G06F12/00GK105830039SQ201480069279
【公开日】2016年8月3日
【申请日】2014年12月12日
【发明人】村田显宏
【申请人】日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1