IP Library Granted Patent US 10,348,800
Granted Patent B2
US 10,348,800 · App. 15/427,322 · Granted Jul 9, 2019

Invocation context caching

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,348,800
App. No.
15/427,322
Granted
Jul 9, 2019
Kind
B2
Abstract

Disclosed are systems, methods, and computer-readable storage media for caching routing data in a request to provide a service. A front-end server located at a first datacenter receives a request for a service, with the request originating from a client device. In response to receiving the request, the front-end server queries a routing database for routing data identifying a location of one or more computing devices to fulfill the request. The front-end server receives the routing data from the routing database and transmits, based on the routing data received from the routing database, a first subsequent request to a front-end server located at a second datacenter. The subsequent request is appended with the routing data and the front-end server located at the second datacenter utilizes the routing data included in the subsequent request to fulfill the request received from the client device.

Claims (49)

1. A method comprising:

receiving, by a front-end server located at a first datacenter, a request for a service, the request originating from a client device;

in response to receiving the request, querying a routing database for routing data identifying a location of one or more computing devices to fulfill the request;

receiving the routing data from the routing database;

transmitting, based on the routing data received from the routing database, a first subsequent request to a front-end server located at a second datacenter, the subsequent request appended with the routing data, the front-end server located at the second datacenter utilizing the routing data included in the subsequent request to fulfill the request received from the client device.

2. The method of claim 1 , wherein after receiving the first subsequent request, the front-end server located at the second datacenter:

identifies, based on the routing data included in the first subsequent request and without querying the routing service, a first back-end server located at the second datacenter to provide the service; and

transmits a second subsequent request to the first back-end server, the second subsequent request appended with the routing data.

3. The method of claim 2 , wherein after receiving the second subsequent request, the first back-end server validates, based on the routing data included in the second subsequent request and without querying the routing service, a location of data associated with the service.

4. The method of claim 1 , wherein the routing data is appended to a Hypertext Transfer Protocol (HTTP) header of the first subsequent request.

5. The method of claim 1 , wherein the routing database stores:

entity routing information identifying relationships amongst a plurality of entities and a plurality of data centers; and

information identifying access routes for requested services based on the entity routing information.

6. The method of claim 5 , wherein querying the routing database comprises:

transmitting, to the routing database, data identifying a user associated with the request.

7. The method of claim 6 , wherein the data identifying the user is a data cookie received in the request for the service.

8. A front-end server located at a first datacenter comprising:

one or more computer processors; and

one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the front-end server to:

receive a request for a service, the request originating from a client device;

in response to receiving the request, query a routing database for routing data identifying a location of one or more computing devices to fulfill the request;

receive the routing data from the routing database;

transmit, based on the routing data received from the routing database, a first subsequent request to a front-end server located at a second datacenter, the subsequent request appended with the routing data, the front-end server located at the second datacenter utilizing the routing data included in the subsequent request to fulfill the request received from the client device.

9. The front-end server of claim 8 , wherein after receiving the first subsequent request, the front-end server located at the second datacenter:

identifies, based on the routing data included in the first subsequent request and without querying the routing service, a first back-end server located at the second datacenter to provide the service; and

transmits a second subsequent request to the first back-end server, the second subsequent request appended with the routing data.

10. The front-end server of claim 9 , wherein after receiving the second subsequent request, the first back-end server validates, based on the routing data included in the second subsequent request and without querying the routing service, a location of data associated with the service.

11. The front-end server of claim 8 , wherein the routing data is appended to a Hypertext Transfer Protocol (HTTP) header of the first subsequent request.

12. The front-end server of claim 8 , wherein the routing database stores:

entity routing information identifying relationships amongst a plurality of entities and a plurality of data centers; and

information identifying access routes for requested services based on the entity routing information.

13. The front-end server of claim 12 , wherein querying the routing database comprises:

transmitting, to the routing database, data identifying a user associated with the request.

14. The front-end server of claim 13 , wherein the data identifying the user is a data cookie received in the request for the service.

15. A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of a front-end server, cause the front-end server to:

receive a request for a service, the request originating from a client device;

in response to receiving the request, query a routing database for routing data identifying a location of one or more computing devices to fulfill the request;

receive the routing data from the routing database;

transmit, based on the routing data received from the routing database, a first subsequent request to a front-end server located at a second datacenter, the subsequent request appended with the routing data, the front-end server located at the second datacenter utilizing the routing data included in the subsequent request to fulfill the request received from the client device.

16. The non-transitory computer-readable medium of claim 15 , wherein after receiving the first subsequent request, the front-end server located at the second datacenter:

identifies, based on the routing data included in the first subsequent request and without querying the routing service, a first back-end server located at the second datacenter to provide the service; and

transmits a second subsequent request to the first back-end server, the second subsequent request appended with the routing data.

17. The non-transitory computer-readable medium of claim 16 , wherein after receiving the second subsequent request, the first back-end server validates, based on the routing data included in the second subsequent request and without querying the routing service, a location of data associated with the service.

18. The non-transitory computer-readable medium of claim 15 , wherein the routing data is appended to a Hypertext Transfer Protocol (HTTP) header of the first subsequent request.

19. The non-transitory computer-readable a medium of claim 15 , wherein the routing database stores:

entity routing information identifying relationships amongst a plurality of entities and a plurality of data centers; and

information identifying access routes for requested services based on the entity routing information.

20. The non-transitory computer-readable medium of claim 19 , wherein querying the routing database comprises:

transmitting, to the routing database, data identifying a user associated with the request, the data identifying the user received as a data cookie in the request for service.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2017
From: SHOWALTER, TIMOTHY JACK; LIANG, RONGSHENG
To: LINKEDIN CORPORATION
Reel/Frame 041240/0225 →