Skip to main content

Practice ยท 1 of 2

The narrow seam

Inside Solution, implement the engine contract: 1. public interface Engine { void put(String key, String value); java.util.Optional<String> get(String key); java.util.List<String> keys(); int count(); } 2. public static class InMemory implements Engine โ€” ConcurrentHashMap backed; keys() returns keys SORTED ascending (determinism is part of the contract). 3. public static class JsonlFile implements Engine โ€” constructor takes a java.nio.file.Path of an append-only file; put appends the line {"op":"put","k":"<key>","v":"<value>"}\n (UTF-8, CREATE+APPEND) then updates an internal ConcurrentHashMap index (write-through); get/keys/count read the index; keys() sorted ascending. 4. static Engine replay(Path file) โ€” a NEW JsonlFile whose state is rebuilt by reading every line of the existing file and applying each op in order (later puts overwrite earlier ones for the same key).

Difficulty: advanced

Back to lesson: Practice: Capstone build