IP Library › Granted Patent US 12,602,398
Granted Patent B2
US 12,602,398 · App. 18/211,512 · Granted Apr 14, 2026

Synchronizing state in large-scale distribution systems

Inventors: Idan Zipris (Tel Aviv, IL); Yan Gleyzer (Petah Tikva, IL); Rami Yagil (Hadera, IL); Guy Rozenwald (Tel-Mond, DE)
Assignee: EBAY INC.
G06F16/27G06F1/12G06Q30/0283G06Q30/06
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,602,398
App. No.
18/211,512
Granted
Apr 14, 2026
Kind
B2
Abstract

A processing client may receive a dataset replacement indication that indicates an upcoming synchronized data replacement in which processing clients are to synchronously replace a first synchronized dataset with a second synchronized dataset as well as a request period during which the processing clients are to request, at randomized times, the second synchronized dataset. The processing client may transmit a query requesting the second synchronized dataset. The processing client may receive a response including the second synchronized dataset and an indication of an expiration time for the first synchronized dataset that indicates when the processing clients are to replace the first synchronized dataset. The processing client may store, at the processing client prior to the expiration time, the second synchronized dataset and the indication of the expiration time. The processing client may replace, in response to the expiration time occurring, the first synchronized dataset with the second synchronized dataset.

Claims (63)

1 . A method for synchronized data replacement, comprising:

receiving, by a first processing client from a data source, a dataset replacement indication that is distributed to a plurality of processing clients, the dataset replacement indication indicating an upcoming synchronized data replacement in which each processing client of the plurality of processing clients are to synchronously replace a first synchronized dataset with a second synchronized dataset and a request period during which each processing client of the plurality of processing clients are to request, at randomized times within the request period, the second synchronized dataset;

based at least in part on the dataset replacement indication and at a first randomized time within the request period, transmitting, by the first processing client to the data source, a query requesting the second synchronized dataset that is to replace the first synchronized dataset;

receiving, based at least in part on transmitting the query, a response from the data source comprising the second synchronized dataset and an indication of an expiration time for the first synchronized dataset, the expiration time indicating when the plurality of processing clients are to synchronously replace the first synchronized dataset with the second synchronized dataset;

storing, at the first processing client prior to the expiration time for the first synchronized dataset and based at least in part on receiving the response, the second synchronized dataset and the indication of the expiration time for the first synchronized dataset; and

replacing, at the first processing client and in response to the expiration time for the first synchronized dataset occurring, the first synchronized dataset with the second synchronized dataset.

2 . The method of claim 1 , wherein the first synchronized dataset and the second synchronized dataset each describe a product category tree of an online marketplace and a plurality of sales tax rates for respective product categories of the product category tree, the method further comprising:

receiving an indication of a first product category within the product category tree of the online marketplace;

identifying a first sales tax rate for the first product category indicated by the first synchronized dataset prior to the expiration time for the first synchronized dataset or a second sales tax rate for the first product category indicated by the second synchronized dataset after the expiration time; and

transmitting, to the online marketplace, an indication of one of the first sales tax rate or the second sales tax rate, or an indication of a calculated amount of sales tax for a purchase price of an item calculated using one of the first sales tax rate or the second sales tax rate.

3 . The method of claim 1 , wherein the first synchronized dataset describes a product category tree having a first category structure for an online marketplace and the second synchronized dataset describes the product category tree having a second category structure that differs from the first category structure, the method further comprising:

receiving an indication of a product available from the online marketplace;

identifying in which product category of a plurality of product categories of the product category tree the product is classified using one of the first synchronized dataset prior to the expiration time for the first synchronized dataset or the second synchronized dataset after the expiration time; and

transmitting, to the online marketplace, an indication of the identified product category or data associated with the identified product category.

4 . The method of claim 3 , wherein the data indicates a sales tax rate for products categorized within the identified product category, a geo-location to which the online marketplace ships products categorized within the identified product category, a delivery estimate for products categorized within the identified product category, a shipping cost estimate for products categorized within the identified product category, or any combination thereof.

