Methods and apparatus for efficiently implementing a fast-copyable database
First Claim
1. An apparatus, comprising:
- a processor; and
a memory in electronic communication with the processor, the memory storing a database table including a plurality of records, each record from the plurality of records having a compound key including a version identifier,the memory including instructions executable to cause the processor to;
generate a first virtual clone of the database table and a second virtual clone of the database table;
receive a query at the first virtual clone, the query not including a version identifier associated with the first virtual clone;
modify the query, based on receiving the query at the first virtual clone, by adding the version identifier associated with the first virtual clone to the query to define a modified query;
query the database table using the modified query to generate a response including a set of records from the plurality of records based on;
(1) each record from the set of records satisfying the query; and
(2) each record from the set of records having a version identifier associated with an ancestral path of the version identifier associated with the first virtual clone;
send the response including the set of records as a response to the query;
the compound key for each record from the plurality of records including the version identifier for that compound key and a data portion, the plurality of records configured such that only one of;
(1) a compound key including a value of the data portion and the version identifier associated with the first virtual clone;
or (2) a compound key including the value of the data portion and the version identifier associated with the second virtual clone, is present in the database table at any given time.
2 Assignments
0 Petitions
Accused Products
Abstract
A fast-copyable database apparatus includes a processor and a memory in electronic communication with the processor. The memory stores a database table with multiple records each having a compound key including a version identifier. The memory also stores instructions executable to cause the processor to generate a first virtual clone of the database table and a second virtual clone of the database table, receive a query at the first virtual clone, and modify the query so that it includes a version identifier of the first virtual clone. The processor can query the database table using the modified query to generate a response based in part on each record from the set of records having a version identifier associated with an ancestral path of the version identifier of the first virtual clone, and send the response. Each compound key includes a version identifier and a data portion.
92 Citations
21 Claims
-
1. An apparatus, comprising:
-
a processor; and a memory in electronic communication with the processor, the memory storing a database table including a plurality of records, each record from the plurality of records having a compound key including a version identifier, the memory including instructions executable to cause the processor to; generate a first virtual clone of the database table and a second virtual clone of the database table; receive a query at the first virtual clone, the query not including a version identifier associated with the first virtual clone; modify the query, based on receiving the query at the first virtual clone, by adding the version identifier associated with the first virtual clone to the query to define a modified query; query the database table using the modified query to generate a response including a set of records from the plurality of records based on;
(1) each record from the set of records satisfying the query; and
(2) each record from the set of records having a version identifier associated with an ancestral path of the version identifier associated with the first virtual clone;send the response including the set of records as a response to the query; the compound key for each record from the plurality of records including the version identifier for that compound key and a data portion, the plurality of records configured such that only one of;
(1) a compound key including a value of the data portion and the version identifier associated with the first virtual clone;
or (2) a compound key including the value of the data portion and the version identifier associated with the second virtual clone, is present in the database table at any given time. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, comprising:
-
generating, via a processor, a first virtual clone of a database table and a second virtual clone of the database table, the database table including a plurality of records, each record from the plurality of records having a compound key including a version identifier; receiving, via the processor, a query at the first virtual clone, the query not including a version identifier associated with the first virtual clone; modifying the query, via the processor and based on receiving the query at the first virtual clone, by adding the version identifier associated with the first virtual clone to the query to define a modified query; querying, via the processor, the database table using the modified query to generate a response including a set of records from the plurality of records based on;
(1) each record from the set of records satisfying the query; and
(2) each record from the set of records having a version identifier associated with an ancestral path of the version identifier associated with the first virtual clone; andsending, via the processor, the response including the set of records as a response to the query, the compound key for each record from the plurality of records including the version identifier for that compound key and a data portion, the plurality of records configured such that only one of;
(1) a compound key including a value of the data portion and the version identifier associated with the first virtual clone;
or (2) a compound key including the value of the data portion and the version identifier associated with the second virtual clone, is present in the database table at any given time. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory, tangible processor-readable medium comprising processor-executable instructions for:
-
generating, via a processor, a first virtual clone of a database table and a second virtual clone of the database table, the database table including a plurality of records, each record from the plurality of records having a compound key including a version identifier; receiving, via the processor, a query at the first virtual clone, the query not including a version identifier associated with the first virtual clone; modifying the query, via the processor and based on receiving the query at the first virtual clone, by adding the version identifier associated with the first virtual clone to the query to define a modified query; querying, via the processor, the database table using the modified query to generate a response including a set of records from the plurality of records based on;
(1) each record from the set of records satisfying the query; and
(2) each record from the set of records having a version identifier associated with an ancestral path of the version identifier associated with the first virtual clone; andsending, via the processor, the response including the set of records as a response to the query, the compound key for each record from the plurality of records including the version identifier for that compound key and a data portion, the plurality of records configured such that only one of;
(1) a compound key including a value of the data portion and the version identifier associated with the first virtual clone;
or (2) a compound key including the value of the data portion and the version identifier associated with the second virtual clone, is present in the database table at any given time. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification