IP Library › Granted Patent US 12,547,610
Granted Patent B2
US 12,547,610 · App. 18/348,232 · Granted Feb 10, 2026

High frequency data management (HFDM)

Inventors: Dov Amihod (Hampstead, CA); Thiago da Costa (Berkeley, CA); Arno Zinke (Bonn, DE); Sebastian Medan (Notre-Dame-de-l'ile-Perrot, CA); Farzad Towhidi (Montreal, CA); Roland Arthur Ruiters-Christou (Bonn, DE)
Assignee: AUTODESK, INC.
G06F16/2379G06F16/219G06F16/2228G06F16/2246G06F16/2322G06F16/2393G06F16/2455G06F16/24573G06N7/01
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,547,610
App. No.
18/348,232
Granted
Feb 10, 2026
Kind
B2
Abstract

A method and system provide the ability to manage data. Property sets consisting of property set objects are created. A commit graph stores the property set objects and provides a topology of changes between states of the objects as commit nodes. Change sets represent a change between two commit nodes. Each change set specifies a basic operation that was applied on each state to get to a next state of the property set objects and each change set is reversible.

Claims (92)

1 . A computer-implemented system for managing data, comprising:

(a) a computer having a memory;

(b) a processor executing on the computer;

(c) the memory storing a computer application comprising a set of instructions, wherein the set of instructions, when executed by the processor cause the processor to perform operations;

(d) the computer application providing one or more property sets comprising one or more property set objects;

(e) the computer application providing a commit graph, wherein:

(i) the commit graph comprises storage for the one or more property set objects;

(ii) the commit graph comprises two or more commit nodes; and

(iii) the commit graph comprises a topology of changes between states of the one or more property set objects; and

(f) the computer application providing one or more change sets, wherein:

(i) each change set represents a change between two commit nodes of the commit graph;

(ii) each change specifies a basic operation that was applied on each state to get to a next state of the one or more property set objects; and

(iii) each change set is reversible, and

(g) the computer application reversing the change set based on the commit graph by applying an inverse of the change.

2 . The computer-implemented system of claim 1 , wherein:

each commit node comprises metadata; and

the metadata identifies a parent commit node, a creator, and a timestamp.

3 . The computer-implemented system of claim 1 , wherein:

the commit graph comprises a merge operation;

the merge operation is represented by the two or more commit nodes as a directed acyclic graph.

4 . The computer-implemented system of claim 1 , wherein:

the two or more commit nodes are organized in one or more branches;

each of the one or more branches tracks a history of commits that make up a variation of changes made on the data.

5 . The computer-implemented system of claim 4 , wherein:

a branch table lists all of the one or more branches and identifies one or more repositories that each branch belongs to;

the branch table enables the data to be partitioned in multiple repositories.

6 . The computer-implemented system of claim 1 , wherein:

the change set further stores information about a structure of the data via an insertion of a schema into the change set.

7 . The computer-implemented system of claim 1 , further comprising:

the computer application providing a materialized view, wherein:

random access to the data is enabled using the materialized view;

the materialized view is retrievable and comprises a snapshot of the data at a given commit node of the commit nodes; and

the materialized view comprises an accumulation of the changes up to the given commit node;

the computer application provides a materialized history, wherein:

the materialized history divides the one or more change sets for the materialized view of the given commit node into a sequence of chunks;

the chunks in the sequence of chunks are split along lexicographically sorted absolute paths of properties in the materialized view;

one or more B-trees resolve path ranges to chunk identifiers;

a separate B-tree of the one or more B-trees is stored for each commit node;

the chunks are stored via changes that are applied to the chunks to transition from a first chunk state to a next chunk state; and

the materialized history is used to arbitrarily access, in bounded time, data at any point in a data history of the data.

8 . The computer-implemented system of claim 7 , wherein:

the materialized view is stored per branch tip of the commit graph;

to traverse the commit graph to a specific commit node, changes in the change sets are applied to the materialized view based on the commit nodes traversed on the path from the branch tip to the specific commit node.

9 . The computer-implemented system of claim 1 , wherein the memory further comprises:

a key-value store for storing the commit graph, wherein:

the key-value store is scalable and optimized for write performance based on access patterns of the key-value store.

10 . The computer-implemented system of claim 1 , wherein:

the computer application is implemented in a cloud distributed network; and

the computer application comprises software development kits (SDKs) on a client and server in the cloud distributed network that enable the operations to be performed in a distributed manner.

11 . A computer-implemented method for managing data, comprising:

(a) defining one or more property sets comprising one or more property set objects;

(b) storing the one or more property set objects in a commit graph, wherein:

(i) the commit graph comprises two or more commit nodes; and

(ii) the commit graph comprises a topology of changes between states of the one or more property set objects; and

(c) representing each change between two commit nodes of the commit graph in a change set, wherein:

(i) each change set represents a change between two commit nodes of the commit graph;

(ii) each change specifies a basic operation that was applied on each state to get to a next state of the one or more property set objects; and

(iii) each change set is reversible; and

(d) reversing the change set based on the commit graph by applying an inverse of the change.

12 . The computer-implemented method of claim 11 , wherein:

each commit node comprises metadata; and

the metadata identifies a parent commit node, a creator, and a timestamp.

13 . The computer-implemented method of claim 11 , wherein:

the commit graph comprises a merge operation;

the merge operation is represented by the two or more commit nodes as a directed acyclic graph.

14 . The computer-implemented method of claim 11 , further comprising:

organizing the two or more commit nodes in one or more branches;

tracking a history of commits that make up a variation of changes made on the data in each of the one or more branches.

15 . The computer-implemented method of claim 14 , further comprising:

creating a branch table that lists all of the one or more branches and identifies one or more repositories that each branch belongs to, wherein the branch table enables the data to be partitioned in multiple repositories.

16 . The computer-implemented method of claim 11 , wherein:

the change set further stores information about a structure of the data via an insertion of a schema into the change set.

17 . The computer-implemented method of claim 11 , further comprising:

defining a materialized view, wherein:

random access to the data is enabled using the materialized view;

the materialized view is retrievable and comprises a snapshot of the data at a given commit node of one of the commit nodes; and

the materialized view comprises an accumulation of the changes up to the given commit node;

defining a materialized history, wherein:

the materialized history divides the one or more change sets for the materialized view of the given commit node into a sequence of chunks;

the chunks in the sequence of chunks are split along lexicographically sorted absolute paths of properties in the materialized view;

one or more B-trees resolve path ranges to chunk identifiers;

a separate B-tree of the one or more B-trees is stored for each commit node;

the chunks are stored via changes that are applied to the chunks to transition from a first chunk state to a next chunk state; and

using the materialized history to arbitrarily access, in bounded time, data at any point in a data history of the data.

18 . The computer-implemented method of claim 17 , wherein:

the materialized view is stored per branch tip of the commit graph;

to traverse the commit graph to a specific commit node, changes in the change sets are applied to the materialized view based on the commit nodes traversed on the path from the branch tip to the specific commit node.

19 . The computer-implemented method of claim 11 , further comprising:

storing the commit graph in a key-value store, wherein:

the key-value store is scalable and optimized for write performance based on access patterns of the key-value store.

20 . The computer-implemented method of claim 11 , further comprising:

defining a software development kit (SDK) on a client and server in a cloud distributed network that enables the managing of the data to be performed in a distributed manner.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2023
From: AMIHOD, DOV
To: AUTODESK CANADA CO.
Reel/Frame 064175/0529 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2023
From: DACOSTA, THIAGO
To: AUTODESK, INC.
Reel/Frame 064175/0545 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2023
From: ZINKE, ARNO; RUITERS-CHRISTOU, ROLAND ARTHUR; TOWHIDI, FARZAD; MEDAN, SEBASTIAN
To: AUTODESK, INC.
Reel/Frame 064175/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2023
From: AUTODESK CANADA CO. AND ADSK CANADA INC.
To: AUTODESK, INC.
Reel/Frame 064175/0993 →
Continuity (3)
Continuation 17034515 · Sep 28, 2020
Provisional Application 62907173 · Sep 27, 2019
Related Publication 20230367767A1 · Nov 16, 2023
References Cited (50)
US 5504900A · Raz · 1996 [cited by applicant]
US 10042782B2 · Struttmann · 2018 [cited by applicant]
US 10121019B2 · Struttmann · 2018 [cited by applicant]
US 10296403B2 · Cook et al. · 2019 [cited by applicant]
US 10303469B1 · Neatherway et al. · 2019 [cited by applicant]
US 10713608B2 · Goja · 2020 [cited by applicant]
US 10743133B2 · Freeland et al. · 2020 [cited by applicant]
US 11741084B2 · Amihod · 2023 [cited by examiner]
US 20090030921A1 · Kadiyska et al. · 2009 [cited by applicant]
US 20090313331A1 · Rasmussen et al. · 2009 [cited by applicant]
US 20090327255A1 · Larson · 2009 [cited by examiner]
US 20100174694A1 · Staebler · 2010 [cited by examiner]
US 20120233589A1 · Mruthyunjaya et al. · 2012 [cited by applicant]
US 20140068639A1 · Schrock et al. · 2014 [cited by applicant]
US 20140279903A1 · Hsiao et al. · 2014 [cited by applicant]
US 20140297592A1 · Ohtake · 2014 [cited by examiner]
US 20140372963A1 · Chandaria · 2014 [cited by examiner]
US 20170212751A1 · Mak et al. · 2017 [cited by applicant]
US 20170269909A1 · Smith et al. · 2017 [cited by applicant]
US 20170293697A1 · Youshi et al. · 2017 [cited by applicant]
US 20180205552A1 · Struttmann et al. · 2018 [cited by applicant]
US 20190050814A1 · Surkov et al. · 2019 [cited by applicant]
US 20190303579A1 · Reddy et al. · 2019 [cited by applicant]
US 20190332861A1 · Biswas et al. · 2019 [cited by applicant]
US 20200356449A1 · Bensberg et al. · 2020 [cited by applicant]
WO 2008064901 · 2008 [cited by applicant]
WO 2014036054 · 2014 [cited by applicant]
WO 2014120270 · 2014 [cited by applicant]
WO WO2015006075A1 · 2015 [cited by examiner]
WO 2018006072 · 2018 [cited by applicant]
P. Bhattacharya et al., “Graph-based analysis and prediction for software evolution”, 2012 34th International Conference on Software Engineering (ICSE) (2012, pp. 419-429). [cited by examiner]
Maximilian Steff et al., “Commit graphs”, 2013 1st International Workshop on Data Analysis Patterns in Software Engineering (DAPSE) (2013, pp. 4-5). [cited by examiner]
Chacon, S., et al., “Pro Git”, The Experts Voice, 2nd Edition 2014, pp. 1-517. [cited by applicant]
Crooks, N., et al., “TARDiS: A Branch-and-Merge Approach to Weak Consistency”, Proceedings of the 2016 International Conference on Management of Data, Jun. 2016, pp. 1615-1628. [cited by applicant]
Lorenz, D.H., et al., “Versionable, Branchable, and Mergeable Application State”, Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, Oct. 2014, pp… [cited by applicant]
AWS AppSync Developer Guide, Amazon Web Services, Inc., 2020, pp. 1-364, docs.aws.amazon.com/appsync/latest/devguide, as downloaded Sep. 20, 2020. [cited by applicant]
share.js, github.com/josephg/ShareJS, 2014, pp. 1-12, as downloaded Sep. 20, 2020. [cited by applicant]
Google Cloud Firestore, Aug. 2020, pp. 1-4, firebase.google.com/docs/firestore, as downloaded Sep. 20, 2020. [cited by applicant]
Maddox, M., et al., “Decibel: The Relational Dataset Branching System”, Proceedings of the VLDB Endowment, 2016, pp. 624-635, vol. 9, No. 9. [cited by applicant]
Vagena, Z., et al., “Supporting Branched Versions on XML documents”, 14th International Workshop Research Issues on Data Engineering: Web Services for e-Commerce and e-Government Applications, 2004, pp. 1-8. [cited by applicant]
Goland, Y., “The block chain and the CAP Theorem”, Mar. 8, 2017, pp. 1-9, http://www.goland.org/blockchain_and_cap/, as downloaded Sep. 20, 2020. [cited by applicant]
Kernfeld, P., “How Bitcoin Loses to the CAP Theorem”, Jan. 2016, pp. 1-4, https://paulkernfeld.com/2016/01/15/bitcoin-cap-theorem.html, as downloaded Sep. 20, 2020. [cited by applicant]
Jouini, K., et al., “Design and Analysis of Index Structures in MultiVersion Data Warehouses”, New Trends in Data Warehousing and Data Analysis, Annals of Information Systems , 2009, pp. 1-21, vol. 3. [cited by applicant]
Tzouramams, T, et al., “Overlapping B+-Trees: An Implementation of a Transaction Time Access Method”, Data & Knowledge Engineering, 1999, pp. 381-404, vol. 29. [cited by applicant]
Jiang, L., et al., “The BT-Tree: A Branched and Temporal Access Method”, Proceedings of the 26th International Conference on Very Large Data Bases, 2000, pp. 1-10. [cited by applicant]
J. Baillieul et al., “The combinatorial graph theory of structured formations”, 2007 46th IEEE Conference on Decision and Control, Dec. 2007, pp. 3609-3615. [cited by applicant]
Cosnard, M. et al., “Automatic task graph generation techniques”, Proceedings of the Twenty-Eighth Annual Hawaii International Conference on System Sciences (vol. 2, pp. 113-122 vol. 2). [cited by applicant]
Franz-Xaver Geiger et al., “A Graph-based Dataset of Commit History of Real-World Android apps”, Gothenburg, Sweden, MSR' 18, May 28-29, 2018, pp. 1-4. [cited by applicant]
Cheng Thao et al., “Using Versioned Tree Data Structure, Change Detection and Node Identity for Three-Way XML Merging”, Doc Eng '10: Proceedings of the 10th ACM symposium on Document engineering, Sep. 2010, pp. 77-86. [cited by applicant]
Maximilian Steff et al., “ Commit Graphs”, 2013 1st International Workshop on Data Analysis Patterns in Software Engineering, DAPSE, May 2013, pp. 4-5. [cited by applicant]