IP Library Granted Patent US 8,315,999
Granted Patent B2
US 8,315,999 · App. 12/199,717 · Granted Nov 20, 2012

Policy-based file management for a storage delivery network

Assignee: Nirvanix, Inc.
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 8,315,999
App. No.
12/199,717
Granted
Nov 20, 2012
Kind
B2
Abstract

A method for managing storage and access to data files stored in a storage delivery network comprising a plurality of geographically distributed storage nodes, the method including: receiving a file request from a user, wherein the user is associated with a service level agreement (SLA) containing one or more policies governing handling of file requests from the user; determining if the SLA dictates redirecting the file request to a predetermined storage node; if the SLA dictates redirecting the file request to a predetermined storage node, redirecting the file request to the predetermined storage node; otherwise, identifying all storage nodes from the plurality of geographically distributed storage nodes that are near enough to the user based on one or more predetermined criteria; identifying a nearest storage node from among the near enough storage nodes; and redirecting the user request to the nearest storage node.

Claims (49)

1. A method for managing storage and access to data files stored in a storage delivery network comprising a plurality of geographically distributed storage nodes, the method comprising:

receiving a file request from a user, wherein the user is associated with a service level agreement (SLA) containing one or more policies governing handling of file requests from the user;

determining if the SLA dictates redirecting the file request to a predetermined storage node;

if the SLA dictates redirecting the file request to a predetermined storage node, redirecting the file request to the predetermined storage node;

otherwise, identifying all storage nodes from the plurality of geographically distributed storage nodes that are near enough to the user based on one or more predetermined criteria;

identifying a nearest storage node from among the near enough storage nodes; and

redirecting the user request to the nearest storage node, wherein the nearest storage node comprises a server computer having a non-volatile memory that stores content associated with the file request from the user.

2. The method of claim 1 wherein the file request comprises a request to upload a data file.

3. The method of claim 1 wherein the file request comprises a request to download a data file.

4. The method of claim 3 wherein identifying all storage nodes from the plurality of geographically distributed storage nodes comprises identifying all storage nodes containing the requested data file and determining whether any of the storage nodes containing the requested data file are near enough the user based on one or more predetermined criteria specified in the SLA.

5. The method of claim 4 further comprising accessing a node priority table to select a storage node having a top priority to serve the user and thereafter determining if selection of that storage node violates a policy specified by the SLA.

6. The method of claim 4 further comprising selecting a storage node containing the requested data file that is closest to the user as determined based at least in part on a geocode associated with the user and thereafter determining if selection of that storage node violates a policy specified by the SLA.

7. The method of claim 1 wherein the one or more predetermined criteria are specified in the SLA.

8. The method of claim 7 wherein the one or more predetermined criteria comprises always redirecting the file request to a geographically closest storage node.

9. The method of claim 7 wherein the one or more predetermined criteria comprises always redirecting the file request to a storage node capable of handling the file request in a shortest duration of time.

10. The method of claim 7 wherein the one or more predetermined criteria comprises always redirecting the file request to a storage node located in a specified geographic region.

11. A system for managing storage and access to data files stored in a storage delivery network comprising a plurality of geographically distributed storage nodes, the system comprising:

a database containing a plurality of service level agreements (SLAs) for a plurality of customers, each customer storing one or more data files in the storage delivery network; and

a server coupled to the database for managing storage and access to one or more data files, the server comprising:

a first module for receiving a request from a user, wherein the user is associated with a first SLA containing one or more policies governing handling of file requests from the user;

a second module for determining if the first SLA dictates redirecting the file request to a predetermined storage node;

a third module for redirecting the file request to a predetermined storage node if the first SLA dictates redirecting the file request to the predetermined storage node, otherwise, identifying all storage nodes from the plurality of geographically distributed storage nodes that are near enough to the user based on one or more predetermined criteria;

a fourth module for identifying a nearest storage node from among the near enough storage nodes; and

a fifth module for redirecting the user request to the nearest storage node, wherein the nearest storage node comprises a server computer having a non-volatile memory that stores content associated with the file request from the user.

12. The system of claim 11 wherein the file request comprises a request to upload a data file.

13. The system of claim 11 wherein the file request comprises a request to download a data file.

14. The system of claim 13 wherein the third module comprises a sixth module for identifying all storage nodes containing the requested data file and determining whether any of the storage nodes containing the requested data file are near enough the user based on one or more predetermined criteria specified in the first SLA.

