CN116724295A - 基于日志流水线争用的数据库日志写入 - Google Patents
基于日志流水线争用的数据库日志写入 Download PDFInfo
- Publication number
- CN116724295A CN116724295A CN202280008806.8A CN202280008806A CN116724295A CN 116724295 A CN116724295 A CN 116724295A CN 202280008806 A CN202280008806 A CN 202280008806A CN 116724295 A CN116724295 A CN 116724295A
- Authority
- CN
- China
- Prior art keywords
- log
- data
- pipeline
- pipelines
- writing
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 86
- 238000011084 recovery Methods 0.000 claims description 74
- 238000000034 method Methods 0.000 claims description 52
- 238000012545 processing Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 20
- 239000000872 buffer Substances 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000011010 flushing procedure Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000001179 sorption measurement Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Classifications
-
- 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/2379—Updates performed during online database operations; commit processing
-
- 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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
- G06F7/08—Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
数据库日志写入是基于日志流水线争用。关于将数据写入日志流水线中的争用是否处于预先指定级别做出确定,日志流水线用于将数据从存储器写入存储装置。基于确定将数据写入日志流水线中的争用处于预先指定级别,自动执行拆分操作以生成新的日志流水线。
Description
背景技术
一个或多个方面一般地涉及促进计算环境内的处理,更特别地,涉及促进与计算环境的数据库系统相关联的处理。
数据库系统通常包括一个或多个数据库和至少一个数据库管理系统。数据库是电子地存储和访问的有组织的数据集合,并且数据库管理系统是用于与一个或多个数据库以及使用该一个或多个数据库的用户和应用交互的机制。数据库管理系统提供管理数据库的不同功能,包括提供对数据库中维护的数据的插入、删除和修改的更新功能;数据库中数据的检索;数据库的管理,包括提供数据安全、数据完整性、性能监控等;以及数据的组织的定义。
在数据库中维护的数据在被写入存储装置之前被写入日志(也称为日志管道或日志流水线)。数据被写到日志和存储装置的速度影响数据库的更新、删除和插入操作的性能,从而影响系统性能。例如,更新、删除和插入操作由于对存储装置的日志物化而在日志的高并发性下被减慢。进一步,因为在存储器的页中的修改的数据被写出到存储装置之前日志数据将被写入到存储装置,系统性能受到影响。因此,将日志数据写入存储装置的劣化可能使修改的数据从存储器到存储装置的刷新劣化。
发明内容
通过提供一种用于促进计算环境内的处理的计算机程序产品,克服了现有技术的缺点,并且提供了附加的优点。该计算机程序产品包括一个或多个计算机可读存储介质和共同存储在该一个或多个计算机可读存储介质上以执行方法的程序指令。该方法包括,确定在将数据写入日志流水线中的争用(contention)是否在预先指定级别。日志流水线用在将数据从存储器写入到存储装置中。基于确定在将数据写入日志流水线中的争用处于预先指定级别,自动执行拆分操作,以生成新的日志流水线。通过执行拆分操作,减少日志流水线上的争用,并提高能够将数据写入日志流水线的比率,从而使得数据能够更快地写入到存储装置,提高系统性能。
在一个方面,基于路由地图,将输入数据路由到选定日志流水线。该路由地图包括关于多个日志流水线中的哪个日志流水线要接收该输入数据的指示。多个日志流水线至少包括日志流水线和新日志流水线。路由地图的使用促进对于日志数据被写入日志流水线中的何处的跟踪,这至少促进重启和/或恢复操作。
作为示例,使用选定标识符的模运算(modulo arithmetic)来确定由路由地图指示的路由。在模运算中使用的模数例如是基于多个日志流水线中的日志流水线的数目。在一个示例中,选定标识符是单元恢复的标识符,单元恢复包括产生输入数据的一个或多个操作。模运算使能选定识别符的重新散列,从而促进输入数据的路由。
在一个实施例中,基于生成新日志流水线来生成路由地图。作为示例,生成路由地图(例如,新的路由地图)使得能够执行日志流水线拆分/合并过程,而不需要在一个或多个先前路由地图上的锁/闩锁,改进了系统性能。
在一个方面,就一个或多个数据单元是否将要从存储器写入存储装置作出确定。该确定是基于一个或多个日志流水线内的一个或多个刷新点(flush points)。基于确定一个或多个数据单元将要从存储器写入存储装置,将该一个或多个数据单元从存储器写入存储装置。通过使用刷新点,可在将数据写入到日志流水线的同时将数据单元写入到存储器,从而改进系统性能。
在一个实施例中,确定用于一个或多个日志流水线的最小刷新点,并且,确定一个或多个数据单元中的一个数据单元是否将要从存储器写入存储装置包括,确定该数据单元是否具有与最小刷新点具有预定关系的时间戳。基于该数据单元具有与最小刷新点具有预定关系的时间戳,执行该数据单元的写入。这使得能够例如在将数据写入日志流水线的同时将数据单元(例如数据页)写入存储装置,提高了系统性能。
在一个方面,使用日志写引擎来将日志数据从一个或多个日志流水线写入存储装置。就是否将要部署一个或多个另外的日志写引擎来将日志数据从一个或多个日志流水线写入自动作出确定。基于确定将要部署一个或多个另外的日志写引擎,部署该一个或多个另外的日志写引擎。通过提供另外的日志写引擎,提高了数据可以写入存储装置的速度,因而提高了系统性能。进一步地,在一个或多个方面,通过提高日志数据可以写入存储装置的速度,作为示例,还提高了可以将存储器的修改页从存储器写入存储装置的速度。
在一个方面,就是否将要为一个或多个数据库对象执行恢复作出确定。基于确定将要执行恢复,采用第一技术对从存储装置读取的多个记录进行分类,以提供第一多个分类记录。第一多个分类记录包括第一多个日志单元。将第一多个分类的记录提供给重做(redo)操作。将在第一多个日志单元上并行执行重做操作。这使得能够在保持数据完整性的同时并行执行数据库恢复处理。
在一个方面,就是否将要为一个或多个数据库对象执行恢复作出确定。基于确定将要执行恢复,采用第二技术对从存储装置读取的多个记录进行分类,以提供第二多个分类记录。第二多个分类的日志记录包括第二多个日志单元。将第二多个分类的记录提供给撤销(undo)操作。将在第二多个日志单元上并行执行撤销操作。这使得能够在保持数据完整性的同时并行执行数据库恢复处理。
在一个方面,就将数据写入到一个或多个日志流水线中的争用是否处在另一个预先指定级别作出确定。基于确定将数据写入到一个或多个日志流水线中的争用处在另一个预先指定级别,执行合并操作以减少日志流水线的数目。通过执行合并操作,利用更少的日志流水线,从而利用更少的系统资源。
本文还描述并要求保护与一个或多个方面相关的计算机系统和计算机实现的方法。此外,本文还描述并要求保护与一个或多个方面相关的服务。
通过本文所述的技术实现了额外的特征和优点。其它实施例和方面在本文中详细描述,并且被认为是所要求保护的方面的一部分。
附图说明
在说明书结尾处的权利要求中作为示例特别指出并清楚地要求了一个或多个方面。从结合附图的以下详细描述中,一个或多个方面的前述和目的、特征和优点将变得显而易见,在附图中:
图1A示出了根据本发明的一个或多个方面的使用的日志流水线的一个示例;
图1B示出了根据本发明的一个或多个方面的使用的页缓冲器池的一个示例;
图2A示出了根据本发明的一个或多个方面的用于生成另外的日志流水线的拆分操作的一个示例;
图2B示出了根据本发明的一个或多个方面的部署另外的日志写引擎以将日志信息从日志流水线写入到存储装置的一个示例;
图2C示出了根据本发明的一个或多个方面的生成另外的日志流水线并部署一个或多个另外的日志写引擎的分离操作的一个示例;
图3A-3C示出了根据本发明的一个或多个方面的与促进向日志流水线写入数据、从日志流水线向存储装置写入日志数据、向存储装置写入经修改的存储器页和/或数据库重启/恢复相关联的处理的一个实施例;
图4示出了根据本发明的一个或多个方面的使用单元恢复路由地图来将单元恢复路由到日志流水线的一个示例;
图5示出了根据本发明的一个或多个方面的使用单元恢复路由地图来将单元恢复路由到日志流水线的另一个示例;
图6示出了根据本发明的一个或多个方面的动态拆分日志流水线并生成新单元恢复路由地图的一个示例;
图7示出了根据本发明的一个或多个方面的使用新单元恢复路由地图来将单元恢复路由到日志流水线的一个示例;
图8A-8C示出了根据本发明的一个或多个方面的确定哪些修改页可以从存储器驱逐(cast-out)到存储装置的一个示例;
图9A-9B示出了根据本发明的一个或多个方面的产生用于每个日志流水线的最小日志时间戳的一个示例;
图9C示出了根据本发明的一个或多个方面的在将数据从存储器写入存储装置中使用最小日志时间戳的一个示例;
图10A-10B示出了根据本发明的一个或多个方面的使用控制间隔将日志信息从日志流水线刷新到存储装置的一个示例;
图11示出了根据本发明的一个或多个方面的对用于数据库重启和/或恢复的日志记录分类的一个示例;
图12A示出了根据本发明的一个或多个方面的用于生成一个或多个另外的日志流水线和部署一个或多个另外的日志写引擎的拆分操作的一个示例;
图12B示出了根据本发明的一个或多个方面的对用于数据库恢复和/或重启的日志记录分类的一个示例;
图13A-13C示出了根据本发明的一个或多个方面的促进计算环境内的处理的一个实施例的方面;
图14A示出了结合和使用本发明的一个或多个方面的计算环境的一个示例;
图14B示出了要用于执行本发明的一个或多个方面的图14A的计算环境的数据库系统的组件的一个示例;
图15A示出了结合和使用本发明的一个或多个方面的计算环境的另一示例;
图15B示出了根据本发明的一个或多个方面的图15A的存储器的进一步细节;
图16示出了根据本发明的一个或多个方面的云计算环境的一个实施例;以及
图17示出了根据本发明的一个或多个方面的抽象模型层的一个示例。
具体实施方式
根据一个或多个方面,提供了促进将数据从存储器写入到日志流水线(也称为日志管线、日志或管线)以及从日志流水线写入到存储装置的能力。在一个或多个方面,该能力包括基于检测到日志流水线上的争用处在预先指定级别(例如,高于选定阈值)将日志流水线动态拆分成一个或多个其他日志流水线,使得另外的日志流水线可用于接收要写入存储装置的数据。在一个或多个进一步的方面,该能力包括基于检测到至少一个日志流水线上的争用处在另一个预先指定级别(例如,低于选定阈值)合并一个或多个日志流水线。进一步地,在一个或多个方面,该能力包括动态提高日志写引擎的数目,以将日志数据从一个或多个日志流水线写入存储装置。
通过拆分日志流水线以提供一个或多个另外的日志流水线来接收要写入存储装置的数据,减少了在特定日志流水线上的争用,提高数据可被写入日志流水线的速度以及日志数据可被写入存储装置的速度,从而提高系统性能。进一步地,通过提高数据可以写入存储装置的速度,也提高了将存储器的修改页从存储器写入存储装置的速度,因为正如例如由时间戳的比较所确定的,选定修改页的写入是发生在特定日志数据从一个或多个日志流水线写入存储装置之后的。
类似地,通过增加将日志数据从日志流水线写入至存储装置的写引擎的数量,可以提高可以将数据写入至日志流水线以及可以将日志数据写入至存储装置的速度,从而提高系统性能。并且,通过提高将日志数据写入存储装置的速度,也提高了可以将存储器的修改页从存储器写入存储装置的速度,因为正如例如由时间戳的比较所确定的,选定修改页的写入是发生在特定日志数据从一个或多个日志流水线写入存储装置之后的。
参考图1A,日志流水线100被包括在日志缓冲器池102中,其包括多个日志条目104。每个日志条目104包括数据,例如日志记录106(也称为日志数据或日志信息)。在一个例子中,每个日志记录具有与其相关联的时间戳120,指示该日志记录何时被写入该流水线。在写入到存储装置之前,将数据从存储器写入日志流水线(例如,基于更新、删除、插入到数据库)。在将数据写入到日志流水线100时,例如经由闩锁队列在日志流水线上执行串行化,因为要决定哪个日志条目要先被写入,以此类推。这个串行化会引起日志流水线上的争用,导致负面地影响系统性能的瓶颈。另外,在这个示例中,日志记录106是通过单个日志写引擎来写入存储装置108的。采用该单个日志写引擎在将数据从日志流水线写入存储装置时会花费时间,导致另一个负面地影响系统性能的瓶颈。
进一步地,如本文所述,在将选定修改数据从存储器刷新到存储装置之前,日志数据将被写入到存储装置。如图1B所示,页缓冲器池140包括延迟写队列150,其包括链接在一起的多个条目152。每个条目例如包括要写入存储装置的数据单元154。在一个示例中,数据单元是数据页156,其具有与其相关联的时间戳158,指示例如该页被修改的时间。(页可以具有任何选择的大小。)在一个实施例中,时间戳158和时间戳120被用来确定数据页何时从延迟写队列写入存储装置。例如,如果延迟写队列中的数据页的时间戳(例如,16:33:55)小于从日志流水线写入的最后一个日志的时间戳(例如,16:33:58),则可以将该数据页从延迟写队列150写入存储装置154。通过基于时间戳允许在将数据从日志流水线写入存储装置的同时将数据从延迟写队列写入存储装置,提供了将修改数据写入存储装置的并行化,提高了系统性能。
根据本发明的一个或多个方面,为了加速数据库处理、包括例如数据库中的更新、删除和/或插入操作),监视用于将日志数据从存储器写入存储装置的日志流水线以确定该日志流水线上的争用是否处于不可接受的水平。该争用可由将数据写入到日志流水线时和/或将日志数据从日志流水线写入到存储装置时的瓶颈引起。如果确定日志流水线上的争用过高(例如,争用水平处于预先指定级别,例如大于选择的阈值)和/或基于其他条件,则执行拆分操作以自动生成一个或多个另外的日志流水线,以减少在一个或多个现有日志流水线上的争用(本文称为拆分日志流水线)。例如,如图2A所示,如果确定日志流水线100上的争用过高,自动执行拆分操作以生成一个或多个另外的日志流水线。然后将数据路由到日志缓冲器池102中的日志流水线100a-100n,而不仅仅是路由到日志流水线100或少于日志流水线100a-100n的数个日志流水线。在一个实施例中,采用单个日志写引擎110将来自多个日志流水线100a-100n的数据写入存储装置。单个日志写引擎110将日志数据从例如多个日志流水线100a-100n写入到存储装置的日志集合120中。
参考图2B,在一个方面中,基于将日志信息从日志流水线写入到存储装置中的争用太高(例如,处于预先指定级别,如大于所选择的阈值)和/或基于其他条件,自动地部署一个或多个另外的日志写引擎,从而使得日志写引擎110a-110x被用于将数据从日志流水线100写入到一个或多个日志集合120a-120m。通过使用多个日志写入引擎,提高了数据可从日志流水线100写入到存储装置(例如,日志集合120a-120m中的一个或多个)的速度。进一步地,通过提高将数据从日志流水线移除的速度,提高了可将数据写入到日志流水线的速率,以及可将已修改的数据单元、例如存储器页从存储器写入到存储装置的速率。
在一个或多个方面,参考图2C,基于一个或多个日志流水线上的争用过高和/或基于其他条件,动态执行拆分操作,以自动生成一个或多个另外的日志流水线,使得日志流水线100a-100n被用来接收日志记录,并且自动部署一个或多个另外的日志写引擎,使得日志引擎100a-110x被用来将多个日志流水线中的日志数据写入到一个或多个日志集合120a-120m。
在又一个方面,当一个或多个日志流水线上的争用过低(例如,争用级别处在另一个预先指定级别,诸如低于预定阈值)时,则执行合并操作,以将至少一个日志流水线与至少一个另一日志流水线合并。例如,数据被路由到更少的日志流水线。
下面将参考图3A-3C以及图4-11描述动态拆分/合并日志流水线和部署另外的日志写引擎来加速数据库中的诸如更新、删除和/或插入操作以增强系统吞吐量和降低日志串行化争用的更多细节。特别地,图3A-3C提供了本发明的各个方面的概述,图4-11提供了选定方面的更多细节。
参考图3A,在一个方面,为了促进将数据(例如,日志记录)写入多个流水线和/或促进数据库重启和/或恢复,将产生自作为单元的一部分执行的操作的日志记录(称为单元恢复)路由到同一流水线。作为示例,每个单元恢复包括从事务或程序的一个提交点到该事务或程序的另一个提交点执行的操作。将单元恢复(例如,基于恢复单元的操作产生的日志记录)写入到选定日志流水线,并且,根据本发明的一个方面,由于可能存在多个日志流水线,经由单元恢复路由地图选择日志流水线。构建单元恢复路由地图(称为初始单元恢复路由地图或地图#1),并用该地图将每个单元恢复路由到选定日志流水线供其日志信息输出(300)。这将参考图4-5进一步描述。
如图4所示,在一个示例中,程序、诸如程序#X 400包括多个单元恢复402。单元恢复402包括例如在程序开始与第一提交点之间、在两个提交点之间或者在提交点与程序结束之间的一个或多个操作404。作为示例,单元恢复#1包括#1插入、#2更新…以及#M删除;单元恢复#2包括#N更新…#X删除,等等。将单元恢复ID(例如1,2,…)输入到单元恢复路由地图406,其指示要使用哪个日志流水线来缓冲操作产生的单元恢复数据。在图4的示例中,UR#1路由到日志流水线#N 408c,UR#2路由到日志流水线408a,UR#X路由到日志流水线408b。
在一个实施例中,将整个单元恢复写入单个日志流水线,如图5所示。例如,将UR#1的操作#1-操作#M的数据(例如,日志记录)经由单元恢复路由地图406路由到日志流水线500a;将UR#2的操作#N-操作#X的数据(例如,日志记录)经由单元恢复路由地图406路由到日志流水线500b。在一个示例中,经由单元恢复ID的哈希来选择日志流水线。例如,如果有三个日志流水线供选择,则对于单元恢复ID#1,1模(取模)3等于1,选择日志流水线#1。类似地,对于单元恢复ID#2,2模3等于2,选择日志流水线#2,等等。通过使单元恢复的所有操作的数据(例如,日志记录)在单个日志流水线中,而不是将单元恢复的一个或多个操作的数据(例如,日志记录)路由到不同的日志流水线,促进诸如取消、回滚和回退功能的恢复功能。在一个示例中,为了执行恢复,反向遍历日志流水线以定位正被恢复的单元恢复的日志数据。如果单元恢复的日志数据在一个日志流水线中,有助于这个反向遍历(例如,更快)。
返回图3A,在一个方面,数据库日志性能监视器(又名日志性能监视器)监督日志缓冲器池中的日志流水线内的争用,并且基于争用过高(例如,争用级别处于预先指定级别;例如,高于所选阈值),自动将日志流水线拆分成多个日志流水线,以便减轻系统压力(302);或者当争用过低时(例如,争用识别处于另一预先指定级别;例如,低于所选阈值)合并日志流水线,以节省系统资源(304)。在一个示例中,为了确定争用,数据库日志性能监视器监视日志缓冲器池(例如,一个或多个日志流水线)和/或一个或多个闩锁队列,以确定一个或多个日志流水线上的争用相对于一个或多个预先指定级别是否过高或过低。
例如,在将数据写入日志流水线的过程中,例如经由闩锁队列执行串行化。对于每个日志流水线例如具有一个对应的闩锁队列来串行化要写入日志管线的信息。作为示例,如果线程1将要将信息写入日志管线#1,其在写操作之前获得一个独占闩锁。类似地,如果线程#2将要将信息写入日志管线#1,其要获得一个独占闩锁。由于独占闩锁一次只能授予一个线程,线程#2被放入闩锁队列进行等待。因此,闩锁队列(例如,闩锁队列中的等待组件(例如线程)的数目)越长,日志管线争用越高。这样,在一个示例中,闩锁队列的长度被用于确定争用是低还是高。如果数据库日志性能监视器确定争用过高(例如,闩锁队列中等待组件的数目大于X,其中X是基于偏好、性能目标等选定的),则执行拆分操作以生成一个或多个另外的日志流水线。
在一个示例中,为了生成新的日志流水线,将日志缓冲器池的存储器地址分配给新的日志流水线;将标识符分配给新的日志流水线;生成单元恢复路由地图来将数据(例如,单元恢复)路由到包括该一个或多个另外的日志流水线的日志流水线。另外,可以执行更少和/或其他动作以生成新的日志流水线。
同样,如果数据库日志性能监视器确定争用过低(例如,闩锁队列中等待组件(例如线程)的数目小于Y,其中Y是基于偏好、性能目标等选定的),则执行合并操作以减少数据要路由到的日志流水线的数目。例如,生成路由到一个或多个更少的日志流水线的单元恢复路由地图。
虽然在以上示例中,争用是基于等待的组件的数目,它可以基于与或不与闩锁队列相关的其他因素。许多示例是可能的。
如上所示,在日志流水线拆分/合并过程期间,构建新的单元恢复路由地图。在一个实施例中,在拆分/合并过程期间,由于新的单元恢复路由地图(例如,地图#2)的构建,不需要针对初始单元恢复路由地图(例如,地图#1)的锁/闩锁。基于构建新的单元恢复路由地图,将来自地图#1的单元恢复标识符在地图#2内重新哈希(306)。例如,如图6所示,在这个示例中,通过对在哈希表602中包括的UR_ID(例如UR#1、UR#2、UR#4、UR#6、UR#8和UR#10)进行哈希,构建当前单元恢复路由地图600a。由于在这个示例中,最初有两个日志流水线,采用UR_ID模2(604)来将每个单元恢复分配给日志流水线。例如,将UR#1路由到日志流水线1(606b),将其余的单元恢复(例如,#2、#4、#6、#8和#10)路由到日志流水线0(606a)。基于确定流水线中的一个要被拆分,生成第三流水线。首先,该流水线对于单元恢复是不可见的。在一个示例中,基于生成新的单元恢复路由地图600b,该流水线变得可见。由于在这个示例中有三个日志流水线,采用UR_ID模3(610)来生成UR路由地图600b,以便将单元恢复路由到三个日志流水线606a,606b,606c。例如,通过添加日志流水线#2,UR#6继续路由到日志流水线0;UR#1、UR#4和UR#10路由到日志流水线#1;UR#2、UR#8和UR#11路由到日志流水线#2。
参考图3A和图6,在一个示例中,当新的单元恢复(例如,UR#11)到达时,只更新一个单元恢复路由地图(例如,600b)(308);在这个示例中,不更新初始单元恢复路由地图(或其他先前的单元恢复路由地图)。使用更新的单元恢复路由地图(例如,地图#2600b)将新的单元恢复路由到对应的日志流水线以供日志信息输出(310)。例如,UR#11被路由到日志流水线#2(606c);例如,11模3=2。
在一个示例中,当提交现有单元恢复时,通过从哈希表602移除这个单元恢复标识符,更新地图#1(600a)和地图#2(600b)(312)。例如,当提交UR#10时,从UR路由地图600a和UR路由地图600b移除UR#10。在一个示例中,通过更新哈希表602来执行该移除,包括移除UR#10,并重新哈希现有UR标识符。在另一个示例中,通过从UR路由表600a、600b直接移除UR#10来执行移除。其他示例也是可能的。
进一步地,参考图3A和图7,当现有单元恢复到达时(例如,现有UR的一个或多个日志记录到达时),使用地图#2(例如,600b)将输入的日志信息路由到其对应的日志流水线(314),其中假定UR ID在地图#2中已经被重新哈希。否则,使用地图#1(例如,600a)来决定哪一日志流水线负责日志信息输出(316)。因此,即使在日志流水线上执行一个或多个拆分或合并操作,对于日志输出操作也没有阻挡问题。为了进一步解释,如果对于现有单元恢复有另外的日志信息输出(也称为数据)到达,则由于拆分,可以将该另外的日志信息输出放在与用于该现有单元恢复的先前接收的日志信息输出不同的日志流水线中。例如,UR#8(700)的日志信息输出最初被路由到日志流水线#0(606a),现在UR#8(700)的另外的日志信息输出被路由到日志流水线#2(606c)。在一个示例中,日志信息输出并不基于拆分而从一个日志流水线移动到另一个日志流水线。由于日志信息输出可以放在多个日志流水线中,如果需要的话,可以维护包括具有未提交的数据的单元恢复的任何UR路由地图来促进恢复。如前所示,通过在同一日志流水线中维护用于特定单元恢复的日志信息输出来促进恢复。然而,基于一个或多个拆分操作,这可能不会被维护,日志信息输出可能会在多个日志流水线中。因此,为了促进恢复,利用多个UR路由地图来确定日志信息被缓存在哪里并从这里进行恢复。
在进一步的示例中,基于拆分或合并操作,可以将日志信息从一个日志流水线移动到另一个。其他变型是可能的。
参考图3B和7,在一个方面,当单元恢复要被取消或者回滚时,使用初始单元恢复路由地图(例如,地图#1(600a),因为其不再是当前UR路由地图,因此也称为虚拟UR路由地图)和一个或多个新单元恢复路由地图(例如,地图#2(600b))来定位一个或多个日志流水线中的哪些被用于读取针对该单元恢复的撤销日志(320)。然后在撤销日志方面执行恢复操作。
在一个例子中,一旦所有的单元恢复ID都从地图移除,表明对应的单元恢复被提交,则可以删除初始单元恢复路由地图(例如,地图#1)(322)。
在一个方面,参考图3B和8A,当日志信息被写入日志管线800时,为每个写操作产生时间戳802(324)。例如,基于为操作X写入日志信息日志#X,产生时间戳16:33:11;对于日志信息日志#J,产生时间戳16:33:58;对于日志信息日志#N,产生时间戳16:36:49;等等。在一个示例中,如这里所述的,使用该信息来确定存储器的哪些修改页可以从延迟写队列中驱逐。
参考图8B,延迟写队列820包括等待从页缓冲器池写入存储装置(例如磁盘等等)的多个页822。延迟写队列820中包括的每页822具有时间戳824,指示其何时被修改和写入缓冲器。如这里所述的,时间戳802和824用来确定是否可以将一页从页缓冲器写入存储装置。
在一个示例中,如图8C所示,为每个日志流水线800a-800c确定刷新点840a-840c。刷新点是一个时间戳,指示已经将具有与刷新点具有预定关系(例如,小于刷新点)的时间戳的日志信息从日志流水线写入存储装置。
在一个实施例中,参考图3B和9A-9C,对于每个日志流水线(假定流水线的数目是N),保持从存储器中的日志流水线刷新到存储装置中的日志集合的日志信息的最早的时间戳(326)。这样,有对应于N个流水线的N个刷新时间戳。如图9A所示,在特定时间点(1),日志流水线800a的刷新点是T4;日志流水线800b的刷新点是T12;日志流水线800c的刷新点是T9。选择N个时间戳中最小的时间戳来用作延迟写队列中的刷新点,以决定哪些修改页可以从存储器显现到存储装置(328)。在时间(1)的示例中,T4是最小时间戳,因此,页缓冲器池900(图9C)中的具有小于最小时间戳T4的时间戳的页、诸如具有时间戳T1的页#N和具有时间戳T3的页#M能够从页缓冲器池写出到存储装置。
在图9B的又一个例子中,在另一个特定时间点(2),日志流水线800a的刷新点是T10;日志流水线800b的刷新点是T12;日志流水线800c的刷新点是T9。在这个时间(2)的示例中,T9是最小时间戳,因此,页缓冲器池900(图9C)中的具有小于最小时间戳T9的时间戳的页、诸如具有时间戳T4的页#N和具有时间戳T8的页#M能够从页缓冲器池写出到存储装置。
参考图3C,在一个实施例中,为了将日志信息从日志流水线写入到存储装置,日志写引擎调度器部署一个或多个日志写引擎(330)以将日志数据从流水线写入存储装置。这在下面参考图10A进一步描述。如图所示,在一个方面,日志写引擎调度器1000部署(例如,启动,激活,等等)一个或多个日志写引擎1002,用于将日志信息从一个或多个日志流水线刷新到一个或多个日志集合。日志写引擎调度器1000确定如何优化数据从日志流水线到存储装置中的日志数据集合的写入。在一个实施例中,为了优化写入,定义一个或多个单元格(cell)或控制间隔(CI)1004。作为示例,控制间隔是要从日志流水线写入的选定数量的数据(例如,4K,8K,16K等),其包括一个或多个元素,例如一个或多个日志记录头部、一个或多个日志记录(例如,选定数量的数据)和一个或多个控制。在其他实施例中,控制间隔包括另外的、更少的和/或其他元素。在一个实施例中,将日志数据分成控制间隔,基于写策略由不同的日志写引擎将多个控制间隔进行并行写出。日志写引擎可以从同一管线、不同管线和/或同一管线和不同管线的组合并行写出控制间隔。这改进了系统性能。
在一个示例中,写策略包括尽可能早地将日志信息从日志流水线写入1006存储装置,并且预取1008另外的日志信息以促进写入(例如,提高执行写入的速度)(332)。在一个实施例中,由日志写引擎调度器使用最早的时间戳来确定哪些控制间隔将由日志写引擎写出。例如,在一个示例中,由于T4是最早的时间戳,日志写引擎调度器确定日志管线#1的CI#2将由日志写引擎#1写出,并行地,日志管线#2的CI#1和CI#3将由日志写引擎#2写出,以促进最快的写。
在一个实施例中,如这里所述,日志写引擎调度器接收关于控制间隔的写和预取的信息,并基于确定在一个或多个日志流水线上的争用过重(例如,处在一预先指定级别),日志写调度器调整哪些引擎要从哪些日志流水线写入和/或部署/激活另外的日志写引擎1010(图10B),以加速用于一个或多个忙碌日志流水线(334)的刷新过程。
作为一个示例,日志写引擎调度器1000基于日志管线的所占据部分处于预先指定级别(例如,总管线容量的85%)确定要部署另一个日志写引擎。例如,日志管线的容量是有限的,例如可能是100MB(其他大小也是可能的)。其包括其中可以写入新日志信息的日志管线的空闲部分以及其中日志信息要被显现到盘上的占据部分。如果占据部分的百分比占据总日志容量的太多空间(例如85%),则其指示数据库系统正忙于将数据写入存储装置。因此,在一个示例中,部署另外的日志写引擎1010以加速日志数据显现到存储装置。在另一示例中,可分配多个写引擎从一个日志流水线写入。如图10B所示,在一个示例中,日志写引擎#1和#2被分配为从日志管线#1写入/预取,并且日志写引擎#3和#4被分配为从日志管线#2写入/预取。根据需要由日志写引擎调度器动态地改变这些分配以从日志流水线快速写入。
在一个或多个方面,当数据库系统处于重启或恢复过程时,在恢复或重启过程中使用一个或多个存储的日志记录。例如,将一个或多个记录从存储装置读取到存储器中并在重做操作中施加,和/或将一个或多个记录从存储装置读取到存储器中并在撤销操作中施加。通过重做操作,在正向方向上读取日志记录,并且对于撤销操作,在反向方向上读取日志记录。然而,当有多个日志流水线被恢复用于特定单元恢复时,正向或反向方向的读取将被修改,因为日志不一定按顺序。在一个示例中,对于重做和撤销操作,当日志在相同的存储器单元(例如,相同的存储器页)中时,将按顺序施加日志。当日志在不同的存储器单元(不同的存储器页)中时,可以乱序地施加日志。
继续图3C,当数据库系统处于重启或恢复过程时,在一个实施例中,由于日志集合内的日志记录由于使用了多个日志流水线因而是无序的,执行以下操作:
(1)根据单元恢复标识符(例如,UR_ID+日志时间戳)对日志记录进行分类和合并,以确定哪个数据库对象(诸如数据页)将要使用数据库日志撤销操作被回滚(340);
(2)根据唯一页标识符(例如,数据库DB_ID+页集合ID+分区ID+页ID+日志时间戳)对日志记录进行分类和合并,以作为由日志重做操作重新提交的输入(342);以及
(3)根据从分类操作产生的结果触发日志施加,以完成数据库系统的重启或恢复(344)。
参考图11,在一个实施例中,数据库重启和恢复管理器1100针对分类结果1106管理重做操作1102和/或针对分类结果1108管理撤销操作1104。在执行重做操作时,一个或多个日志读引擎1110将日志记录从存储装置1112读取到存储器中,并且然后基于例如对象标识符1120(例如,唯一页标识符)分类所获得的日志记录。然后,将所分类的日志记录1106提供至重做操作1102,并且对所分类的日志记录并行地施加重做操作,如下文所述。
进一步,对于撤销操作1104,一个或多个日志读引擎1110将日志记录从存储装置1112读取到存储器中,并且然后基于例如单元恢复标识符1122对所获得的日志记录进行分类。将分类的日志记录1108提供至撤销操作1104,并且对分类的日志记录并行地施加撤销操作,如下所述。
对于数据库重启或恢复,在一个实施例中,基于日志单元1130针对分类结果1106触发重做操作1102。例如,日志记录T2、T4、T6和T10被视为一个日志单元,因为这些日志记录在相同的页#1(对象ID)下。类似地,T1、T3、T5和T12被认为是另一个日志单元等。在每个日志单元内,在向前方向上(例如,从左到右)施加分类的日志记录(例如,用于一个日志单元的T2、T4、T6和T10)。并行施加这些日志单元1130以加速重做操作过程。
此外,基于每个日志单元1132针对分类结果1108触发撤销操作1104(诸如:T1、T3和T6组成一个日志单元;T2和T4组成另一个日志单元等)。在每个日志单元内,在向后方向上(例如,从右到左)施加日志记录(例如,用于一个日志单元的T1、T3和T6)。并行施加这些日志单元1132以加快撤销操作过程。
对于重做和撤销两者,在一个实施例中,虽然并行执行恢复过程,但保持了数据完整性。通过并行执行恢复过程,加快了恢复过程,从而提高了系统性能。
如上所述,参考图12A,在一个或多个方面,基于确定日志流水线1200上的争用过高,执行拆分操作以定义至少一个其他日志流水线1202。然后基于一个或多个单元恢复路由地图1204将日志记录写入日志流水线。进一步地,采用一个或多个日志写引擎1210将日志信息从日志流水线写入存储装置中的日志数据集合1212。
日志流水线的拆分和/或附加日志写引擎的部署促进将数据写入到日志流水线以及将日志数据从日志流水线写入到存储装置,从而减少争用并提高系统性能。日志流水线的合并减少了系统资源的使用,提高了系统性能。
进一步,为了使用例如存储的日志数据执行重启和/或恢复,数据库重启和恢复管理器1250管理一个或多个日志单元上的重做操作和/或撤销操作。在执行重做操作时,一个或多个日志读引擎1260将日志记录从存储装置1262读取到存储器中,并且然后基于例如对象标识符1270(例如,唯一页标识符)分类所获得的日志记录。然后将分类的日志记录用作重做操作的输入,并且在日志单元的分类日志记录上并行地施加重做操作。进一步,对于撤销操作,一个或多个日志读引擎1260将日志记录从存储装置1262读取到存储器中,并且然后基于例如单元恢复标识符1272对所获得的日志记录进行分类。然后将分类的日志记录用作撤销操作的输入,并且在日志单元的分类日志记录上并行地施加撤销操作。
尽管本文描述了各种实施例,但是其它变化和实施例是可能的。应当注意,除非另外不一致,否则本文所述的每个方面或特征及其变型可与任何其它方面或特征组合。
发明的一个或多个方面不可分地依赖于计算机技术,并促进计算机内的处理,从而提高其性能。在一个示例中,通过自动拆分和/或合并日志流水线、自动部署一个或多个另外的写引擎、和/或分类/合并日志记录以用于数据库重启/恢复来提供性能增强。
参考图13A-13C描述了与数据库相关处理的一个或多个方面有关的促进计算环境内的处理的一个实施例的方面。
在一个方面,参考图13A,就将数据写入日志流水线中的争用是否处于预先指定级别作出确定1300。日志流水线例如用于将数据从存储器写入存储装置1301。基于确定将数据写入日志流水线中的争用处于预先指定级别,自动执行拆分操作以生成新的日志流水线1302。
通过执行拆分操作,减少了日志流水线上的争用,并提高能够将数据写入日志流水线的速率,因而使得数据能够更快写入存储装置,提高了系统性能。
在一个方面中,基于路由地图,将输入数据路由到选定日志流水线1304。路由地图包括关于多个日志流水线中的哪一日志流水线要接收该输入数据的指示1306。多个日志流水线例如至少包括该日志流水线和新日志流水线1308。路由地图的使用促进跟踪日志数据被写入日志流水线中的位置,这至少促进了重启和/或恢复操作。
作为示例,使用选定标识符的模运算来确定由路由地图指示的路由1310。在模运算中使用的模数例如是基于多个日志流水线中的日志流水线的数目1312。在一个示例中,选定标识符是单元恢复的标识符1314,其中单元恢复例如包括产生输入数据的一个或多个操作1316。在一个实施例中,基于生成新日志流水线生成路由地图1318。作为示例,生成路由地图(例如,新的路由地图)使得能够执行日志流水线拆分/合并过程,而不需要在一个或多个先前路由地图上的锁/闩锁。
参考图13B,在一个方面,就一个或多个数据单元(例如,页)是否将要从存储器(例如,页缓冲器)写入存储装置作出确定1330。该确定例如是基于一个或多个日志流水线内的一个或多个刷新点1332。基于确定一个或多个数据单元将要从存储器写入存储装置,将该一个或多个数据单元从存储器写入存储装置1334。
在一个实施例中,确定用于一个或多个日志流水线的最小刷新点1336。进一步地,确定一个或多个数据单元中的一个数据单元是否将要从存储器写入存储装置包括,确定该数据单元是否具有与最小刷新点具有预定关系(例如,小于)的时间戳,其中基于该数据单元具有与最小刷新点具有预定关系的时间戳,执行该数据单元的写入1338。这使得能够例如在将数据写入日志流水线的同时将数据页写入存储装置,提高了系统性能。
在一个方面,使用日志写引擎来将日志数据从一个或多个日志流水线写入存储装置1350。进一步地,在一个方面,就是否将要部署一个或多个另外的日志写引擎来将日志数据从一个或多个日志流水线写入自动作出确定1352。基于确定将要部署一个或多个另外的日志写引擎,部署该一个或多个另外的日志写引擎1354。通过提供另外的日志写引擎,因而提高了数据可以写入存储装置的速度,提高了系统性能。进一步地,在一个或多个方面,通过提高日志数据可以写入存储装置的速度,还提高了可以将存储器的修改页从存储器写入存储装置的速度。
在一个方面,参考图13C,就是否将要为一个或多个数据库对象执行恢复作出确定1370。基于确定将要执行恢复,采用第一技术对从存储装置读取的多个记录进行分类,以提供第一多个分类记录1372。第一多个分类记录包括第一多个日志单元1374。将第一多个分类记录提供至重做操作1376。将在第一多个日志单元上并行执行重做操作1378。这使得能够在维护数据完整性的同时,并行执行数据库恢复处理。
在一个方面,就是否将要为一个或多个数据库对象执行恢复作出确定1380。基于确定将要执行恢复,采用第二技术对从存储装置读取的多个记录进行分类,以提供第二多个分类记录1382。第二多个分类记录包括第二多个日志单元1384。将第二多个分类日志记录提供至撤销操作1386。将在第二多个日志单元上并行执行撤销操作1388。这使得能够在维护数据完整性的同时,并行执行数据库恢复处理。
在一个方面,就将数据写入到一个或多个日志流水线中的争用是否处在另一个预先指定级别作出确定1390。基于确定将数据写入到一个或多个日志流水线中的争用处在另一个预先指定级别,执行合并操作以减少日志流水线的数目1392。通过执行合并操作,利用更少的日志流水线,从而利用更少的系统资源。
其他实施例、方面和/或变化是可能的。
本发明的一个或多个方面由包括在计算环境内的数据库系统来执行,图14A中描绘了其示例。如图14A所示,计算环境1400包括例如以通用计算设备的形式示出的计算机系统1402。计算机系统1402可以包括但不限于经由一个或多个总线和/或其他连接1410彼此耦合的一个或多个处理器或处理单元1404(例如,中央处理单元(CPU))、存储器1406(也称为系统存储器、主存储器、主存储装置、中央存储装置,作为示例)以及一个或多个输入/输出(I/O)接口1408。
总线1410表示若干类型的总线结构中的任何一种总线结构中的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(ISA)、微通道体系结构(MCA)、增强型ISA(EISA)、视频电子标准协会(VESA)局部总线和外围部件互连(PCI)。
存储器1406可包括例如高速缓存1412,诸如共享高速缓存,其可耦合到处理器1404的本地高速缓存1414。此外,存储器1406可以包括一个或多个程序或应用1416、操作系统1418、数据库系统1419以及一个或多个计算机可读程序指令1420。计算机可读程序指令1420可以被配置为执行本发明的方面的实施例的功能。
计算机系统1402还可以经由例如I/O接口1408与一个或多个外部设备1430和网络接口1432通信。外部设备1430包括例如用户终端、磁带驱动器、定点设备、显示器等,以及一个或多个数据存储设备1434(例如,存储装置,诸如磁盘等)。数据存储设备1434可以存储一个或多个程序1436、一个或多个计算机可读程序指令1438和/或数据(例如,写入到存储装置的修改页、写入到存储装置的日志数据等)等。计算机可读程序指令可以被配置为执行本发明的各方面的实施例的功能。
网络接口1432使得计算机系统1402能够与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网)的一个或多个网络通信,从而提供与其他计算设备或系统的通信。
计算机系统1402可以包括和/或耦合到可移动/不可移动、易失性/非易失性计算机系统存储介质。例如,它可以包括和/或耦合到不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)、用于从可移动的、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器、和/或用于从可移动的、非易失性光盘(诸如CD-ROM、DVD-ROM或其它光学介质)读取或向其写入的光盘驱动器。应当理解,其它硬件和/或软件组件可结合计算机系统1402使用。实例包括但不限于:微码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
计算机系统1402可以用许多其它通用或专用计算系统环境或配置来操作。适用于计算机系统1402的公知的计算系统、环境和/或配置的示例包括但不限于,个人计算机(PC)系统、服务器计算机系统、瘦客户机、胖客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。
在一个示例中,数据库系统1419包括一个或多个组件以执行本发明的一个或多个方面。这些组件可以存储在存储器中,包括主存储器(例如,存储器1406)和/或一个或多个高速缓存(例如,高速缓存1412、本地高速缓存1414)和/或外部存储(例如,设备1434),并且可以由一个或多个处理器(例如,处理器1404)执行。
在一个示例中,参考图14B,组件包括例如:
一个或多个日志写引擎1450,例如用于将数据从一个或多个日志流水线写入存储装置;
日志写引擎调度器1455,例如用于确定何时要部署(例如自动)一个或多个另外的日志写引擎;
一个或多个日志读引擎1460,例如用于将数据从存储装置读取到存储器中以供例如数据库重启和/或恢复;
日志性能监视器1465,例如用于确定何时要执行拆分和/或合并操作;以及
数据库重启和恢复管理器1740,例如用于执行一个或多个数据库对象的重启和/或恢复。
尽管描述了各种组件,但是本发明的各方面可以由一个或多个组件来执行。可以有附加的、更少的和/或不同的组件用于执行本发明的一个或多个方面。许多变型是可能的。
另外的其它类型的计算环境也可结合和使用本发明的一个或多个方面,包括但不限于仿真环境,其示例参考图15A来描述。在该示例中,计算环境10包括例如本机中央处理单元(CPU)12、存储器14、以及经由例如一个或多个总线18和/或其他连接彼此耦合的一个或多个输入/输出设备和/或接口16。作为示例,计算环境10可包括由纽约阿芒克的国际商业机器公司提供的处理器;加州帕洛阿尔托的惠普公司提供的带有/> II处理器的HP Superdome;和/或基于由国际商业机器公司、惠普、英特尔公司、甲骨文或其它公司提供的体系结构的其它机器。PowerPC是国际商业机器公司在至少一个管辖权内的商标或注册商标。Intel和Itanium是英特尔公司或其子公司在美国和其他国家的商标或注册商标。
本机中央处理单元12包括一个或多个本机寄存器20,诸如在环境内的处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器。这些寄存器包括表示在任何特定时间点的环境状态的信息。
此外,本机中央处理单元12执行存储在存储器14中的指令和代码,在一个特定示例中,中央处理单元执行存储在存储器14中的仿真器代码22,该代码使得在一个架构中配置的计算环境能够仿真另一架构。例如,仿真器代码22允许基于例如由国际商业机器公司提供的硬件架构之外的架构的机器,诸如/>处理器、HP Superdome服务器或其他,来仿真例如/>硬件架构,并且执行基于例如z/Architecture硬件架构开发的软件和指令。Z/ARCHITECTURE是国际商业机器公司在至少一个管辖权内的商标或注册商标。
参考图15B描述了与仿真器代码22有关的进一步细节。存储在存储器14中的客户指令30包括软件指令(例如,与机器指令相关),其被开发为在不同于本机CPU 12的架构中执行,例如,客户指令30可以被设计为基于硬件架构在处理器上执行,但是替代地,在本机CPU 12上被仿真,其可以是例如/>II处理器。在一个示例中,仿真器代码22包括指令取回例程32,以从存储器14获得一个或多个客户指令30,并且可选地为所获得的指令提供本地缓冲。它还包括指令转换例程34,以确定已经获得的客户指令的类型,并且将客户指令转换成一个或多个对应的本机指令36。该转换包括例如标识要由客户指令执行的功能以及选择本机指令来执行该功能。
此外,仿真器代码22包括仿真控制例程40以使得执行本机指令。仿真控制例程40可以使本机CPU 12执行仿真一个或多个先前获得的客户机指令的本机指令的例程,并且在这样的执行结束时,将控制返回到指令获取例程以仿真下一个客户机指令或一组客户机指令的获得。执行本机指令36可以包括从存储器14加载数据到寄存器中;将数据从寄存器存储回存储器;或者执行由转换例程确定的某种类型的算术或逻辑运算。
例如,每个例程以软件实现,该软件存储在存储器中并由本机中央处理单元12执行。在其他示例中,例程或操作中的一个或多个以固件、硬件、软件或其某种组合实现。被仿真的处理器的寄存器可以使用本机CPU的寄存器20或者通过使用存储器14中的位置来仿真。在实施例中,客户指令30、本机指令36和仿真器代码22可以驻留在相同的存储器中或者可以在不同的存储器设备之间分配。
本发明的一个或多个方面可涉及云计算。
应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人类交互。
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图16,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点52,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点52可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图16中所示的计算装置54A-N的类型仅旨在是说明性的,并且计算节点52和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化装置通信。
现在参见图17,示出了由云计算环境50(图16)提供的一组功能抽象层。应提前理解,图17中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。
如所描述,提供以下层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行85提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;事务处理95;以及数据库相关处理96。
上文所描述的计算环境仅为可使用的计算环境的实例。可以使用其他环境,包括但不限于非分区环境、分区环境、云环境和/或模拟环境;实施例不限于任何一个环境。尽管本文描述了计算环境的不同实例,但本发明的一个或多个方面可与许多类型的环境一起使用。本文提供的计算环境仅为示例。
每个计算环境能够被配置成包括本发明的一个或多个方面。例如,根据本发明的一个或多个方面,每个可以被配置用于数据库相关的处理。
已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的或者限于所公开的实施方式。在不脱离所描述的实施例的范围的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
本发明的各个方面可以是任何可能的技术细节集成度的系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
除了上述之外,一个或多个方面可由提供客户环境的管理的服务提供商提供、提供、部署、管理、服务等。例如,服务提供商可为一个或多个客户创建、维护、支持等执行一个或多个方面的计算机代码和/或计算机基础设施。作为回报,作为示例,服务提供商可以根据订阅和/或费用协议从客户接收支付。另外或可替代地,服务提供商可以从广告内容向一个或多个第三方的销售接收支付。
在一个方面,可以部署用于执行一个或多个实施例的应用。作为一个示例,应用的部署包括提供可操作以执行一个或多个实施例的计算机基础设施。
作为又一方面,可以部署计算基础设施,包括将计算机可读代码集成到计算系统中,其中代码与计算系统组合能够执行一个或多个实施例。
作为又一方面,可提供一种用于集成计算基础设施的过程,所述过程包括将计算机可读代码集成到计算机系统中。计算机系统包括计算机可读介质,其中计算机介质包括一个或多个实施例。代码与计算机系统组合能够执行一个或多个实施例。
尽管以上描述了各种实施例,但这些实施例仅是实例。例如,拆分和/或合并可基于其他准则和/或与本文中描述的准则不同地执行。进一步,可以使用其他吸附技术。另外,额外写日志引擎的部署可基于其他准则。许多变化是可能的。
进一步,其他类型的计算环境可有益并被使用。作为示例,适合于存储和/或执行程序代码的数据处理系统是可用的,其包括通过系统总线直接或间接地耦合到存储器元件的至少两个处理器。存储器元件包括例如在程序代码的实际执行期间使用的本地存储器、大容量存储器和高速缓冲存储器,该高速缓冲存储器提供至少一些程序代码的临时存储以便减少在执行期间必须从大容量存储器检索代码的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、定点设备、DASD、磁带、CD、DVD、拇指驱动器和其他存储介质等)可以直接地或通过中间的I/O控制器耦合到系统。网络适配器也可以耦合到系统,以使得数据处理系统能够通过居间的私有或公共网络耦合到其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是一些可用类型的网络适配器。
本文中使用的术语仅用于描述具体实施方式的目的,而并非旨在进行限制。如本文中使用的,除非上下文另有明确指示,否则单数形式“一”、“一个”和“该”旨在也包括复数形式。还应当理解,当在本说明书中使用术语“包括(comprises)”和/或“包含(comprising)”时,其指定所述特征、整体、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、部件和/或其组合的存在或添加。
以下权利要求中的所有装置或步骤加上功能元件的对应结构、材料、动作和等效物(如果有的话)旨在包括用于结合如具体要求保护的其他要求保护的元件来执行所述功能的任何结构、材料或动作。已经出于说明和描述的目的呈现了对一个或多个实施例的描述,但并不旨在是详尽的或限于所公开的形式。对于本领域普通技术人员而言,许多修改和变化将是显而易见的。选择和描述实施例以便最好地解释各个方面和实际应用,并且使本领域的其他普通技术人员能够理解具有适合于预期的特定用途的不同修改的不同实施例。
Claims (20)
1.一种用于促进计算环境内的处理的计算机程序产品,所述计算机程序产品包括:
一个或多个计算机可读存储介质以及共同存储在所述一个或多个计算机可读存储介质上的程序指令以执行一种方法,所述方法包括:
确定将数据写入日志流水线中的争用是否处于预先指定级别,所述日志流水线用于将所述数据从存储器写入到存储装置;以及
基于确定将所述数据写入所述日志流水线中的所述争用处于所述预先指定级别,自动执行拆分操作,以生成新日志流水线。
2.根据权利要求1所述的计算机程序产品,其中所述方法进一步包括,基于路由地图将输入数据数据路由到选定日志流水线,所述路由地图包括关于多个日志流水线中的哪个日志流水线将接收所述输入数据的指示,所述多个日志流水线至少包括所述日志流水线和所述新日志流水线。
3.根据权利要求2所述的计算机程序产品,其中使用选定识别符的模运算来确定由所述路由地图指示的所述路由,在所述模运算中使用的模数是基于所述多个日志流水线中的日志流水线的数目。
4.根据权利要求3所述的计算机程序产品,其中,所述选定标识符是单元恢复的标识符,所述单元恢复包括产生所述输入数据的一个或多个操作。
5.根据权利要求2所述的计算机程序产品,其中,所述方法进一步包括,基于生成所述新日志流水线,生成所述路由地图。
6.根据权利要求1所述的计算机程序产品,其中,所述方法进一步包括:
确定一个或多个数据单元是否将从存储器写入存储装置,所述确定是基于一个或多个日志流水线内的一个或多个刷新点;以及
基于确定所述一个或多个数据单元将从存储器写入存储装置,将所述一个或多个数据单元从存储器写入存储装置。
7.根据权利要求6所述的计算机程序产品,其中所述方法进一步包括,确定所述一个或多个日志流水线的最小刷新点,并且其中,所述确定所述一个或多个数据单元中的数据单元是否将从存储器写入存储装置包括,确定所述数据单元是否具有与所述最小刷新点具有预定关系的时间戳,其中写入所述数据单元是基于具有与所述最小刷新点具有所述预定关系的所述时间戳的所述数据单元执行的。
8.根据权利要求1所述的计算机程序产品,其中,所述方法进一步包括:
使用日志写引擎将日志数据从一个或多个日志流水线写入到存储装置;
自动确定是否将部署一个或多个另外的日志写引擎来将所述日志数据从所述一个或多个日志流水线写入;以及
基于确定将部署所述一个或多个另外的日志写引擎,部署所述一个或多个另外的日志写引擎。
9.根据权利要求1所述的计算机程序产品,其中,所述方法进一步包括:
确定将对一个或多个数据库对象执行恢复;
基于确定将要执行恢复,使用第一技术对从存储装置读取的多个记录进行分类,以提供第一多个分类记录,所述第一多个分类记录包括第一多个日志单元;以及
将所述第一多个分类记录提供给重做操作,所述重做操作在所述第一多个日志单元上并行执行。
10.根据权利要求1所述的计算机程序产品,其中,所述方法进一步包括:
确定将对一个或多个数据库对象执行恢复;
基于确定将要执行恢复,使用第二技术对从存储装置读取的多个记录进行分类,以提供第二多个分类记录,所述第二多个分类记录包括第二多个日志单元;以及
将所述第二多个分类日志记录提供给撤销操作,所述撤销操作在所述第二多个日志单元上并行执行。
11.根据权利要求1所述的计算机程序产品,其中,所述方法进一步包括:
确定将数据写入一个或多个日志流水线中的争用是否处于另一个预先指定级别;以及
基于确定将所述数据写入所述一个或多个日志流水线中的所述争用处于另一预先指定级别,执行合并操作以减少日志流水线的数目。
12.一种用于促进计算环境内的处理的计算机系统,所述计算机系统包括:
存储器;以及
至少一个处理器,与所述存储器通信,其中,所述计算机系统被配置为执行一种方法,所述方法包括:
确定将数据写入到日志流水线中的争用是否处于预先指定级别,所述日志流水线用于将所述数据从存储器写入到存储装置;以及
基于确定将所述数据写入所述日志流水线中的所述争用处于所述预先指定级别,自动执行拆分操作,以生成新日志流水线。
13.根据权利要求12所述的计算机系统,其中所述方法进一步包括,基于路由地图将输入数据数据路由到选定日志流水线,所述路由地图包括关于多个日志流水线中的哪个日志流水线将接收所述输入数据的指示,所述多个日志流水线至少包括所述日志流水线和所述新日志流水线。
14.根据权利要求12所述的计算机系统,其中,所述方法进一步包括:
使用日志写引擎将日志数据从一个或多个日志流水线写入到存储装置;
自动确定是否将部署一个或多个另外的日志写引擎来将所述日志数据从所述一个或多个日志流水线写入;以及
基于确定将部署所述一个或多个另外的日志写引擎,部署所述一个或多个另外的日志写引擎。
15.根据权利要求12所述的计算机系统,其中,所述方法进一步包括:
确定将对一个或多个数据库对象执行恢复;
基于确定将要执行恢复,使用第一技术对从存储装置读取的多个记录进行分类,以提供第一多个分类记录,所述第一多个分类记录包括第一多个日志单元;以及
将所述第一多个分类记录提供给重做操作,所述重做操作在所述第一多个日志单元上并行执行。
16.根据权利要求12所述的计算机系统,其中,所述方法进一步包括:
确定将对一个或多个数据库对象执行恢复;
基于确定将要执行恢复,使用第二技术对从存储装置读取的多个记录进行分类,以提供第二多个分类记录,所述第二多个分类记录包括第二多个日志单元;以及
将所述第二多个分类日志记录提供给撤销操作,所述撤销操作在所述第二多个日志单元上并行执行。
17.根据权利要求12所述的计算机系统,其中,所述方法进一步包括:
确定将数据写入一个或多个日志流水线中的争用是否处于另一个预先指定级别;以及
基于确定将所述数据写入所述一个或多个日志流水线中的所述争用处于另一预先指定级别,执行合并操作以减少日志流水线的数目。
18.一种促进计算环境内的处理的计算机实现的方法,所述计算机实现的方法包括:
确定将数据写入到日志流水线中的争用是否处于预先指定级别,所述日志流水线用于将所述数据从存储器写入到存储装置;以及
基于确定将所述数据写入所述日志流水线中的所述争用处于所述预先指定级别,自动执行拆分操作,以生成新日志流水线。
19.根据权利要求18所述的计算机实施的方法,其进一步包括,基于路由地图将输入数据数据路由到选定日志流水线,所述路由地图包括关于多个日志流水线中的哪个日志流水线将接收所述输入数据的指示,所述多个日志流水线至少包括所述日志流水线和所述新日志流水线。
20.根据权利要求18所述的计算机实施的方法,进一步包括:
使用日志写引擎将日志数据从一个或多个日志流水线写入到存储装置;
自动确定是否将部署一个或多个另外的日志写引擎来将所述日志数据从所述一个或多个日志流水线写入;以及
基于确定将部署所述一个或多个另外的日志写引擎,部署所述一个或多个另外的日志写引擎。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/162,063 US11797522B2 (en) | 2021-01-29 | 2021-01-29 | Database log writing based on log pipeline contention |
US17/162,063 | 2021-01-29 | ||
PCT/CN2022/071585 WO2022161170A1 (en) | 2021-01-29 | 2022-01-12 | Database log writing based on log pipeline contention |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116724295A true CN116724295A (zh) | 2023-09-08 |
Family
ID=82612462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280008806.8A Pending CN116724295A (zh) | 2021-01-29 | 2022-01-12 | 基于日志流水线争用的数据库日志写入 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11797522B2 (zh) |
JP (1) | JP2024505161A (zh) |
CN (1) | CN116724295A (zh) |
DE (1) | DE112022000852T5 (zh) |
GB (1) | GB2617999A (zh) |
WO (1) | WO2022161170A1 (zh) |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6131094A (en) * | 1998-04-24 | 2000-10-10 | Unisys Corp. | Method for performing asynchronous writes to database logs using multiple insertion points |
US6813623B2 (en) * | 2001-06-15 | 2004-11-02 | International Business Machines Corporation | Method and apparatus for chunk based transaction logging with asynchronous input/output for a database management system |
ATE444525T1 (de) | 2001-07-16 | 2009-10-15 | Sap Ag | Parallelisierte nur-redo-protokollierung und behebung für datenbanksysteme mit hochverfügbarem hauptspeicher |
US7480672B2 (en) * | 2005-03-31 | 2009-01-20 | Sap Ag | Multiple log queues in a database management system |
US20100162247A1 (en) * | 2008-12-19 | 2010-06-24 | Adam Welc | Methods and systems for transactional nested parallelism |
US9009101B2 (en) | 2010-07-01 | 2015-04-14 | Sybase, Inc. | Reducing contention of transaction logging in a database management system |
US9009125B2 (en) * | 2010-10-13 | 2015-04-14 | International Business Machiness Corporation | Creating and maintaining order of a log stream |
US8909996B2 (en) | 2011-08-12 | 2014-12-09 | Oracle International Corporation | Utilizing multiple storage devices to reduce write latency for database logging |
US10223431B2 (en) * | 2013-01-31 | 2019-03-05 | Facebook, Inc. | Data stream splitting for low-latency data access |
US10817500B2 (en) * | 2014-03-13 | 2020-10-27 | Sybase, Inc. | Reduce log contention by batching log record transfers to the log |
US20170212902A1 (en) * | 2014-05-30 | 2017-07-27 | Hewlett Packard Enterprise Development Lp | Partially sorted log archive |
WO2016122710A1 (en) | 2015-01-30 | 2016-08-04 | Hewlett Packard Enterprise Development Lp | Byte addressable non-volatile random access memory for storing log record |
EP3278243A1 (en) * | 2015-04-03 | 2018-02-07 | Oracle International Corporation | Method and system for implementing a log parser in a log analytics system |
US10452491B2 (en) * | 2016-04-14 | 2019-10-22 | Sap Se | Scalable log partitioning system |
US10878335B1 (en) * | 2016-06-14 | 2020-12-29 | Amazon Technologies, Inc. | Scalable text analysis using probabilistic data structures |
US11372685B2 (en) * | 2018-02-21 | 2022-06-28 | Rapid7, Inc. | Hash-based routing |
CN108509327A (zh) | 2018-04-20 | 2018-09-07 | 深圳市文鼎创数据科技有限公司 | 一种日志输出方法、装置、终端设备和存储介质 |
-
2021
- 2021-01-29 US US17/162,063 patent/US11797522B2/en active Active
-
2022
- 2022-01-12 GB GB2311468.9A patent/GB2617999A/en active Pending
- 2022-01-12 CN CN202280008806.8A patent/CN116724295A/zh active Pending
- 2022-01-12 DE DE112022000852.0T patent/DE112022000852T5/de active Pending
- 2022-01-12 JP JP2023542709A patent/JP2024505161A/ja active Pending
- 2022-01-12 WO PCT/CN2022/071585 patent/WO2022161170A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20220245130A1 (en) | 2022-08-04 |
JP2024505161A (ja) | 2024-02-05 |
GB202311468D0 (en) | 2023-09-06 |
WO2022161170A1 (en) | 2022-08-04 |
DE112022000852T5 (de) | 2023-12-07 |
US11797522B2 (en) | 2023-10-24 |
GB2617999A (en) | 2023-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10725976B2 (en) | Fast recovery using self-describing replica files in a distributed storage system | |
US9607004B2 (en) | Storage device data migration | |
CN111801661A (zh) | 多主机分布式数据管理系统中的事务操作 | |
US10585760B2 (en) | File name level based file search and restoration from block level backups of virtual machines | |
US20190095284A1 (en) | Enhanced application write performance | |
US10572178B2 (en) | Expiration handling for block level backup of virtual machines | |
US20160378754A1 (en) | Fast query processing in columnar databases with gpus | |
US11487727B2 (en) | Resolving versions in an append-only large-scale data store in distributed data management systems | |
JP7228321B2 (ja) | 時系列順のアウトオブプレース更新のためのシステム、時系列順のアウトオブプレース更新のための方法、および時系列順のアウトオブプレース更新のためのコンピュータ・プログラム | |
US11150981B2 (en) | Fast recovery from failures in a chronologically ordered log-structured key-value storage system | |
US20210326271A1 (en) | Stale data recovery using virtual storage metadata | |
US9229659B2 (en) | Identifying and accessing reference data in an in-memory data grid | |
US11416468B2 (en) | Active-active system index management | |
WO2019155308A1 (en) | Data migration in a hierarchical storage management system | |
US11163636B2 (en) | Chronologically ordered log-structured key-value store from failures during garbage collection | |
CN116724295A (zh) | 基于日志流水线争用的数据库日志写入 | |
US11983147B2 (en) | Deduplicating data integrity checks across systems | |
US11526490B1 (en) | Database log performance | |
US20200110819A1 (en) | Low cost fast recovery index in storage class memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |