IP Library Granted Patent US 11,831,711
Granted Patent B2
US 11,831,711 · App. 17/980,268 · Granted Nov 28, 2023

System and method for sending and receiving remote procedure calls

Inventors: Iulian Moraru (San Jose, CA); Brian Frank Cooper (Los Altos, CA); Sebastian Kanthak (Los Altos, CA); Alexander Lloyd (New York, NY); Mert Akdere (Mountain View, CA)
Assignee: Google LLC
H04L67/108H04L67/133H04L67/60H04L69/324H04W28/065H04L69/28
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,831,711
App. No.
17/980,268
Granted
Nov 28, 2023
Kind
B2
Abstract

Systems and methods are provided for sending and receiving remote procedure calls (RPCs). Based on a message in a first RPC, a second set of RPCs are created by one or more computing devices, where each of the second set of RPCs includes a portion of the message in the first RPC. The message in the first RPC is replaced with a reference to each RPC of the second set of RPCs. The one or more computing devices send the first RPC with the references, and also send the second set of RPCs.

Claims (52)

1. A method, comprising:

receiving, by one or more computing devices elected to operate as a lease leader, a first Remote Procedure Call (RPC), the first RPC comprising a message and a leader lease duration;

creating, by the one or more computing devices, a second set of RPCs each including a respective portion of the message in the first RPC;

revising, by the one or more computing devices, the message in the first RPC to replace the message with a reference to each RPC of the second set of RPCs;

sending, by the one or more computing devices, the first RPC with the references;

sending, by the one or more computing devices, the second set of RPCs;

receiving, by the one or more computing devices, one or more acknowledgements indicating that one or more RPCs of the second set of RPCs were received; and

extending, by the one or more computing devices in response to receiving one or more acknowledgements within a predetermined period of time, the duration of the leader lease for the one or more computing devices.

2. The method of claim 1 , further comprising:

prior to sending the entire second set of RPCs, receiving, by the one or more computing devices, timing information indicating when one or more RPCs of the second set of RPCs were received; and

changing, by the one or more computing devices, a size of one or more remaining RPCs in the second set of RPCs based on the timing information.

3. The method of claim 1 , further comprising:

determining, by the one or more computing devices, a size of the message in the first RPC, wherein creating the second set of RPCs is based on the size of the message in the first RPC.

4. The method of claim 1 , wherein each second RPC of the second set of RPCs includes a respective identifier referencing the first RPC.

5. The method of claim 1 , wherein the second set of RPCs is created as an ordered sequence, and each of the second set of RPCs includes a number indicating a position in the ordered sequence.

6. The method of claim 1 , further comprising:

determining, by the one or more computing devices, whether any of the one or more acknowledgements is not received within a predetermined time period;

performing, by the one or more computing devices, an action based on determining that any of the one or more acknowledgements is not received within the predetermined time period.

7. The method of claim 6 , wherein the action comprises canceling the sending of the second set of RPCs.

8. The method of claim 6 , wherein the action comprises relinquishing responsibility for sending the second set of RPCs to one or more other computing devices.

9. The method of claim 6 , wherein the action comprises extending the duration of the leader lease.

10. The method of claim 1 , further comprising:

receiving one or more acknowledgements indicating that one or more RPCs of the second set of RPCs was received;

determining whether any of the one or more acknowledgements is not received within a predetermined time period; and

performing an action based on determining that any of the one or more acknowledgements is not received within the predetermined time period.

11. A system, comprising:

two or more computing devices, including a first computing device elected as a lease leader and one or more additional computing devices;

wherein the first computing device is configured to:

receive a first Remote Procedure Call (RPC), the first RPC comprising a message and a leader lease duration;

create a second set of RPCs each including a respective portion of the message in the first RPC;

revise the message in the first RPC to replace the message with a reference to each RPC of the second set of RPCs;

send the first RPC with the references;

send the second set of RPCs;

receive, from the one or more additional computing devices, one or more acknowledgments indicating that one or more RPCs of the second set of RPCs were received; and

extend, in response to receiving one or more acknowledgements within a predetermined period of time, the duration of the leader lease for the first computing device.

12. The system of claim 11 , wherein the first computing device is further configured to:

prior to sending the entire second set of RPCs, receive timing information indicating when one or more RPCs of the second set of RPCs were received; and

change a size of one or more remaining RPCs in the second set of RPCs based on the timing information.

13. The system of claim 11 , further comprising:

determining, by the one or more computing devices, a size of the message in the first RPC, wherein creating the second set of RPCs is based on the size of the message in the first RPC.

14. The system of claim 11 , wherein each second RPC of the second set of RPCs includes a respective identifier referencing the first RPC.

15. The system of claim 11 , wherein the second set of RPCs is created as an ordered sequence, and each of the second set of RPCs includes a number indicating a position in the ordered sequence.

16. The system of claim 11 , wherein the first computing device is further configured to:

determine whether any of the one or more acknowledgements is not received within a predetermined time period; and

perform an action based on determining that any of the one or more acknowledgements is not received within the predetermined time period.

17. The system of claim 16 , wherein the action comprises canceling the sending of the second set of RPCs.

18. The system of claim 16 , wherein the action comprises relinquishing responsibility for sending the second set of RPCs to one or more other computing devices.

19. The system of claim 16 , wherein the action comprises extending the duration of the leader lease.

20. The system of claim 11 , wherein the first computing device is further configured to:

Receive one or more acknowledgements indicating that one or more RPCs of the second set of RPCs was received;

determine whether any of the one or more acknowledgements is not received within a predetermined time period; and

perform an action based on determining that any of the one or more acknowledgements is not received within the predetermined time period.

Assignments (2)
CHANGE OF NAME Recorded Nov 7, 2022
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 061885/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2022
From: MORARU, IULIAN; COOPER, BRIAN FRANK; KANTHAK, SEBASTIAN; LLOYD, ALEXANDER; AKDERE, MERT
To: GOOGLE INC.
Reel/Frame 061654/0258 →
Continuity (3)
Continuation 16538178 · Aug 12, 2019
Continuation 14799891 · Jul 15, 2015
Related Publication 20230052324A1 · Feb 16, 2023