āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĄāĻŋāĻāĻžāĻāύ āĻļā§āĻāĻžāϰ āϏāĻŽā§ āĻāĻŽāϰāĻž āĻĒā§āϰāĻžā§āĻ āĻāĻāĻāĻž āĻļāĻŦā§āĻĻ āĻļā§āύāĻŋ â âIsolation LevelâāĨ¤ āĻ āύā§āĻā§ āĻāĻā§ āĻā§āϞ āĻāϰ⧠âIsolation Layerâ āĻŦāϞ⧠, āĻāĻŋāύā§āϤ⧠āĻāϏāϞ⧠āĻāĻāĻž āĻšāϞ⧠Transaction Isolation Level, āϝāĻž āĻĄāĻžāĻāĻžāĻŦā§āϏā§āϰ āĻ āύā§āϝāϤāĻŽ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻŦāĻŋāώā§āĨ¤
āĻāĻŽāϰāĻž āĻāĻāĻĻāĻŽ āϏāĻšāĻāĻāĻžāĻŦā§ āĻŦā§āĻāĻŦ â Read Uncommitted
, Read Committed
, Repeatable Read
, Serializable
â āĻāĻ āĻāĻžāϰāĻāĻž level āĻā§ āĻāϰā§, āϤāĻžāĻĻā§āϰ āĻĒāĻžāϰā§āĻĨāĻā§āϝ āĻā§, āĻāϰ āĻāĻŦā§ āĻā§āύāĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻāĻāĻŋāϤāĨ¤
đ§ Transaction Isolation Level āĻā§?
Transaction Isolation Level āĻšāϞ⧠āĻāĻŽāύ āĻāĻāĻāĻž āύāĻŋāϝāĻŧāĻŽ āϝāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰ⧠â
āĻāĻāĻāĻŋ transaction āĻāϞāĻžāϰ āϏāĻŽāϝāĻŧ āĻ āύā§āϝ transaction-āĻāϰ data access āĻŦāĻž modification āĻāϤāĻāĻž āĻĻā§āĻāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤
āĻĄāĻžāĻāĻžāĻŦā§āϏ (āϝā§āĻŽāύ: MySQL, PostgreSQL, SQL Server) āĻāĻ isolation level āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§
Concurrency Control āĻŦāĻāĻžā§ āϰāĻžāĻā§, āĻ
āϰā§āĻĨāĻžā§ āĻāĻāĻžāϧāĻŋāĻ transaction āĻāĻāϏāĻžāĻĨā§ āĻāϞāϞā§āĻ data inconsistency āύāĻž āĻšā§āĨ¤
âī¸ āĻāĻžāϰāĻāĻŋ āĻŽā§āϞ Isolation Level
Level | Prevents | Allows | Risk |
---|---|---|---|
Read Uncommitted | â āĻāĻŋāĻā§āĻ āύāĻž | āϏāĻŦ | Dirty Read |
Read Committed | Dirty Read | Non-repeatable Read | Medium risk |
Repeatable Read | Dirty + Non-repeatable Read | Phantom Read | Low risk |
Serializable | āϏāĻŦ | āĻāĻŋāĻā§āĻ āύāĻž | Slowest, but safest |
đ āĻĒā§āϰāϤāĻŋāĻāĻž Isolation Level āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤāĻāĻžāĻŦā§
1ī¸âŖ Read Uncommitted
đš āϏāĻŦāĻā§ā§ā§ āĻāĻŽ isolation āϞā§āĻā§āϞāĨ¤
đš āĻāĻāĻžāύ⧠āĻāĻ transaction āĻ
āύā§āϝ transaction-āĻāϰ uncommitted data āĻĒāϰā§āϝāύā§āϤ āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āĨ¤
đ Example:
- Transaction A data update āĻāϰāĻā§ āĻāĻŋāύā§āϤ⧠āĻāĻāύ⧠commit āĻāϰ⧠āύāĻžāĻāĨ¤
- Transaction B āĻāĻ data read āĻāϰ⧠āĻĢā§āϞāϞāĨ¤
- āĻĒāϰ⧠A rollback āĻāϰāϞ⧠B āϝā§āĻāĻž āĻĒā§ā§āĻā§ āϏā§āĻāĻž āĻā§āϞ data (Dirty Read)āĨ¤
â ī¸ Problem: Dirty Read
đ Use case: Performance āĻā§āĻŦ āĻĻāϰāĻāĻžāϰ, consistency āĻāĻŽ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻšāϞ⧠(āĻā§āĻŦ āĻāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšā§)āĨ¤
2ī¸âŖ Read Committed (đ āϏāĻŦāĻā§ā§ā§ āĻŦā§āĻļāĻŋ āĻŦā§āϝāĻŦāĻšā§āϤ)
đš āĻāĻ transaction āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻ
āύā§āϝāĻĻā§āϰ committed data āĻĒā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
đš Uncommitted data āĻĻā§āĻāĻž āϝāĻžā§ āύāĻžāĨ¤
đ Example:
- T1 reads balance = 100
- T2 updates balance = 200 (commits)
- T1 āĻāĻŦāĻžāϰ read āĻāϰāϞ⧠āĻĻā§āĻā§ 200 đĩ (value change āĻšā§ā§ āĻā§āĻā§)
â ī¸ Problem: Non-repeatable Read
đ Use case: SQL Server, Oracle â āĻāĻ level āĻĄāĻŋāĻĢāϞā§āĻāĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤
3ī¸âŖ Repeatable Read
đš āĻāĻāĻŦāĻžāϰ read āĻāϰāĻž data transaction āĻāϞāĻžāĻāĻžāϞā§āύ āϏāĻŽā§ā§ āĻ
āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻĨāĻžāĻā§āĨ¤
đš āĻ
āϰā§āĻĨāĻžā§ āĻāĻāĻ row āĻŦāĻžāϰāĻŦāĻžāϰ āĻĒā§āϞā§āĻ āĻāĻāĻ value āĻĒāĻžāĻā§āĻž āϝāĻžāĻŦā§āĨ¤
đš āϤāĻŦā§ āύāϤā§āύ row add āĻšāϞ⧠āϏā§āĻāĻž āĻĻā§āĻāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠(Phantom Read)āĨ¤
â ī¸ Problem: Phantom Read
đ Use case: MySQL-āĻāϰ default isolation levelāĨ¤
4ī¸âŖ Serializable (đ Highest Isolation)
đš āĻāĻ āϞā§āĻā§āϞ⧠database ensure āĻāϰ⧠transactions āĻāĻā§ āĻ
āĻĒāϰā§āϰ āĻĨā§āĻā§ āϏāĻŽā§āĻĒā§āϰā§āĻŖ serially execute āĻšā§āĨ¤
đš āĻā§āύāĻ Dirty Read, Non-repeatable Read āĻŦāĻž Phantom Read āĻšā§ āύāĻžāĨ¤
â ī¸ Problem: Performance āĻāĻŽā§ āϝāĻžā§ (lock āĻŦā§āĻļāĻŋ āϞāĻžāĻā§)āĨ¤
đ Use case: Banking, Accounting, āĻŦāĻž Financial systems āϝā§āĻāĻžāύ⧠100% consistency āĻĻāϰāĻāĻžāϰāĨ¤
đ§Š Quick Comparison Table
Isolation Level | Dirty Read | Non-repeatable Read | Phantom Read | Performance |
---|---|---|---|---|
Read Uncommitted | â Allowed | â Allowed | â Allowed | â Fastest |
Read Committed | â Prevented | â Allowed | â Allowed | âī¸ Medium |
Repeatable Read | â Prevented | â Prevented | â Allowed | âī¸ Medium-Low |
Serializable | â Prevented | â Prevented | â Prevented | đĸ Slowest |
đĄ āϏāĻšāĻā§ āĻŽāύ⧠āϰāĻžāĻāĻžāϰ āĻāĻĒāĻžāϝāĻŧ
RU â RC â RR â S
"U Commit, Repeat, Serialize" đ§
āĻāĻ āĻā§āϰāĻŽā§ Isolation Level āϝāϤ āĻŦāĻžā§āĻŦā§:
đŧ Consistency āĻŦāĻžā§āĻŦā§
đŊ Performance āĻāĻŽāĻŦā§
đ Transaction Phenomena Explained
Phenomenon | Description | Prevented by |
---|---|---|
Dirty Read | Uncommitted data āĻĒā§āĻž | Read Committed â |
Non-repeatable Read | āĻāĻāĻ row āĻĻā§âāĻŦāĻžāϰ āĻĒā§āϞ⧠value change āĻšā§ | Repeatable Read â |
Phantom Read | āĻāĻāĻ query āĻĻā§âāĻŦāĻžāϰ āĻāϰāϞ⧠āύāϤā§āύ row āĻĻā§āĻāĻž āϝāĻžā§ | Serializable â |
āĻāĻĒāϏāĻāĻšāĻžāϰ
Transaction Isolation Level āĻšāϞ⧠database consistency, concurrency āĻāϰ performance āĻāϰ āĻŽāϧā§āϝ⧠balance āĻŦāĻāĻžā§ āϰāĻžāĻāĻžāϰ āĻāĻĒāĻžā§āĨ¤ āϤā§āĻŽāĻŋ āĻā§āύ level āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§ āϏā§āĻāĻž āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āϤā§āĻŽāĻžāϰ application-āĻāϰ nature āĻāϰ āĻāĻĒāϰāĨ¤
đš High performance āĻĻāϰāĻāĻžāϰ? â Read Committed
đš High consistency āĻĻāϰāĻāĻžāϰ? â Serializable
đš Balanced system āĻāĻžāĻāϞā§? â Repeatable Read
Top comments (0)