Database system for triggering event notifications based on updates to database records
US-2024419652-A1 · Dec 19, 2024 · US
US9229970B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9229970-B2 |
| Application number | US-63275009-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 7, 2009 |
| Priority date | Dec 7, 2009 |
| Publication date | Jan 5, 2016 |
| Grant date | Jan 5, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
An ordering of operations in log records includes: performing update operations on a database object by a node; writing log records for the update operations into a local buffer by the node, the log records each including a local virtual timestamp; determining that a log flush to write the log records in the local buffer to a persistent storage is to be performed; in response, sending a request from the node to a log flush sequence server for a log flush sequence number; receiving the log flush sequence number by the node; inserting the log flush sequence number into the log records in the local buffer; and performing the log flush to write the log records in the local buffer to the persistent storage, where the log records written to the persistent storage comprises the local virtual timestamps and the log flush sequence number.
Opening claim text (preview).
What is claimed is: 1. A method for ordering operations in log records in a shared database system, comprising: maintaining a proper ordering for a database recovery process for logically dependent operations that do not share database objects by: performing one or more first update operations of a first transaction on a first database object in a first table by a first node of a plurality of nodes in the shared database system; writing one or more first log records for the first update operations into a first local buffer of the first node, the log first records comprising first local virtual timestamps indicating an order of the first update operations; in response to determining that a first log flush to write the first log records in the first local buffer to a global persistent storage shared by the plurality of nodes is to be performed, obtaining from a log flush sequence server a first global log flush sequence number to correspond to the first log flush; inserting the first global log flush sequence number into the first log records; performing the first log flush to write the first log records in the first local buffer to the global persistent storage, wherein the first log records written to the global persistent storage comprise the first local virtual timestamps and the first global log flush sequence number; performing one or more second update operations of a second transaction on a second database object in a second table by a second node of the plurality of nodes, wherein the first transaction is required to be committed by the first node before the second transaction is performed by the second node because the second transaction is logically dependent on the first transaction and the first database object is different than the second database object; writing one or more second log records for the second update operations into a second local buffer of the second node, the second log records comprising second local virtual timestamps indicating an order of the second update operations, wherein the first and the second local virtual timestamps do not reflect a required commit order for the first and the second transactions; in response to determining that a second log flush to write the second log records to the global persistent storage is to be performed, obtaining from the log flush sequence server a second global log flush sequence number to correspond to the second log flush; inserting the second global log flush sequence number into the second log records; performing the second log flush to write the second log records in the second local buffer to the global persistent storage, wherein the second log records written to the global persistent storage comprise the second local virtual timestamps and the second global log flush sequence number; and merging the second log records with the first log records in the global persistent storage, wherein the first global log flush sequence number and the second global log flush sequence number indicate a commit order of the first and the second transactions. 2. The method of claim 1 , further comprising: determining that the database recovery process is to be performed; in response to determining that the database recovery process is to be performed, obtaining a last stored database image; determining a lowest global log flush sequence number occurring after the database image was stored; determining log records in the global persistent storage comprising the lowest global log flush sequence number, the determined log records comprising the lowest global log flush sequence number further comprising associated local virtual timestamps; and performing operations in the log records comprising the lowest global log flush sequence number in an order according to the associated local virtual timestamps. 3. The method of claim 2 , further comprising: determining a next lowest global log flush sequence number; determining a second set of log records in the global persistent storage comprising the next lowest global log flush sequence number, the second set of log records further comprising a second set of associated local virtual timestamps; and performing operations in the second set of log records comprising the next lowest global log flush sequence number in an order according to the second set of associated local virtual timestamps. 4. The method of claim 1 , wherein the inserting the first global log flush sequence number into the first log records comprises: inserting the first global log flush sequence number into each of the first log records in the first local buffer. 5. The method of claim 1 , wherein the inserting the first global log flush sequence number into the first log records comprises: inserting the first global log flush sequence number into a single location associated with all of the first log records in the first local buffer. 6. A computer program product for ordering operations in log records in a shared database system, the computer program product comprising: a computer readable storage device having computer readable program code embodied therewith, computer readable program code configured to: maintain a proper ordering for a database recovery process for logically dependent operations that do not share database objects by: performing one or more first update operations on a first database object in a first table by a first node of a plurality of nodes in the shared database system; writing one or more first log records for the first update operations into a first local buffer of the first node, the first log records comprising first local virtual timestamps indicating an order of the first update operations; in response to determining that a first log flush to write the first log records in the first local buffer to a global persistent storage is to be performed, obtaining from a global log flush sequence server a first log flush sequence number to correspond to the first log flush; inserting the first global log flush sequence number into the first log records; and performing the first log flush to write the first log records in the first local buffer to the global persistent storage, wherein the first log records written to the global persistent storage comprise the first local virtual timestamps and the first global log flush sequence number; performing one or more second update operations of a second transaction on a second database object in a second table by a second node of the plurality of nodes, wherein the first transaction is required to be committed by the first node before the second transaction is performed by the second node because the second transaction is logically dependent on the first transaction and the first database object is different than the second database object; writing one or more second log records for the second update operations into a second local buffer of the second node, the second log records comprising second local virtual timestamps indicating an order of the second update operations, wherein the first and the second local virtual timestamps do not reflect a required commit order for the first and the second transactions; in response to determining that a second log flush to write the second log records to the global persistent storage is to be performed, obtaining from the log flush sequence server a second global log flush sequence number to correspond to the second log flush; inserting the second global log flush sequence number into the second log records; performing the second log flush to write the second log records in the second local buffer to the global persistent storage, wherein the second log records written to the global persistent storage comprise the second local virtual timestamps and the second global log flush sequence num
Updates performed during online database operations; commit processing · CPC title
Change logging, detection, and notification (replication G06F16/27) · CPC title
using timestamps · CPC title
involving logging of persistent data for recovery · CPC title
Physics · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.