Methods to minimize communication in a cluster database system

US9229970B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9229970-B2
Application numberUS-63275009-A
CountryUS
Kind codeB2
Filing dateDec 7, 2009
Priority dateDec 7, 2009
Publication dateJan 5, 2016
Grant dateJan 5, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9229970B2 cover?
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…
Who is the assignee on this patent?
Grosman Ronen, Huras Matthew A, Malkemus Timothy R, and 6 more
What technology area does this patent fall under?
Primary CPC classification G06F16/2358. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 05 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).