IP Library › Granted Patent US 12,461,936
Granted Patent B2
US 12,461,936 · App. 18/219,028 · Granted Nov 4, 2025

Synchronizing changes in a distributed system with intermittent connectivity

Inventors: Logan Stinger (Pleasant Grove, UT); John Wilson (Pleasant Grove, UT); Kody Holman (Pleasant Grove, UT); Talmage Wagstaff (Pleasant Grove, UT)
Assignee: REDLIST, LLC
G06F16/27G06F16/24532G06F16/252
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,461,936
App. No.
18/219,028
Granted
Nov 4, 2025
Kind
B2
Abstract

Changes can be synchronized in a distributed system with intermittent connectivity. A synchronization coordinator on a server and an application on mobile devices can be configured to synchronize a shared dataset using file transfers. By transferring files, the application on the mobile device can synchronize large, shared datasets via a long-running task without needing to remain active on the mobile device until the task is completed. The synchronization coordinator and applications can use unique identifiers to identify storage locations by which the files are transferred.

Claims (64)

1 . A method, performed by a synchronization coordinator that executes on a server, for synchronizing a dataset in a distributed system, the method comprising:

receiving a request for a dataset from an application executing on a mobile device; and

in response to the request for the dataset:

obtaining a confirmation ID representing the dataset and used as a unique element in a path to a container in a file store;

sending the confirmation ID to the application;

accessing a database to retrieve the dataset;

creating one or more files that contain the dataset;

creating the container in the file store at the path to the container that includes the confirmation ID such that the confirmation ID forms a unique element in the path to the container in the file store; and

storing the one or more files in the container in the file store enabling the application to retrieve the one or more files by sending, as part of a network request, a file access request that specifies the path to the container that includes the confirmation ID in the path.

2 . The method of claim 1 , wherein the request for the dataset specifies an installation ID, and wherein accessing the database to retrieve the dataset comprises retrieving the dataset using the installation ID.

3 . The method of claim 2 , wherein the installation ID represents a location.

4 . The method of claim 1 , wherein the obtaining the confirmation ID comprises creating the confirmation ID.

5 . The method of claim 1 , wherein the one or more files include a first file containing at least a portion of the dataset and a second file comprising a manifest.

6 . The method of claim 1 , wherein the dataset defines assets and tasks pertaining to the assets.

7 . The method of claim 1 , wherein the confirmation ID is a last element in the path to the container.

8 . The method of claim 1 , further comprising:

receiving confirmation from the application that the application obtained the one or more files; and

deleting the container from the file store.

9 . The method of claim 1 , further comprising:

receiving a notification from the application that one or more additional files have been stored in the container in the file store, the one or more additional files containing changes to the dataset that were made on the mobile device;

using the confirmation ID to access the one or more additional files in the container in the file store; and

using the one or more additional files to synchronize the changes to the dataset that were made on the mobile device with the dataset stored in the database.

10 . The method of claim 9 , further comprising:

in response to the notification, posting a message to a message queue, the message representing that the one or more additional files have been stored in the container in the file store.

11 . The method of claim 1 , further comprising:

determining a subset of model objects that pertain to a requester of the dataset;

wherein accessing the database to retrieve the dataset comprises accessing the database to retrieve only the subset of model objects.

12 . The method of claim 11 , wherein the requester comprises a customer or a user of the customer.

13 . The method of claim 1 , wherein the accessing the database to retrieve the dataset comprises creating a sequence of shorter-running queries and executing the sequence in parallel with one or more longer-running queries.

14 . The method of claim 1 , further comprising:

sending a cancellation ID to the application that the application uses to cause the synchronization coordinator to cease processing the request for the dataset.

15 . A method, performed by an application that executes on a mobile device, for synchronizing a dataset in a distributed system, the method comprising:

sending a request for a dataset to a synchronization coordinator that executes on a server;

in response to sending the request for the dataset, receiving a confirmation ID from the synchronization coordinator, the confirmation ID having been created to represent the dataset and used as a unique element in a path to a container in a file store in which one or more files containing the dataset are to be stored;

using the confirmation ID to access the container in the file store by sending, as part of a network request, a file access request that specifies the path to the container that includes the confirmation ID in the path;

downloading the one or more files stored in the container in the file store;

extracting the dataset from the one or more files; and

storing the dataset in a local database on the mobile device.

16 . The method of claim 15 , wherein the confirmation ID is a last element in the path to the container.

17 . The method of claim 15 , wherein the request for the dataset includes an installation ID, and wherein the path to the container also includes the installation ID.

18 . The method of claim 15 , wherein the application downloads the one or more files stored in the container in the file store when a screen of the mobile device is turned off.

