IP Library › Granted Patent US 12,225,079
Granted Patent B2
US 12,225,079 · App. 18/146,340 · Granted Feb 11, 2025

Ensuring coherency across responses when handling a series of client requests

Inventors: Martin Flack (Denver, CO); Stephen Ludin (Mill Valley, CA); Michael Bishop (Cincinnati, OH)
Assignee: Akamai Technologies, Inc.
H04L67/1025H04L67/02H04L67/1001H04L67/1012G06F12/0815H04L63/10H04L67/1029
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,225,079
App. No.
18/146,340
Granted
Feb 11, 2025
Kind
B2
Abstract

It is often important that a server's responses to a set of client requests are coherent with one another, but if the client's requests are spread over time, that may not occur. In accordance with the teaching of this patent document, a client is able to communicate with a server to achieve coherency. A client can send a request (e.g., an HTTP request for a given resource) with a data preservation directive. The data preservation directive causes the server to initiate a server-side process to preserve the state of underlying server-side data upon which the response relies (or will rely). Also, a client can send a request with an attribute requesting the response be coherent with respect to some date-time or other reference point. This attribute thus asks the server to ensure coherency in the response to the client.

Claims (22)

1. A method, comprising:

providing a network protocol for performing a message exchange between a client and a server, the network protocol enabling a client to send a request for a resource to the server and for the server to issue a response to the request that provides the resource; and

activating, by at least one of (i) the client and (ii) the server, a second mode of operating the network protocol that is distinct from a first mode of operation of the network protocol, the second mode being activated to replace the first mode based on a comparison of client to server communication latency relative to a rate of server-side data updates, so as to address a risk that the server-side data changes between server responses to the client, the server-side data comprising information that is used by the server to provide the resource to the client via the network protocol.

2. The method of claim 1 , wherein the second mode ensures that the server-side data remains consistent across a plurality of requests from the client.

3. The method of claim 1 , wherein the second mode enables the client to direct the server to preserve a version of server-side data.

4. The method of claim 1 , wherein the second mode enables the client to request a version of server-side data as of when the client issued other requests to the server.

5. The method of claim 1 , wherein the network protocol comprises Hypertext Transfer Protocol (HTTP).

6. A system, comprising:

one or more computers having circuitry forming one or more or processors and memory storing computer program instructions for execution on the one or more processors to cause the one or more computers to:

provide a network protocol for performing a message exchange between a client and a server, the network protocol enabling a client to send a request for a resource to the server and for the server to issue a response to the request that provides the resource; and

activate a second mode of operating the network protocol that is distinct from a first mode of operation of the network protocol, the second mode being activated to replace the first mode based on a comparison of client to server latency relative to a rate of server-side data updates, so as to address a risk that the server-side data changes between server responses to the client, the server side data comprising information that is used by the server to provide the resource to the client via the network protocol.

7. The system of claim 6 , wherein the second mode enables the client to direct the server to preserve a version of server-side data.

8. The system of claim 6 , wherein the second mode enables the client to request a version of server-side data as of when the client issued other requests to the server.

9. The system of claim 6 , wherein the network protocol comprises Hypertext Transfer Protocol (HTTP).

10. A non-transitory computer readable medium holding program instructions for execution on one or more hardware processors to cause a server and a client to operate as follows:

provide a network protocol for performing a message exchange between a client and a server, the network protocol enabling a client to send a request for a resource to the server and for the server to issue a response to the request that provides the resource; and

activate a second mode of operating the network protocol that is distinct from a first mode of operation of the network protocol, the second mode being activated to replace the first mode based on a comparison of client to server communication latency relative to a rate of server-side data updates, so as to address a risk that the server-side data changes between server responses to the client, the server side data comprising information that is used by the server to provide the resource to the client via the network protocol.

11. The non-transitory computer readable medium of claim 10 , wherein the second mode ensures that the server-side data remains consistent across a plurality of requests from the client.