5 . The method of claim 1 , wherein the first synchronized dataset describes a product category tree having a first category structure for an online marketplace and the second synchronized dataset describes the product category tree having a second category structure that differs from the first category structure, the method further comprising:

receiving a search query via an online marketplace;

mapping one or more terms in the search query to one or more product categories of the product category tree using one of the first synchronized dataset prior to the expiration time of the first synchronized dataset or the second synchronized dataset after the expiration time; and

returning an indication of one or more listings from the one or more product categories based at least in part on the one or more terms in the search query.

6 . The method of claim 1 , further comprising:

periodically transmitting one or more additional queries requesting one or more additional synchronized datasets; and

monitoring for one or more responses to the one or more additional queries.

7 . The method of claim 1 , wherein the first synchronized dataset describes a product category tree associated with an online marketplace and the second synchronized dataset describes a modified version of the product category tree.

8 . The method of claim 1 , wherein the first synchronized dataset describes online marketplace metadata associated with an online marketplace and the second synchronized dataset describes a modified version of the online marketplace metadata.

9 . The method of claim 1 , further comprising:

synchronizing a clock of the first processing client with one or more additional clocks associated with one or more second processing clients of the plurality of processing clients.

10 . The method of claim 1 , wherein replacing the first synchronized dataset with the second synchronized dataset comprises:

adjusting at least one pointer in memory implemented by a storage device from the first synchronized dataset to the second synchronized dataset.

11 . An apparatus for synchronized data replacement, comprising:

at least one processor;

at least one memory coupled with the at least one processor; and

instructions stored in the at least one memory and executable by the at least one processor to cause the apparatus to perform operations comprising:

receiving, from a data source, a dataset replacement indication that is distributed to a plurality of processing clients, the dataset replacement indication indicating an upcoming synchronized data replacement in which each processing client of the plurality of processing clients are to synchronously replace a first synchronized dataset with a second synchronized dataset and a request period during which each processing client of the plurality of processing clients are to request, at randomized times within the request period, the second synchronized dataset;

based at least in part on the dataset replacement indication and at a first randomized time within the request period, transmitting, to the data source, a query requesting the second synchronized dataset that is to replace the first synchronized dataset;

receiving, based at least in part on transmitting the query, a response from the data source comprising the second synchronized dataset and an indication of an expiration time for the first synchronized dataset, the expiration time indicating when the plurality of processing clients are to synchronously replace the first synchronized dataset with the second synchronized dataset;

storing, at a first processing client prior to the expiration time for the first synchronized dataset and based at least in part on receiving the response, the second synchronized dataset and the indication of the expiration time for the first synchronized dataset; and

replacing , at the first processing client and in response to the expiration time for the first synchronized dataset occurring, the first synchronized dataset with the second synchronized dataset.

12 . The apparatus of claim 11 , wherein the first synchronized dataset and the second synchronized dataset each describe a product category tree of an online marketplace and a plurality of sales tax rates for respective product categories of the product category tree, and the operations further comprise:

receiving an indication of a first product category within the product category tree of the online marketplace;

identifying a first sales tax rate for the first product category indicated by the first synchronized dataset prior to the expiration time for the first synchronized dataset or a second sales tax rate for the first product category indicated by the second synchronized dataset after the expiration time; and

transmitting, to the online marketplace, an indication of one of the first sales tax rate or the second sales tax rate, or an indication of a calculated amount of sales tax for a purchase price of an item calculated using one of the first sales tax rate or the second sales tax rate.

13 . The apparatus of claim 11 , wherein the first synchronized dataset describes a product category tree having a first category structure for an online marketplace and the second synchronized dataset describes the product category tree having a second category structure that differs from the first category structure, and the operations further comprise:

receiving an indication of a product available from the online marketplace;

identifying in which product category of a plurality of product categories of the product category tree the product is classified using one of the first synchronized dataset prior to the expiration time for the first synchronized dataset or the second synchronized dataset after the expiration time; and

transmitting, to the online marketplace, an indication of the identified product category or data associated with the identified product category.

