IP Library › Granted Patent US 12,081,442
Granted Patent B2
US 12,081,442 · App. 17/579,989 · Granted Sep 3, 2024

Admission control for latency-critical remote procedure calls in datacenters

Inventors: Gautam Kumar (Fremont, CA); Yiwen Zhang (Ann Arbor, MI); Nandita Dukkipati (Palo Alto, CA); Xian Wu (Los Angeles, CA); Amin Vahdat (Los Altos, CA)
Assignee: Google LLC
H04L47/2433H04L43/0852H04L47/629H04L67/133
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 12,081,442
App. No.
17/579,989
Granted
Sep 3, 2024
Kind
B2
Abstract

A distributed sender driven Admission Control System (ACS) is described herein, leveraging Weighted-Fair Quality of Service (QoS) queues, found in standard NICs and switches, to guarantee RPC level latency service level objectives (SLOs) by a judicious selection of QoS weights and traffic-mix across QoS queues. ACS installs cluster-wide RPC latency SLOs by mapping LS RPCs to higher weight QoS queues, and coping with overloads by adaptively apportioning LS RPCs amongst QoS queues based on measured completion times for each queue. When the network demand spikes unexpectedly to predetermined threshold percentage of provisioned capacity, ACS achieves a latency SLO that is significantly lower than the state-of-art congestion control at the 99.9th-p and admits significantly more RPCs meeting SLO target when RPC sizes are not aligned with priorities.

Claims (48)

1. A method, comprising:

mapping, by one or more processors of a host device, priority class of a remote procedure call (RPC) to a network quality of service (QoS) level;

receiving, from an application, one or more RPCs; and

controlling, by the one or more processors of the host device, at RPC granularity, admission of a given RPC of the one or more RPCs to a particular QoS level using an admit probability for the particular QoS level, wherein the controlling comprises downgrading the given RPC from a requested QoS level to a lower QoS level; and

adjusting the admit probability for the requested QoS level based on measuring network latency of RPCs processed at the requested QoS level.

2. The method of claim 1 , wherein the priority class is one of a plurality of possible priority classes, and wherein the QoS level is one of a plurality of possible QoS levels.

3. The method of claim 1 , wherein each of the one or more RPCs received from the application includes an indication of priority class.

4. The method of claim 3 , wherein the indication of priority class is requested by the application.

5. The method of claim 3 , wherein controlling admission of the given RPC comprises determining, by the one or more processors, whether to admit the given RPC on a QoS level that is mapped to the indicated priority class.

6. The method of claim 1 , wherein controlling admission of the given RPC comprises:

issuing the given RPC at the lower QoS level.

7. The method of claim 1 , wherein downgrading the given RPC comprises automatically downgrading non-admitted RPCs to a lowest QoS level.

8. The method of claim 1 , further comprising communicating downgrade information to an application from which the given RPC was received.

9. The method of claim 1 , wherein controlling admission of the given RPC comprises:

identifying service level objectives for the network latency;

determining, based on the identified service level objectives and the measured network latency, whether to admit the given RPC to the particular QoS level.

10. The method of claim 9 , wherein the adjusting, by the one or more processors, comprises adjusting the admit probability per destination-host.

11. The method of claim 1 , wherein controlling admission of the given RPC comprises:

measuring RPC latency for each QoS level; and

when latency for priority class RPCs is at or above a predetermined threshold, adaptively

setting QoS code points on network traffic.

12. The method of claim 11 , wherein adaptively setting QoS code points comprises:

identifying a service level objective (SLO); and

downgrading out-of-profile traffic to the lower QoS class such that traffic admitted in higher

QOS classes meets the identified SLO.

13. The method of claim 1 , further comprising enforcing, by one or more switches, QoS using weighted fair queues.

14. The method of claim 1 , wherein the mapping comprises modifying packet headers.

15. A system, comprising:

memory; and

one or more processors in communication with the memory, the one or more processors configured to:

map priority class of a remote procedure call (RPC) to a network quality of service (QoS) level;

receive, from an application, one or more RPCs; and

control, at RPC granularity, admission of a given RPC of the one or more RPCs to a particular QoS level using an admit probability for the particular QoS level, wherein the controlling comprises downgrading the given RPC from a requested QoS level to a lower QoS level; and

adjust the admit probability for the requested QoS level based on measuring network latency of RPCs processed at the requested QoS level.

16. The system of claim 15 , wherein the priority class is one of a plurality of possible priority classes, and wherein the QoS level is one of a plurality of possible QoS levels.

17. The system of claim 15 ,

wherein each of the one or more RPCs received from the application includes an indication of priority class requested by the application, and

wherein controlling admission of the given RPC comprises determining, by the one or more processors, whether to admit the given RPC on a QoS level that is mapped to the indicated priority class.

18. The system of claim 15 , wherein in controlling admission of the given RPC, the one or more processors are further configured to:

issue the given RPC at the lower QoS level.

19. The system of claim 15 , wherein controlling admission of the given RPC comprises:

identifying service level objectives for the network latency;

determining, based on the identified service level objectives and the measured network latency, whether to admit the given RPC to the particular QoS level.

20. A non-transitory computer-readable medium storing instructions executable by one or more processors for performing a method, comprising:

mapping priority class of a remote procedure call (RPC) to a network quality of service (QOS) level;

receiving one or more RPCs; and

controlling, at RPC granularity, admission of a given RPC of the one or more RPCs to a particular QoS level using an admit probability for the particular QoS level, wherein the controlling comprises downgrading the given RPC from a requested QoS level to a lower QoS level; and

adjusting the admit probability for the requested QoS level based on measuring network latency of RPCs processed at the requested QoS level.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2022
From: KUMAR, GAUTAM; ZHANG, YIWEN; DUKKIPATI, NANDITA; WU, XIAN; VAHDAT, AMIN
To: GOOGLE LLC
Reel/Frame 059533/0368 →
Continuity (2)
Provisional Application 63142296 · Jan 27, 2021
Related Publication 20220239598A1 · Jul 28, 2022