Systems, methods, and apparatuses for fixing logical or physical corruption in databases using immutable LSM trees

US9684570B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9684570-B1
Application numberUS-201314135564-A
CountryUS
Kind codeB1
Filing dateDec 19, 2013
Priority dateDec 19, 2012
Publication dateJun 20, 2017
Grant dateJun 20, 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.

In accordance with disclosed embodiments, there are provided methods, systems, and apparatuses for fixing logical or physical corruption in databases using immutable LSM trees including, for example, means for storing records in a LSM database at the host organization; processing transactions to the LSM database by writing the transactions into immutable extents for subsequent merge into the LSM database; recording a history of the transactions in a log; identifying corruption in at least one of the records of the LSM database represented within the immutable extents prior to merge of the immutable extents to the LSM database; and correcting the identified corruption to the at least one of the records of the LSM database based at least in part on the recorded history of the transactions in the log during live operation of the LSM database. Other related embodiments are disclosed.

First claim

Opening claim text (preview).

What is claimed is: 1. A method in a host organization having a processor and a memory therein, wherein the method comprises: storing records in a LSM database at the host organization; processing transactions to the LSM database by writing the transactions into immutable extents for subsequent merge into the LSM database; recording a history of the transactions in a log; identifying corruption in at least one of the records of the LSM database represented within the immutable extents prior to merge of the immutable extents to the LSM database; and correcting the identified corruption to the at least one of the records of the LSM database based at least in part on the recorded history of the transactions in the log during live operation of the LSM database. 2. The method of claim 1 , wherein correcting the identified corruption to the at least one of the records of the LSM database comprises at least one of: restoring a modified record to a prior state; deleting an erroneously inserted record; restoring an erroneously deleted record; and changing one or more field values of an erroneously modified record. 3. The method of claim 1 , wherein correcting the identified corruption to the at least one of the records of the LSM database comprises: reading a stored record from the LSM database having a corresponding transaction pending merge processing within the immutable extents; reading compensating transaction data from the log; generating a compensating transaction based on the compensating transaction data from the log and the stored record from the LSM database; and sending the compensating transaction to the LSM database. 4. The method of claim 3 , wherein sending the compensating transaction to the LSM database comprises: issuing the compensating transaction to the LSM database as a new transaction, wherein the new transaction is enqueued within the immutable extent of the LSM database for subsequent merge processing; and wherein the subsequent merge processing counteracts the corresponding transaction pending merge processing within the immutable extents for the stored record read from the LSM database. 5. The method of claim 3 , wherein sending the compensating transaction to the LSM database comprises: generating a replacement extent by replaying a plurality of transactions from the log for one of the immutable extents of the LSM database awaiting subsequent merge and updating the identified corruption in the replacement extent using the compensating transaction; and replacing the one immutable extent for which the plurality of transactions were replayed with the replacement extent. 6. The method of claim 1 , wherein identifying corruption in at least one of the records of the LSM database comprises: triggering error messages to users for any queries to the LSM database having the identified corruption within the query claim scope; and maintaining availability and accessibility to the LSM database to database queries. 7. The method of claim 1 , further comprising: presenting a historical records view to a user interface based on the log, the historical records view displaying one or more records updated during a time range configurable at the user interface. 8. The method of claim 7 , further comprising: receiving user input selecting one or more of the records updated during the time range; and receiving user input specifying corruption edits to the one or more records. 9. The method of claim 8 , wherein the user input specifying corruption edits to the one or more records comprises user input specifying one or more of: a selected record erroneously inserted into the LSM database to be deleted from the LSM database via a compensating delete transaction; a selected record erroneously deleted from the LSM database to be restored to the LSM database via a compensating insert transaction; a selected record erroneously modified within the LSM database to be reverted to a prior state via a compensating update transaction; and a selected record erroneously modified within the LSM database to be updated to a new state via a compensating update transaction. 10. The method of claim 7 , further comprising: presenting a preview of other records impacted by a proposed compensating transaction to the user interface prior to proceeding with the proposed compensating transaction. 11. The method of claim 1 , further comprising: receiving a selection from the user interface specifying one of the displayed records updated during the time range; presenting a record editor to the user interface having the record corresponding to the selection populated therein; receiving user input to the fields of the record corresponding to the selection from the record editor at the user interface; and generating a compensating transaction for the record corresponding to the selection using the user input to the fields of the record. 12. The method of claim 1 : wherein the host organization implements the method via computing architecture of the host organization including at least the processor and the memory; wherein a user interface operates at a user client device remote from the host organization and communicatively interfaces with the host organization via a public Internet; and wherein the host organization operates as a cloud based service provider to the user client device. 13. The method of claim 11 , wherein the host organization provides a multi-tenant database system via the LSM database and the computing architecture of the host organization, the multi-tenant database system having elements of hardware and software that are shared by a plurality of separate and distinct customer organizations, each of the separate and distinct customer organizations being remotely located from the host organization. 14. The method of claim 1 , wherein identifying corruption in at least one of the records of the LSM database comprises one of: identifying corruption responsive to a physical corruption error triggered by the LSM database; and identifying corruption responsive user input at a corruption user interface, the user input indicating a selected record is to be corrected via a compensating transaction. 15. Non-transitory computer readable storage media having instructions stored thereon that, when executed by a processor in a host organization, the instructions cause the host organization to perform operations comprising: storing records in a LSM database at the host organization; processing transactions to the LSM database by writing the transactions into immutable extents for subsequent merge into the LSM database; recording a history of the transactions in a log; identifying corruption in at least one of the records of the LSM database represented within the immutable extents prior to merge of the immutable extents to the LSM database; and correcting the identified corruption to the at least one of the records of the LSM database based at least in part on the recorded history of the transactions in the log during live operation of the LSM database. 16. The non-transitory computer readable storage media of claim 15 , wherein correcting the identified corruption to the at least one of the records of the LSM database comprises at least one of: restoring a modified record to a prior state; deleting an erroneously inserted record; restoring an erroneously deleted record; and changing one or more field values of an erroneously modified record. 17. The non-transitory computer readable storage media of claim 15 , wherein correcting th

Assignees

Inventors

Classifications

  • Database-specific techniques · CPC title

  • in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

  • in transactions (updating of structured data in databases G06F16/23) · CPC title

  • Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40) · CPC title

  • involving logging of persistent data for recovery · 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 US9684570B1 cover?
In accordance with disclosed embodiments, there are provided methods, systems, and apparatuses for fixing logical or physical corruption in databases using immutable LSM trees including, for example, means for storing records in a LSM database at the host organization; processing transactions to the LSM database by writing the transactions into immutable extents for subsequent merge into the LS…
Who is the assignee on this patent?
Wilding Mark, Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/1474. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 20 2017 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).