IP Library Granted Patent US 10,474,654
Granted Patent B2
US 10,474,654 · App. 15/084,399 · Granted Nov 12, 2019

Structural data transfer over a network

Inventors: Jeremy Fitzhardinge (San Francisco, CA); Kishore Udayashankar (Milpitas, CA)
Assignee: STORAGECRAFT TECHNOLOGY CORPORATION
G06F16/2246G06F16/16G06F16/185G06F16/21G06F16/289H04L67/1095H04L67/1097
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,474,654
App. No.
15/084,399
Granted
Nov 12, 2019
Kind
B2
Abstract

The methods and systems for transferring structural data over a network are provided. An example method includes providing storage operable to store a plurality of objects. The objects of the plurality of objects are immutable and include a data object or a metadata object including a list of references to further objects. The plurality of objects includes at least one root associated with a creation or an addition to the plurality of objects. The method also includes providing a further storage communicatively coupled with the storage via a network and configured to store a copy of the plurality of objects. The method includes determining a presence of a difference between the plurality of the objects and the copy. In response to the determination, the method transfers at least one object associated with the difference from the storage to the further storage.

Claims (54)

1. A computer-implemented method for transferring structural data over a network, the method comprising:

providing a first storage operable to store a plurality of objects, wherein:

each object of the plurality of objects is immutable and includes at least one of the following: a data object or a metadata object including at least a list of references to one or more of the following: at least one further data object or at least one further metadata object; and

the plurality of objects includes at least one root object associated with at least one of the following: creation of the plurality of objects or addition of at least one new object to the plurality of objects;

providing a second storage communicatively coupled with the first storage via a network, the second storage being configured to store at least a copy of the plurality of objects;

determining whether there is a new root object present in the plurality of objects that is absent from the copy, the presence of the new root object in the plurality of objects that is absent from the copy indicating that at least one object has been added to the plurality of objects that has not yet been added to the copy; and

in response to the determining that there is a new root object present in the plurality of objects that is absent from the copy, transferring the new root object and the at least one object from the first storage to the second storage.

2. The method of claim 1 , further comprising adding the new root object and the at least one object to the copy.

3. The method of claim 1 , further comprising, prior to transferring the at least one object:

determining that the at least one object refers to a child object;

determining whether the child object is absent from the copy; and

if the child object is absent from the copy, transferring the child object from the first storage to the second storage.

4. The method of claim 1 , further comprising:

determining that the transferring of the at least one object has started; and

in response to the determining that the transferring of the at least one object has started, protecting objects of the plurality of the objects from being deleted.

5. The method of claim 4 , further comprising:

determining that the transferring of the at least one object has finished; and

in response to the determining that the transferring of the at least one object has finished, removing the protection.

6. The method of claim 1 , wherein the second storage is further configured to store a B-tree for tracking of objects of the plurality of objects to be transferred.

7. The method of claim 6 , further comprising:

storing to the B-tree a unique identifier associated with the at least one object prior to the transferring of the at least one object; and

deleting from the B-tree the unique identifier after the transferring of the at least one object.

8. The method of claim 1 , wherein the first storage includes a first ring and the second storage includes a second ring.

9. A system for transferring structural data over a network, the system comprising:

at least one processor; and

a memory communicatively coupled to the at least one processor, the memory storing instructions, which, when executed by the at least one processor, perform a method comprising:

providing a first storage operable to store a plurality of objects, wherein:

each object of the plurality of objects is immutable and includes at least one of the following: a data object or a metadata object including at least a list of references to one or more of the following: at least one further data object or at least one further metadata object; and

the plurality of objects includes at least one root object associated with at least one of the following: creation of the plurality of objects or an addition of at least one new object to the plurality of objects;

providing a second storage communicatively coupled with the first storage via a network, the second storage being configured to store at least a copy of the plurality of objects;

determining whether there is a new root object present in the plurality of objects that is absent from the copy, the presence of the new root object in the plurality of objects that is absent from the copy indicating that at least one object has been added to the plurality of objects that has not yet been added to the copy; and

in response to the determining that there is a new root object present in the plurality of objects that is absent from the copy, transferring the new root object and the at least one object from the first storage to the second storage.

10. The system of claim 9 , wherein the method further comprises adding the new root object and the at least one object to the copy.

11. The system of claim 9 , wherein the method further comprises, prior to transferring the at least one object:

determining that the at least one object refers to a child object;

determining whether the child object is absent from the copy; and

if the child object is absent from the copy, transferring the child object from the first storage to the second storage.

12. The system of claim 9 , wherein the method further comprises:

determining that the transferring the at least one object has started; and

in response to the determining that the transferring of the at least one object has started, protecting objects from the plurality of the objects from being deleted.

13. The system of claim 12 , wherein the method further comprises:

determining that the transferring of the at least one object has finished; and

in response to the determining that the transferring of the at least one object has finished, removing the protection.

14. The system of claim 9 , wherein the second storage is further configured to store a B-tree for tracking of objects from the plurality of objects to be transferred.

15. The system of claim 14 , wherein the method further comprises:

storing to the B-tree a unique identifier associated with the at least one object prior to the transferring of the at least one object; and

deleting from the B-tree the unique identifier after the transferring of the at least one object.

16. A non-transitory computer-readable storage medium having embodied thereon instructions, which, when executed by one or more processors, perform a method for organizing data, the method comprising:

providing a first storage operable to store a plurality of objects, wherein:

each object of the plurality of objects is immutable and includes at least one of the following: a data object or a metadata object including at least a list of references to one or more of the following: at least one further data object or at least one further metadata object; and

the plurality of objects includes at least one root object associated with at least one of the following: creation of the plurality of objects or an addition of at least one new object to the plurality of objects;

providing a second storage communicatively coupled with the first storage via a network, the second storage being configured to store at least a copy of the plurality of objects;

determining whether there is a new root object present in the plurality of objects that is absent from the copy, the presence of the new root object in the plurality of objects that is absent from the copy indicating that at least one object has been added to the plurality of objects that has not yet been added to the copy; and

in response to the determining that there is a new root object present in the plurality of objects that is absent from the copy, transferring the new root object and the at least one object from the first storage to the second storage.

Assignments (6)
CHANGE OF NAME Recorded Aug 16, 2024
From: STORAGECRAFT TECHNOLOGY CORPORATION
To: STORAGECRAFT TECHNOLOGY LLC
Reel/Frame 068660/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2024
From: MONROE CAPITAL MANAGEMENT ADVISORS, LLC; ARCSTOR MIDCO LLC; ARCSERVE ACQUISITION COMPANY LLC; ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY, LLC
To: STORAGECRAFT, LLC
Reel/Frame 068660/0208 →
SECURITY INTEREST Recorded Mar 16, 2021
From: ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY LLC; ZETTA, LLC
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
Reel/Frame 055603/0219 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded Mar 16, 2021
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: EXABLOX CORPORATION; STORAGECRAFT TECHNOLOGY CORPORATION; STORAGECRAFT INTERMEDIATE HOLDINGS, INC.; STORAGECRAFT ACQUISITION CORPORATION
Reel/Frame 055614/0852 →
SECURITY INTEREST Recorded Mar 27, 2017
From: EXABLOX CORPORATION; STORAGECRAFT INTERMEDIATE HOLDINGS, INC.; STORAGECRAFT ACQUISITION CORPORATION; STORAGECRAFT TECHNOLOGY CORPORATION
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 041748/0849 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2016
From: FITZHARDINGE, JEREMY; UDAYASHANKAR, KISHORE
To: EXABLOX CORPORATION
Reel/Frame 038635/0140 →
Continuity (2)
Provisional Application 62210385 · Aug 26, 2015
Related Publication 20170063990A1 · Mar 2, 2017