IP Library Granted Patent US 10,417,064
Granted Patent B2
US 10,417,064 · App. 15/633,743 · Granted Sep 17, 2019

Method of randomly distributing data in distributed multi-core processor systems

Inventors: Hai Nguyen Trung (Hanoi, VN); Chinh Vu Duc (Hanoi, VN); Bang Le Thanh (Hanoi, VN); Thuy Nguyen Thi Thu (Hanoi, VN)
Assignee: Military Industry—Telecommunication Group (Viettel)
G06F9/544G06F9/465G06F16/10G06F16/951G06F17/18H04L29/02H04L67/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,417,064
App. No.
15/633,743
Granted
Sep 17, 2019
Kind
B2
Abstract

The present disclosure relates to data distribution amongst nodes in a computing system. For example, a controller device of the computing system may first identify one or more nodes in a network that are available for data processing and/or storage tasks. The controller device may next assign data processing and/or storage tasks to one or more nodes. Data processing and/or storage tasks may be efficiently (e.g., randomly and/or evenly) distributed amongst one or more core processors of the assigned nodes. Techniques described herein help to balance the utilization of computing resources and minimize the risk of lost data during reconfigurations and/or network failures.

Claims (88)

1. A system for efficiently distributing data within a multi-core data processing environment, wherein the system comprises:

a client device communicatively coupled to a network, wherein the client device is configured for receiving, using a communication unit of the client device, an element to be at least one of processed and stored by the system;

one or more nodes communicatively coupled to the network, wherein each node of the one or more nodes comprises one or more core processors configured for at least one of processing and storing the element;

a node hash table communicatively coupled to the network, wherein the node hash table comprises a plurality of node hash indexes, and wherein each node hash index is associated with a node of the one or more nodes;

a controller device communicatively coupled to the network, wherein the controller device is configured for:

receiving, using a communication unit of the controller device, the element from the client device;

transforming, using a hash indexing unit of the controller device, the element into an element hash value according to a hash function;

generating, using the hash index unit of the controller device, an element hash index using at least a portion of the element hash value;

cross-referencing, using a node assignment unit of the controller device, the element hash index with the plurality of node hash indexes;

matching, using the node assignment unit of the controller device, a numerical value of the element hash index to a first numerical value of a first node hash index comprised in the node hash table, wherein the first node hash index is associated with a first node comprised in the one or more nodes;

determining, using the node assignment unit of the controller device, a number of core processors comprised in the first node;

identifying, using the node assignment unit of the controller device, a first target core processor of the first node using the numerical value of the element hash index and the number of core processors comprised in the first node; and

transmitting, using a data transport unit of the controller device, the element to the first node, wherein the element is at least one of processed and stored by the first target core processor.

2. The system of claim 1 , wherein the controller device is further configured for:

identifying, using the node assignment unit of the controller device, the first node in the network;

determining, using a location determination unit of the controller device, an Internet Protocol (IP) address of the first node;

transforming, using the hash indexing unit of the controller device, the IP address of the first node into a 64-bit node hash value according to a hash function;

generating, using the hash indexing unit of the controller device, the first node hash index using a portion of the 64-bit node hash value; and

storing, using the hash indexing unit of the controller device, the first node hash index in the node hash table.

3. The system of claim 1 , wherein the controller device is further configured for:

matching, using the node assignment unit of the controller device, the numerical value of the element hash index to a second numerical value of a second node hash index associated with a second node comprised in the one or more nodes, wherein the first numerical value is closer to the numerical value of the element hash index than the second numerical value;

determining, using the node assignment unit of the controller device, a number of core processors comprised in the second node;

determining, using the node assignment unit of the controller device, a second target core processor of the second node using the numerical value of the element hash index and the number of core processors comprised in the second node; and

transmitting, using the data transport unit of the controller device, a replica of the element to the second node, wherein the replica of the element is at least one of processed and stored by the second target core processor.

4. The system of claim 1 , wherein identifying the first target core processor of the first node using the numerical value of the element hash index and the number of core processors comprised in the first node further comprises:

