Concurrent access to data during replay of a transaction log
US-8977898-B1 · Mar 10, 2015 · US
US9684570B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9684570-B1 |
| Application number | US-201314135564-A |
| Country | US |
| Kind code | B1 |
| Filing date | Dec 19, 2013 |
| Priority date | Dec 19, 2012 |
| Publication date | Jun 20, 2017 |
| Grant date | Jun 20, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.