Techniques for efficient migration of key-value data

US12001408B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12001408-B2
Application numberUS-202016922921-A
CountryUS
Kind codeB2
Filing dateJul 7, 2020
Priority dateApr 29, 2020
Publication dateJun 4, 2024
Grant dateJun 4, 2024

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.

The present disclosure relates to a system and techniques for enabling migration of data between data storage devices without disruption to an application that relies upon the data. In some embodiments, this may involve the insertion of a redirect command into a mutation log. Upon receiving a transaction that relates to a data value, a transactor host may access the mutation log. Upon detecting the redirect command, the transactor host may generate a new mutation log in a second memory location which includes a reference to the mutation log. New mutations generated by the mutation log are then written to the new mutation log.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: logging, by a transactor host, a plurality of mutations of a data value in corresponding rows of a first mutation log associated with the data value, wherein the first mutation log is located at a first memory location; determining, by the transactor host, that subsequent mutations of the data value are to be stored in another mutation log different than the first mutation log; generating, by the transactor host, a redirect command comprising an indication of a second mutation log; storing, by the transactor host, the redirect command in a first row of the first mutation log; accessing, by the transactor host, the first mutation log; detecting, by the transactor host, the redirect command in the first row of the first mutation log; responsive to detecting the redirect command in the first row of the first mutation log: generating, by the transactor host, the second mutation log associated with the data value in a second memory location in accordance with the redirect command; generating, by the transactor host, at least one mutation of the data value; and updating, by the transactor host, the second mutation log associated with the data value in the second memory location to include, in a second row of the second mutation log, the at least one mutation of the data value. 2. The method of claim 1 , wherein the second memory location is indicated in the first row of the first mutation log. 3. The method of claim 1 , wherein at least one of the first mutation log or the second mutation log comprises a database table. 4. The method of claim 3 , wherein the database table comprises at least a first column having a logical sequence number and a second column having a payload. 5. The method of claim 4 , wherein the logical sequence number comprises a monotonically increasing number used to associate a mutation with a data store state. 6. The method of claim 1 , further comprising: updating a mapping of mutation logs to data values to indicate a relationship between the data value and the second mutation log, wherein the relationship comprises the at least one mutation of the data value being in the second row of the second mutation log. 7. The method of claim 1 , further comprising: determining a current value for the data value from a set of one or more second rows of the first mutation log, wherein the set of one or more second rows is located adjacent to the first row. 8. The method of claim 7 , wherein the at least one mutation of the data value is generated based on the current value. 9. A computing device comprising: at least one processor; and at least one memory device comprising computer-executable instructions that, when executed by the at least one processor, cause the at least one processor to perform operations, comprising: logging a plurality of mutations of a data value in corresponding rows of a first mutation loci associated with the data value, wherein the first mutation log is located at a first memory location; determining that subsequent mutations of the data value are to be stored in another mutation loci different than the first mutation log; generating a redirect command comprising an indication of a second mutation loci; storing the redirect command in a first row of the first mutation log; accessing the first mutation log; detecting the redirect command in the first row of the first mutation log; responsive to detecting the redirect command in the first row of the first mutation log: generating the second mutation log associated with the data value in a second memory location in accordance with the redirect command; generating at least one mutation of the data value; and updating the second mutation log associated with the data value in the second memory location to include, in a second row of the second mutation log, the at least one mutation of the data value. 10. The computing device of claim 9 , wherein generating the at least one mutation of the data value comprises: determining one or more operations to be performed on the data value; obtaining a current value of the data value; and performing the determined one or more operations on the current value. 11. The computing device of claim 9 , wherein the operations further comprise: generating a data store snapshot comprising the at least one mutation of the data value; and moving the first mutation log to a cold storage memory location; and repurposing at least some memory resources, of the first memory location, the at least some memory resources having been previously utilized by the first mutation log prior to moving the first mutation log to the cold storage memory location. 12. The computing device of claim 9 , wherein generating the at least one mutation of the data value comprises: writing the at least one mutation of the data value in a cache memory of the computing device; and wherein updating the second mutation log associated with the data value in the second memory location comprises: moving the at least one mutation of the data value from the cache memory to the second row of the second mutation log. 13. A non-transitory computer readable medium comprising computer-executable instructions that, when executed by at least one processor, cause the at least one processor to perform operations, comprising: logging a plurality of mutations of a data value in corresponding rows of a first mutation loci associated with the data value, wherein the first mutation log is located at a first memory location; determining that subsequent mutations of the data value are to be stored in another mutation loci different than the first mutation log; generating a redirect command comprising an indication of a second mutation log; storing the redirect command in a first row of the first mutation log; accessing the first mutation log; detecting the redirect command in the first row of the first mutation log; responsive to detecting the redirect command in the first row of the first mutation log: generating the second mutation log associated with the data value in a second memory location in accordance with the redirect command; generating at least one mutation of the data value; and updating the second mutation log associated with the data value in the second memory location to include, in a second row of the second mutation log, the at least one mutation of the data value. 14. The computer readable medium of claim 13 , wherein the second memory location comprises a portion of memory within a persistent memory storage device. 15. The computer readable medium of claim 13 , wherein the operations further comprise: initializing the second mutation log associated with the data value at least by inserting, in the first row of the second mutation log, an indication that the second mutation log continues from the first mutation log at the first memory location. 16. The computer readable medium of claim 13 , wherein the operations further comprise: responsive to detecting the redirect command in the first row of the first mutation log, setting the first mutation log to read-only. 17. The computer readable medium of claim 13 , wherein the first mutation log comprises a plurality of rows including the first row and a second row adjacent to the first row, wherein the second row comprises a prior mutation of the data value generated prior to the redirect command having been added to the first row. 18. The computer readable medium of claim 16 , wherein the operations further comprise: pri

Assignees

Inventors

Classifications

  • G06F16/214Primary

    Database migration support · CPC title

  • Concurrency control, e.g. optimistic or pessimistic approaches · CPC title

  • Distributed file systems · CPC title

  • Transactional file systems · CPC title

  • Tablespace storage structures; Management thereof · 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 US12001408B2 cover?
The present disclosure relates to a system and techniques for enabling migration of data between data storage devices without disruption to an application that relies upon the data. In some embodiments, this may involve the insertion of a redirect command into a mutation log. Upon receiving a transaction that relates to a data value, a transactor host may access the mutation log. Upon detecting…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F16/214. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 04 2024 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).