Your continued donations keep Wikipedia running!    

Transaction processing

From Wikipedia, the free encyclopedia

Jump to: navigation, search

In computer science, a transaction is a group of logical operations that must all succeed or fail as a group. Systems dedicated to supporting such operations are known as transaction processing systems.

As an example, consider a typical banking operation, moving $500 from your savings account to your checking account. This seems like a single operation to the user but in fact consists of two: debiting the savings account by $500 and crediting the checking account by $500. If the debit operation succeeded and the credit did not, the $500 would disappear. This might still sound simplistic and easy to avoid, but consider that each of these two main operations may consist of several sub-operations, each of which may or may not fail; therefore we'll use these two "main" operations (debiting and crediting) as a generic alias for any number of elementary operations in a generic transaction.

Transaction processing systems allow these two operations to be "grouped" into a single transaction so these sorts of consistency problems cannot occur. They do this by making copies of the data in question and then running the operations on the copied data. When both commands have successfully completed, the changed data are written back to the system in a single operation. If either operation failed, the copied data are simply discarded, and an error is reported. This desirable property is called atomicity and is one of the desirable ACID transaction properties.

Standard transaction processing middleware, notably IBM's Information Management System, emerged in the 1960s and was often closely coupled to particular database management systems. Client-server computing embraced similar principles in the 1980s with mixed success. But, in more recent years, the distributed client-server model has become considerably more difficult to maintain. As the number of transactions grew in response to various online services (especially the Web), a single distributed database was not a practical solution. In addition, most online systems consist of a whole suite of programs operating together, as opposed to a strict client-server model where the single server could handle the transaction processing. Today a number of transaction processing systems are available that work at the inter-program level and which scale to large systems, including mainframes.

See also

Personal tools
In other languages