Techniques for efficient migration of key-value data
AssigneeOracle International Corporation
InventorMing Fan
Life of this patent
Estimating the term…
Abstract
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.
Claims19
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.
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.
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.
Dependencies are inferred from the claim text.