System and method of using conflicts to maximize concurrency in a database
Abstract
A first method includes requesting a modification of a data object within the data store using a first application process, establishing a read lock on the data object, initializing an object monitor adapted to detects changes to the data object and releasing the read lock, allowing other concurrent processes to write to the data object, wherein the object monitor detects if any of the concurrent processes overwrite the data object. A second method includes requesting a modification of a data object within the data store using a first application process, establishing a read lock on the data store, initializing a datastore monitor adapted to detect changes to the data store, reading all data objects in the data store and releasing the read lock on the data store, allowing other concurrent processes to write to the data store wherein the datastore monitor detects if any of the concurrent processes overwrite one or more data objects in the data store.
Claims
exact text as granted — not AI-modified1 . A method of providing data concurrency in a data store having a plurality of data objects, the method comprising the steps of:
requesting a modification of a data object within the datastore using an application process; establishing a read lock on the data object; initializing an object monitor adapted to detect changes to the data object; and releasing the read lock to allow other concurrent processes to write to the data object wherein the object monitor detects if any of the concurrent processes overwrite the data object.
2 . The method of claim 1 , further comprising:
recording a current pedigree and at least one counter to track modifications of the data object before the read lock is released using the object monitor.
3 . The method of claim 2 , further comprising:
detecting an overwrite by a concurrent process by comparing a pedigree and a counter to track modifications stored by the process with what is stored by the monitor.
4 . The method of claim 2 , wherein the pedigree of the data object includes at least a node identifier and a synchronization count.
5 . The method of claim 1 , wherein the data store is located on a portable computing device.
6 . A method of creating and or detecting conflicts in a data store using an object monitor comprising the steps:
determining whether to make edits to a data object in the data store using an application process; establishing a read lock on the data object; determining, using an object monitor applied to the data object when it was read from the data object, whether the data object has been modified between commencement and finalization of the edits; and creating a new conflicted version of the data object if it is determined that the data object has been modified.
7 . The method of claim 6 , further comprising:
if it is determined that the data object has not been modified between commencement and finalization of the edits, overwriting the data object.
8 . The method of claim 6 , wherein the object monitor determines that the data object has been modified between commencement and finalization of the edits by comparing a pedigree and modification counter of the data object at the time of finalization to a pedigree of the data object at the commencement of editing.
9 . The method of claim 6 , further comprising:
determining whether to create a conflicted version causing no edits to be committed and the read lock to be released.
10 . The method of claim 6 , wherein the data store is located on a portable computing device.
11 . A method of providing data concurrency in a data store having a plurality of data objects, the method comprising the steps of:
establishing a read lock on the data store; initializing a datastore monitor adapted to detect changes to the data store; reading all data objects in the data store; and releasing the read lock on the data store to allow other concurrent processes to write to the data store wherein the datastore monitor detects if any of the concurrent processes overwrite one or more data objects in the data store.
12 . The method of claim 11 , further comprising:
recording, using the datastore monitor, all modifications and additions to the data store.
13 . The method of claim 12 , wherein the datastore monitor comprises a log of the modifications and additions to the data store.
14 . The method of claim 13 , wherein the datastore monitor is initially set empty.
15 . The method of claim 11 , further comprising:
refreshing the read data object data when a sufficient amount of data has changed.
16 . A method of providing data concurrency in a data store having a plurality of data objects, the method comprising the steps of:
requesting a modification of a data object within the data store using an application process; establishing a read lock on the data object; initializing an object monitor adapted to detect changes to the data object; releasing the read lock, allowing other concurrent processes to write to the data object; obtaining a request from a user to process finalized edits made to the data object; reestablishing a read lock on the data object; determining, using the object monitor, whether the data object has been modified between commencement and finalization of the edits; and creating a new version of the data object if it is determined that the data object has been modified.
17 . The method of claim 16 , further comprising:
recording a current pedigree and modification counter of the data object before the read lock is released using the object monitor.
18 . The method of claim 16 , further comprising:
if it is determined that the data object has not been modified between commencement and finalization of the edits, overwriting the data object using the finalized edits.
19 . The method of claim 16 , wherein the object monitor determines that the data object has been modified between commencement and finalization of the edits by comparing a pedigree and modification counter of the data object at the time of finalization to a pedigree and object counter of the data object at the commencement of editing.
20 . A computing device comprising:
a transceiver adapted to provide data communication with other computing devices; a data store for storing one or more data objects; and a processor adapted to establish communication with the other computing devices via the transceiver and to execute an application process and an object monitor, the application process being adapted to:
receive requests to modify a data object within the data store;
establish a read lock on the data object within the data store;
initialize an object monitor for detecting changes to the data object; and
release the read lock wherein the object monitor detects if a concurrent process or other computing device overwrites the data object.
21 . The computing device of claim 20 , wherein the object monitor is adapted to record a pedigree and modification counter of the data object before the read lock is released.
22 . The computing device of claim 20 , wherein the computing device is portable.
23 . A computing device comprising:
a transceiver adapted to provide data communication with other computing devices; a data store for storing one or more data objects; and a processor adapted to establish communication with the other computing devices via the transceiver and to execute an application process and a datastore monitor, the application process being adapted to: receive a request to modify a data object within the data store; establish a read lock on the data store; initialize a datastore monitor adapted to detect changes to the data store; read all data objects in the data store; and release the read lock on the data store to allow other concurrent processes to write to the data store wherein the datastore monitor detects if a concurrent process or other computing device overwrites one or more data objects in the data store.
24 . The computing device of claim 23 , wherein the datastore monitor is adapted to record all modifications and additions to the data store.
25 . The computing device of claim 23 , wherein the datastore monitor comprises a log of the modifications and additions to the data store.Join the waitlist — get patent alerts
Track US2010036844A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.