Tag Archives: Durability

๐Ÿ”„ Transactions & ACID Properties

Image
Image
Image
Image

๐Ÿ“˜ 1. Introduction to Transactions

A transaction in database systems is a sequence of one or more operations performed as a single logical unit of work. These operations may include:

  • Reading data
  • Writing data
  • Updating records
  • Deleting records

The key idea is simple but powerful:

๐Ÿ‘‰ Either all operations succeed, or none of them do.


๐Ÿ”น Real-Life Example

Consider a bank transfer:

  1. Deduct โ‚น1000 from Account A
  2. Add โ‚น1000 to Account B

If step 1 succeeds but step 2 fails, the system becomes inconsistent. Transactions prevent this by ensuring all-or-nothing execution.


๐Ÿ”น Formal Definition

A transaction is:

  • A logical unit of work
  • Executed completely or not at all
  • Ensures database consistency

๐Ÿง  2. Why Transactions Are Important

Transactions are critical for:

  • Data integrity
  • Reliability
  • Consistency across operations
  • Handling system failures
  • Concurrent access management

๐Ÿ”น Without Transactions

  • Partial updates
  • Data corruption
  • Lost data
  • Inconsistent state

๐Ÿ—๏ธ 3. Transaction States

Image
Image
Image
Image

A transaction passes through several states:


๐Ÿ”น 1. Active

  • Transaction is executing

๐Ÿ”น 2. Partially Committed

  • All operations executed, waiting to commit

๐Ÿ”น 3. Committed

  • Changes permanently saved

๐Ÿ”น 4. Failed

  • Error occurs

๐Ÿ”น 5. Aborted

  • Rolled back to previous state

๐Ÿ” 4. Transaction Operations


๐Ÿ”น BEGIN TRANSACTION

Starts a transaction.

BEGIN;

๐Ÿ”น COMMIT

Saves changes permanently.

COMMIT;

๐Ÿ”น ROLLBACK

Reverts changes.

ROLLBACK;

๐Ÿ”น SAVEPOINT

Creates checkpoints.

SAVEPOINT sp1;
ROLLBACK TO sp1;

โš–๏ธ 5. ACID Properties

Image
Image
Image
Image

ACID properties ensure reliable transactions:


๐Ÿ”น A โ€“ Atomicity

๐Ÿ‘‰ All or nothing

  • If one operation fails โ†’ entire transaction fails
  • Ensures no partial updates

Example:

  • Money deducted but not added โ†’ rollback

๐Ÿ”น C โ€“ Consistency

๐Ÿ‘‰ Database remains valid

  • Enforces rules, constraints
  • Moves from one valid state to another

๐Ÿ”น I โ€“ Isolation

๐Ÿ‘‰ Transactions do not interfere

  • Concurrent transactions behave independently

๐Ÿ”น D โ€“ Durability

๐Ÿ‘‰ Changes are permanent

  • Even after crash, data persists

๐Ÿ” 6. Atomicity in Detail

Atomicity ensures:

  • No partial execution
  • Rollback on failure

๐Ÿ”น Implementation Techniques

  • Undo logs
  • Write-ahead logging (WAL)

๐Ÿ”น Example

BEGIN;

UPDATE Accounts SET balance = balance - 1000 WHERE id = 1;
UPDATE Accounts SET balance = balance + 1000 WHERE id = 2;

COMMIT;

If second update fails โ†’ rollback entire transaction.


๐Ÿงฉ 7. Consistency in Detail

Consistency ensures:

  • Constraints are maintained
  • Rules are enforced

๐Ÿ”น Types of Constraints

  • Primary key
  • Foreign key
  • Check constraints

๐Ÿ”น Example

  • Balance cannot be negative
  • Foreign key must exist

๐Ÿ”„ 8. Isolation in Detail

Image
Image
Image
Image

Isolation prevents interference between transactions.


๐Ÿ”น Problems Without Isolation

1. Dirty Read

