IP Library Granted Patent US 11,579,915
Granted Patent B2
US 11,579,915 · App. 16/818,225 · Granted Feb 14, 2023

Computing node identifier-based request allocation

Inventor: Philip To (Lexington, MA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/45558H04L41/12G06F2009/45595
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 11,579,915
App. No.
16/818,225
Granted
Feb 14, 2023
Kind
B2
Abstract

Computing node identifiers can be used to encode information regarding the distance between requesting and available computing nodes. Computing node identifiers can be computed based on proximity values for respective computing nodes. Requests can be directed from one computing node to an available computing node based on information encoded by both the computing node identifiers of the requesting node and the receiving node. Using these computing node identifiers to direct request traffic among VMs can more efficiently leverages network resources.

Claims (56)

1. A method comprising:

receiving, by a first computing node, a first location-encoded computing node identifier (ID) that encodes a network location of the first computing node relative to one or more network levels within a networked system;

receiving, by the first computing node, a plurality of location-encoded computing node IDs for a plurality of computing nodes within the networked system;

generating, by the first computing node, a plurality of proximity values for the plurality of computing nodes based on comparing the first location-encoded computing node ID with the plurality of location-encoded computing node IDs associated with the plurality of computing nodes;

determining, by the first computing node, to send a processing request to a second computing node from the plurality of computing nodes based on a proximity value between the first computing node and the second computing node; and

sending the processing request from the first computing node to the second computing node based on the determination.

2. The method of claim 1 , wherein determining to send the processing request to the second computing node comprises determining that the proximity value satisfies a network distance threshold.

3. The method of claim 2 , wherein:

determining to send the processing request to the second computing node comprises identifying additional computing nodes from the plurality of computing nodes that are within the network distance threshold; and

sending the processing request from the first computing node to the second computing node based on the determination comprises sending portions of the processing request to the additional computing nodes.

4. The method of claim 1 , wherein generating the plurality of proximity values for the plurality of computing nodes comprises decoding Hamming distances between the first location-encoded computing node ID to the plurality of location-encoded computing nodes IDs.

5. The method of claim 1 , wherein generating the plurality of proximity values for the plurality of computing nodes comprises separately comparing network level segments of the location-encoded computing node IDs of the plurality of computing nodes.

6. The method of claim 1 , wherein sending the processing request is also based on loading information associated with the second computing node.

7. The method of claim 1 , further comprising sending a broadcast message on a plurality of different channels corresponding to a plurality of network levels of the networked system; and

wherein:

ID managers residing on the plurality of network levels assign a plurality of network level IDs in response to the broadcast message; and

the first computing node ID comprises the plurality of network level IDs.

8. The method of claim 1 , further comprising:

identifying a subset of a plurality of peer computing nodes with a proximity value below a network distance threshold; and

sending a plurality of processing requests to the subset of the plurality of peer computing nodes in accordance with a round robin sequence.

9. The method of claim 1 , wherein the first computing node and the plurality of computing nodes comprise microservices.

10. A method comprising:

receiving, at a first computing node identifier (ID) manager of a networked system, a first-level computing node ID segment corresponding to a first plurality of computing nodes managed by the first computing node ID manager, wherein the first-level computing node ID segment encodes a network proximity between the first plurality of computing nodes and a second plurality of computing nodes managed by a second computing node ID manager;

receiving, at the first computing node ID manager, proximity values for pairs of computing nodes of the first plurality of computing nodes;

generating, by the first computing node ID manager, a second-level computing node ID segments for each of the first plurality of computing nodes based on the received proximity values, wherein the second-level computing node segments encodes the network proximity between computing nodes with the first plurality of computing nodes;

generating, by the first computing node ID manager, a two-level computing node ID for each of the first plurality of computing nodes by combining the first-level computing node ID segment with the second-level computing node ID segment associated for each of the first plurality of computing nodes; and

providing the two-level computing node ID to each of the first plurality of computing nodes.

11. The method of claim 10 , further comprising appending, by the first computing node ID manager, an IP address of an computing node from the first plurality of computing nodes to a two-level computing node ID before providing the two-level computing node ID.

12. The method of claim 10 , further comprising:

receiving, by a first computing node of the first plurality of computing nodes and from the first computing node ID manager, a two-level computing node ID associated with the first computing node;

receiving, by the first computing node, computing node IDs of a third plurality of computing nodes, wherein one or more of the computing node IDs of the third plurality of computing nodes comprise two-level computing node IDs;

determining, by the first computing node, a plurality of proximity values for the third plurality of computing nodes based on comparing the two-level computing node ID of the first computing node with the computing node IDs of the third plurality of computing nodes;

identifying, by the first computing node, a second computing node from the third plurality of computing nodes based on a network proximity value determined between the first computing node and the second computing node; and

sending a processing request from the first computing node to the second computing node.

13. A system comprising:

a first computing node associated with a first location-encoded computing node identifier (ID) that encodes a network location of the first computing node relative to one or more network levels within a networked system, the first computing node comprising:

a processor, and

a computer readable storage medium having instructions thereon configured to cause the processor of the first computing node to:

receive a plurality of location-encoded computing node IDs for a plurality of computing nodes within the networked system;

generate a plurality of proximity values for the plurality of computing nodes based on comparing the first location-encoded computing node ID with the plurality of location-encoded computing node IDs associated with the plurality of computing nodes;

determine to send a processing request to a second computing node from the plurality of computing nodes based on a proximity value between the first computing node and the second computing node; and

send the processing request from the first computing node to the second computing node based on the determination.

14. The system of claim 13 , wherein determining to send the processing request to the second computing node comprises determining that the proximity values satisfies a network distance threshold.

15. The system of claim 14 , wherein:

determining to send the processing request to the second computing node comprises identifying additional computing nodes from the plurality of computing nodes that are within the network distance threshold; and

sending the processing request from the first computing node to the second computing node based on the determination comprises sending portions of the processing request to the additional computing nodes.

16. The system of claim 13 , wherein generating the plurality of proximity values for the plurality of computing nodes comprises decoding Hamming distances between the first location-encoded computing node ID to the plurality of location-encoded computing nodes IDs.

17. The system of claim 13 , wherein generating the plurality of proximity values for the plurality of computing nodes comprises separately comparing network level segments of the location-encoded computing node IDs of the plurality of computing nodes.

18. The system of claim 13 , wherein sending the processing request is also based on loading information associated with the second computing node.

19. The system of claim 13 , wherein the computer readable storage medium further comprises additional instructions that are executable by the processor to send a broadcast message on a plurality of different channels corresponding to a plurality of network levels of the networked system; and

wherein:

ID managers residing on the plurality of network levels assign a plurality of network level IDs in response to the broadcast message; and

the first computing node ID comprises the plurality of network level IDs.

20. The system of claim 13 , wherein the computer-readable storage medium further comprises additional instructions that are executable by the processor to:

identify a subset of a plurality of peer computing nodes with a proximity value below a network distance threshold; and

send a plurality of processing requests to the subset of the plurality of peer computing nodes in accordance with a round-robin sequence.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 053983 FRAME: 0166. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Jan 12, 2023
From: AFFIRMED NETWORKS, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 063636/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2020
From: AFFIRMED NETWORKS, INC.
To: MICROSOFT TECHNOLGY LICENSING, LLC
Reel/Frame 053983/0166 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2020
From: TO, PHILIP
To: AFFIRMED NETWORKS, INC.
Reel/Frame 052474/0800 →
Continuity (2)
Provisional Application 62818302 · Mar 14, 2019
Related Publication 20200293358A1 · Sep 17, 2020
Cited By (1)
US 12,367,320