IP Library Granted Patent US 10,198,468
Granted Patent B2
US 10,198,468 · App. 15/092,603 · Granted Feb 5, 2019

Merging data edits with intervening edits for data concurrency

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,198,468
App. No.
15/092,603
Granted
Feb 5, 2019
Kind
B2
Abstract

A data concurrency module maintains a delta chain for each record that stores the edits made to the flexible record over time. The delta chain stores the edits ordered by a version identifier. When the data concurrency module receives an edit to a record, the data concurrency module compares the version identifier associated with the edit with the most recent version identifier stored in the delta chain for that flexible record. If the version identifiers are different, then the data concurrency module merges the edit with all intervening edits in the delta chain, resolving any conflicts that result from the merging.

Claims (43)

1. A method for persisting data received from different data sources, the method comprising:

maintaining a delta chain for a record, the delta chain identifying a current version of the record with a first version identifier and an earlier version of the record with a second version identifier, wherein a data field of the current version has a first value and the same data field of the earlier version has a second value different than the first value;

receiving an edit made to the earlier version of the record associated with the second version identifier, the edit comprising a change of the second value to a third value different than the first value;

determining that a conflict exists between the third value associated with the received edit and the first value associated with the current version by comparing a version identifier associated with the received edit with a version identifier of the current version stored in the delta chain for the record;

selecting a resolution strategy based on a data type associated with the data field, wherein the resolution strategy for the data type specifies one or more mechanisms for merging two edits to resolve conflicts;

merging, based on the selected resolution strategy, the third value associated with the received edit and the first value associated with the current version to generate a resolved edit that incorporates at least a portion of the first value and a portion of the third value, wherein the merging comprises:

merging the received edit and a second edit to the earlier version of the record to generate an intermediary resolved edit,

merging the intermediary resolved edit the resolved edit to generate a final resolved edit;

storing the final resolved edit in an operation log in association with a new version of the record to maintain data concurrency of the delta chain for the record; and

modifying the delta chain to identify the new version of the record to as the most recent version of the record.

2. The method of claim 1 , wherein selecting the resolution strategy comprises determining a data type of the data field associated with the current version of the record, and selecting the resolution strategy based on the data type of the data field.

3. The method of claim 1 , wherein selecting the resolution strategy comprises selecting the resolution strategy based on a difference between the first value and the second value.

4. The method of claim 1 , wherein the current version of the record indicates that a status of a task is set to complete and the edit indicates that the task is in progress, and the selected resolution strategy indicates that the resolved edit is to be made to a second data field.

5. The method of claim 1 , wherein the selected resolution strategy indicates that the resolved edit should append text to the first value based on the third value.

6. The method of claim 1 , wherein selecting the resolution strategy comprises selecting from a plurality of resolution strategies provided for the different data sources.

7. The method of claim 1 , wherein the delta chain is a temporally ordered list of versions of the record.

8. A non-transitory computer readable medium for storing instructions that, when executed by a processor, cause the processor to perform the steps of:

maintaining a delta chain for a record, the delta chain identifying a current version of the record with a first version identifier and an earlier version of the record with a second version identifier, wherein a data field of the current version has a first value and the same data field of the earlier version has a second value different than the first value;

receiving an edit made to the earlier version of the record associated with the second version identifier, the edit comprising a change of the second value to a third value different than the first value;

determining that a conflict exists between the third value associated with the received edit and the first value associated with the current version by comparing a version identifier associated with the received edit with a version identifier of the current version stored in the delta chain for the record;

selecting a resolution strategy based on a data type associated with the data field, wherein the resolution strategy for the data type specifies one or more mechanisms for merging two edits to resolve conflicts;

merging, based on the selected resolution strategy, the third value associated with the received edit and the first value associated with the current version to generate a resolved edit that incorporates at least a portion of the first value and a portion of the third value, wherein the merging comprises:

merging the received edit and a second edit to the earlier version of the record to generate an intermediary resolved edit,

merging the intermediary resolved edit the resolved edit to generate a final resolved edit;

storing the final resolved edit in an operation log in association with a new version of the record to maintain data concurrency of the delta chain for the record; and

modifying the delta chain to identify the new version of the record to as the most recent version of the record.

9. The computer readable medium of claim 8 , wherein selecting the resolution strategy comprises determining a data type of the data field associated with the current version of the record, and selecting the resolution strategy based on the data type of the data field.

10. The computer readable medium of claim 8 , wherein selecting the resolution strategy comprises selecting the resolution strategy based on a difference between the first value and the second value.

11. The computer readable medium of claim 8 , wherein the current version of the record indicates that a status of a task is set to complete and the edit indicates that the task is in progress, and the selected resolution strategy indicates that the resolved edit is to be made to a second data field.

12. The computer readable medium of claim 8 , wherein the selected resolution strategy indicates that the resolved edit should append text to the first value based on the third value.

13. The computer readable medium of claim 8 , wherein selecting the resolution strategy comprises selecting from a plurality of resolution strategies provided for the different data sources.

14. The computer readable medium of claim 8 , wherein the delta chain is a temporally ordered list of versions of the record.

15. A system for persisting data received from different data sources, the system comprising:

a memory storing instructions; and

a processor for executing the instructions to perform the steps of:

maintaining a delta chain for a record, the delta chain identifying a current version of the record with a first version identifier and an earlier version of the record with a second version identifier, wherein a data field of the current version has a first value and the same data field of the earlier version has a second value different than the first value;

receiving an edit made to the earlier version of the record associated with the second version identifier, the edit comprising a change of the second value to a third value different than the first value;

determining that a conflict exists between the third value associated with the received edit and the first value associated with the current version by comparing a version identifier associated with the received edit with a version identifier of the current version stored in the delta chain for the record;

selecting a resolution strategy based on a data type associated with the data field, wherein the resolution strategy for the data type specifies one or more mechanisms for merging two edits to resolve conflicts;

merging, based on the selected resolution strategy, the third value associated with the received edit and the first value associated with the current version to generate a resolved edit that incorporates at least a portion of the first value and a portion of the third value, wherein the merging comprises:

merging the received edit and a second edit to the earlier version of the record to generate an intermediary resolved edit, merging the intermediary resolved edit the resolved edit to generate a final resolved edit;

storing the final resolved edit in an operation log in association with a new version of the record to maintain data concurrency of the delta chain for the record; and

modifying the delta chain to identify the new version of the record to as the most recent version of the record.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2025
From: AKTANA, INC.
To: PHARMAFORCEIQ, INC.
Reel/Frame 073482/0293 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2025
From: EXCALIBUR ACQUISITIONCO, LLC
To: AKTANA, INC.
Reel/Frame 072738/0118 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2024
From: TACT.AI TECHNOLOGIES, INC.
To: EXCALIBUR ACQUISITIONCO, LLC
Reel/Frame 066886/0585 →
RELEASE OF SECURITY INTEREST Recorded Nov 8, 2023
From: HERCULES CAPITAL, INC.
To: TACT.AI TECHNOLOGIES, INC.
Reel/Frame 065498/0296 →
SECURITY INTEREST Recorded Feb 13, 2020
From: TACT.AI TECHNOLOGIES, INC.
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 051816/0816 →
CHANGE OF NAME Recorded Dec 27, 2017
From: TACTILE, INC.
To: TACT.AI TECHNOLOGIES, INC.
Reel/Frame 044968/0276 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2016
From: PRASANNA, DHANANJAY; PARAMESWARAN, PREMNATH
To: TACTILE, INC.
Reel/Frame 038228/0328 →