Methods, systems, and computer-readable media are disclosed for transitioning clones and clone data access maps in response to node or media failure without blocking queries. In a system, a data request interface is configured to receive a query to access data at a storage device. Data management logic is configured to access clone state information of a plurality of clones including clones in a static state and clones in a transitory state. The data management logic is further configured to process the query to access the data according to the dynamic clone data access map, with functional correctness maintained.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method, comprising: providing access to a plurality of data fragments, wherein each of the plurality of data fragments includes a plurality of clones, wherein the plurality of clones includes a primary clone, at least one secondary clone, and at least one transitory clone; receiving a query for a data set, wherein the data set is associated with multiple versions of clone data maps including a first clone data map and a second clone data map, wherein both the first clone data map and the second clone data map are configured to map the data set to at least two different clones of the plurality of clones, and determining from a delta corresponding to differences between the first clone data map and the second clone data map whether the query using the second clone data map can proceed while existing queries using the first clone data map remain in use.
2. The method of claim 1 , wherein the first clone data map includes an old clone data map, and wherein the second clone data map includes a new clone data map.
3. The method of claim 1 , wherein: the first clone data map includes a first clone update identifier, wherein the first clone update identifier indicates a status of the first clone data map responsive to a change to one or more of the primary clone and the secondary clone; and the second clone data map includes a second clone update identifier, wherein the second clone update identifier indicates a status of the second clone data map responsive to a change to one or more of the primary clone and the secondary clone; and a currency status of the first clone data map with respect to the second clone data map is determined by comparing the first clone update identifier to the second clone update identifier.
4. The method of claim 3 , wherein when the first clone update identifier differs from the second clone update identifier, further comprising determining whether the first clone data map is equivalent to the second clone data map to enable a specified operation requested in the query.
5. The method of claim 3 , wherein the query is operative to request a specified version of the data set and wherein at least one of the first clone update identifier and the second clone update identifier is evaluated to determine whether the specified version of the data set is available.
6. The method of claim 5 , further comprising determining that the first clone data map is read-access equivalent to enable the query to read the primary clone or the secondary clone.
7. The method of claim 6 , further comprising determining that the first clone data map is update-access equivalent to enable the query to write to the primary clone or to the secondary clone.
8. The method of claim 3 , further comprising designating an access mode of one or more of the first clone data map and the second clone data map as being in one of: a data-read access mode, permitting reading of the data set from the primary clone and the secondary clone; and a data-update access mode, permitting reading of the data set from the primary clone and the secondary clone and permitting writing of the data set to the data set of the primary clone, the secondary clone, and to the transitory clone.
9. The method of claim 3 , further comprising providing a clone data map update mode, to permit access to modify contents of the first clone data map and the second clone data map.
10. The method of claim 9 , wherein accessing the first clone data map and the second clone data map via the clone data map update mode includes transitioning one or more of the primary clone and the secondary clone from a current state to a next state.
11. The method of claim 9 , further comprising holding the query when a lock is placed on the first clone data map and the second clone data map while the first clone data map and the second clone data map are subject to the clone data map update mode, wherein the lock includes one of a read lock, an update lock, and a delete lock.
12. The method of claim 3 , further comprising presenting a clone access ticket that represents a unified status of the plurality of data fragments.
13. The method of claim 3 , wherein the first clone data map and the second clone data map include one of: an up-to-date clone data map and an out-of-date clone data map; an up-to-date clone data map and an out-of-date clone data map associated with a delta describing changes between the out-of-date clone data map and the up-to-date clone data map, wherein application of the delta to the out-of-date clone data map renders the out-of-date clone data map equal to the up-to-date clone data map; and copies of an up-to-date clone data map.
14. A system, comprising: a data request interface configured to receive a query to access data at a storage device; and data management logic configured to access clone state information of a plurality of clones including a first clone in a static state and a second clone in a transitory state and configured to split data associated with the first clone in the static state into paired clones, wherein the paired clones transition to an in-refresh state while a portion of the data associated with the first clone is written to the paired clones, wherein the data management logic is further configured to process the query to access the data when the data is associated with the first clone in the static state, but to avoid access to the data when the data is associated with the second clone in the transitory state.
15. The system of claim 14 , wherein the static state is one of: a primary state, wherein the first clone in the primary state supports the data in an up-to-date state permitting the data to be written to or read from the first clone; and a secondary state, wherein the first clone in the secondary state supports the data in an up-to-date state permitting the data to be written to or read from the first clone when the first clone in the primary state is unavailable.
16. The system of claim 15 , wherein the transitory state is one of: an off-line state, wherein the second clone in the off-line state supported the data in an up-to-date state before access to the second clone was lost as a result of a failure; a stale state, wherein the second clone in the stale state is regarded as out-of-date; a dropping state, wherein the second clone in the dropping state is to be dropped, indicating that queries are to no longer access the second clone; an in-refresh state, wherein the second clone in the in-refresh state is regarded as potentially out-of-date and the query can access the second clone to update the data; a new state, wherein the second clone in the new state is made available as a new clone available for storage of new data; and a nonexistent state, wherein the second clone in the nonexistent state is not considered to be available.
17. The system of claim 14 , wherein the second clone in the transitory state transitions to a different state in a transition including one or more atomic transitions, the atomic transitions including one of transitioning the second clone: from the new state to the stale state; from the new state to the in-refresh state; from the dropping state to the new state; from the dropping state to the in-refresh state; from the dropping state to the nonexistent state; from the stale state to the nonexistent state; from the stale state to the in-refresh state; from the in-refresh state to the dropping state; from the in-refresh state to the stale state; from the in-refresh state to the secondary state; and from the off-line state to the secondary state.
18. The system of claim 17 , wherein the first clone in the static state transitions to a different state in a transition including at least one of the one or more atomic transitions, the atomic transitions further including transitioning the first clone: from the primary state to the secondary state when the second clone transitions from the secondary state to the primary state; from the primary state to the secondary state when the second clone transitions from the in-refresh state to the primary state; from the primary state to the stale state when the second clone transitions from the secondary state to the primary state; from the primary state to the stale state when the second clone transitions from the in-refresh state to the primary state; from the primary state to the dropping state when the second clone transitions from the secondary state to the primary state; from the primary state to the dropping state when the second clone transitions from the in-refresh state to the primary state; from the secondary state to the dropping state; from the secondary state to the stale state; from the secondary state to the in-refresh state; and from the secondary state to the off-line state.
19. The system of claim 14 , further comprising merging the portion of the data split between the paired clones into the first clone, wherein the first clone transitions to the in-refresh state while the portion of the data is written to the first clone.
20. A computer-readable storage device having computer-executable components, the computer-executable components comprising: a clone data map interface operative to detect a clone data map change, the clone data map change to modify a clone data map having a first version of clone data to be modified to include a second version of clone data, wherein at least one data item in the second version of clone data is different from a corresponding data item in the first version of clone data; a data request interface operative to detect a database query; and database management logic operative to selectively execute a database access operation in response to the database query based on an evaluation of the clone data map change.
21. The computer-readable storage device of claim 20 , wherein the database management logic is operative to execute the database access operation prior to a completion of the clone data map change, such that the database access operation is performed using the first version of the clone data.
22. The computer-readable storage device of claim 21 , wherein the database management logic is further operative to permit concurrent requests to access the first version of clone data and the second version of clone data.
23. The computer-readable storage device of claim 20 , wherein when the first version of clone data and the second version of clone data are not equivalent with respect to a specified operation requested in the database query, the specified operation in the database query is completed after waiting for a clone data map transition to complete, wherein the specified operation accesses the second version of clone data in response to the database query after the clone data map transition is complete.
24. The computer-readable storage device of claim 23 , wherein the waiting may include one of: an interruptive state configured to signal other transactions to release locks that block completion of the clone data map change; and a friendly state configured to passively wait until other transactions release locks that block completion of the clone data map change.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 25, 2008
March 6, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.