Sketch the high-level protocol for all the BwTree functions on a piece of paper, like the node splitting example in Fig 3.
Think about how the different operations can interact with each other in a concurrent setting.
Write down the list of different types of delta records used in BwTree.
Implement a latch-free mapping table.
Implement page update and leaf-level update operations.
Add support for node splitting and node merging operations.
Write multi-threaded unit test cases as early as possible.
Handle corner cases, like when the root node needs to be split.
Implement page consolidation mechanism.
You can initially assume that all pages are in memory. Once you are done with all the core stuff, you can extend it to support pages on a file backed by SSD/HDD.