US11144309B2 - Changeset conflict rebasing - Google Patents
Changeset conflict rebasing Download PDFInfo
- Publication number
- US11144309B2 US11144309B2 US16/516,431 US201916516431A US11144309B2 US 11144309 B2 US11144309 B2 US 11144309B2 US 201916516431 A US201916516431 A US 201916516431A US 11144309 B2 US11144309 B2 US 11144309B2
- Authority
- US
- United States
- Prior art keywords
- local
- changeset
- version
- client
- change
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2428—Query predicate definition using graphical user interfaces, including menus and forms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Definitions
- the present disclosure relates generally to infrastructure modeling, and more specifically to techniques used to address problems in conflict-detection and merging in an infrastructure modeling software architecture.
- infrastructure e.g., buildings, factories, roads, railways, bridges, electrical and communication networks, etc.
- Some infrastructure modeling software architectures involve a number of client software applications (or simply “clients”) operated by users interacting with remote (e.g., cloud-based) software that manages repositories that maintain shared infrastructure models. It is often desirable to allow multiple clients to operate concurrently upon the infrastructure models, to permit teams of users to work in parallel.
- a concurrency policy is required to allow clients to coordinate their work.
- One desirable concurrency policy is an optimistic concurrency policy.
- An optimistic concurrency policy may allow clients to modify the infrastructure model without obtaining locks and then later merge their changes with changes made by other clients, resolving any conflicts that are detected at merge time.
- an optimistic concurrency policy and later conflict-detection and merging may introduce a number of problems in an infrastructure modeling software architecture.
- one specific problem involves creation of incomplete timelines (i.e. ordered sets of changesets used to represent the infrastructure model).
- An incomplete timeline may be created that does not show that certain conflicts have already been resolved, which may cause another client that is making a new change to detect an already resolved conflict, but in reverse.
- a situation may arise where clients compete and “fight against” each other to reconcile conflicts, rendering the infrastructure modeling software architecture largely non-functional.
- Changeset conflict rebasing involves adjusting the pre-change values in a local changeset so they match post-change values of a remote version, rather an original base version, or removing changes from the local changeset entirely.
- a client executing on a client device changes a property of an object of an infrastructure model to create a local version.
- the client pulls a remote version of the property.
- the client detects a conflict between the remote version and the local version, and reconciles the conflict to create an updated local version.
- a local changeset is generated for the updated local version.
- the client then rebases the generated local changeset by adjusting a pre-change value in the local changeset to match a post-change value of the remote version or to remove the change from the local changeset. Finally, the rebased local changeset is pushed from the client to the repository.
- FIG. 1 is a high-level block diagram of at least a portion of an example infrastructure modeling software architecture
- FIG. 2 is a flow diagram of example operations that may be implemented by clients of the infrastructure modeling software architecture to change properties of an object and detect and merge conflicts;
- FIG. 3 is a flow diagram of example operations that may be implemented by clients of the infrastructure modeling software architecture to change properties of an object and detect and merge conflicts, with the addition of changeset conflict rebasing operations;
- FIG. 4 is a table showing different combinations of changes that can conflict and reconciliation decisions, and how these cases may be addressed by changeset conflict rebasing;
- FIG. 5A is a portion of an element table maintained in a repository showing storage of a base version, according to a first example
- FIG. 5B is a portion of a shared timeline for the infrastructure model, showing state at the initial time
- FIG. 5C is a portion of a first client's local copy of an element table, showing the first client's change of the value of a property
- FIG. 5D is a portion of the first client's local timeline for the infrastructure model, showing the creation of a local changeset
- FIG. 5E is a portion of the second client's local copy of the element table, showing the second client's change of the value of the property;
- FIG. 5F is a portion of the second client's local timeline for the infrastructure model, showing the creation of a local changeset
- FIG. 5G is a portion of the shared timeline for the infrastructure model, showing the first client's changeset becoming the new tip;
- FIG. 5H is the changeset from the shared timeline for the infrastructure model that the second client pulls and merges prior to pushing its local version back;
- FIG. 5I is a portion of the second client's local timeline, showing the second client reconciling the conflict by keeping its local change;
- FIG. 5J is a portion of the shared timeline for the infrastructure model, showing the effect of the second client pushing its local changeset without rebasing;
- FIG. 5K is a portion of the second client's local timeline for the infrastructure model, showing the effects of changeset conflict rebasing
- FIG. 5L is a portion of the shared timeline for the infrastructure model, showing the effect of the second client pushing its rebased local changeset
- FIG. 6A is a portion of the second client's local copy of the element table, showing the value of the property set to that of the pulled changeset, according to a second example;
- FIG. 6B is a portion of the second client's local timeline for the infrastructure model, showing the result of merge operations with the acceptance of the pulled changeset;
- FIG. 6C is a portion of the second client's local timeline for the infrastructure model, showing the effects of changeset conflict rebasing
- FIG. 7A is a portion of an element table maintained in a repository 140 - 144 , showing storage of a base version of the infrastructure model, according to a third example;
- FIG. 7B is a portion of a shared timeline for the infrastructure model, showing state at an initial time
- FIG. 7C is a portion of first client's local timeline for the infrastructure model, showing the creation of a local changeset
- FIG. 7D is a portion of the second client's local timeline for the infrastructure model, showing the creation of a local changeset
- FIG. 7E is a portion of the shared timeline for the infrastructure model, showing the first client's changeset becoming the new tip;
- FIG. 7F is a portion of the second client's local timeline for the infrastructure model, showing the second client reconciling a conflict by keeping the local change;
- FIG. 7G is a portion of the second client's local timeline for the infrastructure model, showing the effects of changeset conflict rebasing.
- infrastructure refers to a physical structure or object that has been built, or is planned to be built, in the real-world.
- infrastructure include buildings, factories, roads, railways, bridges, electrical and communication networks, etc.
- built infrastructure schema or “BIS” refer to a type of conceptual schema (i.e. a conceptual data model) that describes the semantics of data representing infrastructure.
- infrastructure model refers to a digital representation of infrastructure.
- An infrastructure model may be organized according to a built infrastructure schema.
- One specific type of infrastructure model may be the iModel® infrastructure model.
- infrastructure modeling repository refers to a distributed database that stores one or more infrastructure models. Each constituent database of such a distributed database may be referred to as a “briefcase,” as discussed below.
- changeset refers to a persistent electronic record that captures changes needed to transform a particular instance of a database from one version to a new version.
- an ordered series of changesets may represent a timeline. Changesets of a timeline may capture the changes needed to move an instance of a database from one version (a version M) to another version (a version Q).
- the changesets may be applied in sequential order to move version M to version Q.
- the changesets may also be applied in reverse sequential order to move version Q back to version M.
- briefcase refers to a particular instance of a database.
- the briefcase when a briefcase is used as a constituent database of a repository, the briefcase may represent a materialized view of the information of a specific version of the repository.
- a version of a briefcase (a version M) may be considered the information resulting from sequentially applying all changesets up to and including changeset M to a “baseline” briefcase, for example, an empty “baseline” briefcase.
- a briefcase of version M can be moved to another version (a version Q) by applying to it the set of changesets from N to Q, inclusive.
- an element refers to a record maintained in a briefcase.
- An element represents (i.e. “models”, in a colloquial sense of the term) an entity in the real-world.
- the entity in the real-world may be an individual unit of infrastructure.
- model refers to a container for a set of elements where the set of elements collectively represent (i.e. “model”, in a colloquial sense of the term) an entity in the real-world.
- the entity in the real-world may be an individual unit of infrastructure.
- models may nest. That is, a model is said to “break down” a particular element into a finer-grained description (i.e. a description that describes the same entity in the real-world but at a fine granularity).
- relationship refers to a connection that relates two or more elements or models. Examples of relationships include parent-child relationships that may imply ownership and peer-peer relationships that may define groups.
- object refers collectively to an element, model or relationship.
- An object may have be defined by a set of properties that have values.
- FIG. 1 is a high-level block diagram of at least a portion of an example infrastructure modeling software architecture.
- the architecture may be divided into client-side software 110 executing on one more or more computing devices arranged locally (collectively “client devices”), and cloud-based services software 120 executing on one or more remote computing devices (“cloud computing devices”) accessible over the Internet.
- client devices executing on one more or more computing devices arranged locally
- cloud-based services software 120 executing on one or more remote computing devices (“cloud computing devices”) accessible over the Internet.
- the client-side software 110 may include client software applications (or simply “clients”) 120 operated by users.
- the clients 120 may be of various types, including desktop clients that operate directly under an operating system of a client device and web-based client applications that operate within a web browser.
- the clients 120 may be concerned mainly with providing user interfaces that allow users to create, modify, display and/or otherwise interact with infrastructure models (e.g. iModel® infrastructure models).
- the cloud-based software 112 may include infrastructure modeling hub services (e.g., iModelHubTM services) 130 that manage repositories 140 - 144 that maintain the infrastructure models.
- the clients 120 and the infrastructure modeling hub services 130 may utilize a built infrastructure schema (BIS) that describes semantics of data representing infrastructure, using high-level data structures and concepts.
- BIOS built infrastructure schema
- the clients 120 and the infrastructure modeling hub services 130 may be referred to as “BIS-based” software.
- the BIS-based software may utilize (be layered upon) an underlying database system (e.g., SQLite) 132 that handles primitive database operations, such as inserts, updates and deletes of rows of tables of underlying distributed databases (e.g., SQLite databases).
- the database system 132 may utilize an underlying database schema (e.g., a SQLite schema) that describes the actual rows and columns of the tables.
- the conceptual schema may describe infrastructure using digital objects (or simply “objects”) that include elements, models, and relationships, which serve as building blocks of an infrastructure model.
- Elements represent (i.e. “model”, in a colloquial sense of the term) entities in the real-world.
- One element may be the “lead” element, based on the nature of the entity being modeled.
- Other elements typically relate back the lead element.
- a model acts as a container for a set of elements where the set of elements collectively represent (i.e. “model”, in a colloquial sense of the term) an entity in the real-world. In some cases, models may nest.
- Models may be arranged according to a model hierarchy to support modeling from multiple perspectives.
- a single repository model may serve as a root of the model hierarchy.
- Relationships relate two or more elements or models. Examples of relationships include parent-child relationships that may imply ownership and peer-peer relationships that may define groups.
- the underlying database schema may describe how the objects are stored to individual rows of tables of the underlying databases. Objects may be maintained using multiple rows of multiple different tables, which store their properties. For example, properties of an element may be spread across multiple rows of multiple tables.
- Objects may be maintained using multiple rows of multiple different tables, which store their properties. For example, properties of an element may be spread across multiple rows of multiple tables.
- underlying database system e.g., SQLite
- briefcases and changesets may be utilized by the clients 120 and infrastructure modeling hub services 130 .
- a briefcase is a particular instance of a database, that when used as a constituent database of a repository 140 - 144 , represents a materialized view of the information of a specific version of the repository.
- an “empty” baseline briefcase may be programmatically created. Over time the baseline briefcase may be modified with changesets, which are persistent electronic records that capture changes needed to transform a particular instance from one version to a new version.
- a changeset often includes original values (pre-change) values of selected properties of objects as well as the new (changed) values of those selected properties.
- Each changeset is made at a point in the lifetime of an infrastructure model.
- the lifetime of an infrastructure model may be represented as one or more timelines. There is typically a main timeline and branch timelines, where each branch timeline represents the development of an alternative version.
- each changeset records a unique identity of the immediately proceeding changeset, which is commonly referred to as its “parent changeset” or simply “parent.”
- the most recent changeset in a timeline is commonly referred to as the “tip changeset” or simply the “tip”.
- the “tip state” of an infrastructure model reflects application of changesets up to the tip.
- Adding a changeset to a timeline is commonly referred to as “pushing.” While there may be multiple timelines (e.g., main and branch), for simplicity of description below, it is assumed that there is only one timeline. It should be understood that the techniques discussed below may be readily extended to use with multiple timelines.
- Infrastructure modeling hub services 130 may maintain briefcases 150 and a set of accepted changesets 160 (i.e. changesets that have been successfully pushed) in a repository 140 - 144 .
- a client 120 desires to operate upon an infrastructure model, it may obtain the briefcase 150 from a repository 140 - 144 closest to the desired state (e.g., the tip state) and those accepted changesets 160 from the repository 140 - 144 that when applied bring that briefcase up to the desired state.
- clients may maintain a copy of a local copy 152 (a local instance of the database).
- a client 120 When a client 120 desires to make changes to the infrastructure model, it may use the database system (e.g., SQLite) 132 to preform primitive database operations, such as inserts, updates and deletes, on rows of tables of its local copy. The client 120 records these primitive database operations and eventually bundles them to create a local changeset 162 .
- the local changeset 162 represents pending changes to the infrastructure model, that are reflected locally on the client 120 , but that have not yet been accepted to be shared with other clients. Subsequently, the client 120 may push the local changeset 162 back to infrastructure model hub services 130 to be added to the set of accepted changesets 160 in a repository 140 - 144 . In this manner, a shared timeline of the infrastructure model is extended.
- SQLite database system
- the clients 120 may implement an optimistic concurrency policy. As part of these operations, a client detects and merges conflicts between changes of a local changeset 162 with changes of accepted changeset 150 that were pushed by other clients in the interim the client was working on its changes.
- FIG. 2 is a flow diagram of example operations that may be implemented by clients 120 of the infrastructure modeling software architecture to change properties of an object and detect and merge conflicts.
- clients 120 of the infrastructure modeling software architecture to change properties of an object and detect and merge conflicts.
- three versions of an infrastructure model are considered.
- a “base version” is the version before the client has started work on its changes.
- a “local version” is the version resulting from the client's pending changes, as reflected by a local changeset.
- the “remote version” is the tip state which reflects application of changesets of other clients to the base version up to and including the most recent pushed changeset.
- a client 120 pulls a base version of an infrastructure model.
- the client may obtain a briefcase 150 and accepted changesets 160 that, when applied, bring the infrastructure model to the current tip.
- the client 120 changes at least one property of at least one object of the infrastructure model, creating a local version.
- the base version of the infrastructure model may be displayed in a user interface of the client, and in response to user input in the user interface, changes may be made to it.
- the client 120 records the base version of the properties as well as the local version.
- the client may utilize the underlying database system (e.g., SQLite) 132 to record this information as primitive operations are performed on the rows of the tables of the underlying databases.
- the client 120 attempts to push the local version of the properties to a repository 140 - 144 to extend the shared timeline.
- the trigger to attempt to push may be user input in the user interface of the client 120 , or another type of event.
- the attempt to push may be rejected by infrastructure model hub services 130 , for example, because the shared timeline was extended in the interim by other clients. In such case, the local changes may need to be reconciled with the additional changesets before they can be added to the timeline.
- the client 120 detects conflicts between the remote version of the properties and the local version of the properties.
- a local changeset 162 is generated for the updated local version.
- the local changeset stores the original values (pre-change values) from the base version as well as the new values (changed values) of the updated local version.
- the local version is pushed.
- the client 120 uploads the local changeset 162 to a repository 140 - 144 where it is added to the accepted changesets 160 , updating the timeline with a new tip.
- the new tip state of the infrastructure model (including the newly accepted changeset) may be accessed by other clients, with the new tip being pulled. The other clients may also utilize the new tip state of the infrastructure model to push their own changes, for display purposes, or for other tasks.
- the timeline resulting from the sequence of steps in FIG. 2 does not show that the conflicts with other clients (e.g., the second client) have been resolved (i.e. the timeline is incomplete).
- the timeline is incomplete.
- the incomplete timeline may cause another client (e.g., the second client) that is making a new change to the infrastructure model to detect the already resolved conflict, but in reverse.
- another client e.g., the second client
- a situation may arise where clients compete and “fight against” each other to reconcile conflicts, rendering the infrastructure modeling software largely non-functional.
- changeset conflict rebasing may be introduced into the sequence of steps of FIG. 2 .
- Changeset conflict rebasing involves adjusting the pre-change values in the local changeset 162 so they match post-change values of the remote version (the current tip), rather than the original base version, or removing changes from the local changeset entirely.
- the local changeset may be pushed to become the new tip.
- Other clients that pull the rebased changeset from a repository 140 - 144 will not see any unresolved conflicts. The timeline they see is complete, with any pre-change values of properties matching the preceding state.
- FIG. 3 is a flow diagram of example operations that may be implemented by clients 120 of the infrastructure modeling software architecture to change properties of an object and detect and merge conflicts, with the addition of changeset conflict rebasing operations.
- Steps 310 - 360 are identical to steps 210 - 260 , respectively, of FIG. 2 .
- step 370 is modified from step 270 , where the client 120 reconciles conflicts between the local version of the properties and the remote version, that includes sub-step 365 .
- the underlying database system (e.g., SQLite) 132 creates rebasing records that store information about post-change values of the remote version and/or whether the local change is to be removed entirely.
- step 380 is modified from step 280 , where the client 120 generates the local changeset 162 , to include sub-step 385 .
- the client uses the underlying database system (e.g., SQLite) 132 to access the previously stored rebasing records, and applies them to adjust pre-change values so they match post-change values of the remote version (the current tip) or to remove changes entirely.
- the sequence ends at step 390 , which is again identical to step 290 of FIG. 2 .
- the changeset conflict rebasing operations in sub-steps 375 and 385 of FIG. 3 may cover various cases arising from different combinations of types of changes that can conflict, and ways those conflicts may be reconciled.
- FIG. 4 is a table showing different combinations of changes that can conflict, and reconciliation decisions, and how these cases may be addressed by changeset conflict rebasing. As shown in row 410 , where the local change is an update and the remote change is an update, and the conflict is reconciled by rejecting the remote change in favor of retaining the local change, changeset conflict rebasing adjusts the pre-change value in the local version to match the post-change value of the remote version. In this case, the pre-change value is changed in the local changeset to be the post-change value in the pulled changeset.
- changeset conflict rebasing may not support the operation. It may not be feasible to reject a remote delete that conflicts with a local update because the scope of the remote delete is often broader than the scope of the local update. For example, an object is often part of a related set of objects. A remote delete may remove them all, while the local update may affect only one object.
- Such case is preferably avoided by communication between the users of the clients.
- FIG. 5A is a portion of an element table maintained in a repository 140 - 144 showing storage of a base version, according to a first example.
- the element table is maintained by the underlying database system (e.g., SQLite). It should be understood that, while in this first example there is a simple mapping between the BIS-level element and a single row of an underlying table, mappings may be much more complex.
- the bracketed expression in FIG. 5B represents a changeset.
- Each client may store its own local copy, for example, using a local briefcase.
- FIG. 5C is a portion of the first client's local copy of the element table, showing the first client's change of the value of the property.
- FIG. 5E is a portion of the second client's local copy of the element table, showing the second client's change of the value of the property.
- FIG. 5F is a portion of the second client's local timeline for the infrastructure model, showing the creation of a local changeset.
- the second client is triggered to push its local version of the property back to a repository 140 - 144 , to update the shared timeline.
- FIG. 5H is the changeset from the shared timeline for the infrastructure model that the second client pulls and merges prior to pushing its local version back.
- the database system e.g., SQLite
- the second client detects a conflict.
- FIG. 5I is a portion of the second client's local timeline, showing the second client reconciling the conflict by keeping its local change.
- another client e.g., the first client
- FIG. 5K is a portion of the second client's local timeline for the infrastructure model, showing the effects of changeset conflict rebasing.
- another client e.g., the first client
- FIG. 6A is a portion of the second client's local copy of the element table, showing the value of the property set to that of the pulled changeset, according to the second example.
- FIG. 6B is a portion of the second client's local timeline for the infrastructure model, showing the result of merge operations with the acceptance of the pulled changeset.
- FIG. 7A is a portion of an element table maintained in a repository 140 - 144 , showing storage of a base version of the infrastructure model, according to the third example.
- FIG. 7C is a portion of first client's local timeline for the infrastructure model, showing the creation of a local changeset.
- FIG. 7D is a portion of the second client's local timeline for the infrastructure model, showing the creation of a local changeset.
- the database system e.g., SQLite
- the second client is triggered to push its local version back to a repository 140 - 144 , to update the shared timeline.
- FIG. 7F is a portion of the second client's local timeline for the infrastructure model, showing the second client reconciling the conflict by keeping the local change.
- FIG. 7G is a portion of the second client's local timeline for the infrastructure model, showing the effects of changeset conflict rebasing.
- changeset conflict rebasing may be employed to adjust pre-change values in a local changeset so they match post-change values of a remote version (the current tip), rather than the original base version, or remove changes from the local changeset entirely, so that, once pushed, other clients that pull the rebased changeset will not see any unresolved conflicts.
- Such technique may enable use of an optimistic concurrency policy in an infrastructure modeling software architecture that uses a underlying database system (e.g., SQLite) to manage primitive operations.
- software implementations may include electronic device-executable instructions (e.g., computer-executable instructions) stored in a non-transitory electronic device-readable medium (e.g., a non-transitory computer-readable medium), such as a volatile memory, a persistent storage device, or other tangible medium.
- Hardware implementations may include logic circuits, application specific integrated circuits, and/or other types of hardware components.
- combined software/hardware implementations may include both electronic device-executable instructions stored in a non-transitory electronic device-readable medium, as well as one or more hardware components.
Abstract
Description
Claims (15)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/516,431 US11144309B2 (en) | 2018-10-12 | 2019-07-19 | Changeset conflict rebasing |
PCT/US2019/054051 WO2020076559A1 (en) | 2018-10-12 | 2019-10-01 | Changeset conflict rebasing |
CN201980082365.4A CN113366431A (en) | 2018-10-12 | 2019-10-01 | Change set conflict change base |
EP19790370.1A EP3864504B1 (en) | 2018-10-12 | 2019-10-01 | Changeset conflict rebasing |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862745104P | 2018-10-12 | 2018-10-12 | |
US16/516,431 US11144309B2 (en) | 2018-10-12 | 2019-07-19 | Changeset conflict rebasing |
Publications (2)
Publication Number | Publication Date |
---|---|
US20200117445A1 US20200117445A1 (en) | 2020-04-16 |
US11144309B2 true US11144309B2 (en) | 2021-10-12 |
Family
ID=68345014
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/516,431 Active US11144309B2 (en) | 2018-10-12 | 2019-07-19 | Changeset conflict rebasing |
US16/559,057 Active 2040-05-19 US11645296B1 (en) | 2018-10-12 | 2019-09-03 | Techniques for decoupling access to infrastructure models |
US18/131,587 Pending US20230244684A1 (en) | 2018-10-12 | 2023-04-06 | Techniques for decoupling access to infrastructure models |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/559,057 Active 2040-05-19 US11645296B1 (en) | 2018-10-12 | 2019-09-03 | Techniques for decoupling access to infrastructure models |
US18/131,587 Pending US20230244684A1 (en) | 2018-10-12 | 2023-04-06 | Techniques for decoupling access to infrastructure models |
Country Status (4)
Country | Link |
---|---|
US (3) | US11144309B2 (en) |
EP (2) | EP3864503A1 (en) |
CN (2) | CN113196231A (en) |
WO (2) | WO2020076559A1 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11093525B2 (en) | 2018-09-27 | 2021-08-17 | Sap Se | Transaction merging for offline applications |
US11226953B2 (en) | 2018-10-10 | 2022-01-18 | Bentley Systems, Incorporated | Technique for generating a change cache database utilized to inspect changes made to a repository |
US11175905B2 (en) * | 2019-09-27 | 2021-11-16 | Sap Se | Optimizing uploads for an offline scenario by merging modification operations |
US11455437B1 (en) | 2019-10-15 | 2022-09-27 | Bentley Systems, Incorporated | Techniques for generating and retrieving change summary data and aggregated model version data for an infrastructure model |
US11782685B2 (en) * | 2020-06-17 | 2023-10-10 | Bank Of America Corporation | Software code vectorization converter |
US11573775B2 (en) * | 2020-06-17 | 2023-02-07 | Bank Of America Corporation | Software code converter for resolving redundancy during code development |
US11593247B2 (en) * | 2021-06-03 | 2023-02-28 | Red Hat, Inc. | System performance evaluation and enhancement in a software-defined system |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341291B1 (en) | 1998-09-28 | 2002-01-22 | Bentley Systems, Inc. | System for collaborative engineering using component and file-oriented tools |
US20070021955A1 (en) * | 2005-06-09 | 2007-01-25 | Intepoint, Llc | Multi-infrastructure modeling system |
US20080140732A1 (en) | 2006-12-11 | 2008-06-12 | Bentley System, Inc. | Method and system for sharing file based data |
US20140013099A1 (en) * | 2011-03-11 | 2014-01-09 | Fujitsu Limited | Information processing apparatus and method therefor |
US20150286558A1 (en) * | 2013-05-14 | 2015-10-08 | Noblis, Inc. | Method and system to automatically enforce a hybrid branching strategy |
US20160162363A1 (en) * | 2014-12-05 | 2016-06-09 | International Business Machines Corporation | Performing a closure merge operation |
US9390201B2 (en) | 2010-12-30 | 2016-07-12 | Dassault Systemes | Merging of modeled objects |
US9430229B1 (en) | 2013-03-15 | 2016-08-30 | Atlassian Pty Ltd | Merge previewing in a version control system |
US20170220606A1 (en) * | 2016-01-29 | 2017-08-03 | Ca, Inc. | Unified data model for integration between relational and non-relational databases |
US20190004925A1 (en) * | 2017-06-29 | 2019-01-03 | Microsoft Technology Licensing, Llc | Code review rebase diffing |
US20190079958A1 (en) | 2017-09-11 | 2019-03-14 | Bentley Systems, Incorporated | Intelligent model hierarchy for infrastructure modeling |
US20190081847A1 (en) | 2017-09-11 | 2019-03-14 | Bentley Systems, Incorporated | Techniques for coordinating codes for infrastructure modeling |
US20190108245A1 (en) | 2017-10-10 | 2019-04-11 | Bentley Systems, Incorporated | Techniques for alignment of source infrastructure data with a bis conceptual schema |
US20190354540A1 (en) * | 2018-05-15 | 2019-11-21 | Realm, Inc. | Conflict resolution in distributed computing |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001055831A1 (en) | 2000-01-25 | 2001-08-02 | Autodesk, Inc. | Method and apparatus for providing access to and working with architectural drawings on the internet |
US7676552B2 (en) * | 2004-02-11 | 2010-03-09 | International Business Machines Corporation | Automatic provisioning of services based on a high level description and an infrastructure description |
US7783724B2 (en) * | 2006-06-23 | 2010-08-24 | International Business Machines Corporation | System and method for delivering business intelligence data in a client/server architecture |
US8601440B2 (en) * | 2009-11-10 | 2013-12-03 | Microsoft Corporation | Using web model feeds to version models which are defined in modeling languages |
US20110126197A1 (en) * | 2009-11-25 | 2011-05-26 | Novell, Inc. | System and method for controlling cloud and virtualized data centers in an intelligent workload management system |
US8706692B1 (en) * | 2010-02-12 | 2014-04-22 | Citibank, N.A. | Corporate infrastructure management system |
US20110264678A1 (en) * | 2010-04-26 | 2011-10-27 | Microsoft Corporation | User modification of a model applied to search results |
US20120096070A1 (en) * | 2010-10-15 | 2012-04-19 | Shane Bryzak | Web application framework remoting model api |
US9128805B2 (en) * | 2011-05-04 | 2015-09-08 | Microsoft Technology Licensing, Llc | Automated modification integration and conflict resolution for software development |
US8719229B1 (en) | 2012-10-12 | 2014-05-06 | Autodesk, Inc. | Cloud platform for managing design data |
US9189533B2 (en) * | 2013-05-29 | 2015-11-17 | Microsoft Technology Licensing, Llc | Sync framework extensibility |
WO2015051833A1 (en) | 2013-10-09 | 2015-04-16 | Siemens Aktiengesellschaft | A system for providing infrastructure impacts on an urban area |
JP6364496B2 (en) * | 2014-02-07 | 2018-07-25 | オラクル・インターナショナル・コーポレイション | Mobile cloud service architecture |
CN106462639B (en) * | 2014-06-24 | 2020-04-24 | 谷歌有限责任公司 | Handling changes to a remote database |
US20160246837A1 (en) * | 2015-02-25 | 2016-08-25 | Nokia Technologies Oy | Methods, apparatuses and computer program products for enabling intelligent merging of modified data |
US10353916B2 (en) * | 2016-03-25 | 2019-07-16 | Bentley Systems, Incorporated | Techniques for conversion of CAD descriptions |
US10606706B2 (en) | 2016-11-18 | 2020-03-31 | Sap Se | Graphical user interface with consistent redundant models |
-
2019
- 2019-07-19 US US16/516,431 patent/US11144309B2/en active Active
- 2019-09-03 US US16/559,057 patent/US11645296B1/en active Active
- 2019-10-01 EP EP19794771.6A patent/EP3864503A1/en active Pending
- 2019-10-01 EP EP19790370.1A patent/EP3864504B1/en active Active
- 2019-10-01 CN CN201980067119.1A patent/CN113196231A/en active Pending
- 2019-10-01 WO PCT/US2019/054051 patent/WO2020076559A1/en unknown
- 2019-10-01 CN CN201980082365.4A patent/CN113366431A/en active Pending
- 2019-10-01 WO PCT/US2019/054017 patent/WO2020076554A1/en unknown
-
2023
- 2023-04-06 US US18/131,587 patent/US20230244684A1/en active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341291B1 (en) | 1998-09-28 | 2002-01-22 | Bentley Systems, Inc. | System for collaborative engineering using component and file-oriented tools |
US20070021955A1 (en) * | 2005-06-09 | 2007-01-25 | Intepoint, Llc | Multi-infrastructure modeling system |
US20080140732A1 (en) | 2006-12-11 | 2008-06-12 | Bentley System, Inc. | Method and system for sharing file based data |
US9390201B2 (en) | 2010-12-30 | 2016-07-12 | Dassault Systemes | Merging of modeled objects |
US20140013099A1 (en) * | 2011-03-11 | 2014-01-09 | Fujitsu Limited | Information processing apparatus and method therefor |
US9430229B1 (en) | 2013-03-15 | 2016-08-30 | Atlassian Pty Ltd | Merge previewing in a version control system |
US9575764B1 (en) | 2013-03-15 | 2017-02-21 | Atlassian Pty Ltd | Synchronizing branches of computer program source code |
US20150286558A1 (en) * | 2013-05-14 | 2015-10-08 | Noblis, Inc. | Method and system to automatically enforce a hybrid branching strategy |
US20160162363A1 (en) * | 2014-12-05 | 2016-06-09 | International Business Machines Corporation | Performing a closure merge operation |
US20170220606A1 (en) * | 2016-01-29 | 2017-08-03 | Ca, Inc. | Unified data model for integration between relational and non-relational databases |
US20190004925A1 (en) * | 2017-06-29 | 2019-01-03 | Microsoft Technology Licensing, Llc | Code review rebase diffing |
US20190079958A1 (en) | 2017-09-11 | 2019-03-14 | Bentley Systems, Incorporated | Intelligent model hierarchy for infrastructure modeling |
US20190081847A1 (en) | 2017-09-11 | 2019-03-14 | Bentley Systems, Incorporated | Techniques for coordinating codes for infrastructure modeling |
US20190108245A1 (en) | 2017-10-10 | 2019-04-11 | Bentley Systems, Incorporated | Techniques for alignment of source infrastructure data with a bis conceptual schema |
US20190354540A1 (en) * | 2018-05-15 | 2019-11-21 | Realm, Inc. | Conflict resolution in distributed computing |
Non-Patent Citations (3)
Title |
---|
"Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration," International Filing Date: Oct. 1, 2019, International Application No. PCT/US2019/054051, Applicant: Bentley Systems, Incorporated, dated Jan. 22, 2020, pp. 1-16. |
Brun, Yuriy, et al., "Early Detection of Collaboration Conflicts and Risks," IEEE Computer Society, IEEE Transactions on Software Engineering, vol. 39, No. 10, Oct. 2013, pp. 1358-1375. |
U.S. Appl. No. 16/559,057, filed Sep. 3, 2019 by Keith A. Bentley et al. for Techniques for Decoupling Access to Infrastructure Models, pp. 1-26. |
Also Published As
Publication number | Publication date |
---|---|
CN113366431A (en) | 2021-09-07 |
WO2020076554A1 (en) | 2020-04-16 |
WO2020076559A1 (en) | 2020-04-16 |
US20200117445A1 (en) | 2020-04-16 |
US20230244684A1 (en) | 2023-08-03 |
EP3864504A1 (en) | 2021-08-18 |
CN113196231A (en) | 2021-07-30 |
EP3864504B1 (en) | 2023-12-27 |
US11645296B1 (en) | 2023-05-09 |
EP3864503A1 (en) | 2021-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11144309B2 (en) | Changeset conflict rebasing | |
AU2021202623B2 (en) | System for synchronization of changes in edited websites and interactive applications | |
US10558642B2 (en) | Mechanism for deprecating object oriented data | |
US11341171B2 (en) | Method and apparatus for implementing a set of integrated data systems | |
US9922046B2 (en) | Scalable distributed metadata file-system using key-value stores | |
US20120246115A1 (en) | Folder structure and authorization mirroring from enterprise resource planning systems to document management systems | |
US9762664B2 (en) | Optimistic concurrency utilizing distributed constraint enforcement | |
US20080140732A1 (en) | Method and system for sharing file based data | |
US20160055226A1 (en) | Method and system for syncing data structures | |
EP2178033A1 (en) | Populating a multi-relational enterprise social network with disparate source data | |
US11226953B2 (en) | Technique for generating a change cache database utilized to inspect changes made to a repository | |
US9509769B2 (en) | Reflecting data modification requests in an offline environment | |
CN104391913B (en) | A kind of data base management method and device | |
DE112021003031T5 (en) | ARCHIVE ACCELERATOR-ONLY DATABASE TABLES | |
CN107483571A (en) | A kind of dynamic cloud storage method and system | |
US10726041B1 (en) | Multi-revision graph data store | |
JPH11212985A (en) | Information library device | |
DE112022000886T5 (en) | DATA PROCESSING SYSTEM WITH MANIPULATION OF LOGICAL DATA RECORD GROUPS | |
CN114996734A (en) | Data management method, device and equipment of semitransparent encrypted column and storage medium | |
CN106970971A (en) | The description method of modified central anchor chain model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: BENTLEY SYSTEMS, INCORPORATED, PENNSYLVANIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WILSON, SAMUEL W.;BENTLEY, KEITH A.;REEL/FRAME:049935/0546 Effective date: 20190719 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |