Database cache survivability across database failures

US9251003B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9251003-B1
Application numberUS-201313967185-A
CountryUS
Kind codeB1
Filing dateAug 14, 2013
Priority dateAug 14, 2013
Publication dateFeb 2, 2016
Grant dateFeb 2, 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.

A database system may implement database cache survivability across database failures. In various embodiments, a database cache may be maintained independent of a failure of a database. A database cache may be maintained in a non-volatile memory device or maintained in a shared memory segment of system memory. Upon recovery from a database failure, a recovery point may be determined that indicates a consistent state of the database. Cache entries of the database cache inconsistent with the consistent state of the database may be invalidated, and the database cache may be made available for access requests directed toward the database. Valid cache entries from before the database failure may be made available without accessing a back-end data store for the database.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a plurality of nodes implementing a distributed database; wherein at least one node is configured to implement: database storage, configured to persistently maintain a plurality of data pages for the distributed database; wherein at least one other node is configured to implement: a database engine, configured to process one or more access requests directed toward the distributed database; a database cache, configured to maintain a plurality of cache entries for processing one or more access requests, wherein contents of the database cache are preserved irrespective of a failure of the database engine, wherein each of the plurality of cache entries comprises a version of different ones of the plurality of data pages maintained at the database storage; wherein the database engine is configured to: upon recovery from a failure of the database engine: determine a recovery point for the distributed database, wherein the recovery point indicates a consistent state for the distributed database; invalidate one or more entries of the database cache that are inconsistent with the plurality of data pages persistently maintained in the database storage at the determined recovery point; and make the database cache available for access requests directed toward the distributed database, wherein one or more valid cache entries of the database cache are retained from before the failure of the database engine. 2. The system of claim 1 , wherein the database cache is implemented as part of a non-volatile memory device configured to preserve data irrespective of a power failure, and wherein the failure of the database engine is a power failure. 3. The system of claim 2 , wherein the non-volatile memory device is: a non-volatile random access memory device; a ferroelectric random access memory device; a magnetic random access memory device; a resistive random access memory device; or a phase-change random access memory device. 4. The system of claim 1 , wherein the database cache is implemented in a shared segment of system memory that is accessible to one or more processes performing on the at least one node including the database engine, wherein the shared segment of system memory is configured to preserve data irrespective of an individual failure of the one or more processes including the database engine. 5. The system of claim 1 , wherein the at least one node implementing the database storage is part of a larger collection of nodes of the plurality of nodes implementing a distributed storage system maintaining the plurality of data pages for the distributed database, wherein the distributed storage system is configured to maintain a consistent state of the plurality of data pages; wherein the at least one other node is a database engine head node configured to process the one or more access requests; wherein, to determine a recovery point for the distributed database, the database engine head node is configured to: request the consistent state of the plurality of data pages from the distributed storage system; and evaluate the consistent state to identify the recovery point for the distributed database. 6. The system of claim 1 , wherein the wherein the one or more valid cache entries of the database cache retained from before the failure of the database engine are made available for access requests directed toward the distributed database without accessing database storage. 7. A method, comprising: performing, by one or more computing devices: maintaining a database cache independent of a failure of a database, wherein the database cache comprises a plurality of cache entries for servicing access requests, wherein each of the plurality of cache entries comprises a version of data maintained for the database at a back-end data store; upon recovery from a database failure: determining a recovery point for the database, wherein the recovery point indicates a consistent state for the database; invalidating one or more entries of the database cache that are inconsistent with the database at the determined recovery point; and making the database cache available for access requests directed toward the database, wherein one or more valid cache entries of the database cache are retained from before the database failure. 8. The method of claim 7 , wherein the database failure is a failure of the one or more computing devices, and wherein said maintaining the database cache independent of a failure of the database comprises storing the database cache on a non-volatile memory device that persists data irrespective of a failure of the one or more computing devices. 9. The method of claim 8 , further comprising: maintaining a copy of the database cache in system memory; wherein said maintaining the database cache independent of a failure of the database comprises updating cache entries for the database cache stored on the non-volatile memory device to correspond to updates to cache entries performed at the copy of the database cache in system memory. 10. The method of claim 7 , wherein said maintaining the database cache independent of a failure of the database comprises storing the database cache in a shared segment of system memory, wherein the shared segment of the system memory is accessible to one or more processes performing on the one or more computing devices including a database engine process, wherein the shared segment of the system memory maintains data irrespective of an individual failure of the one or more processes, and wherein the database failure is a failure of the database engine process. 11. The method of claim 7 , wherein one or more log records indicating one or more updates to the database relative to a previous state of the database are maintained, and wherein said determining the recovery point for the database comprises scanning the one or more log records to locate a consistency point for the database in order to determine a consistent state for the database. 12. The method of claim 7 , wherein said invalidating the one or more entries of the database cache that are inconsistent with the database at the determined recovery point is performed in response to an access request for the one or more entries of the database cache. 13. The method of claim 7 , wherein the one or more computing devices implement a node of a plurality of nodes that together implement a distributed database service, wherein the node of the plurality of nodes is a database engine head node configured to process one or more access requests directed to the distributed database service, wherein each of the plurality of cache entries of the database cache comprises a version of a respective page of data stored among other nodes of the plurality of nodes implementing a distributed storage system for the distributed database service, and wherein the one or more valid cache entries of the database cache retained from before the database failure are made available for access requests directed toward the distributed database service without accessing the distributed storage system. 14. A non-transitory, computer-readable storage medium, storing program instructions that when executed by one or more computing devices implement a database engine process that implements: maintaining a database cache independent of a failure of a database, wherein the database cache comprises a plurality of cache entries for servicing access requests, wherein each of the plurality of cache entries comprises a version of data maintained for the database at a back-end data store; upon recovery from a database fai

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 US9251003B1 cover?
A database system may implement database cache survivability across database failures. In various embodiments, a database cache may be maintained independent of a failure of a database. A database cache may be maintained in a non-volatile memory device or maintained in a shared memory segment of system memory. Upon recovery from a database failure, a recovery point may be determined that indica…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/1438. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 02 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).