14 . The apparatus of claim 13 , wherein the data indicates a sales tax rate for products categorized within the identified product category, a geo-location to which the online marketplace ships products categorized within the identified product category, a delivery estimate for products categorized within the identified product category, a shipping cost estimate for products categorized within the identified product category, or any combination thereof.

15 . The apparatus of claim 11 , wherein the first synchronized dataset describes a product category tree having a first category structure for an online marketplace and the second synchronized dataset describes the product category tree having a second category structure that differs from the first category structure, and the operations further comprise:

receiving a search query via an online marketplace;

mapping one or more terms in the search query to one or more product categories of the product category tree using one of the first synchronized dataset prior to the expiration time of the first synchronized dataset or the second synchronized dataset after the expiration time; and

returning an indication of one or more listings from the one or more product categories based at least in part on the one or more terms in the search query.

16 . The apparatus of claim 11 , wherein the operations further -comprise:

periodically transmitting one or more additional queries requesting one or more additional synchronized datasets; and

monitoring for one or more responses to the one or more additional queries.

17 . The apparatus of claim 11 , wherein the first synchronized dataset describes a product category tree associated with an online marketplace and the second synchronized dataset describes a modified version of the product category tree.

18 . The apparatus of claim 11 , wherein the first synchronized dataset describes online marketplace metadata associated with an online marketplace and the second synchronized dataset describes a modified version of the online marketplace metadata.

19 . The apparatus of claim 11 , wherein the operations further comprise:

synchronizing a clock of the first processing client with one or more additional clocks associated with one or more second processing clients of the plurality of processing clients.

20 . A non-transitory computer-readable medium storing instructions that, when executable by at least one processor, causes the at least one processor to perform operations comprising:

receiving, from a data source, a dataset replacement indication that is distributed to a plurality of processing clients, the dataset replacement indication indicating an upcoming synchronized data replacement in which each processing client of the plurality of processing clients are to synchronously replace a first synchronized dataset with a second synchronized dataset and a request period during which each processing client of the plurality of processing clients are to request, at randomized times within the request period, the second synchronized dataset;

based at least in part on the dataset replacement indication and at a first randomized time within the request period, transmitting, to the data source, a query requesting the second synchronized dataset that is to replace the first synchronized dataset;

receiving, based at least in part on transmitting the query, a response from the data source comprising the second synchronized dataset and an indication of an expiration time for the first synchronized dataset, the expiration time indicating when the plurality of processing clients are to synchronously replace the first synchronized dataset with the second synchronized dataset;

storing, at a first processing client prior to the expiration time for the first synchronized dataset and based at least in part on receiving the response, the second synchronized dataset and the indication of the expiration time for the first synchronized dataset; and

