IP Library Granted Patent US 7,433,928
Granted Patent B1
US 7,433,928 · App. 10/749,267 · Granted Oct 7, 2008

System pre-allocating data object replicas for a distributed file sharing system

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 7,433,928
App. No.
10/749,267
Granted
Oct 7, 2008
Kind
B1
Abstract

A system and method for pre-allocating replicas for a distributed file sharing system. Creating a new file may involve creating a plurality of replicas for the file on a plurality of nodes. In one embodiment nodes in the system may pre-allocate sets of file replicas, where the pre-allocated replicas can be used to satisfy requests to create new files. Pre-allocating the file replicas may decrease the latency of file creation requests by enabling the requests to be satisfied without performing replica allocation in response to the requests.

Claims (79)

1. A system comprising:

a network;

a plurality of computing nodes coupled via the network;

wherein a first node from the plurality of nodes is operable to pre-allocate a plurality of data object replicas;

wherein the first node is operable to use the plurality of data object replicas to satisfy a request to create a first data object in response to receiving the request after said pre-allocating the replicas.

2. The system of claim 1 ,

wherein said using the plurality of data object replicas to satisfy the request to create the first data object comprises associating the plurality of data object replicas with the first data object.

3. The system of claim 1 ,

wherein for each data object replica, said pre-allocating the data object replica comprises allocating a portion of disk space for the data object replica.

4. The system of claim 1 ,

wherein said pre-allocating the plurality of data object replicas comprises pre-allocating a data object replica on each of a plurality of nodes.

5. The system of claim 4 ,

wherein the first node is further operable to select the plurality of nodes on which to pre-allocate the data object replicas.

6. The system of claim 5 ,

wherein the first node maintains first information indicative of free space on other nodes;

wherein said selecting the plurality of nodes on which to pre-allocate the data object replicas comprises selecting the plurality of nodes based on the first information.

7. The system of claim 1 ,

wherein said pre-allocating the data object replicas decreases latency of the request to create the first data object by enabling the first node to satisfy the request without performing replica allocation in response to the request.

8. The system of claim 1 ,

wherein said pre-allocating the data object replicas comprises storing information enabling nodes to access the replicas.

9. The system of claim 1 ,

wherein the first node is operable to maintain a cache of pre-allocated replicas, wherein the cache comprises multiple sets of pre-allocated replicas.

10. The system of claim 1 ,

wherein the request to create the first data object specifies a name for the first data object;

wherein said satisfying the request to create the first data object comprises associating the name with the plurality of data object replicas.

11. The system of claim 1 ,

wherein after said using the plurality of data object replicas to satisfy the request to create the first data object, the first node is operable to pre-allocate another plurality of data object replicas to make the other plurality of data object replicas available for a subsequent request to create another data object.

12. A system comprising:

a network;

a plurality of computing nodes coupled via the network;

wherein a first node from the plurality of nodes is operable to pre-allocate a plurality of data object replicas for use in satisfying a subsequent request to create a new data object;

wherein said pre-allocating the plurality of data object replicas comprises: selecting a first plurality of nodes on which to allocate the replicas; and

allocating a replica on each of the first plurality of nodes.

13. The system of claim 12 , wherein said pre-allocating the plurality of data object replicas further comprises:

generating a first data object ID; and

associating the first data object ID with each of the plurality of data object replicas.

14. The system of claim 12 , wherein said pre-allocating the plurality of data object replicas further comprises:

storing information enabling nodes to access the plurality of data object replicas.

15. The system of claim 12 , wherein said pre-allocating the plurality of data object replicas further comprises:

storing information to link the plurality of data object replicas together.

16. A computer readable-medium

comprising computer program instructions executable by a computer processor to implement:

a first node from a plurality of nodes pre-allocating a plurality of data object replicas;

the first node receiving a request to create a first data object after said pre-allocating the replicas; and

the first node satisfying the request to create the first data object using the plurality of data object replicas.

17. The computer readable-medium of claim 16 ,

wherein said satisfying the request to create the first data object using the plurality of data object replicas comprises associating the plurality of data object replicas with the first data object.

18. The computer readable-medium of claim 16 ,

wherein for each data object replica, said pre-allocating the data object replica comprises allocating a portion of disk space for the data object replica.

19. The computer readable-medium of claim 16 ,

wherein said pre-allocating the plurality of data object replicas comprises pre-allocating a data object replica on each of a plurality of nodes.

20. The computer readable-medium of claim 19 ,

wherein the first node also selects the plurality of nodes on which to pre-allocate the data object replicas.

21. The computer readable-medium of claim 20 ,

wherein the first node also maintains first information indicative of free space on other nodes;

wherein said selecting the plurality of nodes on which to pre-allocate the data object replicas comprises selecting the plurality of nodes based on the first information.

22. The computer readable-medium of claim 16 ,

wherein said pre-allocating the data object replicas decreases latency of the request to create the first data object by enabling the first node to satisfy the request without performing replica allocation in response to the request.

23. The computer readable-medium of claim 16 ,

wherein said pre-allocating the data object replicas comprises storing information enabling nodes to access the replicas.

24. The computer readable-medium of claim 16 ,

wherein the first node maintains a cache of pre-allocated replicas, wherein the cache comprises multiple sets of pre-allocated replicas.

25. The computer readable-medium of claim 16 ,

wherein the request to create the first data object specifies a name for the first data object;

wherein said satisfying the request to create the first data object comprises associating the name with the plurality of data object replicas.

26. The computer readable-medium of claim 16 ,

wherein after said satisfying the request to create the first data object using the plurality of data object replicas, the first node pre-allocates another plurality of data object replicas to make the other plurality of data object replicas available for a subsequent request to create another data object.

27. A computer readable-medium comprising computer program instructions executable by a computer processor to implement:

pre-allocating a plurality of data object replicas for use In satisfying a subsequent request to create a new data object;

wherein said pre-allocating the plurality of data object replicas comprises:

selecting a first plurality of nodes on which to allocate the replicas; and

allocating a replica on each of the first plurality of nodes.

28. The computer readable-medium of claim 27 , wherein said pre-allocating the plurality of data object replicas further comprises:

generating a first data object ID; and

associating the first data object ID with each of the plurality of data object replicas.

29. The computer readable-medium of claim 27 , wherein said pre-allocating the plurality of data object replicas further comprises:

storing information enabling nodes to access the plurality of data object replicas.

30. The computer readable-medium of claim 27 , wherein said pre-allocating the plurality of data object replicas further comprises:

storing information to link the plurality of data object replicas together.

Assignments (16)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Feb 21, 2008
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 020540/0248 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2004
From: SAULPAUGH, THOMAS E.
To: VERITAS OPERATING CORPORATION
Reel/Frame 015412/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2003
From: RANADE, DILIP MADHUSUDAN; BANERJEE, ANINDYA
To: VERITAS OPERATING CORPORATION
Reel/Frame 014860/0223 →