Code Room
CodingMediumcod-g1044
Subject Storage walLevel Mid–Senior~25 minCommon in Storage & CDN interviewsIndustries Software development, Technology

Question

Recover the final key-value state by replaying a write-ahead log. The log is a list of records: ["set", key, value] sets a key, ["del", key] deletes a key (no-op if absent), and ["commit"] / ["abort"] close the current transaction. Records appearing AFTER the last ["commit"] or ["abort"] (i.e. an uncommitted trailing transaction) must be discarded during recovery — a crash left them un-durable. Apply committed records in order; aborted records are rolled back (never applied). Return the final state as a list of [key, value] pairs sorted by key. Keys/values are strings; <= 10^5 records.

Implement
wal_replay(log: list[list]) → list[list]
Examples
in[[["set","a","1"],["commit"],["set","b","2"]]]out[["a","1"]]
What a strong answer looks like

State your approach and its time/space complexity out loud before you optimize. Handle the edge cases (empty input, duplicates, overflow), and say why you chose this over the brute force. Green tests are the floor, not the grade.

Vibe coding: describe the solution in plain language (or narrate it) and the coach grades your approach. Generating runnable code from your description is coming next.

Run or narrate your approach, then ask the coach.