Network partition tolerance in a high available centralized VCS implementation
First Claim
1. A non-transitory computer readable medium including one or more instructions executable by one or more processors for:
- receiving at a first node of a system containing a plurality of nodes, an action providing requested changes to a file that is common to at least a second node and stored in a database locked from allowing changes to the file by a database lock, wherein the first node and the second node are isolated by a network partition;
analyzing attributes of the action to determine whether the action received is required to update the file;
analyzing the requested changes to the file to determine substantive changes to the file and changes to the file that do not change substantive content of the file;
receiving a variable level of the requested changes specifying one or more substantive changes to the file and one or more changes to the file that do not change substantive content of the file, to be accepted or rejected;
rejecting and accepting the substantive changes to the tile and the changes to the file that do not change substantive content of the tile according to the variable level;
synchronizing substantive changes to the file and rejecting changes to the file that are informational;
in response to determining that the action is required to update the file, determining from a data repository whether a database update action is set as unlocked;
if the database update action is set as unlocked then querying the data repository associated with the first node to determine revision information pertaining to the file;
determining from the revision information whether the file is a latest revision associated with required changes to the file;
if the file is the latest revision, then unlocking the data repository;
committing the changes to the data repository;
in response to committing the changes to the data repository, updating the revision of the file in the data repository based on the changes; and
in response to committing the changes to the data repository and updating the revision of the data repository, releasing the database lock and updating the file with the changes.
1 Assignment
0 Petitions
Accused Products
Abstract
Implementations provide a database lock mechanism used to prevent concurrent writes to service on network partition scenarios associated with a version control system. The database lock mechanism may be provided on per repository basis to ensure both nodes are working and maintaining data consistency, even when they are not connected when interruptions in network communication disrupts the intercommunication between nodes. In other implementations, the disclosed locking mechanism is configured to ensure and perform write and synchronization operations on isolated nodes, regardless of miss-communication between the nodes.
-
Citations
20 Claims
-
1. A non-transitory computer readable medium including one or more instructions executable by one or more processors for:
-
receiving at a first node of a system containing a plurality of nodes, an action providing requested changes to a file that is common to at least a second node and stored in a database locked from allowing changes to the file by a database lock, wherein the first node and the second node are isolated by a network partition; analyzing attributes of the action to determine whether the action received is required to update the file; analyzing the requested changes to the file to determine substantive changes to the file and changes to the file that do not change substantive content of the file; receiving a variable level of the requested changes specifying one or more substantive changes to the file and one or more changes to the file that do not change substantive content of the file, to be accepted or rejected; rejecting and accepting the substantive changes to the tile and the changes to the file that do not change substantive content of the tile according to the variable level; synchronizing substantive changes to the file and rejecting changes to the file that are informational; in response to determining that the action is required to update the file, determining from a data repository whether a database update action is set as unlocked; if the database update action is set as unlocked then querying the data repository associated with the first node to determine revision information pertaining to the file; determining from the revision information whether the file is a latest revision associated with required changes to the file; if the file is the latest revision, then unlocking the data repository;
committing the changes to the data repository;in response to committing the changes to the data repository, updating the revision of the file in the data repository based on the changes; and in response to committing the changes to the data repository and updating the revision of the data repository, releasing the database lock and updating the file with the changes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer implemented method comprising:
-
receiving at a first node of a system containing a plurality of nodes, an action providing requested changes to a file that is common to at least a second node and stored in a database locked from allowing changes to the file by a database lock, wherein the first node and the second node are isolated by a network partition; analyzing attributes of the action to determine whether the action received is required to update the file; analyzing the requested changes to the file to determine substantive changes to the file and changes to the file that do not change substantive content of the file; receiving a variable level of the requested changes specifying one or more substantive changes to the file and one or more changes to the file that do not change substantive content of the file, to be accepted or rejected; rejecting and accepting the substantive changes to the file and the changes to the file that do not change substantive content of the file according to the variable level; synchronizing substantive changes to the file and rejecting changes to the file that are informational; in response to determining that the action is required to update the file, determining from a data repository whether a database update action is set as unlocked; if the database update action is set as unlocked then querying the data repository associated with the first node to determine revision information pertaining to the file; determining from the revision information whether the file is a latest revision associated with required changes to the file; if the file is the latest revision, then unlocking the data repository; committing the changes to the data repository; in response to committing the changes to the data repository, updating the revision of the file in the data repository based on the changes; and in response to committing the changes to the data repository and updating the revision of the data repository, releasing the database lock and updating the file with the changes. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. An apparatus for managing database data updates in a computing environment between partitioned systems, the computing environment comprising a data system having one or more computing devices in communication with a software application that executes software configured to provide information accessible to the one or more computing devices, a computing device of the one or more computing devices executing the software to:
-
receive at a first node of a system containing a plurality of nodes, an action providing requested changes to a file that is common to at least a second node and stored in a database locked from allowing changes to the file by a database lock, wherein the first node and the second node are isolated by a network partition; analyze attributes of the action to determine whether the action received is required to update the file; analyze the requested changes to the file to determine substantive changes to the file and changes to the file that do not change substantive content of the file; receive a variable level of the requested changes specifying one or more substantive changes to the file and one or more changes to the file that do not change substantive content of the file, to be accepted or rejected; reject and accept the substantive changes to the file and the changes to the tile that do not change substantive content of the file according to the variable level; synchronize substantive changes to the file and rejecting changes to the file that are informational; in response to determining that the action is required to update the file, determine from a data repository whether a database update action is set as unlocked; if the database update action is set as unlocked then querying the data repository associated with the first node to determine revision information pertaining to the file; determine from the revision information whether the file is a latest revision associated with required changes to the file; if the file is the latest revision, then unlock the data repository;
commit the changes to the data repository;in response to committing the changes to the data repository, update the revision of the file in the data repository based on the changes; and in response to commit the changes to the data repository and update the revision of the data repository, release the database lock and update the file with the changes.
-
Specification