Supporting cursor snapshot semantics

US9792318B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9792318-B2
Application numberUS-201414553790-A
CountryUS
Kind codeB2
Filing dateNov 25, 2014
Priority dateNov 25, 2014
Publication dateOct 17, 2017
Grant dateOct 17, 2017

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.

A database upon opening each of at least one cursor for a transaction, assigns each statement forming part of a transaction a statement sequence number (SSN) involving at least one row of the database. Thereafter, temporary timestamps are assigned to the at least one row using a transaction identifier and the corresponding SSN. Further, active cursors are monitored such that a final timestamp is prevented from being associated with each row until it has no remaining cursors. Related apparatus, systems, techniques and articles are also described.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for implementation by one or more hardware data processors forming part of at least one computing device, the method comprising: opening a cursor defining a result set for a transaction on a database, the result set comprising a set of rows in a table of the database that the cursor affects, the transaction having an associated transaction identifier and comprising one or more statements, each statement involving at least one row of the set of rows; assigning a temporary timestamp to each row in the set of rows, the assigning of the temporary timestamp comprising identifying, for each row of the set of rows, a statement sequence number assigned to a statement of the one or more statements that involves that row and the associated transaction identifier for the transaction comprising the statement; monitoring a plurality of active cursors, the plurality of active cursors comprising the cursor, the monitoring comprising determining whether a given row of the table is affected by any active cursor; and preventing a final timestamp to be associated with the given row until there are no remaining active cursors for the given row, the preventing comprising determining that none of the plurality of active cursors relates to any transaction identifiers or statement sequence numbers of the temporary timestamp for the given row. 2. The method of claim 1 , wherein the database is an in-memory database. 3. The method of claim 2 , wherein the database is a columnar in-memory database. 4. The method of claim 1 , wherein the transaction has a corresponding transaction control block index that is specific to such transaction. 5. The method of claim 1 , wherein the temporary timestamp is generated by a commit timestamp generator. 6. The method of claim 1 , wherein the transaction has a corresponding transaction control block index that is specific to such transaction. 7. The method of claim 6 , wherein a visibility function determines whether a record is visible to the transaction if the transaction control block index value of the corresponding temporary timestamp is less than the transaction control block index of the transaction. 8. A non-transitory computer program product storing instructions which, when executed by at least one hardware data processor forming part of at least one computing system, result in operations comprising: opening a cursor defining a result set for a transaction on a database, the result set comprising a set of rows in a table of the database that the cursor affects, the transaction having an associated transaction identifier and comprising one or more statements, each statement involving at least one row of the set of rows; assigning a temporary timestamp to each row in the set of rows, the assigning of the temporary timestamp comprising identifying, for each row of the set of rows, a statement sequence number assigned to a statement of the one or more statements that involves that row and the associated transaction identifier for the transaction comprising the statement; monitoring a plurality of active cursors, the plurality of active cursors comprising the cursor, the monitoring comprising determining whether a given row of the table is affected by any active cursor; and preventing a final timestamp to be associated with the given row until there are no remaining active cursors for the given row, the preventing comprising determining that none of the plurality of active cursors relates to any transaction identifiers or statement sequence numbers of the temporary timestamp for the given row. 9. The computer program product of claim 8 , wherein the database is an in-memory database. 10. The computer program product of claim 9 , wherein the database is a columnar in-memory database. 11. The computer program product of claim 8 , wherein the transaction has a corresponding transaction control block index that is specific to such transaction. 12. The computer program product of claim 8 , wherein the timestamp is generated by a commit timestamp generator. 13. The computer program product of claim 8 , wherein the transaction has a corresponding transaction control block index that is specific to such transaction. 14. The computer program product of claim 8 , wherein a visibility function determines whether a record is visible to the transaction if the transaction control block index value of the corresponding temporary timestamp is less than the transaction control block index of the transaction. 15. A system comprising: an in-memory database comprising: at least one hardware data processor; and memory storing instructions which, when executed by the at least one hardware data processor, result in operations comprising: opening a cursor defining a result set for a transaction on the in-memory database, the result set comprising a set of rows in a table of the database that the cursor affects, the transaction having an associated transaction identifier and comprising one or more statements, each statement involving at least one row of the set of rows; assigning a temporary timestamp to each row in the set of rows, the assigning of the temporary timestamp comprising identifying, for each row of the set of rows, a statement sequence number assigned to a statement of the one or more statements that involves that row and the associated transaction identifier for the transaction comprising the statement; monitoring a plurality of active cursors, the plurality of active cursors comprising the cursor, the monitoring comprising determining whether a given row of the table is affected by any active cursor; and preventing a final timestamp to be associated with the given row until there are no remaining active cursors for the given row, the preventing comprising determining that none of the plurality of active cursors relates to any transaction identifiers or statement sequence numbers of the temporary timestamp for the given row. 16. The system of claim 15 , wherein the transaction has a corresponding transaction control block index that is specific to such transaction. 17. The system of claim 15 , wherein the timestamp is generated by a commit timestamp generator. 18. The system of claim 15 , wherein the transaction has a corresponding transaction control block index that is specific to such transaction.

Assignees

Inventors

Classifications

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 US9792318B2 cover?
A database upon opening each of at least one cursor for a transaction, assigns each statement forming part of a transaction a statement sequence number (SSN) involving at least one row of the database. Thereafter, temporary timestamps are assigned to the at least one row using a transaction identifier and the corresponding SSN. Further, active cursors are monitored such that a final timestamp i…
Who is the assignee on this patent?
Schreter Ivan, Lee Juchang, Park Changgyoo, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F16/2365. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 17 2017 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).