Patent ID: 7437355

Claim:
A computer-implemented method, comprising: assigning identifiers to a plurality of processes, wherein the identifiers are selected from a predefined set of identifiers, wherein no two processes running in parallel use the same identifier; receiving a first request from a first process, having assigned thereto a first identifier, to update a data field of a record with a first key in a set of records stored in a database, each record comprising a key field for identifying the record and a sub-record for each process accessing the record, each sub-record comprising a process identifier and a sub-data field, wherein the value of the data field for the record is the sum of each of the sub-data fields of the record; determining if the record with the first key has a sub-record for the first identifier in the database; and when the record with the first key has a sub-record with the first identifier, then updating the sub-data field of the sub-record with the first identifier, otherwise creating a sub-record for the first identifier and updating the sub-data field of the created sub-record field; receiving a second request from a second process, having assigned thereto a second identifier, to update the data field of the record with the first key, determining if the record with the first key has a sub-record for the second identifier in the database; and when the record with the first key has a sub-record with the second identifier, then updating the sub-data field of the sub-record with the second identifier, wherein the first and second processes update the record without hindering one another, otherwise creating a sub-record for the second identifier and updating the sub-data field of the created sub-record field.