1 / 19

Distributed Transactions

Distributed Transactions. Integration of transaction processing. OLTP (Online Transaction Processing) : (Distributed) Transaction processing: Trusted data processing, also during system failures and multi-user access Application examples: - Reservation systems (Booking) - Bank transactions

Download Presentation

Distributed Transactions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Distributed Transactions

  2. Integration of transaction processing OLTP (Online Transaction Processing) : (Distributed) Transaction processing: Trusted data processing, also during system failures and multi-user access Application examples: - Reservation systems (Booking) - Bank transactions - Accounting - Generally: data access in write mode Implementation via TP-Systems / TP-Monitors, since 1960 System examples: - JDBC (pure access interface) - CICS (IBM) - IMS (IBM) - Encina (Transarc / IBM) - Tuxedo (BEA Systems)

  3. JDBC (Java Database Connectivity) • Programming interface for access to relational data bases • Corresponds to ODBC (Open Database Connectivity) • Numerous drivers for different data bases (for instance, Oracle, Sybase, DB2, SQL Server etc.) • Realizes however only direct data base access; improved distributed transaction logic in heterogenic systems requires Transaction Services/ Transaction monitors

  4. Database access via JDBC • try • {//open transaction • BankServer.con.setAutoCommit(false); • //UPDATE Account • pstmt = BankServer.con.prepareStatement("UPDATE Account SET Balance=Balance-? WHERE AccountNumber=? "); //Account • pstmt.setDouble(1, Amount); //Amount • pstmt.setInt(2, Account); • int updated = pstmt.executeUpdate(); • pstmt.close(); //Clean-up • //SELECT AccountStatus and READ CreditLimite • pstmt = BankServer.con.prepareStatement("SELECT X.Balance, Y.CreditLimite FROM Account X, Client Y WHERE X.AccountNumber=? AND X.ClientNumber=Y.ClientNumber"); • pstmt.setInt(1, Account); • rs=pstmt.executeQuery(); • BankServer.con.commit(); • } //end of transaction

  5. Distributed transaction: example Account server S1 Booking 1 Client (Cash desk) Trustiness: Booking is realized also in the case of failure of Client, S1, S2 or network failure finally. Atomicity and Consistency: Composed operations are realized completely or not at all Account server S2 Booking 2 (tied booking) Transaction monitor

  6. Transactions and ACID-criteria Transactions protect the ACID-criteria: • ACID • Atomarity • Call completely or without impacts • Consistency • Transformation between consistent states • Isolation • No overlapping of transaction executions • Durability • Survival of system failures

  7. Realization of fault tolerance • Syntactic support of the example: • begin_distributed_transaction • subtract(account1, amount);  Server 1 • add(account2, amount);  Server 2 • end_distributed_transaction • abort_distributed_transaction // in the error case • Isolation: • special concurrency control mechanisms • Other properties: • 2-Phase-Commit-Protocol with persistent data storage

  8. Two-Phase-Commit (2PC-Protocol) old Version: K save Data: K‘ Participant (for instance, Server 1) (1a) prepare (1b) ready / abort Coordinator (for instance, Client) (2) commit K := K‘ Old Version: L save Data: L‘ (1a) prepare (1b) ready / abort Participant (for instance, Server 2) (2) commit L := L‘

  9. Two-Phase-Commit: Protocol Input from the network / Output to the network start start prepare / abort - / prepare prepare / ready wait ready abort / abortready / abort ready / commit commit / - abort / - aborted commited aborted commited a) Coordinator b) Participant

  10. Transaction monitor: system example Encina Applications and Tools Screen Transaction Resource Managers Processing Managers Services Base Services Operating and Transport system Properties: -TP-Monitor - Integration of different data bases (RDBMS; relational data bases) and transaction monitors (for instance, CICS over LU 6.2 - SNA) - Integration with CORBA and EJB - Standard conformity (XA, X/Open, ISO/OSI, TP)

  11. Example Possible operations: - local transactions - remote object calls - call of other TP-Monitors - nested transactions transaction {... book ("Lufthansa","FRA-JFK"); book ("USAir","JFK-SFA"); output_ticket(); ...} Scenario: Resource Managers Application server Application server Clients Mainframe

  12. Special implementation aspects • -Optimization via serving of several clients via one server process • (multi-threaded) • Replication of the servers and partially automatic, heuristic load balancing, • fault tolerance - Parallel transactions: transaction {... concurrent {... book ("Lufthansa","FRA-JFK"); book ("USAir","JFK-SFA"); output_ticket(); ...} ...} onCommit printf ("OK"); onAbort printf ("Failure");

  13. Migration and Host-Integration Example: Integration with CICS Server (Unix) CPI-C CPI-C SNA CORBA / EJB LU 6.2 Clients Internet SNA CPI-C Mainframe • Encina as CICS region (from point of view of the mainframe) • Access to mainframe data base possible • Basis: • SNA-Gateway; but today also TCP/IP in mainframe • environment available • CPI-C (Common Programming Interface for Communications • from IBM SAA-Systems Application Architecture) • COBOL-interface to transactional Encina-data systems

  14. System administration Central administrator interface: Monitor- Server Configuration data base Administrator - Structuring in the management area - Software distribution: Distributed File System - Parallel system installation on the basis of configuration data base - Transactional Online Backup

  15. System administration - Re-configuration of application servers via starts / stoppages (online) - Monitoring (for instance, number of transactions, blocking transactions; also with selective filtering) - Automatic re-start of servers after failures - Step-by-step-mode Software-Upgrade (two parallel versions possible) - Uniform management user interface

  16. Tuxedo (BEA Systems) • Transaction Monitor, comparable with Encina, XA-conform • Synchronous and asynchronous transactional calls • Reliable Message Queuing • Event Communication • Language support for C, C++, Cobol, Java • Wide availability

  17. Nested transactions • Problem of simple transactions: • backtracking of larger calculations during long operations • lack of parallelism •  Nested transactions with parallel partial transactions • Properties: • separate backtracking of partial transactions • selective repeats • abortion of all partial transactions during abortion of the general transaction( Data versions to keep until end) • inheritance of locks in both directions inside the hierarchy • Systems: Encina, Tuxedo

  18. Example of nested transactions Document processing Format Save Print Pre- processor Formatter Copy 1 Copy 2 Preparation Print operation

  19. Summary: Transactions OLTP / TP-Monitors are essential components for commercial applications Trusted, consistent, distributed data management Optional nested transactions, loading balancing, security aspects Integration with mainframe systems (for instance, CICS-Monitor) Important products: Encina (Transarc) Tuxedo (BEA Systems) Improvement in the Internet-area: TIP (Transaction Internet Protocol): flexible Two-Phase-Commit via TCP/IP

More Related