CN101183322A - 延迟日志生成的方法及其设备 - Google Patents
延迟日志生成的方法及其设备 Download PDFInfo
- Publication number
- CN101183322A CN101183322A CNA2007101085168A CN200710108516A CN101183322A CN 101183322 A CN101183322 A CN 101183322A CN A2007101085168 A CNA2007101085168 A CN A2007101085168A CN 200710108516 A CN200710108516 A CN 200710108516A CN 101183322 A CN101183322 A CN 101183322A
- Authority
- CN
- China
- Prior art keywords
- data page
- mirror image
- page
- log
- journal entry
- 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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- 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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
提供了一种在由更新生成日志记录时通过使用日志项来减小日志大小的日志生成方法及其设备。所述方法包括:存储正被更新的数据页的日志信息;在完成数据页的更新时读取存储的日志信息;通过使用读取的日志信息生成日志记录;和将生成的日志记录写入日志页。根据所述方法,由于日志生成引起日志大小减小,并且减少了盘输入和/或输出操作的次数,从而提高了数据库***的更新速度。
Description
本申请要求于2006年11月16日在韩国知识产权局提交的第10-2006-0113386号韩国专利申请的利益,该公开完全包含于此,以资参考。
技术领域
本发明涉及一种在数据库管理***(DBMS)中的日志生成(logging)方法,更具体地说,涉及一种用于在更新DB并且生成日志记录(log record)时可通过使用日志项来减小所述日志大小的日志生成方法和设备。
背景技术
使用数据库管理***(DBMS)的目的在于***地管理数据,从而更加容易地开发应用程序,并且在任何情况下安全地维护并管理数据。一般来说,DBMS根据数据改变来执行日志生成,以保证这种数据库(DB)的稳定性(持久性)。
日志生成是DBMS的基本功能,其中,发生数据的***、删除或者更新,并且所述数据的***、删除或者更新被记录到稳定的存储装置(诸如,盘驱动)中,以通过使用异常情况下生成的日志的信息来允许恢复到先前的DB状态。
在DBMS中,持久性的概念是业务处理的重要特征之一,所述重要特征包括:原子性、一致性、隔离性和持久性(ACID)。持久性表示:如果成功完成业务,则即使发生***错误也应当保证在DB中反映出该业务处理的结果。通常,DBMS将在进行业务处理时发生的状态改变的内容记录为日志,并且将该日志存储到诸如盘的稳定的存储介质中。因此,DB的状态改变被记录在日志中,并且该日志支持DB的状态的一致性维护。在其最简表格中,由业务改变的所有内容被记录在盘上的日志文件中;然而,业务的每一项操作都伴有盘输入和输出操作,所以DBMS的性能被大大地降低。
图1是示出根据传统技术的DBMS的日志生成处理的示意图。
在盘(即,永久存储介质)驱动120的预定区域中的DB 121包括数据文件121a和日志文件121b。当执行应用程序引起通过业务执行更新时,相关的数据文件以页为单位被载入到存储器110的缓冲器113中。如果在存储器110中执行与数据页的业务相应的区域111a的更新,则在日志页112中写入与该更新相应的日志记录112b。根据预写式日志(WAL)协议,所述更新的输入页和产生的日志页被分别存储在盘驱动120的数据文件121a和日志文件121b中。
WAL协议是首先将日志页存储在盘中,并随后存储数据页,以排除在未完成的业务的改变内容被存储在盘中时发生的错误的过程。根据WAL协议,当再次运行***时,***可安全地被恢复到异常发生之前的状态。
图2是示出根据传统技术的日志记录格式的数据结构的示图。
如图2所示,形成具有多个字段的包括更新信息的日志记录。
先前日志序列号(LSN)是由预定业务生成的先前日志记录的LSN。换句话说,LSN是日志记录的标识号(ID)并且指示日志页中记录日志记录的位置。因此,LSN包括日志页的编号以及所述日志页内的偏移。
除了LSN之外,日志记录包括:业务ID、指示日志记录类型的类型字段、指示更新的数据页的编号的页ID、更新数据的长度、更新的数据页内的偏移和分别与更新前后的镜像对应的前镜像和后镜像。
图3A和图3B示出了根据传统技术在执行更新时生成的日志记录。
参照图3A,可以确定在数据页1310中发生过两次更新操作。首先,位于数据页1310的偏移10的数据“name”311被改为“kate”311a,并且位于偏移31的数据“0000”312被改为“0021”312a。
这里,从日志记录1(LR1)320可以确定更新前的镜像的值“name”被改为更新后的镜像的值“kate”。从日志记录2(LR2)330可以确定值“0000”被改为“0021”。当日志记录320和330的每一个被生成时,它们被同时记录在日志页中。
如果以这种方式继续执行更新,则将被写在日志页中的日志记录的数量与更新的频率成比例地增加。
图3B示出了以下所述。参照图3B,通过以下参照上述图3A描述的日志记录340和350,由其他更新操作导致了从“kate”改为“john”的日志记录360以及被从“0021”改为“0701”的日志记录370被生成,并且可以确定日志记录380被随后连续地生成。
以这种方式,由日志生成处理引起的日志大小可变成实际更新的数据大小的几倍到几百倍。日志大小的增加引起盘输入和/或输出,从而降低更新操作的速度,并且减少了盘上所剩的可用空间。此外,当由于异常情况的发生而执行恢复操作时,从盘上读取并处理很大的日志数据增加了恢复需要的时间。
发明内容
本发明提供一种在由更新生成日志记录时通过使用日志项来减小日志大小的日志生成方法和设备。
根据本发明的一方面,提供了一种在数据库管理***(DBMS)中的日志生成方法,所述方法包括:存储正被更新的数据页的日志信息;在完成数据页的更新时读取存储的日志信息;通过使用读取的日志信息生成日志记录;和将生成的日志记录写入日志页。
存储日志信息的步骤可包括:生成包括正被更新的数据页的偏移值的日志项;将正被更新的数据页的日志信息记录在生成的日志项中;和通过使用记录的日志信息合并至少两个或者多个日志项。
在合并至少两个或者多个日志项的步骤中,如果存在关于与更新的数据页的区域相同的区域而已经生成的日志项,则可以将其中记录有正被更新的数据页的日志信息的日志项添加到已经生成的日志项,从而合并日志项。
在合并至少两个或者多个日志项的步骤中,如果存在关于与更新的数据页的区域相邻的区域而已经生成的日志项,则关于所述相邻区域,可以对包括在已经生成的日志项中的偏移值进行改变,从而合并日志项。
在合并至少两个或者多个日志项的步骤中,如果存在关于与正被更新的数据页的区域重叠的区域而已经生成的日志项,则可以关于所述重叠区域,对包括在已经生成的日志项中的偏移值进行改变,从而合并日志项。
当完成对数据页的更新操作时可以执行合并至少两个或者多个日志项的步骤。
所述完成数据页的更新操作的时间可以是提交执行更新操作的业务的时间,或者数据页被转储清除的时间。
所述生成的日志项关于正被更新的数据页并且关于执行更新操作的每个业务被管理。
所述产生的日志项可根据包括在该日志项中的偏移值被分类。
生成日志项和记录日志信息可使用恢复和独立开发语义算法(ARIES),并且遵守预写式日志(WAL)协议。
根据本发明的另一方面,提供一种在DBMS中的日志生成方法,所述方法包括:生成正被更新的数据页的复制的镜像,所述镜像与更新之前的所述原始镜像相同;生成正被更新的数据页的日志项;合并生成的日志项;对原始镜像执行更新操作;和如果完成更新操作,则通过使用所述原始镜像、复制的镜像和合并的日志项生成日志记录。
在合并生成的日志项的步骤中,如果存在关于与正被更新的数据页的区域相同的区域而已经生成的日志项,则可以将关于正被更新的数据页的日志项添加到已经生成的日志项,从而合并日志项。
在合并生成的日志项的步骤中,如果存在关于与更新的数据页的区域相邻的区域而已经生成的日志项,则关于所述相邻区域可以对包括在已经生成的日志项中的偏移值进行改变,从而合并日志项。
在合并生成的日志项的步骤中,如果存在关于与更新的数据页的区域重叠的区域而已经生成的日志项,则关于所述重叠区域可以对包括在已经生成的日志项中的偏移值进行改变,从而合并日志项。
当完成对数据页的更新操作时可以执行合并生成的日志项的步骤。
所述完成更新操作的时间可以是提交执行更新操作的业务的时间,或者原始镜像的数据页被转储清除的时间。
所述方法还可以包括:在管理始镜像、复制的镜像和执行更新操作的业务之间的关系的缓存页信息单元中寄存原始镜像、复制的镜像和关于所述业务的信息。
所述生成的日志项可以关于正被更新的数据页并且关于执行更新操作的每个业务被管理。
所述生成的日志项可以根据包括在该日志项中的偏移值被分类。
日志项可以具有:正被更新的数据页的区域的长度和正被更新的数据页中的更新的区域的开始位置,或者正被更新的数据页中的更新的区域的开始位置和结束位置。
如果存在多项执行更新操作的业务,并且所述更新业务被同时执行,则可以应用严格两段锁(2PL)协议。
如果在完成更新时所述业务被提交,则所述方法还可以包括:确定在数据页中是否存在另一业务;如果确定结果指示在数据页中存在另一业务,则在复制的镜像的相应区域内记录与其提交的业务的各个日志项相应的原始镜像的更新的区域;和如果确定结果指示数据页中不存在其他业务,则删除复制的镜像。
如果在没有完成更新操作时所述业务异常中止,则所述方法还可以包括:确定在数据页中是否存在另一业务;如果确定结果指示在数据页中存在另一业务,则在原始镜像的相应区域内记录与异常中止的业务的各个日志项相应的更新前的复制的镜像的区域;和如果确定结果指示数据页中不存在其他业务,则将复制的镜像替换为原始镜像。
在完成更新操作时业务被提交,则所述方法还可以包括:确定在数据页中是否存在另一业务;如果确定结果指示在数据页中存在另一业务,则在缓存页信息单元中记录所述业务被提交;和如果确定结果指示数据页中不存在其他业务,则删除复制的镜像。
如果在没有完成更新操作时所述业务异常中止,则所述方法还可以包括:确定在数据页中是否存在另一业务;通过参照缓存页信息单元确定在数据页中是否存在另一提交的业务;如果确定结果指示在数据页中存在另一业务或者另一提交的业务,则在原始镜像的相应区域内记录与异常中止的业务的各个日志项相应的更新前的复制的镜像的区域;和如果确定结果指示数据页中不存在其他业务或者其他提交的业务,则将复制的镜像替换为原始镜像。
如果在完成更新业务时原始镜像的数据页被转储清除,则所述方法还可以包括:生成转储清除的数据页的全部日志项的日志记录;和删除复制的镜像。
根据本发明的另一方面,提供一种在DBMS中的日志生成设备,包括:日志存储单元,存储正被更新的数据页的日志信息;日志读取单元,在完成数据页的更新操作时读取存储在日志存储单元中的日志信息;和日志控制单元,基于读取的日志信息生成日志记录,并将生成的日志记录记录在日志页中。
根据本发明的另一方面,提供一种在DBMS中的日志生成设备,所述设备包括:业务控制单元,管理执行数据页的更新操作的业务;日志控制单元,将根据由业务控制单元管理的业务的更新操作生成的日志信息进行合并,从而生成日志记录,并将生成的日志记录记录在日志页中;和缓存控制单元,管理被执行更新操作的数据页,并且管理所述日志页,从而可以将所述数据页和日志页输入存储介质,或者从存储介质输出所述数据页和日志页。
日志控制单元可以包括:第一存储单元,存储复制的镜像,所述复制的镜像与正被执行更新操作的数据页的更新之前的原始镜像相同;第二存储单元,存储日志项,所述日志项根据由业务控制单元管理的业务的更新操作被生成;日志合并单元,将至少两个或者多个存储在第二存储单元的日志项进行合并;和日志输出单元,在完成更新操作时通过使用原始镜像、复制的镜像和合并的日志项生成日志记录,并且将生成的日志记录记录在日志页中。
缓存控制单元可以管理缓存页信息单元,在所述缓存页信息单元中寄存有原始镜像、复制的镜像和关于执行更新操作的业务的信息。
根据本发明的另一方面,提供一种其上实现有用于执行所述方法的计算机程序的计算机可读记录介质。
附图说明
通过参照附图对本发明示例性实施例的详细描述,本发明的以上和其他方面将变得更加清楚,其中:
图1是示出根据传统技术的DBMS的日志生成处理的示意图;
图2是示出根据传统技术的日志记录格式的数据结构的示图;
图3A和图3B示出了根据传统技术在执行更新时生成的日志记录;
图4A和图4B示出了根据本发明示例性实施例的合并多条日志记录的结果;
图5是示出根据本发明示例性实施例的在DB中的日志生成方法的流程图;
图6是根据本发明示例性实施例的更加详细地示出图5中所示的日志信息的存储的流程图;
图7是示出根据本发明另一示例性实施例的在DB中的日志生成方法的流程图;
图8A和图8B是示出根据本发明示例性实施例的日志项格式的数据结构的示图;
图9是示出根据本发明示例性实施例的通过一次业务更新的示例的示图;
图10是示出根据本发明示例性实施例的通过两次或者多次业务更新的示例的示图;
图11是示出根据本发明示例性实施例的每一种模式的更新操作的示图;
图12是示出根据本发明示例性实施例的作为图11中所示的操作完成的结果被生成的日志项的示图;
图13示出了根据本发明示例性实施例的用于生成日志项的处理的伪代码;
图14示出了根据本发明示例性实施例的用于提交业务的处理的伪代码;
图15示出了根据本发明示例性实施例的用于异常中止业务的处理的伪代码;
图16示出了根据本发明示例性实施例的用于转储清除数据页的处理的伪代码;
图17是示出了根据本发明示例性实施例的数据库日志生成设备的示意性功能框图;
图18是示出根据本发明示例性实施例的数据库日志生成设备的功能性框图;
图19到图21是示出根据本发明示例性实施例的更新的数据页的示例的示图;和
图22是示出根据本发明示例性实施例的在DB的每一个模块中减少的日志记录的比较表。
具体实施方式
现在将参照附图更全面地描述本发明的示例性实施例。
图4A到图4B示出了根据本发明实施例的合并多条日志记录的结果。
参照图4A,可以从箭头的左侧看到3条日志记录410到430。可以确定这3条日志记录410到430是通过更新相对于同一数据页具有同一偏移值的数据(即,通过更新相同区域的数据)而被生成的。由于非平衡(non-equalized)更新操作所以频繁出现日志记录410到430的这些类型。频繁执行更新的数据区域的日志记录一般具有这种类型,例如,同一用户访问频率的日志记录,或者同一音乐文件被收听的次数的日志记录。在这种情况下,利用箭头右侧的一条日志记录440,仅仅“0”(即,第一镜像)和“3”(即,最后的镜像)的信息就足以维护(maintain)业务的持久性(durability)。
参照图4B,箭头左侧的3条日志记录450到470不涉及相同区域的数据更新。然而,当与偏移值20、24和28相关的各更新的区域的数据长度(4字节)被彼此比较时,可以确定包含将被更新的数据(“0”)的区域相邻。因此,可以获得用于将与从偏移值20开始的12字节相应的数据“000”更新为值“111”的(如箭头右侧的日志记录480)一条日志记录。
图5是示出根据本发明示例性实施例的在DB中的日志生成方法的流程图。
首先,在操作510存储正被更新的数据页的日志信息。也就是说,每当执行更新时,临时地存储正被更新的数据页的日志信息(业务ID、类型、页ID、更新数据长度、偏移值、更新前的镜像和更新后的镜像),而不是立即生成日志记录并在日志页中写入该日志记录。随后,如果完成更新操作,则在操作520读取存储的日志信息。也就是说,如果执行更新操作的业务提交(commit)或者正被更新的数据页被转储清除,则读取存储的日志信息。在操作530使用所述读取的日志信息来生成日志记录,并且在操作540在所述日志页中写入生成的日志记录。
在用于生成并写入日志记录的操作中,使用恢复和独立开发语义算法(ARIES),并且可以使用的WAL协议遵守ARIES。因此,仅对数据页的更新镜像生成日志记录,并且在存储所述数据页之前存储该日志记录。
现在将描述关于存储正被更新的数据页日志信息的详细操作。
图6是根据本发明示例性实施例的更加详细地示出图5中所示的操作510的流程图。
参照图6,在临时存储日志信息的步骤中,在操作610,首先生成包括数据页偏移值的日志项,并且在操作620将正被更新的数据页的日志信息写入生成的日志项内。然后使用写入的日志信息将一条或者多条日志项合并到一起。
合并的处理可被细分为可在应用程序中频繁出现的三种情况。
第一,在重复更新同一区域时可合并日志项。根据传统方法,当同一业务重复更新预定区域的数据时,在每次更新时生成并记录更新前的镜像和更新后的镜像的日志记录。在本示例性实施例中,所需的日志信息是在第一次更新生成日志记录之前的镜像(即,更新前的镜像)和在最后一次更新生成日志记录之后的镜像(即,更新后的镜像)。在中间处理中由更新生成的关于镜像改变的信息可以被看作为非必要信息。
因此,如果对于正被更新的数据页存在先前生成的关于数据页同一区域的日志项,则包含用于正被更新的数据的日志信息的日志项可被添加到先前生成的同一区域的日志项内,从而对日志项进行合并。可通过使用页ID、业务ID、数据长度和偏移值来找到同一页,并且还可以通过使用指示数据页区域的其他参数值来找到所述同一页。
第二,在更新相邻区域时可以合并日志项。根据传统技术,当同一业务更新相邻区域的数据时,即当根据偏移值所述正被更新的区域相邻时,在每次更新时分别生成日志记录。在这种情况下,如果在日志记录中出现的更新后的镜像可被合并为一个,则可只生成一条日志记录。
因此,如果在与正被更新的数据页的区域相邻的区域中存在先前生成的日志项,则相对于相邻区域改变先前生成的日志项中包括的偏移值,从而对日志记录进行合并。通过使用页ID、偏移值和数据长度可计算相邻区域的定义(determination)。如果只可以计算数据页上的预定数据区域的开始和结束位置,则还可以使用其他定义方法。
第三,当更新包括被一次或者多次更新的区域时可以合并日志项。这与混合同一区域的更新和相邻区域的更新的情况相应。根据传统技术,当更新包括至少被更新一次的区域时,每次更新分别生成日志记录。在本发明示例性实施例中,不需要在同一区域的中间更新处理生成的镜像,并且如果不同区域的镜像可被合并,则可以将多条日志记录合并为一条日志记录。
因此,如果对于正被更新的数据页的同一区域存在先前生成的日志项,则对于同一区域改变包括在所述先前生成的日志项中的偏移值,从而合并所述日志记录。这里,可以使用与如上所述的第一种和第二种情况相同的方法来找到所述同一区域。
根据更新操作,可在每当生成日志项或者完成数据页更新时执行上述合并处理。数据页更新的完成通常是指提交更新业务或者转储清除数据页时的点。它还可以指示当由于其他事件在数据库中应当反映出业务的更新内容时或者当根据缓存替换策略向盘中输入或者从盘中输出缓存页时的点。
如果使用传统的日志生成方法,则很难在上述情况下减小日志文件的大小。这是因为在上述情况出现在应用程序中时没有连续出现预定模式。换句话说,在传统方法中,即使当发生更新同一区域的操作时,该操作也不是出现的唯一操作;在正在执行该操作的同时还可出现其他操作。因此,因为日志页上的特定日志记录与在正在执行该操作的同时被执行的其他操作相关,所以很难确定哪个日志记录与同一区域、相邻区域或者更新的区域的更新相关。
在传统方法中,即使这些日志记录相同,也很难在将这些日志记录记录在日志页的同时将其合并。这是因为所述合并需要改变日志记录的LSN,所述改变日志记录的LSN的步骤需要另一将被处理的载入。此外,传统方法导致***开销的花费,诸如,由于重新写入全部先前记录的日志记录而导致的存储器复制花费。
但是,根据本发明示例性实施例,在存储正被更新的数据页的日志信息的操作中,包括数据页的偏移值的日志项被合并到每一数据页中,和更新操作的每一项业务中。这里,基于日志项的偏移值来对日志项分类并形成列表。因此,在更新数据时关于更新数据的日志记录没有被立即生成并记录在日志页内,并且没有出现与日志记录的LSN被立即完成并且很难被改变相关的问题。
图7是示出根据本发明另一示例性实施例的在DB中的日志生成方法的流程图。
参照图7,在操作710,如果执行更新,则生成正被更新的数据页复制的镜像,即,与更新前的原始镜像相同的镜像。镜像副本被临时存储在存储器中直到日志记录被生成。随后,在操作720,生成关于正被更新的数据页的日志项。在操作730,将生成的日志项彼此合并。可如上所述执行合并模式。在操作740,与更新相应的改变的内容被反映在原始镜像中,并且在操作750,如果完成更新,则通过使用合并的日志项来生成日志记录。在这种情况下,从镜像副本中取回日志记录的前镜像(before-image)的数据,和从原始镜像中取回后镜像(after-image)的数据。
根据更新操作,每当生成日志项时可执行合并处理,或者通常当完成更新(诸如,提交更新业务)时,或者转储清除数据页时,可执行合并处理。
此外,还可包括在缓存页信息单元中寄存(register)镜像副本和关于更新业务的信息的操作。缓存页信息用于管理原始镜像、镜像副本和更新业务之间的关系,并且所述缓存页信息存储关于正被更新的数据页的页ID的信息、镜像副本的位置指针、更新业务的ID以及业务是否被提交的信息。在存储器中,更新生成的日志项和更新的页由缓存页信息单元来管理。当通过缓存替换策略将更新的页转储清除到盘中或者业务被提交时,在日志页中生成并写入日志记录。
根据这种日志生成方法,在业务的开始和结束之间生成的日志信息被包括在当业务被提交时生成的日志记录中,并且被记录在日志页内,从而保证了所述日志信息被转储清除到盘。因此,也就保证了日志信息的恢复。
图8A和图8B是示出根据本发明实施例的日志项格式的数据结构的示图。
如上所述,日志项被生成并被临时存储在存储器中,而不是在执行更新之后立即生成日志记录。所述日志项可具有以下字段:
长度:更新的数据区域的长度;
偏移:更新的区域的开始位置在页中的偏移值;
下一日志项(next):指示下一日志项的指针;
开始偏移(soffset):指示更新的区域的开始位置在所述页中的偏移值;
结束偏移(eoffest):指示更新的区域的结束位置在所述页中的偏移值;
根据实现可以选择和使用图8A和图8B中所示的格式的任何一个,也可以使用没有在此详细示出的其他格式。
这里,应当注意的是基于“位置”的概念来管理由日志项管理的信息。也就是说,所述日志项根据所述日志项的位置来存储更新数据页导致的所有改变。这是合并日志项的处理中的重要信息,由此,可以大大减少写入日志页中的日志记录的数量。
图9是示出根据本发明示例性实施例的通过一次业务更新的示例的示图。
参照图9,页1910是原始镜像,页1’920是原始镜像的副本。此外,示出了缓存页信息单元(页信息)930、一项业务T1940和两个日志项950和960。如果执行更新,则生成更新的页的镜像副本(页1’920)。
为了识别执行更新的业务,缓存页信息单元(页信息)930管理业务T1940的ID。业务T1940使用关于页1910的更新的信息来生成日志项950和960的列表。日志项950和960的列表按照偏移值被分类,并在存储器中被维护。也就是说,图9中所示的操作可被如下简要描述。
i)业务T1940对从页1910的偏移10开始的4字节区域进行更新。这是发生在页1910中的第一次更新。因此,在更新页1910之前,生成该页的副本(页1’920)。业务T1940的ID被寄存在缓存页信息单元930中,使用更新信息生成日志项950,以指示由于业务T1940更新了该信息。随后使用期望的更新镜像来更新原始镜像页1910。
ii)业务T1940对从页1910的偏移31开始的4字节区域进行更新。此时,日志项960被生成,按照偏移值被分类,并且被***到日志项列表中。随后,使用期望的更新镜像来更新页1910。仅在存储器中维护生成的日志项950和960,并且所述日志项950和960将不作为日志记录被写入该日志页。
iii)根据缓存替换策略,页1910被选为对象页(目标),并且被转储清除到盘(或者业务T1940被提交)。日志记录由关于相应页(在这种情况下,即,页1910)存在的日志项950和960构成,或者由提交的业务生成(在这种情况下,即,业务T1940)的日志项950和960构成,并且被写入该日志页。
图10是示出根据本发明示例性实施例的通过两次或者多次业务更新的示图。
参照图10,两项业务T11040和T51070分别更新页11010的不同区域,由更新信息生成日志项1050、1060、1080和1090,所述这些日志项与相应的业务T1和T5相连并被管理。图10和图9间的不同在于:在图10中,关于多项业务中的每一项来管理日志项的列表。
在这种情况下,当同时执行两项或者多项业务时,要遵守严格两段锁(2PL)协议。因此,因为要遵守严格2PL协议,所以没有出现两项或者多项运行的(active)业务更新同一区域的情况。
锁协议是一组规则,通过所述规则DBMS仅允许连续并可恢复的日志安排。所述锁协议包括共享锁和独占锁,并且严格2PL锁根据以下规则被执行。第一规则,即,如果业务T想要读取或者写入对象,则所述业务T首先要分别请求共享或者独占对象的锁。第二规则,即,在完成业务时打开(unlock)所述业务拥有的所有锁状态。根据用于请求和获得锁的规则,当第一业务的共享锁锁定对象并且第二业务请求相同对象的共享锁时,第二业务可获得共享锁,但是如果第一业务请求独占锁时,第二业务必须等待。此外,当业务的独占锁锁定对象时,请求任何类型的锁的其他业务必须等待。但是,其他业务可直接读取已经获得其独占锁的对象。
图11是示出根据本发明示例性实施例的每一种模式的更新操作的示图。图12是示出根据本发明示例性实施例的作为图11中所示的操作完成的结果被生成的日志项的示图。
现在将简要说明图11所示的情况。业务T11140在从页11110的偏移10开始的4字节的区域中将“name”更新为“kate”,并且在从页11110的偏移31开始的4字节的区域中将“0000”更新为“0021”。生成页11110的副本(页1’1120)和两个日志项1150和1160。
现在将按照带图编号(①到⑥)的顺序对图11所示的更新操作的处理进行说明。
①将“kate”更新为“john”。这是这样一种情况,即:同一区域被更新,并且已经生成了用于从“name”到“kate”的改变的相应于前一更新的日志项1150。此时,唯一需要的操作是将作为原始页的页11110更新为作为更新后的镜像的“john”。因此,将新的日志项合并到先前生成的日志项1150中,而没有必要添加新的日志项。
②将“0005”更新为“0006”。在这种情况下,从偏移35开始的4字节被更新,并且所述区域相邻于现有更新的区域。在这种情况下,可以确定用于将“0000”改为“0021”的第二日志项1160的更新的镜像的结束位置相邻于当前正在被更新的镜像,并且可以改变日志项1160的长度字段,从而该长度字段包括相邻区域(③)的长度。
④从偏移14到偏移31的区域的更新。这是这样一种情况,即:位于两个现有更新的区域之间且相邻的区域被更新。在这种情况下,删除两个现有日志项中的第二日志项1160,将第一日志项1150的长度字段中的“4”更新为“29”,并且在页11110中记录更新的镜像。
⑤和⑥包括已经被更新的区域的区域的更新。以与④相似的方式执行更新。
如果执行从①到⑥的操作,则最终仅生成图12所示的一个日志记录1250。因此,当原始镜像是指复制的镜像时,可以确定尽管总共执行了8次更新但是日志项被合并为一个日志项。因此,当业务被提交时或者页被转储清除时,仅生成和写入一个日志项。
图13示出了根据本发明示例性实施例的用于生成日志项的处理的伪代码。除非操作顺序的改变改变了最终结果,可以以不同的顺序执行所述操作。
在生成日志项的处理中,如果所述日志项是页中的第一日志项,则应当生成所述页的复制的镜像。随后,生成日志项,关于偏移值进行分类,并将其添加到列表中。通过参照偏移值,根据合并模式将日志项彼此合并。最后,所述页的原始镜像被更新为后镜像,即,更新后的镜像。
图14示出了指示根据本发明示例性实施例的用于提交业务的处理的伪代码。
在当业务(txn)被提交时日志生成的处理中,如果存在包括通过提交业务更新的日志项的页,则针对这样的每一页执行以下操作。首先,读取所述业务的日志项,生成日志记录。该日志记录实质上需要更新之前的镜像或前镜像以及更新之后的镜像或后镜像。如果在所述页中存在另一业务的日志项,则在复制的镜像中记录由提交的业务更新的区域中的后镜像,从而在由其他业务更新期间这个区域不会异常中止。这就允许遵守DBMS的持续性的概念,即,应当在DB中反映提交的业务更新的结果。因此,由于当前提交的业务的更新的区域的数据被记录在所述页的复制的镜像中,并从而被保证安全,所以另一个未来业务的异常中止不会影响到所述当前提交的业务的更新的区域的数据。
此外,业务已经被提交的事实可以被记录在缓存页信息单元中,从而可以为另一业务的潜在异常中止进行准备。在这种情况下,应当在异常中止操作中添加一过程,以确定是否在页中已经存在提交的业务。
因此,在另一业务异常中止的情况下执行预防操作;随后,在日志页中写入生成的日志记录,并且删除读取的日志项。
此后,如果所述页中不再存在另一业务的日志项,也就是说,如果当前提交的业务是唯一的业务,则不需要所述页的复制的镜像并因此将其删除。
图15示出了指示根据本发明示例性实施例的用于异常中止业务的处理的伪代码。
业务的不完整指示异常情况,诸如当由于DBMS的内部原因,业务被异常中止,以及业务被自动重启时,或者在正在执行业务的同时发生***错误或者业务的预定命令读取错误值,或者盘不能被访问时。
在异常中止处理中,如果在页中不存在另一业务的日志项,也就是说,如果异常中止的业务是所述页中唯一的业务,则所述页的原始镜像被替换为复制的镜像,并且所述原始的镜像可被删除。但是,如果所述页的另一业务具有日志项,则异常中止的业务应当读取其自身日志项,并且只应当恢复更新之前的相应于每个日志项的镜像区域。
如上所述,如果指示是否存在另一提交的业务的信息被记录在缓存页信息单元中,则这个信息可以被利用。也就是说,如果从缓存页信息单元能够确定在所述页中存在另一提交的业务,则异常中止的业务可读取其自身的日志项,并且可以恢复相应于每个日志项的特定镜像区域的前镜像。
图16示出了指示根据本发明示例性实施例的用于转储清除数据页的处理的伪代码。
当根据缓存替换策略,页被转储清除到盘时,所述页的全部日志项的日志记录被生成并被记录在日志页中。删除所述页的复制的镜像也是必要的。
图17是示出了根据本发明示例性实施例的数据库日志生成设备的示意性功能框图。
图17的设备大致包括:日志存储单元1710、日志读取单元1720和日志控制单元1730。日志存储单元1710存储正被更新的数据页的日志信息,并且仅当数据页的更新完成时,存储的日志信息才被传送到日志读取单元1720。日志控制单元1730使用读取的日志信息,以构成日志记录,并且所述读取的日志信息被记录在日志页中。
图18是示出根据本发明示例性实施例的数据库日志生成设备的功能性框图。
对于每个模块的功能,业务控制单元1810通过使用应用程序来管理执行数据页更新的业务。
缓存控制器单元1830管理存储介质的盘输入和/或输出操作,将更新的数据页和其中被写入日志记录的日志页存储在存储介质中,或者从所述存储介质中读取新的页。也就是说,缓存控制单元1830负责根据缓存替换策略的转储清除操作。缓存控制单元1830还管理其中寄存了原始镜像、复制的镜像和关于更新业务的信息的缓存页信息单元。在缓存页信息单元中可以寄存:正被更新的数据页的页ID、复制的镜像的位置指针、更新业务的ID以及关于业务是否被提交的信息。
日志控制单元1820合并根据由业务控制单元1810执行的更新生成的日志信息,从而生成日志记录,并将所述日志记录写入日志页。日志控制单元1820还可包括第一存储单元1824、第二存储单元1823、日志合并单元1821和日志输出单元1822。
第一存储单元1824存储其中执行更新的数据页的复制的镜像,并且,所述复制的镜像包括其中反映与在更新之前的原始镜像的数据相同的数据。
第二存储单元1823以列表的形式存储由业务控制单元1810管理的业务的更新生成的日志项。如上所述,日志项关于正被更新的每一数据页和关于每一业务被管理,并且根据偏移值被分类。
日志合并单元1821通过使用这样分类和管理的日志项来合并存储在第二存储单元1823中的日志项,并且减少日志项的总数量。根据上述更新模式来执行所述合并。
如果完成更新,则日志输出单元1822生成日志记录并将所述日志记录写入日志页。这是因为更新的数据页应当被反映在DB中,并且应当保持一致性和持久性。在这种情况下,日志输出单元1822通过使用存储在第一存储单元1824中的复制的镜像和存储在第二存储单元1823中的合并的日志项来生成日志记录并将所述日志记录写入日志页中。根据上述符合ARIES算法的数据格式,所述日志记录包括:前镜像、后镜像和其他需要的信息。前镜像是存储在第一存储单元1824中的复制的镜像,后镜像是当前数据页的镜像。可以从存储在第二存储单元1823中的日志项确定更新的区域的偏移信息。
图19到图21是示出根据本发明示例性实施例的更新的数据页的示例的示图。
参照图19,编号1到12指示更新的顺序和相应的数据区域。根据传统方法,如图19所示的更新操作生成的日志记录的数量与更新的数量成比例。因此,如果传统方法被应用于图19中的示例,则可生成12个日志记录,每个日志记录可被分配LSN,并且每个LSN可被记录在日志页中。但是,根据本发明示例性实施例,在这种情况下,更新的区域(1,5)、(6,2,7,8,11)、(4,9)和(10,12)是相邻的区域,并且仅生成(1,5)、(3)、(6,2,7,8,11)、(4,9)和(10,12)5个日志记录。此外,即使在先前更新的区域中执行另一更新,也不生成另外的日志记录。
参照图20,在使用堆文件(heap file)和平衡树(b-tree)方法的DB的示例中,出现如图20所示的以1、2、3、4等的顺序从两端向中间移动的更新模式。在这种模式的更新操作中,如果应用根据本发明示例性实施例的日志生成方法,则仅生成两个日志记录。如果如图20所示更新整个区域,即继续执行所述更新操作并且所述更新在中间汇合,则将只生成一个日志记录。
参照图21,示出了根据本发明示例性实施例的目录管理器(CatalogMgr)的更新模式。所述目录管理器(CatalogMgr)包括关于日志计数和索引关键字计数的信息。根据图21所示的更新模式,可以确定只生成了更新区域(1,2,3)和(4,5)的两个日志记录。
图22是示出根据本发明示例性实施例的在DB的每一个模块中减少的日志记录的比较表。
参照图22,当7000条记录被包括在DB的一个表中时,从它们中删除5000条记录,将在各个情况下的当前出现的日志记录数量和合并之后出现的日志记录数量进行比较。
DB模块的总数指示通过添加空闲页映射(FPMap)、CatalogMgr和数据页的日志记录获得的总数。个别的日志记录是其中的更新区域彼此不同的日志记录。合并之后的日志记录是在所有相邻区域被合并时生成的日志记录。FPMap模块是用于管理关于使用和/或不使用整个DB的信息的模块。CatalogMgr是上述的目录管理器,并且是包括关于记录计数和索引关键字计数的信息的模块。数据页是记录实际数据的数据页。
当只考虑同一区域的日志记录时,在比较日志大小时,总的日志大小从1315KB减少到195KB,即减少了1120KB。此外,当考虑相邻区域时,可以确定总大小被减少到23KB,仅仅是根据传统技术的大小的1.7%。
根据上述本发明的示例性实施例的DB的日志生成方法,由于日志生成的原因减少了日志大小,并且盘输入和/或输出操作的次数被减少,从而提高了数据库***的更新速度。
此外,当业务被提交或者页被转储清除时页的多条日志项作为一条日志记录被一次记录。因此,与记录在日志页中的日志记录相应的更新区域在同一页中的概率增加,从而在执行恢复操作时增加了将被恢复的页的局部性。
同时,当业务异常中止时,从存储器删除日志项,并且使用复制的页替换原始页,从而以简单的方式执行异常中止操作,并因此减少了异常中止操作的花费。
当执行恢复操作时,因为日志大小被减小,所以将被从存储介质读取的日志文件的大小也被减小。此外,因为局部性被增强,所以减少了用于恢复操作的对存储介质执行的盘输入和输出操作的花费。
因此,在存储器应当充足的情况下,由于日志记录的原因会出现盘输入和输出操作的瓶颈,推迟的日志生成方法很大地减少了存储在存储介质中的日志文件的大小,从而最大化利益。
尽管已经参照本发明示例性实施例对本发明进行了详细示出和描述,但是本领域普通技术人员应当理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以在形式和细节上做出各种改变。所述优选实施例仅应当被理解为描述的目的,而不是限定的目的。因此,本发明的范围不是由本发明的详细描述来限定,而是由权利要求限定,并且所述范围内的所有不同将被解释为包括在本发明内。
Claims (31)
1.一种在数据库管理***中的日志生成方法,所述方法包括:
存储正被更新的数据页的日志信息;
在完成数据页的更新时读取存储的日志信息;
通过使用读取的日志信息生成日志记录;和
将生成的日志记录写入日志页。
2.如权利要求1所述的方法,其中,存储日志信息的步骤包括:
生成包括正被更新的数据页的偏移值的日志项;
将正被更新的数据页的日志信息记录在所述日志项中;和
基于日志信息合并至少两个日志项。
3.如权利要求2所述的方法,其中,合并至少两个日志项的步骤包括:
关于与正被更新的数据页的区域相同的区域,确定是否存在一个或者多个先前生成的日志项;和
将所述一个或者多个先前生成的日志项组合为所述日志项。
4.如权利要求2所述的方法,其中,合并至少两个日志项的步骤包括:
关于与正被更新的数据页的区域相邻的区域,确定是否存在一个或者多个先前生成的日志项;和
关于所述相邻区域,改变包括在所述一个或者多个先前生成的日志项中的偏移值。
5.如权利要求2所述的方法,其中,合并至少两个日志项的步骤包括:
关于与正被更新的数据页的区域重叠的区域,确定是否存在先前生成的日志项;和
关于所述重叠的区域改变包括在所述先前生成的日志项中的偏移值。
6.如权利要求2所述的方法,其中,当完成对数据页的更新操作时执行一次合并至少两个日志项的步骤。
7.如权利要求6所述的方法,其中,所述完成数据页的更新操作的时间是提交执行更新操作的业务的时间,或者数据页被转储清除的时间。
8.如权利要求2所述的方法,其中,关于正被更新的数据页并且关于执行更新操作的每个业务管理所述日志项。
9.如权利要求8所述的方法,其中,所述日志项根据包括在该日志项中的偏移值被分类。
10.如权利要求2所述的方法,其中,生成日志项和记录日志信息使用恢复和独立开发语义算法,并且遵守预写式日志协议。
11.一种在数据库管理***中的日志生成方法,所述方法包括:
生成正被更新的数据页的复制的镜像,所述复制的镜像与更新之前的所述数据页的原始镜像相同;
生成关于正被更新的数据页的日志项;
将生成的日志项与另一日志项合并,以生成合并的日志项;
关于数据页的原始镜像执行更新操作;和
如果完成更新操作,则基于所述原始镜像、复制的镜像和合并的日志项生成日志记录。
12.如权利要求11所述的方法,其中,合并的步骤包括:
关于与正被更新的数据页的区域相同的区域,确定是否存在一个或者多个先前生成的日志项;和
将所述一个或者多个先前生成的日志项组合为所述日志项。
13.如权利要求11所述的方法,其中,合并的步骤包括:
关于与正被更新的数据页的区域相邻的区域,确定是否存在一个或者多个先前生成的日志项;和
关于所述相邻区域,改变包括在所述一个或者多个先前生成的日志项中的偏移值。
14.如权利要求11所述的方法,其中,合并的步骤包括:
关于与正被更新的数据页的区域重叠的区域,确定是否存在先前生成的日志项;和
关于所述重叠的区域改变包括在所述先前生成的日志项中的偏移值。
15.如权利要求11所述的方法,其中,当完成对数据页的更新操作时执行合并的步骤。
16.如权利要求15所述的方法,其中,所述完成数据页的更新操作的时间是提交执行更新操作的业务的时间,或者是原始镜像的数据页被转储清除的时间。
17.如权利要求11所述的方法,还包括:
在管理原始镜像、复制的镜像和执行更新操作的业务之间的关系的缓存页信息单元中寄存关于原始镜像、复制的镜像和所述业务的信息。
18.如权利要求17所述的方法,其中,关于正被更新的数据页并且关于执行更新操作的每个业务管理所述日志项。
19.如权利要求18所述的方法,其中,所述日志项根据包括在该日志项中的偏移值被分类。
20.如权利要求19所述的方法,其中,日志项包括:
正被更新的数据页的区域的长度和正被更新的数据页中更新的区域的开始位置,或者
正被更新的数据页中更新的区域的开始位置和结束位置。
21.如权利要求17所述的方法,其中,如果存在多项执行更新操作的业务,并且所述更新操作被同时执行,则应用严格两段锁协议。
22.如权利要求21所述的方法,其中,如果在完成更新操作时所述业务被提交,则所述方法还包括:
确定在数据页中是否存在另一业务;
如果确定结果指示在数据页中存在另一业务,则在复制的镜像的相应区域内记录与提交的业务的各个日志项相应的原始镜像的更新的区域;和
如果确定结果指示数据页中不存在其他业务,则删除复制的镜像。
23.如权利要求21所述的方法,其中,如果在完成更新操作前所述业务异常中止,则所述方法还包括:
确定在数据页中是否存在另一业务;
如果确定结果指示在数据页中存在另一业务,则在原始镜像的相应区域内记录与异常中止的业务的各个日志项相应的复制的镜像的区域;和
如果确定结果指示数据页中不存在其他业务,则将复制的镜像替换为原始镜像。
24.如权利要求21所述的方法,其中,在完成更新操作时业务被提交,则所述方法还包括:
确定在数据页中是否存在另一业务;
如果确定结果指示在数据页中存在另一业务,则在缓存页信息单元中记录所述业务被提交;和
如果确定结果指示数据页中不存在其他业务,则删除复制的镜像。
25.如权利要求21所述的方法,其中,如果在完成更新操作之前所述业务异常中止,则所述方法还包括:
确定在数据页中是否存在另一业务;
通过参照缓存页信息单元确定在数据页中是否存在另一提交的业务;
如果确定结果指示在数据页中存在另一业务或者另一提交的业务,则在原始镜像的相应区域内记录与异常中止的业务的各个日志项相应的复制的镜像的区域;和
如果确定结果指示数据页中不存在其他业务或者其他提交的业务,则将复制的镜像替换为原始镜像。
26.如权利要求21所述的方法,其中,如果在完成更新业务时原始镜像的数据页被转储清除,则所述方法还包括:
生成转储清除的数据页的全部日志项的日志记录;和
删除复制的镜像。
27.一种在数据库管理***中的日志生成设备,所述设备包括:
日志存储单元,存储正被更新的数据页的日志信息;
日志读取单元,在完成数据页的更新操作时读取存储在日志存储单元中的日志信息;和
日志控制单元,基于读取的日志信息生成日志记录,并将生成的日志记录记录在日志页中。
28.一种在数据库管理***中的日志生成设备,所述设备包括:
业务控制单元,管理执行数据页的更新操作的业务;
日志控制单元,将根据由业务控制单元管理的业务的更新操作生成的日志信息进行合并,从而生成日志记录,并将生成的日志记录记录在日志页中;和
缓存控制单元,管理被执行更新操作的数据页,并且管理所述日志页,从而可以将所述数据页和日志页输入存储介质,或者从存储介质输出所述数据页和日志页。
29.如权利要求28所述的设备,其中,日志控制单元包括:
第一存储单元,存储复制的镜像,所述复制的镜像与正被执行更新操作的数据页的更新之前的原始镜像相同;
第二存储单元,存储日志项,所述日志项根据由业务控制单元管理的业务的更新操作被生成;
日志合并单元,将至少两个或者多个存储在第二存储单元中的日志项进行合并;和
日志输出单元,在完成更新操作时基于原始镜像、复制的镜像和合并的日志项生成日志记录,并且将生成的日志记录记录在日志页中。
30.如权利要求29所述的设备,其中,缓存控制单元管理缓存页信息单元,在所述缓存页信息单元中寄存有原始镜像、复制的镜像和关于执行更新操作的业务的信息。
31.一种其上实现有用于执行权利要求1的方法的计算机程序的计算机可读记录介质。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060113386A KR100862661B1 (ko) | 2006-11-16 | 2006-11-16 | 지연된 로깅 방법 및 그 장치 |
KR10-2006-0113386 | 2006-11-16 | ||
KR1020060113386 | 2006-11-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101183322A true CN101183322A (zh) | 2008-05-21 |
CN101183322B CN101183322B (zh) | 2011-08-17 |
Family
ID=39418174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101085168A Expired - Fee Related CN101183322B (zh) | 2006-11-16 | 2007-05-31 | 延迟日志生成的方法及其设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7801855B2 (zh) |
KR (1) | KR100862661B1 (zh) |
CN (1) | CN101183322B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102763088A (zh) * | 2009-12-28 | 2012-10-31 | 株式会社诶司帝 | ***事件日志*** |
CN103092719A (zh) * | 2011-10-28 | 2013-05-08 | 浙江大华技术股份有限公司 | 一种文件***的断电保护方法 |
CN107077427A (zh) * | 2014-10-27 | 2017-08-18 | 桑迪士克科技有限责任公司 | 跨电源周期来跟踪对写入命令和解除映射命令的混合 |
WO2019057000A1 (zh) * | 2017-09-21 | 2019-03-28 | 阿里巴巴集团控股有限公司 | 日志写入方法、装置及*** |
US11435914B2 (en) * | 2020-03-30 | 2022-09-06 | Western Digital Technologies, Inc. | Dynamic ZNS open zone active limit |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4859535B2 (ja) * | 2006-05-30 | 2012-01-25 | 株式会社日立製作所 | 業務管理システム、情報システム及び業務管理方法 |
US8108356B2 (en) * | 2007-12-24 | 2012-01-31 | Korea Advanced Institute Of Science And Technology | Method for recovering data in a storage system |
US8190579B2 (en) * | 2008-06-06 | 2012-05-29 | Bmc Software, Inc. | IMS change mapper |
KR101583716B1 (ko) | 2009-01-30 | 2016-01-08 | 삼성전자주식회사 | 비트 로깅을 이용한 데이터 복구 방법 및 그 장치 |
IL208641A0 (en) * | 2010-10-12 | 2010-12-30 | Eci Telecom Ltd | Method for accelerating start up of a computerized system |
CN103092742B (zh) | 2011-10-31 | 2015-08-19 | 国际商业机器公司 | 程序日志记录优化方法和*** |
US9015108B2 (en) | 2012-08-31 | 2015-04-21 | Teradata Us, Inc. | Time-bound batch status rollup for logged events |
US10303564B1 (en) * | 2013-05-23 | 2019-05-28 | Amazon Technologies, Inc. | Reduced transaction I/O for log-structured storage systems |
GB2514563A (en) * | 2013-05-28 | 2014-12-03 | Ibm | Selective purging of a log structure |
US20150120645A1 (en) * | 2013-10-31 | 2015-04-30 | Futurewei Technologies, Inc. | System and Method for Creating a Distributed Transaction Manager Supporting Repeatable Read Isolation level in a MPP Database |
CN103678608B (zh) * | 2013-12-16 | 2017-10-17 | 华为技术有限公司 | 日志管理方法和装置 |
KR101690282B1 (ko) | 2014-11-12 | 2016-12-27 | 주식회사 알티베이스 | 테이블스페이스 속성 변경 방법 및 그 장치 |
CN105760283B (zh) * | 2014-12-18 | 2018-11-09 | 阿里巴巴集团控股有限公司 | 一种日志输出方法和装置 |
CN106155832B (zh) * | 2015-03-30 | 2019-03-22 | Tcl集团股份有限公司 | 一种数据恢复的方法、装置及Android设备 |
KR20170054767A (ko) * | 2015-11-10 | 2017-05-18 | 엘지전자 주식회사 | 데이터베이스 관리 시스템 및 그의 데이터 변경 및 복구 방법 |
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 |
KR101990329B1 (ko) * | 2017-08-10 | 2019-06-18 | 주식회사 티맥스데이터 | 로그 데이터 분석을 이용한 데이터베이스 복구 속도 향상 기법 및 장치 |
KR102495539B1 (ko) * | 2018-07-16 | 2023-02-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102541897B1 (ko) * | 2018-08-27 | 2023-06-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
CN109617708B (zh) * | 2018-10-31 | 2020-07-31 | 浙江口碑网络技术有限公司 | 一种埋点日志的压缩方法、设备及*** |
US11321354B2 (en) * | 2019-10-01 | 2022-05-03 | Huawei Technologies Co., Ltd. | System, computing node and method for processing write requests |
US11520747B2 (en) * | 2019-12-02 | 2022-12-06 | Huawei Technologies Co., Ltd. | Method and system for detecting and resolving a write conflict |
CN113742333B (zh) * | 2020-05-29 | 2023-08-04 | 杭州海康威视数字技术股份有限公司 | 一种维表数据更新方法、装置及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5317739A (en) * | 1992-03-30 | 1994-05-31 | International Business Machines Corp. | Method and apparatus for coupling data processing systems |
US5487166A (en) * | 1994-09-19 | 1996-01-23 | Amdahl Corporation | Computer with two-dimensional merge tournament sort using offset-value coding |
JP2001229063A (ja) * | 2000-02-17 | 2001-08-24 | Mitsubishi Electric Corp | データ管理システム |
US7043504B1 (en) * | 2000-04-10 | 2006-05-09 | International Business Machines Corporation | System and method for parallel primary and secondary backup reading in recovery of multiple shared database data sets |
-
2006
- 2006-11-16 KR KR1020060113386A patent/KR100862661B1/ko active IP Right Grant
-
2007
- 2007-05-21 US US11/751,077 patent/US7801855B2/en not_active Expired - Fee Related
- 2007-05-31 CN CN2007101085168A patent/CN101183322B/zh not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102763088A (zh) * | 2009-12-28 | 2012-10-31 | 株式会社诶司帝 | ***事件日志*** |
CN103092719A (zh) * | 2011-10-28 | 2013-05-08 | 浙江大华技术股份有限公司 | 一种文件***的断电保护方法 |
CN103092719B (zh) * | 2011-10-28 | 2016-09-07 | 浙江大华技术股份有限公司 | 一种文件***的断电保护方法 |
CN107077427A (zh) * | 2014-10-27 | 2017-08-18 | 桑迪士克科技有限责任公司 | 跨电源周期来跟踪对写入命令和解除映射命令的混合 |
CN107077427B (zh) * | 2014-10-27 | 2020-06-30 | 桑迪士克科技有限责任公司 | 跨电源周期来跟踪对写入命令和解除映射命令的混合 |
WO2019057000A1 (zh) * | 2017-09-21 | 2019-03-28 | 阿里巴巴集团控股有限公司 | 日志写入方法、装置及*** |
CN109542329A (zh) * | 2017-09-21 | 2019-03-29 | 阿里巴巴集团控股有限公司 | 日志写入方法、装置及*** |
CN109542329B (zh) * | 2017-09-21 | 2022-04-12 | 阿里云计算有限公司 | 日志写入方法、存储管理设备及*** |
US11435914B2 (en) * | 2020-03-30 | 2022-09-06 | Western Digital Technologies, Inc. | Dynamic ZNS open zone active limit |
Also Published As
Publication number | Publication date |
---|---|
US20080120349A1 (en) | 2008-05-22 |
CN101183322B (zh) | 2011-08-17 |
US7801855B2 (en) | 2010-09-21 |
KR20080044480A (ko) | 2008-05-21 |
KR100862661B1 (ko) | 2008-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101183322B (zh) | 延迟日志生成的方法及其设备 | |
US9244953B2 (en) | Systems and methods for asynchronous schema changes | |
US8548948B2 (en) | Methods and apparatus for a fine grained file data storage system | |
US7958031B2 (en) | Apparatus, system, and method for automated identity relationship maintenance | |
US7698319B2 (en) | Database system management method, database system, database device, and backup program | |
JPH0812631B2 (ja) | データベース・トランザクション及び照会処理システム | |
CN103092905A (zh) | 使用虚拟文件数据对象的列式数据库 | |
WO2011070606A1 (en) | Retention-based file system | |
JPH09160725A (ja) | 大容量記憶装置の構成管理のための方法およびシステム | |
CN100489757C (zh) | 管理一个目标卷和一个源卷之间的关系的方法和*** | |
CN109871386A (zh) | 非易失性存储器中的多版本并发控制(mvcc) | |
CN115145697B (zh) | 数据库事务的处理方法、装置及电子设备 | |
KR20110046118A (ko) | 적응적 로깅 장치 및 방법 | |
US9411692B2 (en) | Applying write elision | |
CN100403269C (zh) | 用于管理关于目标卷与源卷之间关系的信息的方法和*** | |
US8086580B2 (en) | Handling access requests to a page while copying an updated page of data to storage | |
CN110019130A (zh) | 一种数据库更新的方法及装置 | |
KR20120082176A (ko) | 데이터베이스 관리 시스템의 데이터 처리 방법 및 시스템 | |
CN114780489B (zh) | 一种实现分布式块存储底层gc的方法及装置 | |
CN113986974A (zh) | 一种数据库事务管理方法及装置、恢复方法及装置 | |
KR102214697B1 (ko) | 데이터베이스 관리 시스템에서 데이터 저장을 위한 공간 관리를 제공하는 컴퓨터 프로그램 | |
JP5240086B2 (ja) | データ管理プログラム | |
JP4279346B2 (ja) | データベース管理装置及びプログラム | |
US20060143423A1 (en) | Storage device, data processing method thereof, data processing program thereof, and data processing system | |
JP4152107B2 (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: 20110817 Termination date: 20210531 |
|
CF01 | Termination of patent right due to non-payment of annual fee |