Reading uncommitted data


2. Non-repeatable Read

Data changes between reads


3. Phantom Read

New rows appear unexpectedly


๐Ÿ”น Isolation Levels

LevelDescription
Read UncommittedLowest isolation
Read CommittedPrevents dirty reads
Repeatable ReadPrevents non-repeatable reads
SerializableHighest isolation

๐Ÿ” 9. Durability in Detail

Durability ensures:

  • Data survives crashes
  • Stored permanently

๐Ÿ”น Implementation

  • Transaction logs
  • Disk storage
  • Backup systems

๐Ÿ”น Example

After COMMIT:

  • Power failure occurs
  • Data still exists

๐Ÿง  10. Concurrency Control

Image
Image
Image
Image

Concurrency control manages multiple transactions.


๐Ÿ”น Techniques

1. Locking

  • Shared lock (read)
  • Exclusive lock (write)

2. Two-Phase Locking (2PL)

  • Growing phase
  • Shrinking phase

3. Timestamp Ordering

  • Based on timestamps

4. MVCC (Multi-Version Concurrency Control)

  • Multiple versions of data

๐Ÿ” 11. Deadlocks


๐Ÿ”น What is Deadlock?

Two transactions wait for each other indefinitely.


๐Ÿ”น Example

  • T1 locks A, needs B
  • T2 locks B, needs A

๐Ÿ”น Handling Deadlocks

  • Detection
  • Prevention
  • Timeout

๐Ÿงช 12. Logging and Recovery

Image
Image
Image
Image

๐Ÿ”น Types of Logs

  • Undo log
  • Redo log

๐Ÿ”น Recovery Techniques

  • Checkpointing
  • Log-based recovery

๐Ÿ“Š 13. Distributed Transactions


๐Ÿ”น Challenges

  • Network failures
  • Data consistency across nodes

๐Ÿ”น Two-Phase Commit (2PC)

  1. Prepare phase
  2. Commit phase

๐Ÿ”น Three-Phase Commit (3PC)

Improved version of 2PC


๐ŸŒ 14. Transactions in Modern Databases


๐Ÿ”น SQL Databases

  • Strong ACID compliance

๐Ÿ”น NoSQL Databases

  • Often use BASE model
    • Basically Available
    • Soft state
    • Eventually consistent

โš–๏ธ 15. ACID vs BASE

FeatureACIDBASE
ConsistencyStrongEventual
AvailabilityModerateHigh
Use CaseBankingSocial media

๐Ÿ“ˆ 16. Performance Considerations

  • High isolation โ†’ slower performance
  • Low isolation โ†’ faster but risky

๐Ÿ”น Trade-offs

  • Consistency vs performance
  • Isolation vs concurrency

๐Ÿงฉ 17. Real-World Applications


๐Ÿ”น Banking Systems

  • Money transfer
  • Account updates

๐Ÿ”น E-commerce

  • Order processing
  • Payment transactions

๐Ÿ”น Airline Booking

  • Seat reservation

๐Ÿง  18. Advanced Topics

  • Nested transactions
  • Long-running transactions
  • Savepoints
  • Distributed consensus

๐Ÿ—๏ธ 19. Best Practices

  • Keep transactions short
  • Avoid unnecessary locks
  • Use proper isolation level
  • Monitor performance

โš ๏ธ 20. Common Issues

  • Deadlocks
  • Blocking
  • Performance bottlenecks
  • Data inconsistency

๐Ÿ”ฎ 21. Future Trends

  • Cloud-native transactions
  • Distributed ACID systems
  • New consistency models

๐Ÿ Conclusion

Transactions and ACID properties form the core foundation of reliable database systems. They ensure that even in complex, concurrent, and failure-prone environments, data remains:

  • Accurate
  • Consistent
  • Safe
  • Durable

Mastering transactions is essential for building robust applications, especially in systems where correctness is critical.


๐Ÿท๏ธ Tags