12. The non-transitory computer readable medium of claim 10 , wherein the second mode ensures that the server-side data remains consistent across a plurality of requests from the client.

13. The non-transitory computer readable medium of claim 10 , wherein the second mode enables the client to direct the server to preserve a version of server-side data.

14. The non-transitory computer readable medium of claim 10 , wherein the second mode enables the client to request a version of server-side data as of when the client issued other requests to the server.

15. The non-transitory computer readable medium of claim 10 , wherein the network protocol comprises Hypertext Transfer Protocol (HTTP).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2023
From: FLACK, MARTIN; LUDIN, STEPHEN; BISHOP, MICHAEL
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 062621/0532 →
Continuity (1)
Related Publication 20240214449A1 · Jun 27, 2024
References Cited (33)
US 6219676B1 · Reiner · 2001 [cited by examiner]
US 6820133B1 · Grove et al. · 2004 [cited by applicant]
US 7020719B1 · Grove et al. · 2006 [cited by applicant]
US 7328222B2 · Keith · 2008 [cited by examiner]
US 7607062B2 · Grove et al. · 2009 [cited by applicant]
US 7764622B2 · El-Damhougy et al. · 2010 [cited by applicant]
US 8019447B2 · Hoisington et al. · 2011 [cited by applicant]
US 8019811B1 · Britto · 2011 [cited by examiner]
US 8176097B2 · Andersen · 2012 [cited by examiner]
US 8189496B2 · Wittenschlaeger · 2012 [cited by applicant]
US 8458727B2 · Palmer · 2013 [cited by examiner]
US 8635271B1 · Adya · 2014 [cited by examiner]
US 8868846B2 · Ober · 2014 [cited by examiner]
US 9385914B1 · Britto · 2016 [cited by examiner]
US 10419106B1 · Liu et al. · 2019 [cited by applicant]
US 11122140B1 · Britto · 2021 [cited by examiner]
US 11171720B1 · Uthaman et al. · 2021 [cited by applicant]
US 20010013070A1 · Sasaki · 2001 [cited by examiner]
US 20020002603A1 · Vange · 2002 [cited by examiner]
US 20030217081A1 · White · 2003 [cited by examiner]
US 20070180113A1 · Van Bemmel · 2007 [cited by examiner]
US 20080307037A1 · Zhang · 2008 [cited by examiner]
US 20150331794A1 · Ren · 2015 [cited by examiner]
US 20170230442A1 · Denoual · 2017 [cited by examiner]
US 20190182349A1 · Goel · 2019 [cited by examiner]
CN 103781079A · 2014 [cited by applicant]
Toomin, M. et al., “Braid-HTTP: Synchronization for HTTP draft-toomim-httpbis-braid-http-02”, Mar. 9, 2020, available at https://datatracker.ietf.org/doc/draft-toomim-httpbis-braid-http/02/. [cited by applicant]
Toomin, M. et al., “Braid-HTTP: Synchronization for HTTP draft-toomim-httpbis-braid-http-04”, available at https://raw.githubusercontent.com/braid-org/braid-spec/master/draft-toomim-httpbis-braid-http-04.txt (downloaded… [cited by applicant]
“Create a Database Snapshot (Transact-SQL), Nov. 18, 2022, 5 pages.”, downloaded on Dec. 19, 2022. [cited by applicant]
“Machine Translation of CN103781079A, Espacenet”, 12 pages, May 7, 2014. 29 pages. [cited by applicant]
“Machine Translation of CN103781079A, Google Patents” 12 pages, May 7, 2014. [cited by applicant]
“RFC 9000 QUIC: A UDP-Based Multiplexed and Secure Transport, May 2021, 151 pages.” [cited by applicant]
Berners-Lee, et al., “RFC 1945, Hypertext Transfer Protocol—HTTP/1.0, May 1996, 61 pages.”. [cited by applicant]