Patent ID: 11947489
Assignee: ROBIN SYSTEMS, INC.
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 0:
1. A system comprising:
a plurality of storage nodes;
a network, the plurality of storage nodes in data communication with the plurality of storage nodes;
a storage manager in data communication with the network, the storage manager programmed to
transmit, to one or more storage nodes of the plurality of storage nodes, a plurality of new snapshot instructions with respect to a storage volume, each new snapshot instruction being one of a new principal snapshot instruction and a new clone instruction and having a corresponding preceding snapshot node in a hierarchical representation of the storage volume;
for each new snapshot instruction of the plurality of new snapshot instructions, add a new snapshot node as a descendent to the corresponding preceding snapshot node of the each new snapshot instruction in the hierarchical representation, the new snapshot node having a clone classification if the each new snapshot instruction was a new clone instruction,

wherein the plurality of storage nodes are programmed to, in response to the each new snapshot instruction:
allocate a new segment;
create an entry in a segment table mapping the new segment to a new snapshot; and
write data subsequent write requests for the storage volume referencing the new snapshot to the segment; and

wherein the storage manager is further programmed to:
receive a roll back instruction to a selected snapshot for the storage volume having a corresponding selected snapshot node in the hierarchical representation; and
in response to the roll back instruction, (i) for each first snapshot node in the hierarchical representation that is a descendent of the selected snapshot and does not have a descendent having the clone classification, instruct a storage node of the plurality of storage nodes storing a snapshot corresponding to the each first snapshot node to free all segments mapped to the snapshot corresponding to the each first snapshot node and (ii) for each second snapshot node in the hierarchical representation that is a descendent of the selected snapshot node and has a descendent having the clone classification, do not instruct the storage node of the plurality of storage nodes storing a snapshot corresponding to the each second snapshot node to free all segments mapped to the snapshot corresponding to the each second snapshot node.