Patent ID: 7899799

Claim:
A database transaction processing system using multi-operation processing providing concurrency control of transactions, said transaction processing system comprising: a processor; transaction execution order determination means for determining a transaction execution order for a plurality of submitted transactions; precedence graph creating means for creating a precedence graph indicating to update data in the determined transaction execution order when a plurality of transactions performs its operation on the same data item by creating an edge for the data item and drawing it from the vertex of the first transaction to perform its operation to vertex of the next transaction to perform its operation; task retrieval means for retrieving partial operations contained in the plurality of transactions as tasks; grouping means for grouping the retrieved tasks into groups for each access area of the database in the transaction execution order; synthetic transaction creating means for creating a synthetic transaction using the groups created by grouping; and multi-operation processing means for executing each group contained in the synthetic transaction using multi-operation processing, wherein the multi-operation processing means finds blocks in the access area to be accessed by the grouped tasks, determines an access order for the blocks in the lined up order of the tasks in the group, reads a block in the determined access order, extracts tasks accessing the read block from the group, executes the task operations consecutively on a data item in the block in the lined up order of the tasks in the group, determines whether an ended transaction can be committed based on whether an incoming edge to the vertex of the ended transaction in the precedence graph exists at this time when execution of a grouped task is finished and the transaction containing the finished task is ended, commits the transaction if the vertex of the ended transaction does not have any incoming edges, and removes the vertex of the transaction and all of the outgoing edges from the vertex; a process of executing the task operations consecutively on a data item in the block in the lined up order of the tasks in the grouping means executing the task operations, which are partial operations of the transactions, consecutively on the data item according to the transaction execution order indicated in the precedence graph when the data item in the block exists in the precedence graph, when the plurality of tasks performs its update operation on the data item, the update operation of the first task is executed on the data item, the update operation of the next task is executed on the updated data item, such update operation is repeated in this manner, and only the last updated result is written in the database once after the update operation of the last task is executed.