IP Library Granted Patent US 10,523,747
Granted Patent B2
US 10,523,747 · App. 15/147,512 · Granted Dec 31, 2019

Method and system for selecting a storage node based on a distance from a requesting device

Inventors: Scott P. Chatley (San Diego, CA); J. Gabriel Gallagher (San Diego, CA); Troy C. Gatchell (San Diego, CA); Thanh T. Phan (San Diego, CA)
Assignee: Oracle International Corporation
H04L67/1021G06F3/067G06F3/0613G06F3/0647G06F16/185H04L67/101H04L67/1002H04L67/1008H04L67/1012H04L67/1097G06F2206/1012
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,523,747
App. No.
15/147,512
Granted
Dec 31, 2019
Kind
B2
Abstract

A method for locating an optimum storage node for serving a data file request received via a communications network, includes: receiving a file request from a user device coupled to the communications network; determining a geocode value based on a communications network address associated with the user device, wherein the geocode value is indicative of a geographic location of the user device; selecting a storage node from a plurality of storage nodes coupled to the communications network to serve the file request, wherein the storage node is selected based at least in part on the geocode value; and redirecting the file request to the selected storage node for handling.

Claims (75)

1. One or more non-transitory machine-readable media storing instructions which, when executed by one or more processors, cause:

determining a threshold geographical distance for assessing nearness of file storage nodes to file requesting devices;

subsequent to determining the threshold geographical distance: receiving, from a device at a first location, a request to access a file, the file being stored at one or more nodes of a plurality of nodes located at a respective plurality of locations;

determining that none of the one or more nodes, storing the file, are located at any location that is within the threshold geographical distance from the first location, at least by:

for each node in the one or more nodes, respectively,

(a) computing a distance between said each node and the first location, based at least in part on geographical locations of said each node and the first location, and

(b) comparing the distance between said each node and the first location with the threshold geographical distance;

responsive at least to determining that none of the one or more nodes, storing the file, are located at any location that is within the threshold geographical distance from the first location:

selecting a particular node, of the plurality of nodes, at a second location that is within the threshold geographical distance from the first location;

initiating a process for storing the file at the particular node.

2. The one or more media of claim 1 , further storing instructions which, when executed by one or more processors, cause:

responsive at least to determining that none of the one or more nodes, storing the file, are located at any location that is within the threshold geographical distance from the first location:

configuring at least one node of the one or more nodes to temporarily serve the request of the device to access the file;

subsequent to selecting the particular node: reconfiguring the at least one node to terminate serving the request of the device to access the file.

3. The one or more media of claim 1 , further storing instructions which, when executed by one or more processors, cause:

redirecting the device to transmit the request to the particular node.

4. The one or more media of claim 1 , further storing instructions which, when executed by one or more processors, cause:

configuring the particular node to serve one or more of the request from the device to access the file.

5. The one or more media of claim 1 , wherein initiating the process for storing the file at the particular node comprises one or more of: transmitting the file to the particular node or configuring the particular node to request the file from another node in the plurality of nodes.

6. The one or more media of claim 1 , further storing instructions which, when executed by one or more processors, cause:

receiving, from the device at the first location, a second request to access a second file, the second file being stored at one or more nodes of a plurality of nodes located at a respective plurality of locations;

determining that at least one of the one or more nodes, storing the file, are located at a respective location that is within the threshold geographical distance from the first location;

responsive at least to determining that the at least one of the one or more nodes, storing the file, are located at the respective location that is within the threshold geographical distance from the first location: refraining from selecting a new node, within the threshold geographical distance from the first location, for storing the second file.

7. The one or more media of claim 1 , wherein computing the distance between said each node and the first location comprises computing a difference between a first geocode associated with said each node and a second geocode associated with the first location.

8. The one or more media of claim 7 , further storing instructions which, when executed by one or more processors, cause:

determining the first geocode associated with said each node, at least by mapping an Internet Protocol (IP) address range associated with said each node to the first geocode.

9. The one or more media of claim 7 , further storing instructions which, when executed by one or more processors, cause:

determining the second geocode associated with the first location, at least by mapping an Internet Protocol (IP) address range associated with the first location to the second geocode.

10. The one or more media of claim 1 , wherein computing the distance between said each node and the first location is further based on performance data associated with one or more of said each node and the device at the first location.

11. The one or more media of claim 10 , wherein the performance data comprises one or more of a load associated with said each node and a quality of service associated with said each node.

12. A method comprising:

determining a threshold geographical distance for assessing nearness of file storage nodes to file requesting devices;

subsequent to determining the threshold geographical distance: receiving, from a device at a first location, a request to access a file, the file being stored at one or more nodes of a plurality of nodes located at a respective plurality of locations;

