IP Library Granted Patent US 12,681,721
Granted Patent B2
US 12,681,721 · App. 18/505,796 · Granted Jul 14, 2026

Method and apparatus to extend immutable data

Inventors: Raymond E. Walker (White Lake, MI); William K. Sterbenz (Rochester Hills, MI)
Assignee: AUTODESK, INC.
G06F8/71
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,681,721
App. No.
18/505,796
Granted
Jul 14, 2026
Kind
B2
Abstract

A method and system provide the ability to extend immutable data. A first version of immutable design data is created. The first version of immutable design data is edited to create a second version of immutable design data. Subsequent to the creation of the second version of immutable data, the first version of immutable design data is augmented with first extendable data without creating a new version of immutable data.

Claims (61)

1 . A computer-implemented method for extending immutable data, comprising:

creating a first version of immutable design data;

editing the first version of immutable design data to create a second version of immutable design data; and

augmenting the second version of the immutable design data with third extendable data, wherein the second version of the immutable design data and the third extendable data are represented in a grouping of data referred to as a second snapshot;

subsequent to the creation of the second version of immutable design data and subsequent to a creation of the third extendable data, augmenting the first version of immutable design data with first extendable data without creating a new version of immutable data and without revising the second snapshot, wherein the first version of immutable design data and the first extendable data are represented in a grouping of data referred to as a first snapshot.

2 . The computer-implemented method of claim 1 , further comprising:

augmenting the second version of immutable data with second extendable data without creating a new version of immutable data.

3 . The computer-implemented method of claim 1 , further comprising:

creating second extendable data without creating a new version of immutable data, wherein the second extendable data comprises a second version of the first extendable data.

4 . The computer-implemented method of claim 1 , further comprising:

storing the first version of immutable design data as a first node in a graph within a database;

storing the second version of immutable design data as a second node in the graph in the database;

storing the first extendable data as a third node in the graph in the database.

5 . The computer-implemented method of claim 1 , further comprising:

storing a list of identifiers for each item grouped in the first snapshot in a first snapshot group in a database.

6 . The computer-implemented method of claim 5 , further comprising:

storing a list of identifiers for each item grouped in the second snapshot in a second snapshot group in the database.

7 . The computer-implemented method of claim 5 , further comprising:

retrieving the first version of immutable data by reading the list of identifiers from the database;

retrieving the first extendable data by reading the list of identifiers from the database;

wherein the retrieving of the first version of immutable data does not affect a first extendable data history of the first extendable data; and

wherein the retrieving of the first extendable data does not affect an immutable data history of the first version of the immutable data.

8 . The computer-implemented method of claim 1 , wherein:

the first extendable data is added to a history of the first version of immutable data without having to create new versions of the immutable data.

9 . The computer-implemented method of claim 1 , wherein:

the first version of the immutable design data and the first extendable data are stored separately.

10 . The computer-implemented method of claim 1 , further comprising:

managing permissions for the first extendable data; and

independently managing permissions for second extendable data, wherein the second extendable data is augmented from the first version of the immutable design data without creating a new version of immutable data.

11 . A computer-implemented system for extending immutable data, comprising:

(a) a computer having a memory;

(b) a processor executing on the computer; and

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

(i) creating a first version of immutable design data;

(ii) editing the first version of immutable design data to create a second version of immutable design data;

( 111 ) augmenting the second version of the immutable design data with third extendable data, wherein the second version of the immutable design data and the third extendable data are represented in a grouping of data referred to as a second snapshot; and

(iv) subsequent to the creation of the second version of immutable design data and subsequent to a creation of the third extendable data, augmenting the first version of immutable design data with first extendable data without creating a new version of immutable data and without revising the second snapshot, wherein the first version of immutable design data and the first extendable data are represented in a grouping of data referred to as a first snapshot.

12 . The computer-implemented system of claim 11 , the operations further comprising:

augmenting the second version of immutable data with second extendable data without creating a new version of immutable data.

13 . The computer-implemented system of claim 11 , the operations further comprising:

creating second extendable data without creating a new version of immutable data, wherein the second extendable data comprises a second version of the first extendable data.

14 . The computer-implemented system of claim 11 , the operations further comprising:

storing the first version of immutable design data as a first node in a graph within a database;

storing the second version of immutable design data as a second node in the graph in the database;

storing the first extendable data as a third node in the graph in the database.

15 . The computer-implemented system of claim 11 , the operations further comprising:

