Bird
0
0

Why might a transaction running under Serializable isolation sometimes succeed even if it reads data that was concurrently modified and committed by another transaction?

hard📝 Conceptual Q10 of 15
PostgreSQL - Transactions and Concurrency

Why might a transaction running under Serializable isolation sometimes succeed even if it reads data that was concurrently modified and committed by another transaction?

ABecause PostgreSQL ignores concurrent commits during reads
BBecause the serialization graph shows no conflict requiring abort
CBecause the transaction uses dirty reads by default
DBecause the transaction automatically retries until success
Step-by-Step Solution
Solution:
  1. Step 1: Understand Serialization Graph Concept

    PostgreSQL builds a serialization graph to detect conflicts; if no cycle exists, transaction can commit safely.
  2. Step 2: Eliminate Incorrect Reasons

    PostgreSQL does not ignore commits, does not allow dirty reads in Serializable, and retries are manual.
  3. Final Answer:

    Because the serialization graph shows no conflict requiring abort -> Option B
  4. Quick Check:

    Serialization graph no conflict = Transaction succeeds [OK]
Quick Trick: No conflict in serialization graph means transaction commits safely [OK]
Common Mistakes:
  • Thinking PostgreSQL ignores concurrent commits
  • Confusing Serializable with dirty read behavior
  • Assuming automatic retries happen without code

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More PostgreSQL Quizzes