Explain WAL.
01
01
Understand the problem
wal
02
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Stuck? AI Nudge Available
Get a conceptual hint to guide your logic without spoiling the final implementation.
03
03
Study the solution
The solution is waiting
Give it an honest attempt first — then compare your thinking with the full walkthrough.
04
04
Read the code
WAL: log then apply, recover by replay
Run Playgroundclass WAL:
def __init__(self):
self.log = [] # append-only (a file on disk in reality)
self.state = {} # the "data pages"
def set(self, key, value):
self.log.append(("set", key, value)) # 1. write-ahead (fsync) FIRST
self.state[key] = value # 2. then apply
def recover(self):
self.state = {}
for op, key, value in self.log: # replay on restart
if op == "set":
self.state[key] = value
return self.state
wal = WAL()
wal.set("balance", 100)
wal.set("balance", 80)
# simulate crash + restart: rebuild state purely from the log
print("recovered:", wal.recover()) # {'balance': 80}05
05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.