dividing, using the node assignment unit of the controller device, the numerical value of the element hash index by the number of core processors comprised in the first node to thereby result in a result comprising a quotient portion and a remainder portion; and

identifying, using the node assignment unit of the controller device, the first target core processor using the remainder portion.

5. The system of claim 1 , wherein the element hash value comprises a 64-bit hash value, and wherein the element hash index comprises a predetermined number of bits of the 64-bit hash value.

6. The system of claim 1 , wherein the controller device is further configured for:

assigning, using the node assignment unit of the controller device, the element hash index to the first node hash index in a hash table.

7. The system of claim 1 , wherein the controller device is further configured for:

determining, using the node assignment unit of the controller device, that the first node has sufficient computing resources for performing the at least one of processing and storage of the element.

8. A computing apparatus, comprising:

at least one non-transitory computer readable storage medium comprising instructions; and

at least one processing device configured to execute the instructions, wherein executing the instructions causes the at least one processing device to perform the operations of:

receiving, using a communication unit of the computing apparatus, an element to be at least one of processed and stored;

transforming, using a hash indexing unit of the computing apparatus, the element into an element hash value according to a hash function;

generating, using the hash index unit of the computing apparatus, an element hash index using at least a portion of the element hash value;

cross-referencing, using a node assignment unit of the computing apparatus, the element hash index with a plurality of node hash indexes stored in a node hash table, wherein each node hash index is associated with a node in a network;

matching, using the node assignment unit of the computing apparatus, a numerical value of the element hash index to a first numerical value of a first node hash index comprised in the node hash table, wherein the first node hash index is associated with a first node in the network;

determining, using the node assignment unit of the computing apparatus, a number of core processors comprised in the first node;

determining, using the node assignment unit of the computing apparatus, a first target core processor of the first node using the numerical value of the element hash index and the number of core processors comprised in the first node; and

transmitting, using a data transport unit of the controller device, the element to the first node, wherein the element is at least one of processed and stored by the first target core processor.

9. The computing apparatus of claim 8 , wherein executing the instructions further causes the at least one processing device to perform the operations of:

identifying, using the node assignment unit of the computing apparatus, the first node in the network;

determining, using a location determination unit of the computing apparatus, an Internet Protocol (IP) address of the first node;

transforming, using the hash indexing unit of the computing apparatus, the IP address of the first node into a 64-bit node hash value according to a hash function;

generating, using the hash indexing unit of the computing apparatus, the first node hash index using a portion of the 64-bit node hash value; and

storing, using the hash indexing unit of the computing apparatus, the first node hash index in the node hash table.

10. The computing apparatus of claim 8 , wherein executing the instructions further causes the at least one processing device to perform the operations of:

matching, using the node assignment unit of the computing apparatus, the numerical value of the element hash index to a second numerical value of a second node hash index associated with a second node in the network, wherein the first numerical value is closer to the numerical value of the element hash index than the second numerical value;

determining, using the node assignment unit of the computing apparatus, a number of core processors comprised in the second node;

determining, using the node assignment unit of the computing apparatus, a second target core processor of the second node using the numerical value of the element hash index and the number of core processors comprised in the second node; and

transmitting, using the data transport unit of the computing apparatus, a replica of the element to the second node, wherein the replica of the element is at least one of processed and stored by the second target core processor.

11. The computing apparatus of claim 8 , wherein executing the instructions that cause the at least one processor to perform the operations of determining the first target core processor using the value of the element hash index and the number of core processors comprised in the first node further causes the at least one processing device to perform the operations of:

dividing, using the node assignment unit of the computing apparatus, the numerical value of the element hash index by the number of core processors comprised in the first node to thereby result in a result comprising a quotient portion and a remainder portion; and

identifying, using the node assignment unit of the computing apparatus, the first target core processor using the remainder portion.

12. The computing apparatus of claim 8 , wherein the element hash value comprises a 64-bit hash value, and wherein the element hash index comprises a predetermined number of bits of the 64-bit hash value.

