数据库装置、程序及数据处理方法

文档序号:6532549阅读:193来源:国知局
数据库装置、程序及数据处理方法
【专利摘要】实施方式的数据库装置具备易失性的第1存储部、非易失性的第2存储部、对于将数据集合划分为多个的多个块而分别执行与访问请求对应的处理的访问处理部、将多个块的各自的备份时刻下的数据向第2存储部写出的备份处理部、和块管理部。块管理部在规定的条件的情况下,将存储在第1存储部中的某个块的数据向第2存储部写出,将被请求访问的块的数据从第2存储部向第1存储部读入。备份处理部将多个块中的还没有被写出到第2存储部中的块的数据写出。
【专利说明】数据库装置、程序及数据处理方法

【技术领域】
[0001]本发明的实施方式涉及数据库装置、程序及数据处理方法。

【背景技术】
[0002]以往,已知有内存数据库(In-memory database)。内存数据库是将数据集合的全部或大部分存储到易失性存储器中的数据库。内存数据库由于与盘记录装置等之间的访问变少,所以能够使对于访问请求的响应变快。
[0003]内存数据库定期地将数据集合的数据镜像(image)备份到盘记录装置等中。由此,内存数据库即使发生故障而存储在易失性存储器中的数据集合丢失,也能够对备份时刻的数据集合进行恢复。
[0004]此外,内存数据库也有将更新访问的日志记录到盘存储装置中的情况。在此情况下,内存数据库通过将备份时刻的数据集合读出后再执行日志,能够将在计算机中发生故障的时刻的数据集合完全恢复。
[0005]现有技术文献
[0006]专利文献
[0007]专利文献1:日本特开2006 - 139696号公报
[0008]专利文献2:日本特开2009 - 217688号公报
[0009]专利文献3:日本特开2011 - 186532号公报发明概要
[0010]可是,内存数据库在数据集合的尺寸超过易失性存储器的容量的情况下,必须将数据集合的一部分存储到盘存储装置等中。在这样的情况下,内存数据库与盘存储装置等之间的访问增加。特别是,内存数据库由于定期地将数据集合备份,所以对于一部分的数据来说,被重复记录到盘记录装置中,效率较差。
[0011]


【发明内容】

[0012]用于解决技术问题的手段
[0013]实施方式的数据库装置具备:易失性的第I存储部;非易失性的第2存储部;访问处理部,对于将数据集合划分为多个后的多个块,分别执行与访问请求对应的处理;备份处理部,将多个块的各自的备份时刻下的数据向第2存储部写出;以及块管理部。块管理部在被请求访问的块没有存储在第I存储部中、并且第I存储部的空闲容量是事先确定的量以下的情况下,将存储在第I存储部中的某个块的数据向第2存储部写出,将被请求访问的块的数据从第2存储部向第I存储部读入。备份处理部,将事先确定的第I备份时刻下的多个块的各自的数据,以还没有被写出到第I备份文件中为条件,按照每个块依次向第2存储部内的第I备份文件写出。此外,备份处理部,将从第I备份时刻起经过了事先确定的时间后的第2备份时刻下的多个块的各自的数据,以还没有被写出到第2备份文件中为条件,按照每个块依次向第2存储部内的第2备份文件写出。并且,块管理部在第I备份时刻之后且第2备份时刻之前被请求更新的情况下、被请求更新的块的数据没有被写出到第I备份文件中的情况下,将被请求更新的块的更新前的数据向第I备份文件写出。

【专利附图】

【附图说明】
[0014]图1是表示有关实施方式的数据库装置的功能结构的图。
[0015]图2是用来说明备份处理及日志的记录处理的图。
[0016]图3是表示属性信息的内容的图。
[0017]图4是用来说明由块管理部进行的多个块的管理处理的图。
[0018]图5是用来说明由块管理部及备份处理部进行的、将块的数据镜像向备份文件写出的处理的图。
[0019]图6是表示备份处理部的处理流程的图。
[0020]图7是表示受理了访问请求的情况下的块管理部的处理流程的图。
[0021]图8是表示图7的步骤S23的处理流程的图。
[0022]图9是表示第I?第3类型的块的属性信息的图。

