← Back to Patent Explorer
US5974427A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and computer system for implementing concurrent accesses of a database record by multiple users

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1997-05-14
•
Granted: 1999-10-26
•
Expires: 2017-05-14
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and computer system for implementing concurrent edits of a database record by a plurality of users is provided. The preferred embodiment allocates a fixed amount of storage space in the computer system's main memory for each of the plurality of users. The fixed amount of storage space is for storing versions of the record created as a result of the user modifying the record. In response to an access request for the record by one of the plurality of users, the preferred embodiment determines whether the user should be given access to the record itself or to one of the versions of the record, if any exist. When the user modifies the record to create a version of the record, the preferred embodiment stores the version of the record within the fixed amount of storage space allocated to the user.

Inventors

  • 👤 Allen Reiter

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 03:08
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/23; G06F16/2308; G06F16/2315; G06F16/2329; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99938; Y10S707/99951; Y10S707/99952; Y10S707/99953; Y10S707/99954

Claims Analysis

Total Claims: 46
Claim 1
Independent Claim 156 words
A method in a computer system for storing versions of a record in storage space wherein the record is accessible to a plurality of users, the method comprising the steps of: a) for each of the plurality of users, allocating a portion of storage space; b) in response to an update of the record by a first user, storing a first version of the record in the portion of the storage space allocated to the first user, the first version comprising a copy of the record before the record was updated by the first user; and c) in response to a subsequent update of the record by a second user, storing a second version of the record in the portion of storage space allocated to the second user, the second version comprising a copy of the record after the record was updated by the first user and before the record was updated by the second user.
Claim 2
Independent Claim 156 words
A method in a computer system for storing versions of a record in storage space wherein the record is accessible to a plurality of users, the method comprising the steps of: a) for each of the plurality of users, allocating a portion of storage space; b) in response to an update of the record by a first user, storing a first version of the record in the portion of the storage space allocated to the first user, the first version comprising a copy of the record before the record was updated by the first user; and c) in response to a subsequent update of the record by a second user, storing a second version of the record in the portion of storage space allocated to the second user, the second version comprising a copy of the record after the record was updated by the first user and before the record was updated by the second user.
Claim 3
Dependent Claim 35 words
The method of claim 1 wherein the computer system includes a main memory and wherein the step of allocating a portion of storage space includes allocating a portion of memory space in the main memory.
Claim 4
Dependent Claim 72 words
The method of claim 1 wherein the step of storing a first version of the record includes storing the first version of the record in a linked list, and wherein the step of storing a second version of the record includes storing the second version of the record in the linked list, such that the position of the first and second version within the linked list is determined by time of update.
Claim 5
Dependent Claim 75 words
The method of claim 1 wherein the step of storing a first version of the record includes storing the first version of the record in a doubly linked list, and wherein the step of storing a second version of the record includes storing the second version of the record in the doubly linked list, such that the position of the first and second versions within the doubly linked list is determined by time of update.
Claim 6
Dependent Claim 35 words
The method of claim 1 including maintaining a user information table in the storage space, the user information table storing a pointer to each of the portions of storage allocated to the plurality of users.
Claim 7
Dependent Claim 28 words
The method of claim 3 wherein the linked list has a beginning and including maintaining a hash table as an index to the beginning of the linked list.
Claim 8
Dependent Claim 30 words
The method of claim 4 wherein the doubly linked list has a beginning and including maintaining a hash table as an index to the beginning of the doubly linked list.
Claim 9
Dependent Claim 263 words
In a computer system having a storage space, a method for managing records stored in a first portion of the storage space and accessible to a plurality of users, the method comprising the steps of: a) allocating respective parts of a second portion of storage space to each of the plurality of users, the respective parts of storage space being distinct from each other and from the first portion; b) in response to a request for an update of a first record by a first user, storing a first version of the record in one of the parts of the second portions of storage space that is allocated to the first user, the first version including a copy of the first record at the time of the request; c) in response to completion of the update of the first record, replacing the first record with an updated first record and storing a time of completion for the update of the first record in the first version; d) in response to a request for an update of a second record by the first user, storing a second version of the second record in the second part of the portion of storage space that is allocated to the first user, the second version including a copy of the second record before the second record is updated; and e) in response to completion of the update of the second record, replacing the second record with an updated second record and storing a time of completion for the update of the second record in the second version.
Claim 10
Dependent Claim 263 words
In a computer system having a storage space, a method for managing records stored in a first portion of the storage space and accessible to a plurality of users, the method comprising the steps of: a) allocating respective parts of a second portion of storage space to each of the plurality of users, the respective parts of storage space being distinct from each other and from the first portion; b) in response to a request for an update of a first record by a first user, storing a first version of the record in one of the parts of the second portions of storage space that is allocated to the first user, the first version including a copy of the first record at the time of the request; c) in response to completion of the update of the first record, replacing the first record with an updated first record and storing a time of completion for the update of the first record in the first version; d) in response to a request for an update of a second record by the first user, storing a second version of the second record in the second part of the portion of storage space that is allocated to the first user, the second version including a copy of the second record before the second record is updated; and e) in response to completion of the update of the second record, replacing the second record with an updated second record and storing a time of completion for the update of the second record in the second version.
Claim 11
Dependent Claim 60 words
The method of claim 8 wherein the step of storing a first version includes storing the first version in a linked list and wherein the step of storing a second version includes storing the second version in the linked list in such a way that the first and second versions are ordered within the linked list by time of completion.
Claim 12
Dependent Claim 148 words
A computer system for managing access to a record by a user comprising: a secondary memory for storing the record; a version store for storing versions of the record edited by the user, the versions being linked together to form a version chain, and each version containing a commit time indicating when the version was committed; a hash table containing an entry corresponding to the record, the entry containing a pointer to the version chain; and a database server for, in response to an access request for the record at a time T 0 , accessing the entry in the hash table corresponding to the record, retrieving the pointer to the version chain from the entry in the hash table, and traversing the version chain pointed to by the pointer to locate a version of the record having a commit time prior to the time T 0 .
Claim 13
Dependent Claim 148 words
A computer system for managing access to a record by a user comprising: a secondary memory for storing the record; a version store for storing versions of the record edited by the user, the versions being linked together to form a version chain, and each version containing a commit time indicating when the version was committed; a hash table containing an entry corresponding to the record, the entry containing a pointer to the version chain; and a database server for, in response to an access request for the record at a time T 0 , accessing the entry in the hash table corresponding to the record, retrieving the pointer to the version chain from the entry in the hash table, and traversing the version chain pointed to by the pointer to locate a version of the record having a commit time prior to the time T 0 .
Claim 14
Dependent Claim 32 words
The computer system of claim 10 wherein a version indicator is stored within each record to indicate to the database server whether versions of the record are stored in the version store.
Claim 15
Dependent Claim 25 words
The computer system of claim 10 wherein the position of the versions within the version chain is determined by the commit time of the version.
Claim 16
Dependent Claim 66 words
The computer system of claim 10 wherein the version additionally comprises an address field for storing the location in the secondary storage of the record, an entity identification field for storing an identifier of the entity, a link field for storing a location in the version store of a next version in the version chain, and a data field for storing a copy of the record.
Claim 17
Dependent Claim 142 words
A computer system for managing access to a record by a user comprising: a secondary memory containing the record; a version store containing versions for the user that are linked together to form a version chain, each version containing a commit time indicating when the version was committed to the version store; a user information block containing an entry corresponding to the user, the entry containing a pointer to the version store; and a database server for, in response to an access request for a record at a time T 0 , accessing the entry in the user information block, retrieving a pointer stored in the accessed entry in the user information block, and traversing the versions stored in the version store pointed to by the pointer to locate a version having a commit time prior to the time T 0 .
Claim 18
Dependent Claim 142 words
A computer system for managing access to a record by a user comprising: a secondary memory containing the record; a version store containing versions for the user that are linked together to form a version chain, each version containing a commit time indicating when the version was committed to the version store; a user information block containing an entry corresponding to the user, the entry containing a pointer to the version store; and a database server for, in response to an access request for a record at a time T 0 , accessing the entry in the user information block, retrieving a pointer stored in the accessed entry in the user information block, and traversing the versions stored in the version store pointed to by the pointer to locate a version having a commit time prior to the time T 0 .
Claim 19
Dependent Claim 32 words
The computer system of claim 14 wherein a version indicator is stored within each record to indicate to the database server whether versions of the record are stored in the version store.
Claim 20
Dependent Claim 21 words
The computer system of claim 14 wherein the position of the versions within the version chain is determined by commit time.
Claim 21
Dependent Claim 66 words
The computer system of claim 14 wherein the version additionally comprises an address field for storing the location in the secondary storage of the record, a user identification field for storing an identifier of the user, a link field for storing a location in the version store of a next version in the version chain, and a data field for storing a copy of the record.
Claim 22
Dependent Claim 161 words
In a computer system having a secondary memory, a method for managing access to a record by a user, the record being stored in the secondary memory, the method comprising the steps of: storing versions of the record for the user in a version store in such a way that the versions are linked together to form a version chain, each version containing a commit time indicating when the version was committed to the version store; storing a pointer to the version store in an entry corresponding to the user in a user information block; and in response to an access request for the record at a time T 0 , accessing the entry in the user information block, retrieving a pointer stored in the accessed entry in the user information block, and traversing the versions stored in the version store pointed to by the pointer to locate a version having a commit time prior to the time T 0 .
Claim 23
Dependent Claim 161 words
In a computer system having a secondary memory, a method for managing access to a record by a user, the record being stored in the secondary memory, the method comprising the steps of: storing versions of the record for the user in a version store in such a way that the versions are linked together to form a version chain, each version containing a commit time indicating when the version was committed to the version store; storing a pointer to the version store in an entry corresponding to the user in a user information block; and in response to an access request for the record at a time T 0 , accessing the entry in the user information block, retrieving a pointer stored in the accessed entry in the user information block, and traversing the versions stored in the version store pointed to by the pointer to locate a version having a commit time prior to the time T 0 .
Claim 24
Dependent Claim 32 words
The method of claim 18 wherein the step of storing versions includes storing a version indicator in the record to indicate whether versions of the record are stored in the version store.
Claim 25
Dependent Claim 48 words
The computer system of claim 18, wherein the step of storing versions of the record for the user in a version store in such a way that the versions are linked together to form a version chain includes positioning the versions within the version chain by commit time.
Claim 26
Dependent Claim 151 words
In a computer system having a secondary memory, a method for managing access to a record stored in the secondary memory by a user, the method comprising the steps of: storing versions of the record for the user in a version store in such a way that the versions are linked together to form a version chain, each version containing a commit time indicating when the version was committed to the version store; storing a pointer to the version chain in an entry corresponding to the record in a hash table; and in response to an access request for the record at a time T 0 , accessing the entry in the hash table, retrieving a pointer stored in the accessed entry in the hash table, and traversing the version chain pointed to by the pointer to locate a version having a commit time prior to the time T 0 .
Claim 27
Dependent Claim 151 words
In a computer system having a secondary memory, a method for managing access to a record stored in the secondary memory by a user, the method comprising the steps of: storing versions of the record for the user in a version store in such a way that the versions are linked together to form a version chain, each version containing a commit time indicating when the version was committed to the version store; storing a pointer to the version chain in an entry corresponding to the record in a hash table; and in response to an access request for the record at a time T 0 , accessing the entry in the hash table, retrieving a pointer stored in the accessed entry in the hash table, and traversing the version chain pointed to by the pointer to locate a version having a commit time prior to the time T 0 .
Claim 28
Dependent Claim 32 words
The method of claim 21 wherein the step of storing versions includes storing a version indicator in the record to indicate whether versions of the record are stored in the version store.
Claim 29
Dependent Claim 48 words
The computer system of claim 21 wherein the step of storing versions of the record for the entity in a version store in such a way that the versions are linked together to form a version chain includes positioning the versions within the version chain by commit time.
Claim 30
Dependent Claim 158 words
A computer-readable medium holding computer-executable instructions for performing a method in a computer system for storing versions of a record in storage space wherein the record is, the method comprising the steps of: a) for each of the plurality of users, allocating a portion of storage space; b) in response to an update of the record by a first user, storing a first version of the record in the portion of the storage space allocated to the first user, the first version comprising a copy of the record before the record was updated by the first user; and c) in response to a subsequent update of the record by a second user, storing a second version of the record in the portion of storage space allocated to the second user, the second version comprising a copy of the record after the record was updated by the first user and before the record was updated by the second user.
Claim 31
Dependent Claim 158 words
A computer-readable medium holding computer-executable instructions for performing a method in a computer system for storing versions of a record in storage space wherein the record is, the method comprising the steps of: a) for each of the plurality of users, allocating a portion of storage space; b) in response to an update of the record by a first user, storing a first version of the record in the portion of the storage space allocated to the first user, the first version comprising a copy of the record before the record was updated by the first user; and c) in response to a subsequent update of the record by a second user, storing a second version of the record in the portion of storage space allocated to the second user, the second version comprising a copy of the record after the record was updated by the first user and before the record was updated by the second user.
Claim 32
Dependent Claim 73 words
The computer-readable medium of claim 24 wherein the step of storing a first version of the record includes storing the first version of the record in a linked list, and wherein the step of storing a second version of the record includes storing the second version of the record in the linked list, such that the position of the first and second version within the linked list is determined by time of update.
Claim 33
Dependent Claim 29 words
The computer-readable medium of claim 25 wherein the linked list has a beginning and including maintaining a hash table as an index to the beginning of the linked list.
Claim 34
Dependent Claim 76 words
The computer-readable medium of claim 24 wherein the step of storing a first version of the record includes storing the first version of the record in a doubly linked list, and wherein the step of storing a second version of the record includes storing the second version of the record in the doubly linked list, such that the position of the first and second versions within the doubly linked list is determined by time of update.
Claim 35
Dependent Claim 31 words
The computer-readable medium of claim 27 wherein the doubly linked list has a beginning and including maintaining a hash table as an index to the beginning of the doubly linked list.
Claim 36
Dependent Claim 271 words
In a computer system having a storage space, a computer-readable medium holding computer-executable instructions for performing a method for managing records stored in a first portion of the storage space and accessible to a plurality of users, the method comprising the steps of: a) allocating respective parts of a second portion of storage space to each of the plurality of users, the respective parts of storage space being distinct from each other and from the first portion; b) in response to a request for an update of a first record by a first user, storing a first version of the record in one of the parts of the second portions of storage space that is allocated to the first user, the first version including a copy of the first record at the time of the request; c) in response to completion of the update of the first record, replacing the first record with an updated first record and storing a time of completion for the update of the first record in the first version; d) in response to a request for an update of a second record by the first user, storing a second version of the second record in the second part of the portion of storage space that is allocated to the first user, the second version including a copy of the second record before the second record is updated; and e) in response to completion of the update of the second record, replacing the second record with an updated second record and storing a time of completion for the update of the second record in the second version.
Claim 37
Dependent Claim 271 words
In a computer system having a storage space, a computer-readable medium holding computer-executable instructions for performing a method for managing records stored in a first portion of the storage space and accessible to a plurality of users, the method comprising the steps of: a) allocating respective parts of a second portion of storage space to each of the plurality of users, the respective parts of storage space being distinct from each other and from the first portion; b) in response to a request for an update of a first record by a first user, storing a first version of the record in one of the parts of the second portions of storage space that is allocated to the first user, the first version including a copy of the first record at the time of the request; c) in response to completion of the update of the first record, replacing the first record with an updated first record and storing a time of completion for the update of the first record in the first version; d) in response to a request for an update of a second record by the first user, storing a second version of the second record in the second part of the portion of storage space that is allocated to the first user, the second version including a copy of the second record before the second record is updated; and e) in response to completion of the update of the second record, replacing the second record with an updated second record and storing a time of completion for the update of the second record in the second version.
Claim 38
Dependent Claim 61 words
The computer-readable medium of claim 29 wherein the step of storing a first version includes storing the first version in a linked list and wherein the step of storing a second version includes storing the second version in the linked list in such a way that the first and second versions are ordered within the linked list by time of completion.
Claim 39
Dependent Claim 169 words
In a computer system having a secondary memory, a computer-readable medium holding computer-executable instructions for performing a method for managing access to a record by a user, the record being stored in the secondary memory, the method comprising the steps of: storing versions of the record for the user in a version store in such a way that the versions are linked together to form a version chain, each version containing a commit time indicating when the version was committed to the version store; storing a pointer to the version store in an entry corresponding to the user in a user information block; and in response to an access request for the record at a time T 0 , accessing the entry in the user information block, retrieving a pointer stored in the accessed entry in the user information block, and traversing the versions stored in the version store pointed to by the pointer to locate a version having a commit time prior to the time T 0 .
Claim 40
Dependent Claim 169 words
In a computer system having a secondary memory, a computer-readable medium holding computer-executable instructions for performing a method for managing access to a record by a user, the record being stored in the secondary memory, the method comprising the steps of: storing versions of the record for the user in a version store in such a way that the versions are linked together to form a version chain, each version containing a commit time indicating when the version was committed to the version store; storing a pointer to the version store in an entry corresponding to the user in a user information block; and in response to an access request for the record at a time T 0 , accessing the entry in the user information block, retrieving a pointer stored in the accessed entry in the user information block, and traversing the versions stored in the version store pointed to by the pointer to locate a version having a commit time prior to the time T 0 .
Claim 41
Dependent Claim 33 words
The computer-readable medium of claim 31 wherein the step of storing versions includes storing a version indicator in the record to indicate whether versions of the record are stored in the version store.
Claim 42
Dependent Claim 48 words
The computer-readable medium of claim 31 wherein the step of storing versions of the record for the user in a version store in such a way that the versions are linked together to form a version chain includes positioning the versions within the version chain by commit time.
Claim 43
Dependent Claim 151 words
In a computer system having a secondary memory, a method for managing access to a record stored in the secondary memory by a user, the method comprising the steps of: storing versions of the record for the user in a version store in such a way that the versions are linked together to form a version chain, each version containing a commit time indicating when the version was committed to the version store; storing a pointer to the version chain in an entry corresponding to the record in a hash table; and in response to an access request for the record at a time T 0 , accessing the entry in the hash table, retrieving a pointer stored in the accessed entry in the hash table, and traversing the version chain pointed to by the pointer to locate a version having a commit time prior to the time T 0 .
Claim 44
Dependent Claim 151 words
In a computer system having a secondary memory, a method for managing access to a record stored in the secondary memory by a user, the method comprising the steps of: storing versions of the record for the user in a version store in such a way that the versions are linked together to form a version chain, each version containing a commit time indicating when the version was committed to the version store; storing a pointer to the version chain in an entry corresponding to the record in a hash table; and in response to an access request for the record at a time T 0 , accessing the entry in the hash table, retrieving a pointer stored in the accessed entry in the hash table, and traversing the version chain pointed to by the pointer to locate a version having a commit time prior to the time T 0 .
Claim 45
Dependent Claim 33 words
The computer-readable medium of claim 34 wherein the step of storing versions includes storing a version indicator in the record to indicate whether versions of the record are stored in the version store.
Claim 46
Dependent Claim 48 words
The computer-readable medium of claim 34 wherein the step of storing versions of the record for the entity in a version store in such a way that the versions are linked together to form a version chain includes positioning the versions within the version chain by commit time.

References Cited (Backward Citations)

US5151988A Cited
US5170480A Cited
US5410697A Cited
US5369757A Cited
US5280612A Cited
US5414840A Cited
US5404502A Cited
US5742343A Cited
US5642503A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-10-25 2003-04-26 2003-10-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-10-25 2007-04-26 2007-10-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-10-25 2011-04-26 2011-10-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag