TEST_PARAMETERS
CONCURRENCY_LEVEL
150
Simulates N users hitting the API at the exact same millisecond.
OBJECTIVE: Attempt to oversell 100 tickets.
HYPOTHESIS: Without atomic locks, System A will fail.
HYPOTHESIS: Without atomic locks, System A will fail.
SYSTEM_A [NAIVE] [?]
VULNERABILITY: READ_COMMITTED
Standard SQL transaction:
1. READ stock
2. CHECK > 0
3. WRITE stock - 1
FAIL: Multiple threads read the same stock value before any write occurs.
1. READ stock
2. CHECK > 0
3. WRITE stock - 1
FAIL: Multiple threads read the same stock value before any write occurs.
Standard SQL Transaction (Read-Check-Write).
100
DATA_INTEGRITY
100%
STATUS: WAITING...
METRICS
REQUESTS: 0
SOLD (200 OK): 0
AVG LATENCY: --
REMAINING: 100
SYSTEM_B [ATOMIC] [?]
SOLUTION: SERIALIZATION
Redis Single-Threaded Event Loop:
1. INCRBY -1 (Atomic)
2. IF result < 0: FAIL
SUCCESS: Serialized processing prevents any overlap.
1. INCRBY -1 (Atomic)
2. IF result < 0: FAIL
SUCCESS: Serialized processing prevents any overlap.
Redis Distributed Locks + Lua Scripting.
100
DATA_INTEGRITY
100%
STATUS: READY.
METRICS
REQUESTS: 0
SOLD (200 OK): 0
AVG LATENCY: --
REMAINING: 100