4.4.17 · HinglishDatabases

Transaction isolation levels — READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE

2,053 words9 min readRead in English

4.4.17 · Coding › Databases


Isolation levels KYUN exist karte hain?

"Gold standard" hai serializability: concurrent result kisi na kisi serial execution order ke barabar hona chahiye. Lekin sab kuch lock karke yeh guarantee karna slow hai. Toh SQL standard 4 levels define karta hai, har ek ek specific set of read anomalies ko ban karta hai.

Teen classic anomalies (yahi woh 20% hai jo 80% explain karta hai)


4 levels aur har ek kya BAN karta hai

Figure — Transaction isolation levels — READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE

HOW implement hota hai (taaki table magic na lage)


Forecast-then-Verify drill

Recall Padhne se pehle: outputs predict karo

Do transactions READ COMMITTED pe. T1 bal padhta hai (=100). T2 bal=200 commit karta hai. T1 dobara padhta hai. Forecast: doosra read = ? · Kya yeh ek anomaly hai, aur kaun si?

Verify: doosra read = 200. Yeh ek non-repeatable read hai — READ COMMITTED pe allowed, REPEATABLE READ pe banned.


Common mistakes (Steel-man → fix)



Recall Feynman: 12-saal ke bacche ko explain karo

Socho database ek shared notebook hai aur log ek saath usme likhte hain.

  • READ UNCOMMITTED: tum kisi ki pencil scribble pehle hi padh lete ho jab usne decide bhi nahi kiya ki rakhni hai ya nahi — woh erase kar sakta hai. Risky.
  • READ COMMITTED: tum sirf woh cheezein padhte ho jo logon ne sach mein ink se likh di hain. Lekin agar tum ek hi line do baar dekho, kisine beech mein dobara ink kar di ho sakti hai, toh woh change ho jaati hai.
  • REPEATABLE READ: tum shuru mein apne page ki ek photo lo aur photo se padhte ho, toh jo lines tum dekh chuke ho woh tumhare neeche kabhi nahi badlengi.
  • SERIALIZABLE: aisa hai jaise sabki strict baari hoti hai — final notebook bilkul waisi dikhti hai jaise log ek ek karke gaye hon. Koi surprise nahi, lekin tum zyada wait karte ho.

Flashcards

Teen classic read anomalies kaun si hain?
Dirty read, non-repeatable read, phantom read.
Kaun sa isolation level dirty reads allow karta hai?
Sirf READ UNCOMMITTED.
Non-repeatable read aur phantom read mein kya farq hai?
Non-repeatable = do reads ke beech existing row ki value change ho jaati hai; phantom = ek predicate se match karne wala rows ka set change ho jaata hai (rows insert/delete hote hain).
Kaun sa level non-repeatable reads rokta hai lekin (standard ke hisaab se) phantoms allow karta hai?
REPEATABLE READ.
4 levels ko weakest → strongest order karo.
READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE.
SERIALIZABLE actually kya guarantee karta hai?
Concurrent result kisi na kisi serial (ek-ek karke) execution order ke barabar hai — literal serial execution nahi.
MVCC mein READ COMMITTED aur REPEATABLE READ snapshots mein kya farq hai?
READ COMMITTED har statement pe fresh snapshot leta hai; REPEATABLE READ transaction start pe ek snapshot leta hai aur reuse karta hai.
Locking ke under phantoms kaise rokein jaate hain?
Range/predicate (next-key) locks queried range mein inserts block karte hain.
PostgreSQL vs MySQL InnoDB mein default isolation level?
PostgreSQL = READ COMMITTED; MySQL InnoDB = REPEATABLE READ.
SERIALIZABLE har jagah kyun nahi use karte?
Zyada blocking, deadlocks, aur serialization-failure retries → kam throughput; sabse low level use karo jo tumhari app ke anomalies rokta ho.

Connections

  • ACID properties — ACID mein I exactly yahi isolation hai.
  • MVCC (Multi-Version Concurrency Control) — READ COMMITTED / REPEATABLE READ ke peeche snapshot mechanism.
  • Two-Phase Locking (2PL) — serializability tak lock-based raasta.
  • Serializable Snapshot Isolation (SSI) — PostgreSQL SERIALIZABLE optimistically kaise karta hai.
  • Deadlocks — zyada levels pe locks hold karne ka side effect.
  • Write skew anomaly — anomaly jo snapshot isolation allow karta hai lekin SERIALIZABLE rokta hai.

Concept Map

cause

trade correctness for speed

includes

includes

includes

reads uncommitted data

existing row value changes

row set membership changes

allows all

bans dirty read

bans non-repeatable

bans phantoms

achieves

defines

adds guarantee

adds guarantee

adds guarantee

Concurrent transactions

Read anomalies

Isolation levels

Dirty read

Non-repeatable read

Phantom read

Serializability goal

READ UNCOMMITTED

READ COMMITTED

REPEATABLE READ

SERIALIZABLE