Systems and methods for instantaneous cloning
First Claim
Patent Images
1. A method comprising:
- storing a dirty writeable data object in a non-persistent memory of a storage system;
allocating a data pointer to the dirty writable data object without having to wait until the dirty writeable data object is saved to a persistent storage; and
cloning the dirty writeable data object in the non-persistent memory without having to wait until the dirty writeable data object is saved to the persistent storage and without having to pause incoming write operations on the dirty writeable data object during said cloning.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques to clone a writeable data object in non-persistent memory are disclosed. The writeable data object is stored in a storage structure in non-persistent memory that corresponds to a portion of a persistent storage. The techniques enable cloning of the writeable data object without having to wait until the writeable data object is saved to the persistent storage and without needing to quiesce incoming operations (e.g., reads and writes) to the writeable data object.
-
Citations
20 Claims
-
1. A method comprising:
-
storing a dirty writeable data object in a non-persistent memory of a storage system; allocating a data pointer to the dirty writable data object without having to wait until the dirty writeable data object is saved to a persistent storage; and cloning the dirty writeable data object in the non-persistent memory without having to wait until the dirty writeable data object is saved to the persistent storage and without having to pause incoming write operations on the dirty writeable data object during said cloning. - View Dependent Claims (2, 3)
-
-
4. A method comprising:
-
receiving a client request for a write operation at a storage system to modify a first dirty portion of an in-memory version of a data object represented by a first reference pointer tree; marking a node in the first reference pointer tree as a dirty node, wherein the dirty node represents the first dirty portion; allocating a replacement pointer for the dirty node in response to receiving the client request without having to wait until the in-memory version of the data object is saved to persistent storage; and creating a first snapshot of the data object, the first snapshot represented by a second reference pointer tree, the second reference pointer tree having the replacement pointer as a node. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A storage server system comprising:
-
a persistent storage device including a persistent storage image of a data object; a processor configured to store, in a non-persistent memory, an in-memory version of the data object represented by a first reference pointer tree, wherein a first dirty portion of the in-memory version is different from the persistent storage image and the first dirty portion is represented by a dirty node in the first reference pointer tree; a front-end allocation module configured to allocate a replacement pointer for the dirty node in response to a client request to make the in-memory version different from the persistent storage image without having to wait until the in-memory version of the data object is saved to persistent storage; and a snapshot module configured to create a first snapshot of the data object represented by a second reference pointer tree having the replacement pointer as a node in the second reference pointer tree. - View Dependent Claims (19, 20)
-
Specification