CN101000630A - 管理事务处理的日志信息的系统和方法 - Google Patents
管理事务处理的日志信息的系统和方法 Download PDFInfo
- Publication number
- CN101000630A CN101000630A CNA2007100015990A CN200710001599A CN101000630A CN 101000630 A CN101000630 A CN 101000630A CN A2007100015990 A CNA2007100015990 A CN A2007100015990A CN 200710001599 A CN200710001599 A CN 200710001599A CN 101000630 A CN101000630 A CN 101000630A
- Authority
- CN
- China
- Prior art keywords
- page
- leaf
- log
- log information
- tabulation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
提供了一种用于管理日志信息的系统和方法。所述系统包括:索引/记录/目录管理模块,确定将被更新的页是否是新分配的;存储管理模块,管理空闲页列表和未提交空闲页列表,如果索引/记录/目录管理模块确定将被更新的页是新分配的,则从空闲页列表或者未提交空闲页列表分配新的页;和缓冲器管理模块,设置关于与新的页相应的缓存页的标识信息。
Description
本申请要求于2006年1月10日在韩国知识产权局提交的第10-2006-0002867号韩国专利申请的优先权,该申请完全公开于此以资参考。
技术领域
与本发明一致的设备和方法涉及管理在数据库管理系统中的日志信息,更具体地说,涉及管理日志信息以最小化在新分配的数据页上的日志信息量。
背景技术
在数据库管理系统中的术语“日志”或者“记录”一般是指分别存储被改变之前的数据以为了防止由应用程序执行的处理正在改变的数据由于系统错误或者用户的疏忽而具有异常值。
记录使数据库管理系统能够执行取消或者恢复处理以将由已被异常关闭的应用程序处理的数据返回为其原始状态。
图1是示出根据现有技术的日志信息管理系统的结构的框图。
参照图1,当事务处理开始、结束或者被取消时,事务处理管理器110使用日志管理器130记录日志信息,并保持当前正在执行的事务处理的信息。当特定事务处理被取消时,恢复管理器120通过日志管理器130验证日志信息,并随后将改变的数据返回为其原始状态。具体来说,当日志信息管理系统被异常关闭时,恢复管理器120从数据库中去除未完成的事务处理的影响并将未完成的事务处理的修改反映给数据库,从而保持数据的精确度。日志管理器130将由其他模块改变的数据库中的日志信息合并,并通过缓冲器管理器150将合并的日志信息发送到缓冲器160。此外,日志管理器130从盘180中读出由恢复管理器120要求的日志信息,并将读取的日志信息提供给恢复管理器120。
索引/记录/目录管理器140是用于管理形成日志信息管理系统的主要数据的索引、记录和目录信息项的模块。索引/记录/目录管理器140请求缓冲器管理器150将必要的数据(索引、记录和目录信息项)载入缓冲器160,并且读取或者改变必要值。在日志信息管理系统中,多数日志信息由索引/记录/目录管理器140生成。
缓冲器管理器150管理缓冲器160并响应于其他模块的请求,将具有关于存储在盘180中的关于索引、记录或者目录的日志信息的页载入到缓冲器160,或者将载入到缓冲器160上的页存储在盘180中。存储管理器170可执行从盘180读取页或者在盘180上记录数据页的处理。
缓冲器160是存储器的一部分,并且是日志信息管理系统确保的独占空间。日志信息被存储在缓冲器160,并且图2显示了根据现有技术的日志信息的示例的日志记录。
日志记录200包括:日志头210、在前数据镜像220和更新数据镜像230。
日志头210包括:日志序列号(LSN)、事务处理标识信息、在前LSN信息、页标识信息、偏移信息和数据长度信息。
LSN是用于识别相应的日志记录的信息,事务处理标识信息是引起由相应日志记录指示的改变的事务处理的标识信息。在前的LSN信息是在相应日志之前由事务处理标识信息指示的事务处理中生成的日志记录的标识信息。页标识信息指示在其上执行包括在相应日志记录中的改变处理的页。偏移信息指示在由页标识信息识别的页的哪一部分上发生数据的改变。数据长度信息是指示改变的数据的大小的信息。
在前数据镜像220指示在数据被改变之前的数据值,更新数据镜像230指示在数据被改变之后的数据值。
由于缓冲器管理器150以页为单位从盘180读取数据,缓冲器160也以页为单位被划分和管理。
存储管理器170响应于缓冲器管理器150的请求,从盘180读取特定页,并且将特定页载入缓冲器160上,或者将缓冲器160的特定页记录在盘180上。当请求新的页时,存储管理器170分配在那时没有被用作数据存储空间的盘页。当现有盘页不再被用作数据存储空间时,存储管理器170将所述盘页作为空盘页之一管理。存储管理器170还可包括管理页的使用的页使用管理模块。
应用190可用作查询处理器或者查询引擎。应用190可将事务处理的开始、取消或者结束通知事务处理管理器110,并且可通过索引/记录/目录管理器140在两个事务处理间的边界(即,在一个事务处理的开始及其取消/结束之间)读取或者改变日志信息。
随后,将描述图1所示的组件的操作。
首先,当应用190请求事务处理管理器110开始一个事务处理时,事务处理管理器110生成新的事务处理并保留关于生成的事务处理的信息,直到完成该事务处理。
随后,当应用190请求索引/记录/目录管理器140更新该数据时,索引/记录/目录管理器140请求缓冲器管理器150发送必要页,索引/记录/目录管理器140将所述页存储在缓冲器160中,并且执行必要的更新处理。每当执行每个更新处理时,索引/记录/目录管理器140在创建关于改变之前的数据的日志信息和关于改变之后的数据的日志信息,并将所述日志信息发送到日志管理器130。以下,将详细描述所述数据更新处理。
当确定在没有任何错误的情况下已经执行了数据更新处理时,应用190请求事务处理管理器110结束事务处理。另一方面,当确定在数据更新处理中发生错误时,应用190请求事务处理管理器110停止该事务处理。
当该事务处理结束时,事务处理管理器110指示日志管理器130创建指示该事务处理的结束的日志(以下称为“Commit_Log”)信息。随后,事务处理管理器110请求日志管理器130将包括Commit_Log信息的所有目志信息项记录在盘180上。当所有具有小于Commit_Log的LSN的LSN的日志信息项被存储在缓冲器160中时,日志管理器130请求缓冲器管理器150将所述日志信息项记录在盘180上关于日志文件。
如果应用190确定停止所述事务处理,则事务处理管理器110请求恢复管理器120取消该事务处理。恢复管理器120请求日志管理器130发送具有在前数据值的日志信息,以恢复在相应事务处理中已经被改变的数据值。所述请求被顺序地发送到缓冲器管理器150和存储管理器170并被随后处理。
随后恢复管理器120请求缓冲器管理器150发送将被恢复到在前值的数据页,并且缓冲器管理器150使用存储管理器170从缓冲器160读取请求的页。随后,恢复管理器120基于从日志管理器130接收的日志信息找到改变的部分,并恢复所述在前数据值(之前的镜像)。
在所述事务处理结束或者被取消之后,事务处理管理器110从事务处理表去除事务处理的信息。
接下来,将在下面详细描述当应用190请求索引/记录/目录管理器140更新数据时执行的处理。
索引/记录/目录管理器140识别在盘180上的数据更新,并确定将要改正的盘180的盘页。
索引/记录/目录管理器140确定应用190正在请求哪一个更新模式。所述更新模式包括释放盘页的模式(“删除”模式)、在新的页上记录数据的模式(“插入”模式)以及改变记录在现有页上的数据值的模式(“修改”模式)。
在删除模式中,当指定的盘页存在于缓冲器160中时,缓冲器管理器150从缓冲器160去除所述页。随后缓冲器管理器150请求存储管理器170释放所述指定的盘页,并且存储管理器170将相应页放入未使用页的列表。那时,由于该盘页被改变,所以存储管理器170创建关于所述改变的日志信息,并将所述日志信息发送到日志管理器130。
在插入模式中,缓冲器管理器150请求存储管理器170分配新的页。存储管理器170分配新的页,创建关于盘页的改变的日志信息,并将所述日志信息发送到日志管理器130。随后,存储管理器170在缓冲器160的由缓冲器管理器150指定的空间复制所述请求的盘页。索引/记录/目录管理器140将所述数据值插入新的页,创建关于所述数据值的日志信息,并将所述日志信息发送到日志管理器130。
在修改模式中,索引/记录/目录管理器140请求缓冲器管理器150发送将被改变的盘页。随后,缓冲器管理器150检查该盘页是否被载入缓冲器160中。当其数据值应当被更新的页存在于缓冲器160中时,索引/记录/目录管理器140改变该页的数据值。
但是,当其数据值应当被更新的页不存在于缓冲器160中时,索引/记录/目录管理器140在缓冲器160的由缓冲器管理器150指定的空白空间复制所述请求的盘页。如果没有可用的空白空间,则缓冲器管理器150选择适合的页并将所选的页下载到盘180,从而确保缓冲器160中的空白空间。随后,存储管理器170在缓冲器160的由缓冲器管理器150指定的空白空间复制所述请求的盘页。索引/记录/目录管理器140改变相应页的数据值,创建关于改变的数据值的日志信息,并将所述日志信息发送到日志管理器130。
同时,在数据库中,当很多日志记录被插入或者索引被创建时,会新分配大量的页,并且分配的页的数据值被改变。但是,在根据现有技术的日志信息管理系统中,当所有数据值被改变时,作为日志信息保留在前数据镜像(之前的镜像)和更新数据镜像(之后的镜像)。因此,当特定页被新分配为用于存储索引、记录或者目录信息的页并且新数据值被随后写在整个页上时,上述特征引起创建新分配的页的大小两倍的日志信息。也就是说,当新分配N页数据页然后值被写在所述页上时,相应于2N页的日志信息被创建。因此,由于在完成事务处理之前所有创建的日志信息项应当被记录在盘上,所以由于盘输入/输出处理的原因日志信息管理系统的性能可恶化。具体来说,上述可在应当执行高速插入大量记录的处理的系统中引起严重的问题。
因此,即使当大量的记录被插入或者新的索引被创建时,仍有必要最小化关于新分配的数据页的日志信息的量,并且防止系统性能的恶化。
发明内容
本发明示例性实施例克服可上述缺点以及以上没有描述的其他缺点。此外,本发明不需要克服上述缺点,以及本发明示例性实施例可不克服上述任何问题。
本发明提供了一种用于最小化关于在事务处理发生时新分配的页的日志信息量的技术,并且所述技术缩短了插入大量记录以及创建新索引的响应时间,从而改进了日志信息管理系统的性能。
根据本发明的一方面,一种日志信息管理系统,包括:索引/记录/目录管理单元,确定将被更新的页是否是新分配的;存储管理单元,管理空闲页列表和未提交空闲页列表,如果将被更新的页是新分配的页,则从空闲页列表或未提交空闲页列表分配新的页;和缓冲器管理模块,设置关于与新的页相应的缓存页的标识信息。在所述日志信息管理系统中,当缓冲页的数据值改变时不创建日志信息。
根据本发明的另一方面,提供了一种管理日志信息的方法,包括:确定将被更新的页是否是新分配的;如果将被更新的页是新分配的页,则从空闲页列表或未提交空闲页列表分配新的页;和设置关于与新的页相应的缓存页的标识信息。在所述方法中,当缓冲页的数据值改变时不创建日志信息。
附图说明
通过结合附图对本发明示例性实施例的详细描述,本发明的以上和其他方面将变得更加清楚,其中:
图1是示出根据现有技术的日志信息管理系统的结构的框图;
图2是示出根据现有技术的一般日志记录的结构的示图;
图3是示出根据本发明示例性实施例的日志信息管理系统的结构的框图;
图4是示出根据本发明示例性实施例的更新事务处理的处理的流程图;
图5是详细地示出根据本发明示例性实施例的更新数据的处理的流程图;
图6是示出根据本发明示例性实施例的新分配盘页的处理的流程图;
图7是示出根据本发明示例性实施例的将新分配的盘页放入缓冲器的处理的流程图;
图8是示出根据本发明示例性实施例的将页从缓冲器放入盘的处理的流程图;
图9是示出根据本发明示例性实施例的更新空闲页列表和未提交空闲页列表的处理的流程图;和
图10是示出根据本发明示例性实施例的实验结果的图表。
具体实施方式
通过以下参照附图和示例性实施例的详细描述,可更容易地理解本发明的各个方面以及实现本发明的方法。本发明可以以不同形式被实现,但是不应由这里所述的示例性实施例所限定。然而,提供这些实施例以使本公开更加彻底和完整,以及将本发明的构思完全地转达给本领域技术人员,并且本发明将仅由权利要求限定。
以下将参照用于示出用于根据本发明示例性实施例管理日志信息的设备以及方法的流程图和框图对本发明进行描述。应该理解,流程图的每一个方框和在流程图中的方框的组合可由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或者其他可编程数据处理设备的处理器以产生机器,从而经计算机或者其他可编程数据处理设备的处理器执行的指令产生用于实现在一个流程图方框或多个流程图方框中描述的功能的装置。这些计算机程序指令也可被存储在可指导计算机或者其他可编程数据处理设备以特定方式工作的计算机可用或计算机可读存储器中,以便存储在计算机可用或计算机可读存储器中的指令生产包括执行在一个流程图方框或多个流程图方框中描述的功能的指令装置的产品。所述计算机程序指令也可被载入计算机或其他可编程数据处理设备以使得一系列操作步骤在计算机或其他可编程设备上被执行以产生计算机执行的过程,从而在计算机或其他可编程设备上执行的指令提供用于实现在一个流程图方框或多个流程图方框中描述的功能的步骤。
另外,流程图的每个方框可表示模块、代码段或代码的一部分,其包括一个或多个用于实现特定逻辑功能的可执行指令。还应该注意,在一些可选择的实现中,在方框中提到的功能可以以不同于所示的顺序出现。例如,根据所涉及的功能,连续显示的两个方框实际上可以基本上同时被执行,或者所述方框有时可能以相反的顺序被执行。
现在,将参照示出了本发明示例性实施例的附图更加全面地对本发明进行描述。
图3是示出根据本发明示例性实施例的日志信息管理系统的结构的框图。
参照图3,日志信息管理系统300包括:事务处理管理模块310、恢复管理模块320、目志管理模块330、索引/记录/目录管理模块340、缓冲器管理模块350、缓冲器模块360、存储管理模块370、盘模块380和应用390。缓冲器模块360包括数据缓冲器362和日志缓冲器364,并且存储管理模块370包括页使用管理模块372。
这里使用的术语“模块”的意思是,但不限于,软件和硬件组件,诸如执行某任务的现场可编程门阵列(FPGA)或专用集成电路(ASIC)。模块可以方便地被配置以驻留在可寻址的存储介质上,并且可被配置以在一个或多个处理器上执行。因此,举例来说,模块可以包括:诸如软件组件、面向对象的软件组件、类组件和任务组件的组件、进程、函数、属性、过程、子程序、程序代码段、驱动程序、固件、微码、电路、数据、数据库、数据结构、表、数组和变量。在组件和模块中提供的功能可被组合为更少的组件和模块,或者可进一步被分离成另外的组件和模块。另外,可以实现组件和模块从而它们在装置或者安全多媒体卡中的一个或多个CPU上执行。
应用390可用作查询处理器或者查询引擎。应用390可将事务处理的开始、取消或者结束通知事务处理管理模块310,并且可通过索引/记录/目录管理模块340在两个事务处理间的边界(即,在一个事务处理的开始及其取消/结束之间)读取或者改变日志信息。
当事务处理开始、结束或者被取消时,事务处理管理模块310通过使用日志管理模块330记录日志信息,并保持关于事务处理正在被执行的信息。
当特定事务处理被取消时,恢复管理模块320验证在日志管理模块330中的日志信息,并将数据恢复到其原始状态。具体来说,如果日志信息管理系统300被异常关闭,则恢复管理模块320从数据库去除未完成的事务处理的影响,并在数据库中反映已完成的事务处理的修改,从而保持数据精确。
日志管理模块330合并由其他模块在数据库中改变的日志信息,并将合并的日志信息发送到缓冲器模块360。此外,日志管理模块330从盘模块380中读出恢复管理模块320需要的日志信息,并将读出的日志信息提供给恢复管理模块320。
索引/记录/目录管理模块340管理在日志信息管理系统300中形成的主要数据,即,索引、记录和目录信息项。索引/记录/目录管理模块340请求缓冲器管理模块350将必要数据(索引、记录和目录信息项)载入到缓冲器模块360上,并读取或者改变必要值。在日志信息管理系统300中,多数目志信息由索引/记录/目录管理模块340生成。
如果数据值被更新,则在记录该日志信息之前索引/记录/目录管理模块340检查更新页是否是新分配的页。如果确定更新其中数据值的页是在相应事务处理中新分配的页,则即使该数据值被更新,索引/记录/目录管理模块340也不记录该日志信息。
缓冲器管理模块350管理缓冲器模块360并响应于其他模块的请求,将具有关于存储在盘模块380中的索引、记录或者目录的日志信息的页载入到缓冲器模块360的数据缓冲器362中,或者将载入到数据缓冲器362上的页存储在盘模块380中。存储管理模块370可执行从盘模块380读取数据页或者在盘模块380上存储数据页的处理。
存储管理模块370响应于日志管理模块330的请求仅从数据缓冲器362中仅选择具有作为页LSN的MAX_LAN的数据页,并将所有所述数据页记录在盘模块380中。页LSN可被当作用于识别每一页的标识信息。
缓冲器模块360是存储器的一部分,并且是日志信息管理系统300保留的独占空间。缓冲器模块360包括在其中存储有日志信息的日志缓冲器364以及在其中存储有页的数据缓冲器362。
存储管理模块370响应于缓冲器管理模块350的请求,读取盘模块380的特定页,并将所述特定页载入到缓冲器模块360,或者将所述缓冲器模块360的特定页记录在盘模块380中。如果请求新的页,则存储管理模块370将当时未被使用的盘页分配为数据存储空间。如果现有盘页不再用作数据存储空间,则存储管理模块370将该盘页作为空闲盘页之一来管理。存储管理模块370包括管理页的使用的页使用管理模块372。
在以下情况下,即,在如果新分配的页被放入缓冲器模块360的数据缓冲器362中,则从空闲页列表分配相应页的情况下,存储管理模块370执行改变数据缓冲器362中指定的缓存页的页LSN的处理,而不是执行从盘模块380读取页的处理。在这种情况下,空闲页表示可被新分配的页,空闲页列表是用于管理空闲页的数据结构,并且所述空闲页列表由页使用管理模块372管理。
如果数据缓冲器362中的任意页从盘模块380被取出,则特定缓存页的页LSN被任意地改变并随后被存储。将参照图7和图8详细描述存储管理模块370的盘输入/输出操作。
存储管理模块370的页使用管理模块372管理空闲页列表和未提交空闲页列表。所述未提交空闲页列表是在未完成的事务处理中释放的页的列表。如果请求分配新的盘页,则页使用管理模块372从空闲页列表中找到可用的空闲页并分配该空闲页。如果在空闲页列表中没有可用的空闲页,则页使用管理模块372从未提交空闲页列表中找到空闲页并分配该空闲页。以下,将参照图9详细描述更新空闲页和未提交空闲页的方法。
图4是示出根据本发明示例性实施例的更新事务处理的处理的流程图。
首先,如果应用390请求事务处理管理模块310开始事务处理,则事务处理管理模块310生成新的事务处理,并保留关于生成的事务处理的信息直到该事务处理完成(S405)。
随后,如果应用390请求索引/记录/目录管理模块340更新数据,则索引/记录/目录管理模块340向缓冲器管理模块350请求必要的页,将所述页存储在缓冲器模块360的数据缓冲器362上,并更新所述页(S410)。在这种情况下,不创建关于数据页(即,更新的页中新分配的数据页)的信息。同时,载入到数据缓冲器362上的页其中具有页LSN。在本发明的示例性实施例中,由于特定页LSN被设置到新分配的页(例如,MAX_LSN),所以不创建不必要的日志信息。也就是说,如果更新页的页LSN是MAX_LSN,则索引/记录/目录管理模块340不创建日志信息。这里,“MAX_LSN”指示在日志信息管理系统300中可被创建的最大LSN。
将参照图5更加详细地描述数据更新处理。
如果确定在没有任何错误的情况下执行了数据更新处理,则应用390请求事务处理管理模块310完成事务处理。另一方面,如果确定在数据更新处理中发生了错误,则应用390请求事务处理管理模块310停止事务处理(S415)。
如果应用390批准更新(S415),则被相应事务处理释放的关于在未提交空闲页列表中的页的信息被反映在空闲页列表上(S420)。根据本发明示例性实施例,和现有技术不同,在特定事务处理中释放的页不被立即放入空闲页列表,而是被放入单独的未提交空闲页列表,并随后被管理。
随后,数据缓冲器362中的数据页中的还未被记录在盘模块380中的页也就是新分配的页(即,页LSN为MAX_LSN的页)被记录在盘模块380中(S425)。在本发明中,不保留关于新分配的页的日志信息,而是在事务处理完成之前将新分配的页记录在盘模块380中,这样,即使在事务处理完成之后发生关闭,也可以保持数据精确。
同时,当带有MAX_LSN的页LSN的新分配的页被记录在盘模块380中时,如果相应页在另一事务处理中被更新,则由于当时它们的页LSN,它们可被错误地当作新的页。因此,当将具有MAX_LSN的页LSN的新分配的页记录在盘模块380中时,优选地,存储管理模块370将页LSN改为不同的值并随后存储该页。
在步骤S425之后,事务处理管理模块310命令日志管理模块330创建“Commit_Log”(S430)。如果具有小于或者等于“Commit_Log”的LSN的所有日志信息项被存储在日志缓冲器364中,则日志管理模块330请求缓冲器管理模块350将日志信息项记录在盘模块380的日志文件上(S435)。
如果应用390不批准更新,即,如果确定应当停止该事务处理,则事务处理管理模块310请求恢复管理模块320取消该事务处理。恢复管理模块320请求日志管理模块330发送具有在前数据值的日志信息项,从而恢复在相应事务处理中改变的数据值(S445)。所述请求被顺序地发送到缓冲器管理模块350和存储管理模块370并被随后处理。
随后,恢复管理模块320基于从日志管理模块330接收的日志信息找到改变的部分,并恢复所述在前数据值(之前的镜像)(S450)。
在所述事务处理结束或者被取消之后,事务处理管理模块310从事务处理列表去除事务处理的信息(S440)。
图5是示出根据本发明示例性实施例的更新数据的处理的流程图.
首先,应用390请求索引/记录/目录管理模块340更新数据(S505)。随后,如果索引/记录/目录管理模块340确定所述请求的更新是对释放盘页的更新(S510),则当所述盘页被载入到数据缓冲器362上时缓冲器管理模块350去除相应的盘页(S515)。存储管理模块370的页使用管理模块372将释放的页的数量插入到未提交空闲页列表中,并保持该未提交空闲页列表直到完成或者停止释放该页的事务处理。如果完成释放该页的事务处理,则完成的事务处理使所有被释放的页从未提交空闲页列表中被去除,并被插入到空闲页列表中。当事务处理停止时,该事务处理使所有被释放的页从未提交空闲页列表中被去除,但所述释放的页不被插入到空闲页列表中。以这样的方式,被请求的盘页被释放(S520)
存储管理模块370创建关于页中的改变的日志信息,并将所述日志信息发送到日志管理模块330(S525)。
如果索引/记录/目录管理模块340确定在操作S510中请求的更新是改变新的页或者现有页的数据值的更新,而不是对释放盘页的更新(S510),则缓冲器管理模块350检查将被更新的页是否存在于缓冲器模块360中(S530)。如果所述将被更新的页存在于缓冲器模块360中,则所述页被更新(S560)。另一方面,如果所述将被更新的页不存在于缓冲器模块360中,则缓冲器管理模块350检查缓冲器模块360是否有可用的缓冲空间(S535)。
如果在步骤S535中确定没有可用的缓冲空间存在,则将被记录在盘模块380中的页被选择,并且所选页的页LSN被处理(S540)。以下将详细描述该处理。
首先,如果由数据缓冲器362选择的特定页的页LSN是MAX_LSN,则曾经在空闲页列表中的被选择的页被新分配给事务处理。因此,存储管理模块370在将选择的页记录在盘模块380中之前将所述被选择页的页LSN改为特定LSN。在这种情况下,优选地,改变的LSN是系统中最大的LSN。如果由数据缓冲器362选择的特定页的页LSN不是MAX_LSN,则存储管理模块370将选择的页记录在盘模块380中而不改变选择的页的页LSN。
如果在缓冲器模块360以这种方式形成了可用缓冲空间,则缓冲器管理模块350检查被请求的页是否是将被新分配的页(S545)。
如果确定请求的页不是新分配的页,则页使用管理模块372在由缓冲器管理模块350指定的数据缓冲器362上复制请求的盘页(S555),并且索引/记录/目录管理模块340改变相应页的数据值(S560)。
如果在步骤S545中确定请求的页是新分配的页,则处理新分配的页(S550),以下将对该处理进行详细描述。
首先,如果在空闲页列表中存在可用空闲页,则页使用管理模块372在空闲页列表中分配新的页。另一方面,如果在空闲页列表中不存在可用空闲页,则页使用管理模块372在未提交空闲页列表中分配新的页。
如果新的页从空闲页列表中被分配,则不创建关于在页的数据值中的改变的日志信息,直到相应盘页被载入到数据缓冲器362上并随后被记录在盘模块380中。存储管理模块370不从盘模块380中读出相应的盘页,并且缓冲器管理模块350将指定缓冲页的页LSN设置为指示从空闲页列表新分配的页的MAX_LSN。
如果由于在于空闲页列表中没有空闲页,所以从未提交空闲页列表分配新的页,则盘模块380将相应页读出到指定的缓冲空间。
如果在操作S560中所述页被更新,则处理关于更新的页的日志信息(S565)。
在现有技术中,每当更新特定页的数据值时,总是创建日志信息。但是在本发明示例性实施例中,在操作S560中索引/记录/目录管理模块340更新所述数据值之后,确定是否需要创建关于相应页的日志信息。更具体地说,如果被载入到缓冲器模块360的相应页的页LSN是MAX_LSN,则索引/记录/目录管理模块340不创建日志信息。
图6是示出根据本发明示例性实施例的新分配盘页的处理的流程图。
参照图6,页使用管理模块372检查空闲页列表是否为空(S610)。如果空闲页列表为空,则页使用管理模块372从未提交空闲页列表中选择第一页,并分配所述第一页(S620)。另一方面,如果空闲页列表不为空,则页使用管理模块372从空闲页列表选择第一页,并分配所述第一页(S630)。
图7是示出根据本发明示例性实施例的将新分配的盘页放入缓冲器的处理的流程图。
存储管理模块370检查被请求的页是否是新分配的页(S710)。如果被请求的页是新分配的页,则存储管理模块370检查所述新分配的页是否是从空闲页列表分配的(S720)。如果所述新分配的页是从空闲页列表分配的,则数据缓冲器362中的相应空间的页LSN(即,在其上载入有盘页的缓冲器模块360的缓冲页)被设置为MAX_LSN(S730)。以这种方式,完成将新分配的盘页放入缓冲器模块360的处理。
但是,如果在操作S710中请求的页不是新分配的页,或者如果在操作S720中新分配的页不是从空闲页列表分配的(例如,如果新分配的页是从未提交空闲页列表分配的),则存储管理模块370从盘模块380读出相应的盘页,并将读取的盘页载入到缓冲器模块360的数据缓冲器362上。
为了执行图7中所示的操作,存储管理模块370与管理缓冲器模块360的缓冲器管理模块350通信。
图8是示出根据本发明示例性实施例的将页从缓冲器放入盘的处理的流程图。
参照图8,存储管理模块370检查将被记录在盘模块380上的页的页LSN是否是MAX_LSN(S810)。如果所述页的页LSN是MAX_LSN,则所述页LSN被设置为特定的LSN(S820),并且由缓冲器模块360的数据缓冲器362请求的缓存页被记录在盘模块380中(S830)。另一方面,如果在步骤S810中确定所述页的页LSN不是MAX_LSN,则由缓冲器模块360的数据缓冲器362请求的缓存页被记录在盘模块380中(S830)。
为了执行图8中所示的操作,存储管理模块370与管理缓冲器模块360的缓冲器管理模块350通信。
图9是示出根据本发明示例性实施例的更新空闲页列表和未提交空闲页列表的处理的流程图。所述更新处理可由存储管理模块370的页使用管理模块372执行。
如图9中所示,空闲页列表具有5页空闲页,并且未提交空闲页列表为空(S910)。空的未提交空闲页列表表示不存在在还未完成的事务处理中释放的盘页。
如果1号页和3号页被释放,则1号页和3号页被放入未提交空闲页列表,而在空闲页列表中没有改变(S920)。
随后,如果5页盘页被分配,则空闲页列表中的页被分配,并使得空闲页列表为空。但是,在未提交空闲页列表中没有改变(S930)。
接着,如果再分配一页,则在未提交空闲页列表中的3号页被分配。结果仅有1号页作为空闲页保留在未提交空闲页列表中(S940)。
最后,在释放了1号页和3号页的事务处理完成之后,未提交空闲页列表中的空闲页被添加到空闲页列表中。结果,空闲页列表具有了曾经在未提交空闲页列表中的1号页,这使得未提交空闲页列表为空(S950)。
图10是示出根据本发明示例性实施例的实验结果的图表,并且图10示出了当3000条记录被新插入时,本发明的处理速度与现有技术的处理速度之间的比较。
在这种情况下,一条记录包括11个字段,11个字段中的9个是被索引的。一条记录的大小是210字节。
参照图10,在现有技术中,新插入3000条记录花费了大概25秒。但是,根据本发明,新插入3000条记录花费了大概10秒,因此与现有技术相比插入性能被提高了大约2.5倍。此外,根据本发明示例性实施例,减少了日志信息量,从而使得恢复所需的时间被减少到大约1/50。
尽管已经联系本发明示例性实施例对本发明进行了描述,但是本领域技术人员应当清楚的是,在不脱离本发明的范围和精神的情况下,可对其做出各种修改和改变。因此,应当理解的是,以上实施例在所有方面是示例性而非限定性的。
根据本发明示例性实施例,即使大量的新的页被分配,日志信息管理系统也能最小化关于分配的页的日志信息量,以使得可以减少在盘上写入信息的花费。
此外,根据本发明示例性实施例,新分配的页不是从盘中读取的,使得可以减少从盘中读取信息的花费。
此外,根据本发明示例性实施例,关于新分配的页的日志信息量被减少到最小。因此,即使恢复数据,也提高响应速度。
Claims (18)
1、一种日志信息管理系统,包括:
索引/记录/目录管理模块,确定将被更新的页是否是新分配的页;
存储管理模块,管理空闲页列表和未提交空闲页列表,如果索引/记录/目录管理模块确定将被更新的页是新分配的,则从空闲页列表分配新的页,和如果空闲页列表为空,则从未提交空闲页列表分配新的页;和
缓冲器管理模块,设置关于与所述新的页相应的缓存页的标识信息。
2、如权利要求1所述的日志信息管理系统,其中,当完成事务处理时,创建所述日志信息。
3、如权利要求1所述的日志信息管理系统,其中,所述标识信息包括页日志序号。
4、如权利要求1所述的日志信息管理系统,其中,所述缓冲器管理模块将所述标识信息设置为最大的日志序号。
5、如权利要求1所述的日志信息管理系统,其中,如果从未提交空闲页列表分配新的页,则存储管理模块从盘中将相应页读取到缓冲器中的指定空间。
6、如权利要求1所述的日志信息管理系统,其中,如果在由缓冲器管理单元管理的缓冲器中的页的页日志序号与最大值相应,则存储管理模块在将所述页记录在盘上之前将页日志序号改为特定的日志序号。
7、如权利要求1所述的日志信息管理系统,其中,如果在由缓冲器管理模块管理的缓冲器中的页的页日志序号小于或者等于最大值,则索引/记录/目录管理模块创建关于被更新了其数据值的页的日志信息。
8、如权利要求1所述的日志信息管理系统,其中,所述存储管理单元包括页使用管理模块。
9、如权利要求5所述的日志信息管理系统,其中,所述缓冲器包括数据缓冲器和日志缓冲器。
10、如权利要求1所述的日志信息管理系统,其中,当事务处理完成或者停止时,未提交空闲页列表上的未分配页被传送到空闲页列表。
11、一种管理日志信息的方法,所述方法包括:
确定将被更新的页是否是新分配的;
如果确定将被更新的页是新分配的,则从空闲页列表分配新的页;
如果空闲页列表为空,则从未提交空闲页列表分配新的页;和
设置关于与新的页相应的缓存页的标识信息。
12、如权利要求11所述的方法,其中,当完成事务处理时,创建所述日志信息。
13、如权利要求11所述的方法,其中,所述标识信息包括页日志序号。
14、如权利要求11所述的方法,其中,所述设置标识信息的步骤包括将所述标识信息设置为最大的日志序号。
15、如权利要求11所述的方法,其中,如果从未提交空闲页列表分配新的页,则所述分配新的页的步骤包括从盘中将所述新分配的页载入到指定的缓冲空间。
16、如权利要求11所述的方法,还包括:如果缓冲页的页日志序号与最大值相应,则在将缓存页记录在盘上之前将所述页日志序号改为特定的日志序号。
17、如权利要求11所述的方法,还包括:如果所述缓冲页的页日志序号小于或者等于最大值,则创建关于所述缓存页的日志信息。
18、如权利要求11所述的方法,其中,还包括:如果事务处理完成或者停止,则将未提交空闲页列表上的未分配页传送到空闲页列表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060002867A KR100781515B1 (ko) | 2006-01-10 | 2006-01-10 | 트랜잭션 처리를 위한 로그 정보 관리 시스템 및 방법 |
KR1020060002867 | 2006-01-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101000630A true CN101000630A (zh) | 2007-07-18 |
CN100511235C CN100511235C (zh) | 2009-07-08 |
Family
ID=37983501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100015990A Expired - Fee Related CN100511235C (zh) | 2006-01-10 | 2007-01-09 | 管理事务处理的日志信息的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7849060B2 (zh) |
EP (1) | EP1806668B1 (zh) |
JP (1) | JP4916892B2 (zh) |
KR (1) | KR100781515B1 (zh) |
CN (1) | CN100511235C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446203A (zh) * | 2018-03-20 | 2018-08-24 | 万帮充电设备有限公司 | 服务器事务日志处理方法及装置 |
CN115328878A (zh) * | 2022-10-17 | 2022-11-11 | 成都卫士通信息产业股份有限公司 | 日志数据存储系统、方法、设备及介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8140483B2 (en) | 2007-09-28 | 2012-03-20 | International Business Machines Corporation | Transaction log management |
US8108356B2 (en) * | 2007-12-24 | 2012-01-31 | Korea Advanced Institute Of Science And Technology | Method for recovering data in a storage system |
JP5250871B2 (ja) * | 2008-12-24 | 2013-07-31 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ムラ評価装置、ムラ評価方法、ディスプレイ検査装置、およびプログラム |
US9612954B2 (en) | 2008-12-31 | 2017-04-04 | Micron Technology, Inc. | Recovery for non-volatile memory after power loss |
KR101587995B1 (ko) | 2009-10-28 | 2016-01-22 | 삼성전자주식회사 | 적응적 로깅 장치 및 방법 |
US8266126B2 (en) * | 2010-03-24 | 2012-09-11 | Matrixx Software, Inc. | System with multiple conditional commit databases |
US9195578B2 (en) * | 2012-08-24 | 2015-11-24 | International Business Machines Corporation | Systems, methods and computer program products memory space management for storage class memory |
US9478271B2 (en) * | 2013-03-14 | 2016-10-25 | Seagate Technology Llc | Nonvolatile memory data recovery after power failure |
US20170235781A1 (en) * | 2016-02-16 | 2017-08-17 | TmaxData Co., Ltd. | Method, server and computer program stored in computer readable medium for managing log data in database |
US20200050692A1 (en) * | 2018-08-10 | 2020-02-13 | Microsoft Technology Licensing, Llc | Consistent read queries from a secondary compute node |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01261745A (ja) | 1988-04-08 | 1989-10-18 | Internatl Business Mach Corp <Ibm> | データ・ベース・レコードのトランザクシヨンの回復方法 |
JPH04148250A (ja) | 1990-10-08 | 1992-05-21 | Toshiba Corp | オンライントランザクションシステム |
JP2631185B2 (ja) * | 1993-02-19 | 1997-07-16 | 日本電信電話株式会社 | データベースバックアップ方法 |
US5455946A (en) * | 1993-05-21 | 1995-10-03 | International Business Machines Corporation | Method and means for archiving modifiable pages in a log based transaction management system |
JPH07175700A (ja) * | 1993-12-20 | 1995-07-14 | Fujitsu Ltd | データベース管理方式 |
JPH08249217A (ja) * | 1995-03-15 | 1996-09-27 | Toshiba Corp | キャッシュ管理装置 |
CA2227431C (en) * | 1995-07-20 | 2001-05-15 | Novell, Inc. | Transaction log management in a disconnectable computer and network |
US5903898A (en) * | 1996-06-04 | 1999-05-11 | Oracle Corporation | Method and apparatus for user selectable logging |
US6738790B1 (en) | 1997-10-31 | 2004-05-18 | Oracle International Corporation | Approach for accessing large objects |
US6185663B1 (en) * | 1998-06-15 | 2001-02-06 | Compaq Computer Corporation | Computer method and apparatus for file system block allocation with multiple redo |
JP3763992B2 (ja) * | 1999-03-30 | 2006-04-05 | 富士通株式会社 | データ処理装置及び記録媒体 |
JP2000339183A (ja) * | 1999-05-25 | 2000-12-08 | Nec Corp | ワークエリアのデータセット管理方式 |
KR20010055981A (ko) * | 1999-12-13 | 2001-07-04 | 오길록 | 안전기억장치를 이용한 주기억장치 상주형 데이터베이스회복 방법 |
US6571259B1 (en) * | 2000-09-26 | 2003-05-27 | Emc Corporation | Preallocation of file system cache blocks in a data storage system |
KR20020030223A (ko) | 2000-10-16 | 2002-04-24 | 주식회사 알라딘소프트 | 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을지원하기 위한 로깅 및 회복 방법 |
KR20020037399A (ko) | 2000-11-14 | 2002-05-21 | 구자홍 | 데이터베이스 관리시스템의 트랜잭션처리방법 |
US20020103815A1 (en) | 2000-12-12 | 2002-08-01 | Fresher Information Corporation | High speed data updates implemented in an information storage and retrieval system |
CA2370601A1 (en) * | 2002-02-05 | 2003-08-05 | Ibm Canada Limited-Ibm Canada Limitee | Optimizing log usage for temporary objects |
US6721765B2 (en) | 2002-07-02 | 2004-04-13 | Sybase, Inc. | Database system with improved methods for asynchronous logging of transactions |
JP4139642B2 (ja) * | 2002-07-29 | 2008-08-27 | 株式会社日立製作所 | データベース管理方法およびシステム |
US8099726B2 (en) * | 2005-12-07 | 2012-01-17 | Microsoft Corporation | Implementing strong atomicity in software transactional memory |
-
2006
- 2006-01-10 KR KR1020060002867A patent/KR100781515B1/ko active IP Right Grant
- 2006-12-18 US US11/640,287 patent/US7849060B2/en not_active Expired - Fee Related
-
2007
- 2007-01-04 EP EP07100135A patent/EP1806668B1/en not_active Ceased
- 2007-01-05 JP JP2007000560A patent/JP4916892B2/ja not_active Expired - Fee Related
- 2007-01-09 CN CNB2007100015990A patent/CN100511235C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446203A (zh) * | 2018-03-20 | 2018-08-24 | 万帮充电设备有限公司 | 服务器事务日志处理方法及装置 |
CN115328878A (zh) * | 2022-10-17 | 2022-11-11 | 成都卫士通信息产业股份有限公司 | 日志数据存储系统、方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
JP4916892B2 (ja) | 2012-04-18 |
US7849060B2 (en) | 2010-12-07 |
KR100781515B1 (ko) | 2007-12-03 |
US20070174355A1 (en) | 2007-07-26 |
EP1806668B1 (en) | 2011-07-06 |
JP2007188497A (ja) | 2007-07-26 |
CN100511235C (zh) | 2009-07-08 |
EP1806668A2 (en) | 2007-07-11 |
KR20070074836A (ko) | 2007-07-18 |
EP1806668A3 (en) | 2008-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100511235C (zh) | 管理事务处理的日志信息的系统和方法 | |
US8700585B2 (en) | Optimistic locking method and system for committing transactions on a file system | |
US5933593A (en) | Method for writing modified data from a main memory of a computer back to a database | |
EP2657859B1 (en) | Ensuring database log recovery consistency | |
CN101351799B (zh) | 用增量分页器来管理状态 | |
CN1280743C (zh) | 数据传送方法及系统 | |
US5996088A (en) | High-speed database checkpointing through sequential I/O to disk | |
US9092475B2 (en) | Database log parallelization | |
US8108587B2 (en) | Free-space reduction in cached database pages | |
WO2021027956A1 (zh) | 一种基于区块链系统的交易处理方法及装置 | |
CN103198088B (zh) | 基于阴影分页的日志段目录 | |
JP2004227569A (ja) | 永続フレームワーク用単一キャッシュによる事象駆動型トランザクション状態の管理 | |
US20130339312A1 (en) | Inter-Query Parallelization of Constraint Checking | |
JP2000284995A (ja) | データ処理装置及び記録媒体 | |
KR20080016990A (ko) | 완화된 커런시 제한 | |
US9734187B2 (en) | Atomic transactions in a NOSQL database | |
CN109871386A (zh) | 非易失性存储器中的多版本并发控制(mvcc) | |
WO2017128028A1 (zh) | 一种事务处理方法及装置 | |
CN110597663A (zh) | 一种事务处理方法及装置 | |
CN111177105B (zh) | 分布式文件系统的海量文件写方法、装置、系统及介质 | |
CN118140217A (zh) | 经由用于弹性缓冲池扩展的预暂存缓冲区进行本地页写入 | |
KR20110046118A (ko) | 적응적 로깅 장치 및 방법 | |
CN112334891A (zh) | 用于搜索服务器的集中式存储 | |
US8615639B2 (en) | Lock-free release of shadow pages in a data storage application | |
JP2006085539A (ja) | データベース管理プログラム、方法、装置及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090708 Termination date: 20210109 |
|
CF01 | Termination of patent right due to non-payment of annual fee |