Online transaction processing

Short description: Type of database system

Online transaction processing (OLTP) is a type of database system used in transaction-oriented applications, such as many operational systems. "Online" refers to the fact that such systems are expected to respond to user requests and process them in real-time (process transactions). The term is contrasted with online analytical processing (OLAP) which instead focuses on data analysis (for example planning and management systems).

## Contents

* 1 Meaning of the term transaction
* 2 Compared to OLAP
* 3 Use
* 4 Overview
* 5 Systems design
* 6 List of OLTP databases
* 7 References
* 8 External links

## Meaning of the term transaction

The term "transaction" can have two different meanings, both of which might apply: in the realm of computers or database transactions it denotes an atomic change of state, whereas in the realm of business or finance, the term typically denotes an exchange of economic entities (as used by, e.g., Transaction Processing Performance Council or commercial transactions.[1]): 50 OLTP may use transactions of the first type to record transactions of the second type.

## Compared to OLAP

OLTP is typically contrasted to online analytical processing (OLAP), which is generally characterized by much more complex queries, in a smaller volume, for the purpose of business intelligence or reporting rather than to process transactions. Whereas OLTP systems process all kinds of queries (read, insert, update and delete), OLAP is generally optimized for read only and might not even support other kinds of queries. OLTP also operates differently from batch processing and grid computing.[1]: 15

In addition, OLTP is often contrasted to online event processing (OLEP), which is based on distributed event logs to offer strong consistency in large-scale heterogeneous systems.[2] Whereas OLTP is associated with short atomic transactions, OLEP allows for more flexible distribution patterns and higher scalability, but with increased latency and without guaranteed upper bound to the processing time.

## Use

OLTP has also been used to refer to processing in which the system responds immediately to user requests. An automated teller machine (ATM) for a bank is an example of a commercial transaction processing application.[3] Online transaction processing applications have high throughput and are insert- or update-intensive in database management. These applications are used concurrently by hundreds of users. The key goals of OLTP applications are availability, speed, concurrency and recoverability (durability).[4] Reduced paper trails and the faster, more accurate forecast for revenues and expenses are both examples of how OLTP makes things simpler for businesses. However, like many modern online information technology solutions, some systems require offline maintenance, which further affects the cost-benefit analysis of an online transaction processing system.

## Overview

An OLTP system is an accessible data processing system in today's enterprises. Some examples of OLTP systems include order entry, retail sales, and financial transaction systems.[5] Online transaction processing systems increasingly require support for transactions that span a network and may include more than one company. For this reason, modern online transaction processing software uses client or server processing and brokering software that allows transactions to run on different computer platforms in a network.

In large applications, efficient OLTP may depend on sophisticated transaction management software (such as IBM CICS) and/or database optimization tactics to facilitate the processing of large numbers of concurrent updates to an OLTP-oriented database.

For even more demanding decentralized database systems, OLTP brokering programs can distribute transaction processing among multiple computers on a network. OLTP is often integrated into service-oriented architecture (SOA) and Web services.

Online transaction processing (OLTP) involves gathering input information, processing the data and updating existing data to reflect the collected and processed information. As of today, most organizations use a database management system to support OLTP. OLTP is carried in a client-server system.

Online transaction process concerns about concurrency and atomicity. Concurrency controls guarantee that two users accessing the same data in the database system will not be able to change that data or the user has to wait until the other user has finished processing, before changing that piece of data. Atomicity controls guarantee that all the steps in a transaction are completed successfully as a group. That is, if any steps between the transaction fail, all other steps must fail also.[6]

## Systems design

To build an OLTP system, a designer must know that the large number of concurrent users does not interfere with the system's performance. To increase the performance of an OLTP system, a designer must avoid excessive use of indexes and clusters.

The following elements are crucial for the performance of OLTP systems:[4]

* Rollback segments: Rollback segments are the portions of database that record the actions of transactions in the event that a transaction is rolled back. Rollback segments provide read consistency, rollback transactions, and recovery of the database.[7]
* Clusters: A cluster is a schema that contains one or more tables that have one or more columns in common. Clustering tables in a database improves the performance of join operations.[8]
* Discrete transactions: A discrete transaction defers all change to the data until the transaction is committed. It can improve the performance of short, non-distributed transactions.[9]
* Block size: The data block size should be a multiple of the operating system's block size within the maximum limit to avoid unnecessary I/O.[10]
* Buffer cache size: SQL statements should be tuned to use the database buffer cache to avoid unnecessary resource consumption.[11]
* Dynamic allocation of space to tables and rollback segments
* Transaction processing monitors and the multi-threaded server: A transaction processing monitor is used for coordination of services. It is like an operating system and does the coordination at a high level of granularity and can span multiple computing devices.[12]
* Partition (database): Partition use increases performance for sites that have regular transactions while still maintaining availability and security.
* Database tuning: With database tuning, an OLTP system can maximize its performance as efficiently and rapidly as possible.

## List of OLTP databases

Rank  | Database  | Type  | Primary Strength  | Key Use Case

