IP Library › Granted Patent US 11,762,854
Granted Patent B2
US 11,762,854 · App. 17/005,863 · Granted Sep 19, 2023

Extended caching and query-time validation

Inventors: Gilles Aubin Bikouo Njangang (Antibes, FR); Stephane Rodriguez (Antibes, FR); Francois-Joseph Mytych (Le Rouret, FR); Thierry Blaszka (La Colle sur Loup, FR); Jean-Philippe Aubry (Sudbury, MA); Sami Gharbi (Antibes, FR)
Assignee: AMADEUS S.A.S.
G06F16/24539G01C21/3446G01C21/3492G01C21/3617G06F16/24552G06F16/24578
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,762,854
App. No.
17/005,863
Granted
Sep 19, 2023
Kind
B2
Abstract

In a distributed computing environment comprising a frontend system with a search platform having a cache of pre-computed search results and a backend system with one or more data-bases and a validation instance, a request is received at the search platform from a client comprising one or more first key-values indicating a first data record and at least a first pre-computed search result and a second pre-computed search result for the first data record is retrieved from the cache. The validation instance evaluates a current validity of the first pre-computed search result and the second pre-computed search result retrieved from the cache and returns the first pre-computed search result to the client device, or in response to evaluating that the first pre-computed search result is invalid and the second pre-computed search result is valid, returns the second pre-computed search result to the client.

Claims (37)

1. A method for handling data in a distributed computing environment, the method comprising:

storing, in a cache of a frontend system of the distributed computing environment, a plurality of pre-computed search results generated by a backend system of the distributed computing environment from data records stored at the backend system, each pre-computed search result containing a set of parameters having corresponding values, at least first and second pre-computed search results having equal values for a subset of the parameters, and unequal values for a remainder of the parameters;

receiving, at the frontend system, a request from a client device, the request comprising the equal values for the subset of the parameters;

in response to receiving the request, retrieving from the cache at least the first pre-computed search result and the second pre-computed search result,

transmitting a validation inquiry from the frontend system to a validation instance of the backend system, the validation inquiry containing identifiers of the first and second pre-computed search results;

in response to the validation inquiry, receiving at the frontend system from the validation instance (i) a current validity of the first pre-computed search result indicating whether a first route defined by the first pre-computed search result is available, and (ii) a current validity of the second pre-computed search result indicating whether a second route defined by the second pre-computed search result is available;

determining, at the frontend system based on the current validities of the first and second pre-computed search results, that the first route is unavailable, and that the second route is available;

in response to the determination, without requesting generation of further search results by the backend system, (i) returning the second pre-computed search result from the frontend system to the client device in response to the request, and (ii) discarding the first pre-computed search result from the cache at the frontend system.

2. The method according to claim 1 , wherein the pre-computed search results comprise a set of ordered search results, wherein the first pre-computed search result is a first-ranked search result and the second pre-computed search result is a second-ranked search result from the set of ordered search results.

3. The method according to claim 1 , further comprising, at the frontend system: returning, in response to evaluating that the first pre-computed search result is invalid an indication that the first pre-computed search result is currently invalid.

4. The method according to claim 1 , wherein the frontend system comprises a cache manager, the method further comprising, at the cache manager:

triggering a pre-computation of at least two further pre-computed search results containing the equal values for the subset of parameters, in response to determining that a probability that at least one of the first pre-computed search result or the second pre-computed search result stored at the cache is outdated exceeds a given threshold.

5. The method according to claim 4 , wherein determining that a probability that at least one of the first pre-computed search result or the second pre-computed search result stored at the cache is outdated exceeds a given threshold comprises:

calculating an aging value given by e −C(t-t 0 ) ;

wherein t denotes a current time or the estimated time of receipt of the first and/or second pre-computed search result at the cache, C denotes an aging rate modelled by a probabilistic model and t0 a timestamp indicating the time when the first and/or the second pre-computed search result was precomputed;

determining whether the aging value is below a threshold value.

6. The method according to claim 4 , wherein triggering the pre-computation comprises:

transmitting an indication from the frontend system to the backend system that the first pre-computed search result and/or the second pre-computed search result is invalid; and

replacing the first pre-computed search result from the set of search results for the given data record and/or the second pre-computed search result by the further search results.

7. A computing system comprising:

a backend system storing data records and configured to generate search results from the data records;

a frontend system having a cache storing a plurality of pre-computed search results generated by the backend system, each pre-computed search result containing a set of parameters having corresponding values, at least first and second pre-computed search results having equal values for a subset of the parameters, and unequal values for a remainder of the parameters;

the frontend system being arranged to:

receive a request from a client device, the request comprising the common equal values for the first subset of the parameters;

in response to receiving the request, retrieve from the cache at least the first pre-computed search result and the second pre-computed search result for the first data record;

transmit a validation inquiry from the frontend system to a validation instance of the backend system, the validation inquiry containing identifiers of the first and second pre-computed search results;

in response to the validation inquiry, receive from the validation instance (i) a current validity of the first pre-computed search result indicating whether a first route defined by the first pre-computed search result is available, and (ii) a current validity of the second pre-computed search result indicating whether a second route defined by the second pre-computed search result is available;

determine, based on the current validities of the first and second pre-computed search results, that the first route is unavailable, and that the second route is available;

in response to the determination, without requesting generation of further search results by the backend system, (i) return the second pre-computed search result to the client device in response to the request, and (ii) discard the first pre-computed search result from the cache.

8. A non-transitory computer readable medium storing instructions executable by a computing device to:

store, in a cache of the computing device, a plurality of pre-computed search results generated by a backend system from data records stored at the backend system, each pre-computed search result containing a set of parameters having corresponding values, at least first and second pre-computed search results having equal values for a subset of the parameters, and unequal values for a remainder of the parameters;

receive a request from a client device, the request comprising the equal values for the subset of the parameters;

in response to receiving the request, retrieve from the cache at least the first pre-computed search result and the second pre-computed search result;

transmit a validation inquiry to a validation instance of the backend system, the validation inquiry containing identifiers of the first and second pre-computed search results;

in response to the validation inquiry, receive from the validation instance (i) a current validity of the first pre-computed search result indicating whether a first route defined by the first pre-computed search result is available, and (ii) a current validity of the second pre-computed search result indicating whether a second route defined by the second pre-computed search result is available;

determine, based on the current validities of the first and second pre-computed search results, that the first route is unavailable, and that the second route is available;

in response to the determination, without requesting generation of further search results by the backend system, (i) return the second pre-computed search result to the client device in response to the request, and (ii) discard the first pre-computed search result from the cache.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2020
From: BIKOUO NJANGANG, GILLES AUBIN; RODRIGUEZ, STEPHANE; MYTYCH, FRANCOIS-JOSEPH; BLASZKA, THIERRY; AUBRY, JEAN-PHILIPPE; GHARBI, SAMI
To: AMADEUS S.A.S.
Reel/Frame 053901/0110 →
Priority Claims (1)
FR 1909794 · Sep 5, 2019 · national
Continuity (1)
Related Publication 20210073228A1 · Mar 11, 2021