15. The system of claim 14 further comprising a seventh module for accessing a node priority table to select a storage node having a top priority to serve the user and thereafter determining if selection of that storage node violates a policy specified by the first SLA.

16. The system of claim 14 further comprising a seventh module for selecting a storage node containing the requested data file that is closest to the user as determined based at least in part on a geocode associated with the user and thereafter determining if selection of that storage node violates a policy specified by the first SLA.

17. The system of claim 11 wherein the one or more predetermined criteria are specified in the first SLA and stored in the database.

18. The method of claim 7 wherein the one or more predetermined criteria comprises always redirecting the file request to a geographically closest storage node.

19. The method of claim 7 wherein the one or more predetermined criteria comprises always redirecting the file request to a storage node capable of handling the file request in a shortest duration of time.

20. The method of claim 7 wherein the one or more predetermined criteria comprises always redirecting the file request to a storage node located in a specified geographic region.

21. A non-transitory computer readable medium storing computer executable instructions that when executed perform a process for managing storage and access to data files stored in a storage delivery network comprising a plurality of geographically distributed storage nodes, the instructions comprising:

a first code module for receiving a file request from a user, wherein the user is associated with a service level agreement (SLA) containing one or more policies governing handling of file requests from the user;

a second code module for determining if the SLA dictates redirecting the file request to a predetermined storage node;

a third code module for redirecting the file request to the predetermined storage node if the SLA dictates redirecting the file request to a predetermined storage node, otherwise, identifying all storage nodes from the plurality of geographically distributed storage nodes that are near enough to the user based on one or more predetermined criteria;

a fourth code module for identifying a nearest storage node from among the near enough storage nodes; and

a fifth code module for redirecting the user request to the nearest storage node, wherein the nearest storage node comprises a server computer having a non-volatile memory that stores content associated with the file request from the user.

22. The computer readable medium of claim 21 wherein the file request comprises a request to upload a data file.

23. The computer readable medium of claim 21 wherein the file request comprises a request to download a data file.

24. The computer readable medium of claim 23 wherein the third code module comprises:

a sixth code module for identifying all storage nodes containing the requested data file; and

a seventh code module for determining whether any of the storage nodes containing the requested data file are near enough the user based on one or more predetermined criteria specified in the SLA.

25. The computer readable medium of claim 24 further comprising a sixth code module for accessing a node priority table to select a storage node having a top priority to serve the user and thereafter determining if selection of that storage node violates a policy specified by the SLA.

26. The computer readable medium of claim 24 further comprising a sixth code module for selecting a storage node containing the requested data file that is closest to the user as determined based at least in part on a geocode associated with the user and thereafter determining if selection of that storage node violates a policy specified by the SLA.

27. The computer readable medium of claim 21 wherein the one or more predetermined criteria are specified in the SLA.

28. The computer readable medium of claim 27 wherein the one or more predetermined criteria comprises always redirecting the file request to a geographically closest storage node.

29. The computer readable medium of claim 27 wherein the one or more predetermined criteria comprises always redirecting the file request to a storage node capable of handling the file request in a shortest duration of time.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2016
From: ACME ACQUISITION LLC
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 038632/0289 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2015
From: NIRVANIX, INC.
To: ACME ACQUISITION LLC
Reel/Frame 036413/0986 →
RELEASE OF SECURITY INTEREST Recorded Aug 22, 2013
From: COMERICA BANK
To: NIRVANIX, INC.
Reel/Frame 031065/0474 →
SECURITY AGREEMENT Recorded Aug 13, 2013
From: NIRVANIX, INC.
To: TRIPLEPOINT CAPITAL LLC AS COLLATERAL AGENT
Reel/Frame 031005/0628 →
SECURITY AGREEMENT Recorded Jan 22, 2013
From: NIRVANIX, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 029673/0596 →
SECURITY AGREEMENT Recorded Feb 9, 2010
From: NIRVANIX, INC.
To: COMERICA BANK
Reel/Frame 023922/0169 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2009
From: CHATLEY, SCOTT P.; GALLAGHER, J. GABRIEL; PHAN, THANH T.; GATCHELL, TROY C.
To: NIRVANIX, INC.
Reel/Frame 022199/0661 →
Continuity (2)
Provisional Application 60968848 · Aug 29, 2007
Related Publication 20090132543A1 · May 21, 2009