Foundationপ্রথম নীতি থেকে
LEVEL 8 · Database Systems

Serializable

সিরিয়ালাইজেবল

সর্বোচ্চ isolation — concurrent execution-এর ফল এমন, কোনো একটা serial order-এর সমান; anomaly-মুক্ত চুক্তি।

also: serializability

কীভাবে প্রতিশ্রুতি দেয়:

  • 2PL (S2PL): read/write lock শেষ পর্যন্ত — conflict মানে wait/block
  • SSI (PostgreSQL): MVCC snapshot + rw-conflict graph-এ dangerous cycle detection — conflict মানে abort, retry আপনার দায়
BEGIN ISOLATION LEVEL SERIALIZABLE;
SELECT sum(balance) FROM accounts WHERE branch = 'A';   -- on-call doctor count check
UPDATE doctors SET on_call = on_call - 1 WHERE ... ;    -- write skew এখানেই SSI-এ ধরা পড়ে
COMMIT;   -- serialization failure? → পুরো transaction retry
  • Serializable ≠ serial execution — overlap থাকতে পারে, ফল সমান
  • Write skew (দুই transaction ভিন্ন row লিখে এক constraint ভাঙে) — snapshot isolation-এ পার, SERIALIZABLE-এ নয়
  • Retry loop বাধ্যতামূলক অংশ — abort মানে bug নয়, protocol

Correctness চূড়ান্ত দরকার (ledger, inventory) — তখনই এই ট্যাক্স দেওয়া সার্থক।