storing a list of identifiers for each item grouped in the first snapshot in a first snapshot group in a database.

16 . The computer-implemented system of claim 15 , the operations further comprising:

storing a list of identifiers for each item grouped in the second snapshot in a second snapshot group in the database.

17 . The computer-implemented system of claim 15 , the operations further comprising:

retrieving the first version of immutable data by reading the list of identifiers from the database;

retrieving the first extendable data by reading the list of identifiers from the database;

wherein the retrieving of the first version of immutable data does not affect a first extendable data history of the first extendable data; and

wherein the retrieving of the first extendable data does not affect an immutable data history of the first version of the immutable data.

18 . The computer-implemented system of claim 11 , wherein:

the first extendable data is added to a history of the first version of immutable data without having to create new versions of the immutable data.

19 . The computer-implemented system of claim 11 , wherein:

the first version of the immutable design data and the first extendable data are stored separately.

20 . The computer-implemented system of claim 11 , the operations further comprising:

managing permissions for the first extendable data; and

independently managing permissions for second extendable data, wherein the second extendable data is augmented from the first version of the immutable design data without creating a new version of immutable data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2023
From: WALKER, RAYMOND E.; STERBENZ, WILLIAM K.
To: AUTODESK, INC.
Reel/Frame 065514/0804 →
Continuity (1)
Related Publication 20250156179A1 · May 15, 2025
References Cited (31)
US 7613743B1 · Giampaolo · 2009 [cited by examiner]
US 8266122B1 · Newcombe et al. · 2012 [cited by applicant]
US 9098500B1 · Asokan et al. · 2015 [cited by applicant]
US 9465863B2 · Lee et al. · 2016 [cited by applicant]
US 10019467B2 · Raviola · 2018 [cited by examiner]
US 10733159B2 · Sawhney · 2020 [cited by examiner]
US 10817204B1 · Danilov · 2020 [cited by examiner]
US 11436201B2 · Shaw et al. · 2022 [cited by applicant]
US 11586603B1 · Rozenfeld et al. · 2023 [cited by applicant]
US 12008006B1 · Beveridge · 2024 [cited by examiner]
US 12197296B1 · Gussin · 2025 [cited by examiner]
US 20110191285A1 · Sawai · 2011 [cited by examiner]
US 20110282708A1 · Rangaswamy et al. · 2011 [cited by applicant]
US 20150066851A1 · Henderson · 2015 [cited by applicant]
US 20170039042A1 · Crossley · 2017 [cited by examiner]
US 20180075076A1 · Sawhney · 2018 [cited by examiner]
US 20180365201A1 · Hunn et al. · 2018 [cited by applicant]
US 20200349468A1 · Arya et al. · 2020 [cited by applicant]
US 20200351323A1 · Gong · 2020 [cited by examiner]
US 20210097061A1 · Amihod · 2021 [cited by examiner]
US 20220358257A1 · Chang · 2022 [cited by examiner]
US 20230177039A1 · Muralidhar · 2023 [cited by examiner]
US 20240403542A1 · Jindal · 2024 [cited by examiner]
US 20250036691A1 · Zuzart · 2025 [cited by examiner]
WO 2002028007 · 2002 [cited by applicant]
Extended European Search Report dated Aug. 22, 2024 for European Patent Application No. 24166456.4. [cited by applicant]
“Inventor 2023 Help : About iParts : Autodesk”, Inventor 2023 Help, Apr. 2022, pp. 1-6, https://web.archive.org/web/20220429225342/https://help.autodesk.com/view/INVNTOR/2023/ENU/?guid=GUID-9D7FF4CB-6045-4E2A-AC88-40A2F… [cited by applicant]
“When to Use Forking vs. Cloning in Version Control”, Cadence, https://resources.pcb.cadence.com/blog/when-to-use-forking-vs-cloning-in-version-control, as downloaded Jun. 5, 2023, pp. 1-5. [cited by applicant]
Ruparelia, N.B., “The history of version control”, ACM SIGSOFT Software Engineering Notes, 2010, p. 5. [cited by applicant]
“Configure immutability policies for blob versions”, Microsoft, Nov. 2023, https://learn.microsoft.com/en-us/azure/storage/blobs/immutable-policy-configure-version-scope?tabs=azure-portal, as downloaded Feb. 9, 2024, pp… [cited by applicant]
European Examination Report dated Mar. 9, 2026 for European Patent Application No. 24166456.4. [cited by applicant]