replacing, at the first processing client and in response to the expiration time for the first synchronized dataset occurring, the first synchronized dataset with the second synchronized dataset.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2023
From: ZIPRIS, IDAN; GLEYZER, YAN; YAGIL, RAMI; ROZENWALD, GUY
To: EBAY INC.
Reel/Frame 063987/0277 →
Continuity (1)
Related Publication 20240419683A1 · Dec 19, 2024
References Cited (47)
US 6477545B1 · LaRue · 2002 [cited by examiner]
US 6810405B1 · LaRue · 2004 [cited by examiner]
US 10380339B1 · Appalaraju · 2019 [cited by examiner]
US 10397590B2 · Cohen · 2019 [cited by examiner]
US 10489592B1 · Naamneh · 2019 [cited by examiner]
US 11216581B1 · Arikapudi · 2022 [cited by examiner]
US 11379375B1 · Gottin et al. · 2022 [cited by applicant]
US 11423026B2 · Balasubrahmanian · 2022 [cited by examiner]
US 11468421B1 · Maselli · 2022 [cited by examiner]
US 20020184448A1 · Cherkasova et al. · 2002 [cited by applicant]
US 20060155933A1 · Buyuktosunoglu et al. · 2006 [cited by applicant]
US 20070130463A1 · Law · 2007 [cited by examiner]
US 20070150370A1 · Staib · 2007 [cited by examiner]
US 20080229025A1 · Plamondon · 2008 [cited by applicant]
US 20090077263A1 · Koganti · 2009 [cited by examiner]
US 20110315778A1 · Krupp · 2011 [cited by examiner]
US 20130290470A1 · CaraDonna · 2013 [cited by examiner]
US 20130304700A1 · Nicklin · 2013 [cited by examiner]
US 20130311909A1 · Howard · 2013 [cited by examiner]
US 20160071174A1 · McGilliard · 2016 [cited by examiner]
US 20160217027A1 · Chauvet · 2016 [cited by examiner]
US 20160232560A1 · VanDeVelde · 2016 [cited by examiner]
US 20160378343A1 · Long · 2016 [cited by examiner]
US 20170046081A1 · Palmer · 2017 [cited by examiner]
US 20170324986A1 · Gay et al. · 2017 [cited by applicant]
US 20180069946A1 · Katsev · 2018 [cited by applicant]
US 20180260125A1 · Botes · 2018 [cited by examiner]
US 20190187689A1 · Cella · 2019 [cited by examiner]
US 20190339687A1 · Cella · 2019 [cited by examiner]
US 20200104507A1 · Kasper · 2020 [cited by examiner]
US 20210224696A1 · Nasr-Azadani · 2021 [cited by examiner]
US 20210374523A1 · Gottin et al. · 2021 [cited by applicant]
US 20220050858A1 · Karr · 2022 [cited by examiner]
US 20230195696A1 · Gentric · 2023 [cited by examiner]
US 20240126411A1 · Meyrignac · 2024 [cited by examiner]
EP 3465477B1 · 2022 [cited by applicant]
Amazon Web Services, Caching Best Practices, Aug. 8, 2020, Retrieved from https://web.archive.org/web/20200808074853/https://aws.amazon.com/caching/best-practices/, 9 pages. [cited by applicant]
Huang et al., ROP: Alleviating Refresh Overheads Via Reviving the Memory System in Frozen Cycles, 2016 45th International Conference on Parallel Processing, Sep. 22, 2016, Retrieved from https://ieeexplore.ieee.org/abst… [cited by applicant]
Oracle, Coherence Developer's Guide: 13 Read-Through, Write-Through, Write-Behind, and refresh-Ahead Caching, Nov. 20, 2012, retrieved from: https://web.archive.org/web/20121120060300/https://docs.oracle.com/cd/E15357_0… [cited by applicant]
Sven Bayer, Accelerate Microservices with Refresh—Ahead Caching, Sep. 30, 2018, Retrieved from https://svenbayer.blog/2018/09/30/accelerate-microservices-with-refresh-ahead-caching/. [cited by applicant]
“European Application Serial No. 24180952.4, Extended European Search Report mailed Nov. 13, 2024”, 10 pgs. [cited by applicant]
“Automatically reload a webpage when it expires”, [Online]. Retrieved from the Internet: URL: https: stackoverflow.com questions 64242485 automatically-reload-a-webpage-when-it-expires, (Dec. 17, 2022), 3 pgs. [cited by applicant]
“Caching Patterns Boosting Your Application's Performance and Scalability”, [Online]. Retrieved from the Internet: URL: https: www.linkedin.com pulse caching-patterns-boosting-yourapplications-performance, (Mar. 16, 202… [cited by applicant]
Matthew, Neale, “Randomisation of cache durations reduces peak load variance on origin systems”, [Online]. Retrieved from the Internet: URL: https: web.archive.org web 20150114002524if_ http : www.estaronline.com images… [cited by applicant]
Mehojah, Kayla, “How to Prevent a Cache Stampede”, [Online]. Retrieved from the Internet: URL: https: web.archive.org web 20230607042516 https: wpvip.com Jun. 7, 2023 wordpress-caching , (Jun. 7, 2023), 11 pgs. [cited by applicant]
“European Application Serial No. 24180952.4, Response filed Mar. 27, 2025 to Extended European Search Report mailed Nov. 13, 2024”, 13 pgs. [cited by applicant]
“European Application Serial No. 24180952.4, Communication Pursuant to Article 943 EPC mailed Sep. 2, 2025”, 8 pgs. [cited by applicant]