IP Library Granted Patent US 10,911,568
Granted Patent B2
US 10,911,568 · App. 16/151,266 · Granted Feb 2, 2021

Client software back off

Inventor: Nolan O'Brien (Henderson, NV)
Assignee: Twitter, Inc.
H04L67/325H04L51/32H04L51/38
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,911,568
App. No.
16/151,266
Granted
Feb 2, 2021
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for limiting load on host servers that implement a social messaging platform. An example user device sends, to a platform comprising a plurality of host servers, a first request. The request is directed to a first endpoint. The user device receives, in response to the first request, a first error that indicates that the first request was not processed. The user device determines a back off time and places subsequent requests to the platform that are initiated before the back off time elapses and that are directed to the first endpoint in a back off queue in an order in which the subsequent requests are initiated. The user device sends, to the platform, the requests in the back off queue after the back off time has elapsed, until the back off queue is empty.

Claims (57)

1. A user device comprising one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

sending, to a platform comprising a plurality of host servers, a first request originating from client software running on the user device, wherein the first request is directed to a first endpoint of the platform, wherein the first endpoint is a composition of a first domain and a first path;

receiving, in response to the first request and from the platform, a first error that indicates that the platform is overloaded and that the first request was not processed;

determining, by the user device, a back off time;

receiving, from the client software, one or more subsequent requests to the platform originating from the client software that are initiated before the back off time elapses and that are directed to endpoints that are compositions of paths and the first domain and not to endpoints that are compositions of paths and a second domain that is not the first domain;

placing, by the user device, the first request and then the one or more subsequent requests in a back off queue in an order in which the subsequent requests are initiated; and

sending, by the user device and to the platform, the requests in the back off queue after the back off time has elapsed, until the back off queue is empty.

2. The user device of claim 1 , wherein sending the requests in the back off queue comprises sending the requests in the order in which the requests were placed into the back off queue.

3. The user device of claim 1 , wherein determining the back off time comprises setting the back off time from a retry-after value included in the first error that specifies an amount of time the user device should wait before resending the first request.

4. The user device of claim 1 , wherein determining the back off time comprises using a default value specified by the client software as the back off time.

5. The user device of claim 1 , wherein the operations further comprise:

adding new requests originating from the client software that are directed to the first endpoint to the back off queue while the user device is sending the requests in the back off queue to the platform; and

after the back off queue is empty, concurrently sending, to the platform, new requests originating from the client software that are directed to the first endpoint.

6. The user device of claim 1 , wherein the operations further comprise:

receiving a second error that indicates that the platform is overloaded in response to sending a second request taken from the back off queue to the platform;

placing the second request to a head of the back off queue; and

resetting the back off time.

7. The user device of claim 1 , wherein the first request is a request generated automatically by the user device, or is a request generated in response to an action by a user of the user device.

8. The user device of claim 1 , wherein sending the requests in the back off queue comprises sending high-priority requests before sending low-priority requests.

9. One or more non-transitory computer storage media storing instructions that are operable, when executed by a user device comprising one or more computers, to cause the user device to perform operations comprising:

sending, to a platform comprising a plurality of host servers, a first request originating from client software running on the user device, wherein the first request is directed to a first endpoint of the platform, wherein the first endpoint is a composition of a first domain and a first path;

receiving, in response to the first request and from the platform, a first error that indicates that the platform is overloaded and that the first request was not processed;

determining, by the user device, a back off time;

receiving, from the client software, one or more subsequent requests to the platform originating from the client software that are initiated before the back off time elapses and that are directed to endpoints that are compositions of paths and the first domain and not to endpoints that are compositions of paths and a second domain that is not the first domain;

placing, by the user device, the first request and then the one or more subsequent requests in a back off queue in an order in which the subsequent requests are initiated; and

sending, by the user device and to the platform, the requests in the back off queue after the back off time has elapsed, until the back off queue is empty.

10. The one or more non-transitory computer storage media of claim 9 , wherein sending the requests in the back off queue comprises sending the requests in the order in which the requests were placed into the back off queue.

11. The one or more non-transitory computer storage media of claim 9 , wherein determining the back off time comprises setting the back off time from a retry-after value included in the first error that specifies an amount of time the user device should wait before resending the first request.

12. The one or more non-transitory computer storage media of claim 9 , wherein determining the back off time comprises using a default value specified by the client software as the back off time.

13. The one or more non-transitory computer storage media of claim 9 , wherein the operations further comprise:

adding new requests originating from the client software that are directed to the first endpoint to the back off queue while the user device is sending the requests in the back off queue to the platform; and

after the back off queue is empty, concurrently sending, to the platform, new requests originating from the client software that are directed to the first endpoint.

14. The one or more non-transitory computer storage media of claim 9 , wherein the operations further comprise:

receiving a second error that indicates that the platform is overloaded in response to sending a second request taken from the back off queue to the platform;

placing the second request to a head of the back off queue; and

resetting the back off time.

15. The one or more non-transitory computer storage media of claim 9 , wherein the first request is a request generated automatically by the user device, or is a request generated in response to an action by a user of the user device.

16. The one or more non-transitory computer storage media of claim 9 , wherein sending the requests in the back off queue comprises sending high-priority requests before sending low-priority requests.

17. A server system comprising one or more computers configured to transmit to a user device one or more modules of instructions that are operable, when executed by the user device, to cause the user device to perform operations comprising:

sending, to a platform comprising a plurality of host servers, a first request originating from client software running on the user device, wherein the first request is directed to a first endpoint of the platform, wherein the first endpoint is a composition of a first domain and a first path;

receiving, in response to the first request and from the platform, a first error that indicates that the platform is overloaded and that the first request was not processed;

determining, by the user device, a back off time;

receiving, from the client software, one or more subsequent requests to the platform originating from the client software that are initiated before the back off time elapses and that are directed endpoints that are compositions of paths and the first domain and not to endpoints that are compositions of paths and a second domain that is not the first domain;

placing, by the user device, the first request and then the one or more subsequent requests in a back off queue in an order in which the subsequent requests are initiated; and

sending, by the user device and to the platform, the requests in the back off queue after the back off time has elapsed, until the back off queue is empty.

18. The server system of claim 15 , wherein sending the requests in the back off queue comprises sending the requests in the order in which the requests were placed into the back off queue.

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

adding new requests originating from the client software that are directed to the first endpoint to the back off queue while the user device is sending the requests in the back off queue to the platform; and

after the back off queue is empty, concurrently sending, to the platform, new requests originating from the client software that are directed to the first endpoint.

20. The server system of claim 15 , wherein sending the requests in the back off queue comprises sending high-priority requests before sending low-priority requests.

21. The server system of claim 15 , wherein determining the back off time comprises setting the back off time from a retry-after value included in the first error that specifies an amount of time the user device should wait before resending the first request.

22. The server system of claim 15 , wherein determining the back off time comprises using a default value specified by the client software as the back off time.

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

receiving a second error that indicates that the platform is overloaded in response to sending a second request taken from the back off queue to the platform;

placing the second request to a head of the back off queue; and

resetting the back off time.

24. The server system of claim 15 , wherein the first request is a request generated automatically by the user device, or is a request in response to an action by a user of the user device.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (REEL 062079, FRAME 0677) Recorded Mar 3, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 075015/0574 →
RELEASE OF SECURITY INTEREST Recorded Apr 30, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 071127/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 27, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 070670/0857 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0086 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0001 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 062079/0677 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2019
From: O'BRIEN, NOLAN
To: TWITTER, INC.
Reel/Frame 050124/0912 →
Continuity (1)
Related Publication 20200112622A1 · Apr 9, 2020