|
|
|
|

1  | Oracle Database  | Relational  | Enterprise-grade stability & security  | Banking & core finance
2  | MySQL  | Relational  | Ubiquitous, easy to scale for web  | E-commerce & CMS
3  | Microsoft SQL Server  | Relational  | Deep integration with MS ecosystem  | ERP & business applications
4  | PostgreSQL  | Relational  | Extensible & ACID-compliant  | Fintech & general web apps
5  | MongoDB Atlas  | NoSQL (Doc)  | Flexible schema & horizontal scaling  | Product catalogs & real-time apps
6  | Amazon Aurora  | Relational  | Cloud-native, high availability  | AWS-hosted scalable apps
7  | Redis  | NoSQL (Key Value)  | Extreme speed (in-memory)  | Caching & session management
8  | SQLite  | Relational  | Zero-config, lightweight/embedded  | Mobile apps & IoT devices
9  | MariaDB  | Relational  | Open-source MySQL alternative  | Community-driven web platforms
10  | CockroachDB  | Distributed SQL  | Global consistency & survivability  | Globally distributed transactions
11  | IBM Db2  | Relational  | Mainframe & AI-optimized processing  | Legacy enterprise systems
12  | Google Cloud Spanner  | Distributed SQL  | Infinite scale with relational consistency  | Global supply chain logistics
13  | Amazon DynamoDB  | NoSQL (KV/Doc)  | Massive scale with consistent latency  | High traffic web-scale apps
14  | Couchbase  | NoSQL (Doc)  | High-performance memory-first  | Real-time gaming & profile stores
15  | SAP HANA  | Multi-model  | Real time in-memory transactional/analytics  | SAP ERP & real-time business data

## References

1. ↑ 1.0 1.1 Bog, Anja (2013). Benchmarking Transaction and Analytical Processing Systems: The Creation of a Mixed Workload Benchmark and its Application. Berlin: Springer Science & Business Media. ISBN 978-3642380709. https://books.google.com/books?id=fV0NAAAAQBAJ.
2. ↑ "Online Event Processing - ACM Queue". https://queue.acm.org/detail.cfm?id=3321612.
3. ↑ Heller, Martin (2022-02-18). "What is OLTP? The backbone of ecommerce" (in en). https://www.infoworld.com/article/3650769/what-is-oltp-the-backbone-of-ecommerce.html.
4. ↑ 4.0 4.1 "Application and System Performance Characteristics". http://docs.oracle.com/cd/A87860_01/doc/server.817/a76992/ch3_eval.htm#2680.
5. ↑ "Database VLDB and Partitioning Guide". http://docs.oracle.com/cd/E11882_01/server.112/e25523/part_oltp.htm.
6. ↑ "Online Transaction Processing vs. Decision Support". https://technet.microsoft.com/en-us/library/ms187669(v=sql.105).aspx.
7. ↑ "Managing Rollback Segments". http://docs.oracle.com/cd/A87860_01/doc/server.817/a76956/rollbak.htm.
8. ↑ "ISelfSchooling - What is cluster table - Index Cluster and Hash Cluster". http://www.iselfschooling.com/mc4articles/mc4cluster.htm.
9. ↑ "Transaction Modes". http://docs.oracle.com/cd/A57673_01/DOC/server/doc/A48506/transac.htm.
10. ↑ "Data Blocks, Extents, and Segments". http://docs.oracle.com/cd/B10500_01/server.920/a96524/c03block.htm.
11. ↑ "Tuning the Database Buffer Cache". https://docs.oracle.com/database/121/TGDBA/tune_buffer_cache.htm#TGDBA294.
12. ↑ "Transaction processing monitor". http://c2.com/cgi/wiki?TransactionProcessingMonitor.

## External links

* H-Store Project (architectural and application shifts affecting OLTP performance)
* IBM CICS official website
* Transaction Processing Performance Council
* OLTP Schema
* Transaction Processing: Concepts & Techniques Management
* HPE NonStop

* v
* t
* e

Database management systems

Types|

* Object-oriented
* comparison
* Relational
* comparison
* Document-oriented
* Graph
* NoSQL
* NewSQL

Concepts|

* Database
* ACID
* Armstrong's axioms
* CAP theorem
* CRUD
* Null
* Candidate key
* Foreign key
* Superkey
* Surrogate key
* Unique key

Objects|

* Relation
* table
* column
* row
* View
* Transaction
* Transaction log
* Trigger
* Index
* Stored procedure
* Cursor
* Partition

Components|

* Concurrency control
* Data dictionary
* JDBC
* XQJ
* ODBC
* Query language
* Query optimizer
* Query rewriting system
* Query plan

Functions|

* Administration
* Query optimization
* Replication

Related topics|

* Database models
* Database normalization
* Database storage
* Distributed database
* Federated database system
* Referential integrity
* Relational algebra
* Relational calculus
* Relational database
* Relational model
* Object-relational database
* Transaction processing

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Online transaction processing. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Online_transaction_processing&oldid=4290115"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template