* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Chapter 15 Transaction Management
Survey
Document related concepts
Entity–attribute–value model wikipedia , lookup
Oracle Database wikipedia , lookup
Global serializability wikipedia , lookup
Relational model wikipedia , lookup
Functional Database Model wikipedia , lookup
Database model wikipedia , lookup
Clusterpoint wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Commitment ordering wikipedia , lookup
Versant Object Database wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Transcript
Chapter 20 Transaction Management Thomas Connolly, Carolyn Begg, Database System, A Practical Approach to Design Implementation and Management, 4th Edition, Addison Wesley Pg 572 ~ 678 Learning Outcomes • Transaction • Concurrent Processing • Backup and Recovery Transaction - I • Definition – An action or actions to read or update the contents of the database • Types – Committed – Aborted – Compensating Transaction - II • Property of Transactions (ACID) – Atomicity (all or nothing) – Consistency (state by database constraints and applications) – Isolation (independent) – Durability (permanent) Concurrent Processing • Definition • Problems • Control Concurrent Processing • Multiprogramming • Interleaved between two transactions – CPU – I/O • Logical unit of work Concurrent Processing Problem • No problem – Write different data – Update different data – Read the same data • Problem – Write the same data – Update the same data Concurrent Processing Problems • Lost update – Two transactions simultaneously update the same files • Uncommitted update – Transaction 2 uses the result updated by transaction 1 – Transaction 1 aborts and rolls back – Transaction 2 commits • Inconsistent Analysis – – – – Transaction 1 reads Transaction 2 reads and uses for calculation Transaction 1 updates and commits Transaction 2 updates and commits SERIALIZABILITY • Transaction results form concurrent processing are the same as if stand-alone sequential processing was used • Ensure no anomalies arise from concurrent processing Concurrency Control • • • • • Locking Deadlock Two-phase locking Timestamping Optimistic technique Locking • Types – Shared Locks vs. Exclusive Locks – Read Locks vs. Write Locks – Upgrade vs. Downgrade • Granularity – – – – – Database file page record field Deadlock • Definition – Tow or more transactions each wait for locks held by other transaction – Livelock • Control – – – – Wait-Die Wound-wait Time out Conservative 2PL Two-phase Locking • Growing phase – Get all locks – Upgrade locks • Shrinking phase – Downgrade locks – Once starting to release a lock - no more new locks Timestamping • Timestamp – unique identifier as relative starting time of a transaction – Read-timestamp & write timestamp • Timestamp protocol – Transactions with smaller timestamps get priority in the event of conflict – Transaction is only allowed on the item with smaller read-timestamp or write timestamp Optimistic Technique • Read phase • Validate phase • Write phase Database Recovery • Definition – Restoring the database to its correct state in the event of a failure • Reasons – – – – – Physical (fire, flood, etc.) Sabotage Carelessness Hardware Software (application/system) Database Backup • Backup – Copy of the database • Transaction log – Transaction ID, time, operation, object, before image, after image, prior pointer, next pointer • Checkpoint – Synchronize transaction log and the database – Write data from buffers to database on the disk – Write checkpoint to log identify current transaction(s) Recovery Methods • Reprocessing – Record all transactions since last backup and replay the following transactions • Rollfoward – Use the transaction log to change any committed transactions on the database or since last checkpoint • Rollback – Use transaction log to undo any aborted transactions Shadow Paging Method • Current page table vs. Shadow page table • Pros & cons – – – – Faster Less overhead Data fragmentation Reclaim inaccessible blocks