Design a snapshotable key-value store | Apple Interview Question