OCC is the best strategy over all for implementing local transactions so we can have isolation and atomicity in the server. It's the best strategy for an LDAP DIB because writes are less frequent in LDAP than reads. Presuming that multiple transactions can complete in most cases without affecting each other means OCC is more viable. OCC breaks down when there are more conflicts with intensive write activity as in relational databases requiring transactions to rollback. This will not be the case for most of our deployments.
So as we think about building or finding a better BTree implementation than JDBM we should consider OCC via MVCC in the BTree implementation itself since we need isolation and atomicity across indices as well as the master table.
Just some random thoughts.