13. The computing apparatus of claim 8 , wherein executing the instructions further causes the at least one processing device to perform the operations of:

assigning, using the node assignment unit of the computing apparatus, the element hash index to the first node hash index in a hash table.

14. The computing apparatus of claim 8 , wherein executing the instructions further causes the at least one processing device to perform the operations of:

determining, using the node assignment unit of the computing apparatus, that the first node has sufficient computing resources for performing the at least one of processing and storage of the element.

15. A method comprising:

receiving, using a communication unit of a computing apparatus, an element to be at least one of processed and stored;

transforming, using a hash indexing unit of the computing apparatus, the element into an element hash value according to a hash function;

generating, using the hash index unit of the computing apparatus, an element hash index using at least a portion of the element hash value;

cross-referencing, using a node assignment unit of the computing apparatus, the element hash index with a plurality of node hash indexes stored in a node hash table, wherein each node hash index is associated with a node in a network;

matching, using the node assignment unit of the computing apparatus, a numerical value of the element hash index to a first numerical value of a first node hash index comprised in the node hash table, wherein the first node hash index is associated with a first node in the network;

determining, using the node assignment unit of the computing apparatus, a number of core processors comprised in the first node;

determining, using the node assignment unit of the computing apparatus, a first target core processor of the first node using the numerical value of the element hash index and the number of core processors comprised in the first node; and

transmitting, using a data transport unit of the controller device, the element to the first node, wherein the element is at least one of processed and stored by the first target core processor.

16. The method of claim 15 , further comprising:

identifying, using the node assignment unit of the computing apparatus, the first node in the network;

determining, using a location determination unit of the computing apparatus, an Internet Protocol (IP) address of the first node;

transforming, using the hash indexing unit of the computing apparatus, the IP address of the first node into a 64-bit node hash value according to a hash function;

generating, using the hash indexing unit of the computing apparatus, the first node hash index using a portion of the 64-bit node hash value; and

storing, using the hash indexing unit of the computing apparatus, the first node hash index in the node hash table.

17. The method of claim 15 , further comprising:

matching, using the node assignment unit of the computing apparatus, the numerical value of the element hash index to a second numerical value of a second node hash index associated with a second node in the network, wherein the first numerical value is closer to the numerical value of the element hash index than the second numerical value;

determining, using the node assignment unit of the computing apparatus, a number of core processors comprised in the second node;

determining, using the node assignment unit of the computing apparatus, a second target core processor of the second node using the numerical value of the element hash index and the number of core processors comprised in the second node; and

transmitting, using the data transport unit of the computing apparatus, a replica of the element to the second node, wherein the replica of the element is at least one of processed and stored by the second target core processor.

18. The method of claim 15 , wherein determining the first target core processor of the first node using the value of the element hash index and the number of core processors comprised in the first node comprises:

dividing, using the node assignment unit of the computing apparatus, the numerical value of the element hash index by the number of core processors comprised in the first node to thereby result in a result comprising a quotient portion and a remainder portion; and

identifying, using the node assignment unit of the computing apparatus, the first target core processor using the remainder portion.

19. The method of claim 15 , wherein the element hash value comprises a 64-bit hash value, and wherein the element hash index comprises a predetermined number of bits of the 64-bit hash value.

20. The method of claim 15 , further comprising:

assigning, using the node assignment unit of the computing apparatus, the element hash index to the first node hash index in a hash table.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2018
From: NGUYEN TRUNG, HAI; VU DUC, CHINH; LE THANH, BANG; NGUYEN THI THU, THUY
To: MILITARY TELECOMMUNICATION GROUP (VIETTEL)
Reel/Frame 045808/0220 →
CHANGE OF NAME Recorded May 15, 2018
From: MILITARY TELECOMMUNICATION GROUP (VIETTEL)
To: MILITARY INDUSTRY - TELECOMMUNICATION GROUP (VIETTEL)
Reel/Frame 046155/0351 →
Priority Claims (1)
VN 1-2016-03331 · Sep 7, 2016 · national
Continuity (1)
Related Publication 20180067786A1 · Mar 8, 2018