19 . The method of claim 15 , further comprising:

receiving input from a user that changes the dataset stored in the local database on the mobile device.

20 . The method of claim 19 , further comprising:

creating one or more additional files that include the changed dataset; and

storing the one or more additional files in the container in the file store.

21 . The method of claim 20 , further comprising:

sending a notification to the synchronization coordinator that the one or more additional files are stored in the container in the file store.

22 . The method of claim 21 , wherein the notification includes the confirmation ID enabling the synchronization coordinator to identify the location container in the file store using the confirmation ID.

23 . One or more computer storage media storing computer executable instructions which when executed implement a method for synchronizing changes in a distributed system, the method comprising:

receiving, at a synchronization coordinator, a request for a dataset from an application executing on a mobile device, the dataset being stored in a database on a server;

in response to the request for the dataset, obtaining and sending, by the synchronization coordinator, an identifier for the request to the application, the identifier to be used as a unique element in a path to a container in a file store;

creating the container in the file store at the path to the container that includes the identifier such that the identifier forms the unique element in the path to the container in the file store;

storing, by the synchronization coordinator, one or more files in the container in the file store, the one or more files containing the dataset;

using, by the application, the identifier for the request to access the container in the file store in downloading the one or more files, wherein the using, by the application, the identifier for the request comprises sending, as part of a network request, a file access request that specifies the path to the container that includes the identifier in the path for the request;

extracting, by the application, the dataset from the one or more files; and

storing, by the application, the dataset in a local database on the mobile device.

24 . The one or more computer storage media of claim 23 , wherein the method further comprises:

updating, by the application, the dataset in the local database;

creating, by the application, one or more additional files that contain the updated dataset; and

using, by the application, the identifier for the request to upload the one or more additional files to the container in the file store.

25 . The one or more computer storage media of claim 24 , wherein the method further comprises:

using, by the synchronization coordinator, the identifier for the request to access the container in the file store to retrieve the one or more additional files; and

synchronizing, by the synchronization coordinator, the updated dataset to the dataset stored in the database on the server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2023
From: STINGER, LOGAN; WILSON, JOHN; HOLMAN, KODY; WAGSTAFF, TALMAGE
To: REDLIST, LLC
Reel/Frame 064203/0173 →
Continuity (2)
Provisional Application 63359312 · Jul 8, 2022
Related Publication 20240012835A1 · Jan 11, 2024
References Cited (34)
US 5678046A · Cahill · 1997 [cited by examiner]
US 6374248B1 · Nazari · 2002 [cited by examiner]
US 9547704B1 · Deus · 2017 [cited by examiner]
US 9830335B1 · Tibble · 2017 [cited by examiner]
US 20050086288A1 · Datta · 2005 [cited by examiner]
US 20070043693A1 · Krieg · 2007 [cited by examiner]
US 20090077263A1 · Koganti · 2009 [cited by examiner]
US 20100293585A1 · Xia · 2010 [cited by examiner]
US 20120278370A1 · Nichols · 2012 [cited by examiner]
US 20140304297A1 · Lian · 2014 [cited by examiner]
US 20150248466A1 · Jernigan, IV · 2015 [cited by examiner]
US 20150261782A1 · McFerrin · 2015 [cited by examiner]
US 20160119290A1 · Balasubramanian · 2016 [cited by examiner]
US 20170300530A1 · Tang et al. · 2017 [cited by applicant]
US 20200226123A1 · Nixon · 2020 [cited by examiner]
US 20200366706A1 · Sexton et al. · 2020 [cited by applicant]
US 20210224334A1 · Shrinivasan · 2021 [cited by examiner]
US 20210234713A1 · Nagasawa · 2021 [cited by examiner]
US 20210390141A1 · Jacob · 2021 [cited by examiner]
US 20230171217A1 · Fritz · 2023 [cited by examiner]
US 20230188577A1 · Venkiteswaran · 2023 [cited by examiner]
US 20230237029A1 · Tal · 2023 [cited by examiner]
US 20230376496A1 · Jacob · 2023 [cited by examiner]
CN 103428462A · 2013 [cited by examiner]
CN 108449289A · 2018 [cited by examiner]
CN 111324914A · 2020 [cited by examiner]
CN 112700251A · 2021 [cited by examiner]
CN 112948355A · 2021 [cited by examiner]
CN 113688415A · 2021 [cited by examiner]
CN 114513501A · 2022 [cited by examiner]
JP 2000183929A5 · 2006 [cited by examiner]
KR 2007108616A · 2007 [cited by examiner]
WO WO2012000272A1 · 2012 [cited by examiner]
International Searching Authority, International Search Report and the Written Opinion, Nov. 6, 2023. [cited by applicant]