【具体实施方式】
[0023]图1是表示有关实施方式的数据库装置10的功能结构的图。数据库装置10经由网络从客户端终端或应用服务器等接收对于数据库中包含的数据集合的访问请求(例如参照或更新)。并且,数据库装置10执行与接收到的访问请求对应的处理。
[0024]数据库装置10具备易失性存储器21、储存(storage)装置22、访问处理部23、块管理部24、缓存25、备份处理部26、日志管理部27和复原部28。访问处理部23、块管理部24、备份处理部26、日志管理部27及复原部28通过计算机执行程序来实现。访问处理部23、块管理部24、备份处理部26、日志管理部27及复原部28的一部分或全部也可以通过硬件实现。
[0025]数据库装置10将数据库中包含的数据集合划分为多个块而管理。多个块分别被存储到易失性存储器21及储存装置22的至少一方中。
[0026]易失性存储器21是计算机所具备的存储器装置,当被供给电源时能够存储数据,但如果电源的供给停止则数据消失。储存装置22当被供给电源时进行数据的写入及读出,即使电源的供给停止,数据也不消失。储存装置22例如是硬盘驱动器装置等连接在计算机的内部或外部的非易失性的存储装置。
[0027]此外,储存装置22将备份时刻下的多个块的各自的数据存储。储存装置22作为一例而将多个块的各自的数据镜像存储。另外,备份时刻例如按照事先确定的间隔而被设定。
[0028]另外,多个块的各自的数据被向储存装置22内的备份文件写出。备份文件分别对应于备份时刻而生成。
[0029]此外,储存装置22将表示数据集合的变更的履历的日志存储。日志也可以是接收到的访问请求的履历。
[0030]另外,日志被向储存装置22内的日志文件写入。日志文件按照备份时刻与接下来的备份时刻之间的期间生成。[0031 ] 访问处理部23执行与对于多个块各自的访问请求相对应的处理。访问处理部23作为一例,在接收到参照请求的情况下,从存储在易失性存储器21中的参照请求的对象的块,将对象的数据读出并返送。此外,访问处理部23作为一例,在接收到更新请求的情况下,将存储在易失性存储器21中的更新请求的对象的块中的对象的数据更新。进而,访问处理部23在接收到更新请求的情况下,向日志管理部27发送命令,将日志向日志文件写入。
[0032]块管理部24管理多个块的记录位置,以将多个块分别存储到易失性存储器21及储存装置22的至少一方中。具体而言,块管理部24控制各个块的记录位置,以尽可能将多个块全部存储到易失性存储器21中。
[0033]但是,块管理部24如图2所示,在不能将多个块全部存储到易失性存储器21中的情况下(例如易失性存储器21的容量比多个块的整体的数据量小的情况下等),将多个块中的一部分向储存装置22存储。
[0034]此外,块管理部24在被请求访问的块没有存储在易失性存储器21中的情况下,以易失性存储器21的空闲容量比事先确定的量大为条件,将被请求访问的块的数据从储存装置22向易失性存储器21读入。此外,块管理部24在被请求访问的块没有存储在易失性存储器21中、并且易失性存储器21的空闲容量是事先确定的量以下的情况下,将存储在易失性存储器21中的某个块的数据向储存装置22写出。然后,块管理部24将被请求访问的块的数据从储存装置22向易失性存储器21读入。
[0035]另外,块管理部24在将块向储存装置22写出的情况下,将数据向储存装置22的备份文件写出。此外,块管理部24在接受到更新请求的情况下、接受到更新请求的对象的块的数据还没有被写入到备份文件中的情况下,将该块的更新前的数据写出到备份文件中之后,将数据更新。
[0036]此外,块管理部24管理图3所示那样的、关于多个块中各个块的属性信息。属性信息包括最终备份时刻、最终参照时刻、脏标志(dirty flag)、闩锁标志及表示记录位置的指针。
[0037]所谓最终备份时刻,是最后将数据读出的备份时刻。所谓最终参照时刻,表示最后对包括更新请求的参照请求进行处理的时刻。所谓脏标志,表示在最后将数据写出后是否进行了更新。在本例中,脏标志在最后将数据写出后进行了更新的情况下被设为“1”,在最后将数据写出后没有进行更新的情况下被设为“O”。
[0038]闩锁标志表示是否是更新处理中。在本例中,闩锁标志在是更新处理中的情况下被设为“1”,在不是更新处理中的情况下被设为“O”。表示记录位置的指针表示记录有对象块的易失性存储器21或储存装置22上的记录位置(例如地址)。
[0039]缓存25在块管理部24将块从易失性存储器21向储存装置22逐出的情况下,将存储在易失性存储器21中的块暂时存储。由此,缓存25能够在短期间中生成用来将块从储存装置22向易失性存储器21读入的、易失性存储器21上的空闲容量。
[0040]备份处理部26执行多个块的备份处理。具体而言,备份处理部26将多个块的各自的备份时刻的数据向储存装置22的备份文件写出。在此情况下,备份处理部26将多个块中的还没有被写出到储存装置22中的块的数据写出。例如,备份处理部26按照每个块依次选择,将对应的块的备份时刻的数据以还没有被写出到储存装置22的备份文件中为条件而写出。
[0041]例如,备份处理部26如图4所示,生成与多个备份时刻T1,T2,T3,…分别对应的备份文件。并且,备份处理部26将各个备份时刻Tl,Τ2,Τ3,…下的多个块的数据向对应的备份文件写出。
[0042]日志管理部27执行多个块的日志的记录处理。具体而言,日志管理部27将表示数据集合的变更的履历的日志向日志文件写入。日志也可以是接收到的访问请求的履历。在本例中,日志管理部27对应于从访问处理部23接收到命令,而将日志向日志文件写入。
[0043]例如,日志管理部27如图4所示,按照备份时刻与备份时刻之间的期间,生成日志文件。并且,日志管理部27将备份时刻与备份时刻之间的期间的日志向对应的日志文件写入。
[0044]复原部28在起动时或故障发生后的复原时,将备份文件及日志文件读出,将多个块的各自的数据恢复。具体而言,复原部28将多个块的全部数据写出完成的备份文件中的、最新的备份时刻的备份文件读出,将多个块的全部的数据恢复。接着,复原部28将从能够将数据恢复的备份时刻起到关闭时或故障发生时为止的日志依次再执行。由此,复原部28能够将关闭时或故障发生之前的多个块的数据恢复。
[0045]图5是用来说明由块管理部24及备份处理部26进行的、将块的数据向备份文件写出的处理的图。
[0046]设某个任意的备份时刻为第I备份时刻Tl,设第I备份时刻Tl的接下来的备份时刻为第2备份时刻Τ2。此外,设第2备份时刻Τ2的接下来的备份时刻为第3备份时刻Τ3。
[0047]此外,设保存第I备份时刻Tl下的块的数据的备份文件为第I备份文件F1。此夕卜,设保存第2备份时刻Τ2下的块的数据的备份文件为第2备份文件F2。
[0048]在此情况下,在从第I备份时刻Tl到第2备份时刻Τ2之间,备份处理部26将第I备份时刻Tl下的多个块的各自的数据,按照每个块依次向储存装置22内的第I备份文件Fl写出。在此情况下,备份处理部26按照每个块判断是否被写出到第I备份文件Fl中,以还没有被块管理部24写出到第I备份文件Fl中为条件,向储存装置22写出。S卩,备份处理部26对于已经由块管理部24将第I备份时刻Tl的数据写出到第I备份文件Fl中的块,不进行向储存装置22的写出。
[0049]此外,在从第2备份时刻Τ2到第3备份时刻Τ3之间,备份处理部26将第2备份时刻Τ2下的多个块的各自的数据,以还没有被块管理部24写出到第2备份文件F2中为条件,按照每个块依次向储存装置22内的第2备份文件F2写出。
[0050]另外,备份处理部26以不给访问处理部23的处理带来影响的后台方式将块的数据向储存装置22写出。所谓后台方式下的处理,例如在数据库装置10具备多个CPU(Central Processing Unit)的情况下,是使用不执行与访问请求对应的处理的一部分的CPU而进行的处理。此外,所谓后台方式下的处理,例如在CPU进行了时间划分处理的情况下,是使用不执行与访问请求对应的处理的时间带而进行的处理。
[0051]块管理部24对应于接受到访问请求,而执行写出处理P1、指针改写处理P2、第I逐出处理P3、第2逐出处理P4或第3逐出处理P5。
[0052]块管理部24作为写出处理Pl而执行将被请求更新的块的更新前的数据向第I备份文件Fl写出的处理。块管理部24在第I备份时刻Tl之后且第2备份时刻T2之前被请求更新的情况下、在被请求更新的块的数据没有被写出到第I备份文件Fl中的情况下,执行该写出处理P1。
[0053]由此,块管理部24能够在由备份处理部26进行备份之前不待机地执行更新处理。此外,由于备份处理部26也可以对被请求更新的块不进行备份处理,所以能够减少向储存装置22的访问。
[0054]块管理部24作为指针改写处理P2,对存储在易失性存储器21中的多个块中的、被写出到第I备份文件Fl中且在写出后没有被更新的第I类型的块,执行将表示记录位置的指针变更为第I备份文件Fl上的记录位置的处理。块管理部24在第I备份时刻Tl之后且第2备份时刻T2之前被请求访问的情况下、被请求访问的块没有存储在易失性存储器21中并且易失性存储器21的空闲容量是事先确定的量以下的情况下,执行该指针改写处理P2。进而,块管理部24也可以以在一定期间中没有被请求参照为条件,对第I类型的块执行指针改写处理P2。
[0055]由此,块管理部24在被请求访问的块没有存储在易失性存储器21中的情况下不进行对储存装置22的访问,能够在易失性存储器21中生成空闲容量。此外,块管理部24通过还以在一定期间中没有被请求参照为条件,能够将最近被请求访问的可能性较小的块优先从易失性存储器21删除。
[0056]此外,块管理部24作为第I逐出处理P3,对于存储在易失性存储器21中的多个块中的、没有被写入到第I备份文件Fl中的第2类型的块,执行将数据向第I备份文件Fl写出并将表示记录位置的指针变更为第I备份文件Fl上的记录位置的处理。块管理部24在不能检测到第I类型的块的情况下执行该第I逐出处理P3。进而,块管理部24也可以以在一定期间中没有被请求参照为条件,对第2类型的块执行该第I逐出处理P3。
[0057]由此,块管理部24能够将由备份处理部26向某个储存装置22写出的块代替备份处理部26而向储存装置22写出。结果,块管理部24能够减少对于储存装置22的重复的访问。
[0058]此外,块管理部24作为第2逐出处理P4,对于存储在易失性存储器21中的多个块中的、被写出到第I备份文件Fl中并且在写出后被更新的第3类型的块,执行将数据向第2备份文件F2写出并将表示记录位置的指针变更为第2备份文件F2上的记录位置的处理。块管理部24在不能检测到第I类型的块及第2类型的块的情况下执行该第2逐出处理P4。进而,块管理部24也可以以在一定期间中没有被请求参照为条件,对第3类型的块执行第2逐出处理P4。
[0059]由此,块管理部24能够将有可能由备份处理部26向第2备份文件F2写出的块,代替备份处理部26而事先向储存装置22写出。结果,块管理部24能够减少对于储存装置22重复的访问。
[0060]此外,块管理部24作为第3逐出处理P5,执行将存储在易失性存储器21中的多个块中的某个第4块的数据向第2备份文件F2写出并将表示第4块的记录位置的指针变更为第2备份文件F2上的记录位置的处理。块管理部24在第I类型的块、第2类型的块及第3类型的块的哪个都不能检测到的情况下执行该第3逐出处理P5。在此情况下,块管理部24即使是在一定期间中被请求参照的块也执行第3逐出处理P5。
[0061]另外,块管理部24作为第3逐出处理P5,也可以代替向第2备份文件F2写出而将第4块向储存装置22上的其他位置写出。例如,块管理部24作为第3逐出处理P5,也可以向储存装置22上的作为易失性存储器21而虚拟动作的虚拟存储器区域写出第4块。在此情况下,块管理部24也可以不使表示第4块的记录位置的指针从易失性存储器21上变更。
[0062]图6是表示备份处理部26的处理流程的图。备份处理部26每当成为事先确定的备份时刻,就以后台方式执行以下的步骤Sll到步骤S16的处理。
[0063]首先,在步骤Sll与步骤S16之间,备份处理部26按照每个块执行循环处理。在循环处理内,首先,在步骤S12中,备份处理部26参照对象块的属性信息的最终备份时刻,判断对象块是否已经被块管理部24写出到对应的备份文件中。在对象块已经写出到对应的备份文件中的情况下(步骤S12的是),备份处理部26将处理向步骤S16前进。
[0064]在对象块尚未完成写入到对应的备份文件中的情况下(步骤S12的否),在步骤S13中,备份处理部26将对象块的属性信息的闩锁标志改写为“I”。接着,在步骤S14中,备份处理部26将对象块的数据以后台方式向储存装置22上的对应的备份文件写出。
[0065]如果步骤S14的写出结束,则在步骤S15中,备份处理部26将对象块的属性信息的闩锁标志改写为“O”。并且,备份处理部26将处理向步骤S16前进。
[0066]在步骤S16中,备份处理部26在没有对多个块的全部执行处理的情况下将处理向步骤Sll返回。在对于多个块的全部执行了处理的情况下,备份处理部26结束本流程的处理。
[0067]通过以上的处理,备份处理部26能够将备份时刻的多个块各自的数据按照每个块依次向储存装置22内的对应的备份文件写出。并且,备份处理部26对于已经由块管理部24写出到备份文件中的块可以不进行写出处理,所以能够减少储存装置22之间的访问。
[0068]图7是表示受理了访问请求的情况下的块管理部24的处理流程的图。块管理部24每当访问处理部23从外部接收访问请求时,就执行以下的步骤S21到步骤S31的处理。
[0069]首先,在步骤S21中,块管理部24判断访问请求的对象的块是否存储在易失性存储器21中。在存储在易失性存储器21中的情况下(步骤S21的是),块管理部24将处理向步骤S25前进。在没有存储在易失性存储器21中的情况下(步骤S21的否),块管理部24将处理向步骤S22前进。
[0070]在步骤S22中,块管理部24判断在易失性存储器21中是否有事先确定的容量以上的空闲容量。更具体地讲,块管理部24判断在易失性存储器21中是否有能够追加存储新的块的大小的空闲容量。在有空闲容量的情况下(步骤S22的是),块管理部24将处理向步骤S24前进。
[0071]在没有空闲容量的情况下(步骤S22的否),在步骤S23中,块管理部24执行将易失性存储器21的其他块向储存装置22逐出的处理。另外,关于步骤S23的逐出处理的详细情况在图8中进一步说明。块管理部24如果结束步骤S23的处理,则将处理向步骤S24
、产.、rr.目U进。
[0072]在步骤S24中,块管理部24将访问请求的对象的块从储存装置22向易失性存储器21读入。由此,块管理部24能够使访问处理部23执行对于访问请求的处理。
[0073]接着,在步骤S25中,块管理部24判断访问请求是参照处理(B卩,不进行数据的追力口、变更的处理)、还是更新处理(即,进行数据的追加、变更的处理)。
[0074]在是参照处理的情况下(步骤S25的参照),块管理部24将处理向步骤S26前进。在步骤S26中,块管理部24使访问处理部23执行对应于访问请求的参照处理,并将对象块的属性信息的最终参照时刻改写。并且,块管理部24如果结束步骤S26的处理,则本流程结束。
[0075]在是更新处理的情况下(步骤S25的更新),在步骤S27中,块管理部24将对象块的属性信息的闩锁标志改写为“I”。接着,在步骤S28中,块管理部24参照对象块的属性信息的最终备份时刻,判断对象块是否已写出到比当前的时刻靠前的最近的备份时刻的备份文件中。
[0076]在对象块已写出到对应的备份文件中的情况下(步骤S28的是),块管理部24将处理向步骤S30前进。在对象块尚未完成写入到对应的备份文件中的情况下(步骤S28的否),块管理部24将处理向步骤S29前进。
[0077]在步骤S29中,块管理部24执行写出处理Pl。即,块管理部24执行将对象块的数据向储存装置22上的、比当前的时刻靠前且最近的备份时刻的备份文件中写出的处理。由此,块管理部24在被请求更新的块的数据还没有被写出到备份文件中的情况下,将更新前的块的数据向备份文件写出。
[0078]进而,块管理部24如果写出结束,则将对象块的属性信息的最终备份时刻改写。如果结束步骤S29的处理,则块管理部24将处理向步骤S30前进。
[0079]在步骤S30中,块管理部24使访问处理部23执行对应于访问请求的更新处理。与此同时,块管理部24将对象块的属性信息的最终参照时刻改写。进而,块管理部24将表示在写出到备份文件中后进行了更新的脏标志改写为“I”。
[0080]接着,在步骤S31中,块管理部24将对象块的属性信息的闩锁标志改写为“O”。并且,块管理部24如果结束步骤S31的处理,则本流程结束。
[0081]如以上这样,块管理部24在被请求更新的块的数据没有被写出到备份文件中的情况下,能够将被请求更新的块的更新前的数据写出到备份文件后进行更新。
[0082]由此,块管理部24能够在被备份前不待机地执行更新处理。此外,块管理部24由于对被请求更新的块而言,不使备份处理部26进行备份处理,所以能够减少与储存装置22之间的访问。
[0083]图8是表示图7的步骤S23的处理流程的图。块管理部24在图7的步骤S23中执行以下的步骤S41?步骤S55的处理。
[0084]块管理部24首先对一定数量的块分别执行步骤S41到步骤S43之间的循环处理。这里,一定数量的块是,存储在易失性存储器21中的多个块的全部或一部分的块。
[0085]在循环处理内的步骤S42中,块管理部24确认对象块的属性信息。更具体地讲,块管理部24如图9所示,参照属性信息的最终参照时间、最终备份时刻及脏标志,检测是否存在第I类型、第2类型及第3类型的块。
[0086]第I类型的块是从当前时刻到一定时间前没有参照请求(也包括更新请求)、向比当前的时刻靠前的最近的备份时刻的备份文件的写出完成、并且脏标志是“O”的块。此外,第2类型的块是从当前时刻到一定时间前没有参照请求(也包括更新请求)、向比当前的时刻靠前的最近的备份时刻的备份文件的写出没有完成的块。第3类型的块是从当前时刻到一定时间前没有参照请求(也包括更新请求)、向比当前的时刻靠前的最近的备份时刻的备份文件的写出完成、并且脏标志是“ I ”的块。
[0087]并且,块管理部24如果对一定数量的块的全部完成属性信息的确认,则将处理向步骤S44前进。
[0088]在步骤S44中,块管理部24判断在一定的块中是否有第I类型的块。在有第I类型的块的情况下(步骤S44的是),在步骤S45中,块管理部24判断闩锁标志是否是“I”。块管理部24在闩锁标志是“I”的情况下(步骤S45的是),将处理向步骤S44返回,再次判断是否有第I类型的块。
[0089]在有第I类型的块、该块的闩锁标志不是“I”情况下(步骤S45的否),块管理部24执行指针改写处理P2。即,块管理部24将表示该块的属性信息的记录位置的指针,从易失性存储器21上变更为储存装置22上的备份文件内的记录位置。
[0090]通过执行这样的指针改写处理P2,块管理部24仅进行将已经完成向备份文件的写出的块存储到储存装置22中的处理,所以能够不发生储存装置22之间的访问而在易失性存储器21中生成空闲容量。
[0091]在一定数量的块中没有第I类型的块或第I类型的块的闩锁标志是“I”的情况下(步骤S44的否),块管理部24将处理向步骤S47前进。
[0092]在步骤S47中,块管理部24判断在一定的块中是否有第2类型的块。在有第2类型的块的情况下(步骤S47的是),在步骤S48中,块管理部24判断闩锁标志是否是“I”。块管理部24在闩锁标志是“I”的情况下(步骤S48的是),将处理向步骤S47返回,再次判断是否有第2类型的块。
[0093]在有第2类型的块、该块的闩锁标志不是“ I ”的情况下(步骤S48的否),在步骤S49中,块管理部24执行第I逐出处理P3。S卩,块管理部24将该块的数据向储存装置22上的比当前的时刻靠前的最近的备份时刻的备份文件写出。与此同时,块管理部24将该块中的表示属性信息的记录位置的指针,从易失性存储器21上变更为储存装置22上的备份文件内的记录位置。
[0094]通过执行这样的第I逐出处理P3,块管理部24在数据还没有被写出到备份文件中的情况下,能够代替备份处理部26而将该块的数据向备份文件写出。由此,块管理部24能够减少与储存装置22之间的访问。
[0095]在一定数量的块中没有第2类型的块、或第2类型的块的闩锁标志是“I”的情况下(步骤S47的否),块管理部24将处理向步骤S50前进。
[0096]在步骤S50中,块管理部24判断在一定的块中是否有第3类型的块。在有第3类型的块的情况下(步骤S50的是),在步骤S51中,块管理部24判断闩锁标志是否是“I”。块管理部24在闩锁标志是“I”的情况下(步骤S51的是),将处理向步骤S50返回,再次判断是否有第3类型的块。
[0097]在有第3类型的块、该块的闩锁标志不是“I”的情况下(步骤S51的否),在步骤S52中,块管理部24执行第2逐出处理P4。S卩,块管理部24将该块的数据向比当前的时刻靠后且最近的备份时刻的备份文件写出。与此同时,块管理部24将该块中的表示属性信息的记录位置的指针,从易失性存储器21上变更为储存装置22上的备份文件内的记录位置。
[0098]这样,块管理部24对于数据已经被写入到比当前的时刻靠前的备份文件中的块,能够将数据事先写出到备份处理部26将来要写出的备份文件中。由此,块管理部24在将来也可以不执行备份处理部26对于对象块的备份处理,所以能够减少与储存装置22之间的访问。
[0099]在一定数量的块中没有第3类型的块、或第3类型的块的闩锁标志是“I”的情况下(步骤S50的否),块管理部24将处理向步骤S53前进。
[0100]在步骤S53中,块管理部24从一定的块中选择某I个块。这里,块管理部24选择不是第I类型到第3类型的任一种的块(第4类型)。S卩,块管理部24选择在一定时间前有参照请求(也包括更新请求)的块。
[0101 ] 在选择某个块时,在步骤S54中,块管理部24判断闩锁标志是否是“ I ”。块管理部24在闩锁标志是“I”的情况下(步骤S54的是),将处理向步骤S53返回,再次选择其他块。
[0102]在选择了闩锁标志不是“I”的块的情况下(步骤S54的否),在步骤S55中,块管理部24执行第3逐出处理P5。S卩,块管理部24将数据向比当前的时刻靠后的最近的备份时刻的备份文件写出。与此同时,块管理部24将该块中的表示属性信息的记录位置的指针,变更为储存装置22上的备份文件内的记录位置。
[0103]另外,在步骤S55中,块管理部24也可以将该块的数据向储存装置22上的不是备份文件的区域写出。例如,块管理部24也可以将块的数据向储存装置22上的虚拟存储器区域写出。在此情况下,块管理部24也可以不将表示第4块的记录位置的指针从易失性存储器21上变更。块管理部24通过向储存装置22上的虚拟存储器区域写出,从而在再次对块有访问请求的情况下,能够比向备份文件写出的情况更高速地与储存装置22访问。
[0104]并且,块管理部24在结束步骤S46、步骤S49、步骤S52或步骤S55的处理时,则将处理向图7的流程返回。
[0105]如以上这样,有关本实施方式的数据库装置10避免了重复进行如下处理,S卩:将不能存储到易失性存储器21中的一部分的多个块,向储存装置22存放(日语:退避)的处理:以及,由备份处理部26将多个块的数据向储存装置22备份的处理。由此,数据库装置10能够减少与储存装置22之间的访问而使响应速度高速化。
[0106]此外,由本实施方式的数据库装置10执行的程序以可安装的形式或可执行的形式的文件的方式,记录到 CD — ROM、软盘(FD)、CD — R、DVD (Digital Versatile Disk)等可由计算机读取的记录介质中而被提供。
[0107]此外,也可以构成为,将由本实施方式的数据库装置10执行的程序保存到连接在因特网等网络上的计算机上,通过经由网络下载来提供。此外,也可以构成为,将由本实施方式的数据库装置10执行的程序经由因特网等网络提供或分发。
[0108]此外,也可以构成为,将本实施方式的数据库装置10的程序事先装入到ROM等中而提供。
[0109]由本实施方式的数据库装置10执行的程序为包括上述各部(访问处理部23、块管理部24、备份处理部26、日志管理部27及复原部28)的模组结构,通过作为实际的硬件,由CPU (处理器)从上述存储介质读出程序并执行,从而将上述各部装载到主存储装置上,在主存储装置上生成访问处理部23、块管理部24、备份处理部26、日志管理部27及复原部28。
[0110]说明了本发明的一些实施方式,但这些实施方式是作为例子提示的,并不意味着限定发明的范围。这些新的实施方式能够以其他各种各样的形态实施,在不脱离发明的主旨的范围内能够进行各种省略、替换、变更。这些实施方式及其变形包含在发明的范围及主旨中,并且包含在权利要求书所记载的发明和其等价的范围中。
[0111]标号说明
[0112]10数据库装置
[0113]21易失性存储器
[0114]22储存装置
[0115]23访问处理部
[0116]24块管理部
[0117]25缓存
[0118]26备份处理部
[0119]27日志管理部
[0120]28复原部
【权利要求】
1.一种数据库装置,其特征在于, 具备: 易失性的第I存储部; 非易失性的第2存储部; 访问处理部,对于将数据集合划分为多个后的多个块,分别执行与访问请求对应的处理; 备份处理部,将上述多个块的各自的备份时刻下的数据向上述第2存储部写出;以及 块管理部,在被请求访问的块没有存储在上述第I存储部中、并且上述第I存储部的空闲容量是事先确定的量以下的情况下,将存储在上述第I存储部中的某个块的数据向上述第2存储部写出,将被上述请求访问的上述块的数据从上述第2存储部向上述第I存储部读入, 上述备份处理部, 将事先确定的第I备份时刻下的上述多个块的各自的数据,以还没有被写出到上述第2存储部内的第I备份文件中为条件,按照每个块依次向上述第I备份文件写出, 将从上述第I备份时刻起经过了事先确定的时间后的第2备份时刻下的上述多个块的各自的数据,以还没有被写出到上述第2存储部内的第2备份文件中为条件,按照每个块依次向上述第2备份文件写出, 上述块管理部在上述第I备份时刻之后且上述第2备份时刻之前被请求更新的情况下、被请求更新的块的数据没有被写出到上述第I备份文件中的情况下,将被上述请求更新的块的更新前的数据向上述第I备份文件写出。
2.如权利要求1所述的数据库装置,其特征在于, 上述块管理部在上述第I备份时刻之后且上述第2备份时刻之前被请求访问的情况下、被请求访问的块没有存储在上述第I存储部中并且上述第I存储部的空闲容量是事先确定的量以下的情况下,对于存储在上述第I存储部的多个块中的、被写出到上述第I备份文件中并且在写出后没有被更新的第I块,将表示记录位置的指针变更为上述第I备份文件上的记录位置。
3.如权利要求2所述的数据库装置,其特征在于, 上述块管理部在不能够检测出上述第I块的情况下,对于存储在上述第I存储部的多个块中的、没有被写出到上述第I备份文件中的第2块,将数据向上述第I备份文件写出并将表示记录位置的指针变更为上述第I备份文件上的记录位置。
4.如权利要求3所述的数据库装置,其特征在于, 上述块管理部在不能检测出上述第I块及上述第2块的情况下,对于存储在上述第I存储部的多个块中的、被写出到上述第I备份文件中并且在写出后被进行了更新的第3块,将数据向上述第2备份文件写出并将表示记录位置的指针变更为上述第2备份文件上的记录位置。
5.如权利要求4所述的数据库装置,其特征在于, 上述块管理部还以在一定期间中没有被请求参照为条件,对上述第I块、上述第2块或上述第3块执行处理。
6.如权利要求1所述的数据库装置,其特征在于, 上述备份处理部以不给上述访问处理部的处理带来影响的后台方式,将上述块的数据向上述第2存储部写出。
7.一种程序,用来使计算机作为数据库装置而发挥功能,上述数据库装置具备:对将数据集合划分为多个后的多个块进行存储的易失性的第I存储部;及非易失性的第2存储部,其特征在于, 执行: 访问处理步骤,对于将数据集合划分为多个后的多个块,分别执行与访问请求对应的处理; 备份处理步骤,将上述多个块的各自的备份时刻下的数据向上述第2存储部写出;以及 块管理步骤,在被请求访问的块没有存储在上述第I存储部中、并且上述第I存储部的空闲容量是事先确定的量以下的情况下,将存储在上述第I存储部中的某个块的数据向上述第2存储部写出,将被上述请求访问的上述块的数据从上述第2存储部向上述第I存储部读入; 在上述备份处理步骤中, 将事先确定的第I备份时刻下的上述多个块的各自的数据,以还没有被写出到上述第2存储部内的第I备份文件中为条件,按照每个块依次向上述第I备份文件写出, 将从上述第I备份时刻起经过了事先确定的时间后的第2备份时刻下的上述多个块的各自的数据,以还没有被写出到上述第2存储部内的第2备份文件中为条件,按照每个块依次向上述第2备份文件写出, 在上述块管理步骤中,在上述第I备份时刻之后且上述第2备份时刻之前被请求更新的情况下、被请求更新的块的数据没有被写出到上述第I备份文件中的情况下,将被上述请求更新的块的更新前的数据向上述第I备份文件写出。
8.一种数据处理方法,是具备对将数据集合划分为多个后的多个块进行存储的易失性的第I存储部及非易失性的第2存储部的数据库装置的数据处理方法,其特征在于, 包括: 访问处理步骤,对于将数据集合划分为多个后的多个块,分别执行与访问请求对应的处理; 备份处理步骤,将上述多个块的各自的备份时刻下的数据向上述第2存储部写出;以及 块管理步骤,在被请求访问的块没有存储在上述第I存储部中、并且上述第I存储部的空闲容量是事先确定的量以下的情况下,将存储在上述第I存储部中的某个块的数据向上述第2存储部写出,将被上述请求访问的上述块的数据从上述第2存储部向上述第I存储部读入; 在上述备份处理步骤中, 将事先确定的第I备份时刻下的上述多个块的各自的数据,以还没有被写出到上述第2存储部内的第I备份文件中为条件,按照每个块依次向上述第I备份文件写出, 将从上述第I备份时刻起经过了事先确定的时间后的第2备份时刻下的上述多个块的各自的数据,以还没有被写出到上述第2存储部内的第2备份文件中为条件,按照每个块依次向上述第2备份文件写出, 在上述块管理步骤中,在上述第I备份时刻之后且上述第2备份时刻之前被请求更新的情况下、被请求更新的块的数据没有被写出到上述第I备份文件中的情况下,将被上述请求更新的块的更新前的数据向上述第I备份文件写出。
【文档编号】G06F17/30GK104137100SQ201380003041
【公开日】2014年11月5日 申请日期:2013年3月4日 优先权日:2013年3月4日
【发明者】服部雅一 申请人:株式会社东芝, 东芝解决方案株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1