title: Make a B+ Tree concurrent thread safe
body: <p>I have implemented a B+ Tree in Java. Now I want to know what is the best way to allow concurrent inserts. My thought is to lock a node if it is maxFilled -1 (which means a split event is close). Otherwise I would just lock the array during a shift. But this way it can happen to lock a node very close to the root and therefore lock far too much child nodes too. Is there a better way or a best practice of how to make a B+ Tree thread safe?</p>