Postgres has great documentation for their concurrent btree algorithm based on the Lehman Yao paper: https://github.com/postgres/postgres/blob/master/src/backend...
But if you're not going to COW, then right-sibling pointers are probably a good idea.