determining that none of the one or more nodes, storing the file, are located at any location that is within the threshold geographical distance from the first location, at least by:

for each node in the one or more nodes, respectively,

(a) computing a distance between said each node and the first location, based at least in part on geographical locations of said each node and the first location, and

(b) comparing the distance between said each node and the first location with the threshold geographical distance;

responsive at least to determining that none of the one or more nodes, storing the file, are located at any location that is within the threshold geographical distance from the first location:

selecting a particular node, of the plurality of nodes, at a second location that is within the threshold geographical distance from the first location;

initiating a process for storing the file at the particular node;

wherein the method is performed by at least one device including a hardware processor.

13. The method of claim 12 , wherein the operations further comprise:

responsive at least to determining that none of the one or more nodes, storing the file, are located at any location that is within the threshold geographical distance from the first location:

configuring at least one node of the one or more nodes to temporarily serve the request of the device to access the file;

subsequent to selecting the particular node: reconfiguring the at least one node to terminate serving the request of the device to access the file.

14. The method of claim 12 , wherein the operations further comprise redirecting the device to transmit the request to the particular node.

15. The method of claim 12 , wherein the operations further comprise configuring the particular node to serve one or more of the request from the device to access the file.

16. The method of claim 12 , wherein initiating the process for storing the file at the particular node comprises one or more of: transmitting the file to the particular node or configuring the particular node to request the file from another node in the plurality of nodes.

17. The method of claim 12 , further comprising:

receiving, from the device at the first location, a second request to access a second file, the second file being stored at one or more nodes of a plurality of nodes located at a respective plurality of locations;

determining that at least one of the one or more nodes, storing the file, are located at a respective location that is within the threshold geographical distance from the first location;

responsive at least to determining that the at least one of the one or more nodes, storing the file, are located at the respective location that is within the threshold geographical distance from the first location: refraining from selecting a new node, within the threshold geographical distance from the first location, for storing the second file.

18. A system comprising:

at least one device including a hardware processor;

the device being configured to perform operations comprising:

determining a threshold geographical distance for assessing nearness of file storage nodes to file requesting devices;

subsequent to determining the threshold geographical distance: receiving, from a device at a first location, a request to access a file, the file being stored at one or more nodes of a plurality of nodes located at a respective plurality of locations;

determining that none of the one or more nodes, storing the file, are located at any location that is within the threshold geographical distance from the first location, at least by:

for each node in the one or more nodes, respectively,

(a) computing a distance between said each node and the first location, based at least in part on geographical locations of said each node and the first location, and

(b) comparing the distance between said each node and the first location with the threshold geographical distance;

responsive at least to determining that none of the one or more nodes, storing the file, are located at any location that is within the threshold geographical distance from the first location:

selecting a particular node, of the plurality of nodes, at a second location that is within the threshold geographical distance from the first location;

initiating a process for storing the file at the particular node.

19. The system of claim 18 , wherein the operations further comprise:

responsive at least to determining that none of the one or more nodes, storing the file, are located at any location that is within the threshold geographical distance from the first location:

configuring at least one node of the one or more nodes to temporarily serve the request of the device to access the file;

subsequent to selecting the particular node: reconfiguring the at least one node to terminate serving the request of the device to access the file.

20. The system of claim 18 , wherein the operations further comprise redirecting the device to transmit the request to the particular node.

21. The system of claim 18 , wherein the operations further comprise configuring the particular node to serve one or more of the request from the device to access the file.

22. The system of claim 18 , wherein initiating the process for storing the file at the particular node comprises one or more of: transmitting the file to the particular node or configuring the particular node to request the file from another node in the plurality of nodes.

23. The system of claim 18 , wherein the operations further comprise:

receiving, from the device at the first location, a second request to access a second file, the second file being stored at one or more nodes of a plurality of nodes located at a respective plurality of locations;

determining that at least one of the one or more nodes, storing the file, are located at a respective location that is within the threshold geographical distance from the first location;

responsive at least to determining that the at least one of the one or more nodes, storing the file, are located at the respective location that is within the threshold geographical distance from the first location: refraining from selecting a new node, within the threshold geographical distance from the first location, for storing the second file.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2016
From: CHATLEY, SCOTT P.; GALLAGHER, J. GABRIEL; GATCHELL, TROY C.; PHAN, THANH T.
To: NIRVANIX, INC.
Reel/Frame 038644/0694 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2016
From: NIRVANIX, INC.
To: ACME ACQUISITION LLC
Reel/Frame 038644/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2016
From: ACME ACQUISITION LLC
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 038645/0001 →
Continuity (3)
Continuation 12200718 · Aug 28, 2008
Provisional Application 60968848 · Aug 29, 2007
Related Publication 20160359963A1 · Dec 8, 2016