Recovering stateful read-only database sessions

US9779116B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9779116-B2
Application numberUS-201313936061-A
CountryUS
Kind codeB2
Filing dateJul 5, 2013
Priority dateSep 9, 2011
Publication dateOct 3, 2017
Grant dateOct 3, 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 process, apparatus, and computer-readable medium are provided for rebuilding a database session when a previous database session becomes unavailable and the commands previously sent for execution on the previous database session satisfy certain criteria. The process includes determining whether or not a set of commands sent by a client for execution on the previous database session is acceptable to replay based at least in part on whether or not the set of commands satisfies one or more criteria. The process further includes determining that the previous database session is unavailable due to a planned or unplanned recoverable error. In response to determining that the previous database session is unavailable, if the set of commands is acceptable for replay, the set of commands is sent for execution on a new database session to rebuild the state, which was exposed to the client from the previous database session, on the new database session. The process masks the outage from the application.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: during a first database session, maintaining, outside of the first database session, a set of commands selected from commands that were sent from a client for execution on the first database session; determining that the first database session has become unavailable; based at least in part on determining that the first database session has become unavailable, causing a session state to be rebuilt on a second database session at least in part by causing execution on the second database session of the set of commands previously sent by the client for execution on the first database session; wherein, as a result of causing the session state to be rebuilt, the session state is accessible to the client for executing commands on the second database session; wherein the method is performed by one or more computing devices. 2. The method of claim 1 , wherein maintaining the set of commands comprises determining whether the commands sent on the first database session satisfy one or more criteria. 3. The method of claim 1 , wherein maintaining the set of commands comprises purging the set of commands based at least in part on determining that at least one command, of the commands sent on the first database session, does not satisfy one or more criteria. 4. The method of claim 1 , further comprising: receiving, on the first database session, a first set of results from executing at least part of the set of commands on the first database session; receiving, on the second database session, a second set of results from executing the at least part of the set of commands on the second database session; determining that the session state was correctly rebuilt on the second database session at least in part by verifying that the first set of results matches the second set of results. 5. The method of claim 1 , further comprising: determining a first value using a procedure by inputting, to the procedure, a first set of results from executing at least part of the set of commands on the first database session, wherein the first value is smaller in size than the first set of results; determining a second value using the procedure by inputting, to the procedure, a second set of results from executing the at least part of the set of commands on the second database session, wherein the second value is smaller in size than the second set of results; determining that the session state was correctly rebuilt on the second database session at least in part by verifying that the first value matches the second value. 6. The method of claim 1 , wherein one or more commands of the set of commands are executed on the second database session against one or more past database states in which the one or more commands were previously executed on the first database session, and wherein one or more other commands of the set of commands are executed on the second database session against current database states. 7. The method of claim 1 , further comprising: receiving marked boundaries comprising begin markers at beginnings of requests and end markers at ends of the requests; and using the marked boundaries to delimit the requests to one or more server instances that process the requests. 8. The method of claim 1 , further comprising, after causing execution of the set of commands on the second database session, causing execution of one or more other commands on the second database session; wherein at least one of the one or more other commands depends on the session state that was caused to be rebuilt on the second database session. 9. The method of claim 1 , wherein the commands sent on the first database session are monitored and the set of commands are maintained by a driver logically positioned between an application and database instances corresponding to the first database session and the second database session. 10. The method of claim 1 , further comprising, in response to determining that the session state has been successfully rebuilt on the second database session, causing operation of an application that originated the set of commands to continue using the second database session without interrupting operation of the application. 11. One or more non-transitory storage media storing instructions which, when executed by one or more processors, cause during a first database session, maintaining, outside of the first database session, a set of commands selected from commands that were sent from a client for execution on the first database session; determining that the first database session has become unavailable; based at least in part on determining that the first database session has become unavailable, causing a session state to be rebuilt on a second database session at least in part by causing execution on the second database session of the set of commands previously sent by the client for execution on the first database session; wherein, as a result of causing the session state to be rebuilt, the session state is accessible to the client for executing commands on the second database session. 12. The one or more non-transitory storage media of claim 11 , wherein the instructions include instructions which, when executed by said one or more processors, cause maintaining the set of commands and which include one or more instructions which, when executed by said one or more processors, cause determining whether the commands sent on the first database session satisfy one or more criteria. 13. The one or more non-transitory storage media of claim 11 , wherein the instructions include instructions which, when executed by said one or more processors, cause maintaining the set of commands and which include one or more instructions which, when executed by said one or more processors, cause purging the set of commands based at least in part on determining that at least one command, of the commands sent on the first database session, does not satisfy one or more criteria. 14. The one or more non-transitory storage media of claim 11 , wherein the instructions include instruction, which, when executed by said one or more processors, further cause: receiving, on the first database session, a first set of results from executing at least part of the set of commands on the first database session; receiving, on the second database session, a second set of results from executing the at least part of the set of commands on the second database session; determining that the session state was correctly rebuilt on the second database session at least in part by verifying that the first set of results matches the second set of results. 15. The one or more non-transitory storage media of claim 11 , wherein the instructions include instructions, which, when executed by said one or more processors, further cause: determining a first value using a procedure by inputting, to the procedure, a first set of results from executing at least part of the set of commands on the first database session, wherein the first value is smaller in size than the first set of results; determining a second value using the procedure by inputting, to the procedure, a second set of results from executing the at least part of the set of commands on the second database session, wherein the second value is smaller in size than the second set of results; determining that the session state was correctly rebuilt on the second database session at least in part by verifying that the first value matches the second value. 16. The one or more non-transitory storage media of claim 11 , wherein one or more commands of the

Assignees

Inventors

Classifications

  • Physics · mapped topic

  • Physics · mapped topic

  • G06F16/21Primary

    Design, administration or maintenance of databases · CPC title

  • Ensuring data consistency and integrity · CPC title

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 US9779116B2 cover?
A process, apparatus, and computer-readable medium are provided for rebuilding a database session when a previous database session becomes unavailable and the commands previously sent for execution on the previous database session satisfy certain criteria. The process includes determining whether or not a set of commands sent by a client for execution on the previous database session is accepta…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F17/30289. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 03 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).