make sure the ODB gets locks on resources it needs before altering them, assuring multiple instances won't step onto each others feet. The LockFile implementation used should be configurable ( i.e. blocking vs. failing ).
Review the index as well - it is now possible to change it in memory, and these changes should be marked by start-stop calls that end with writing the index back to disk, maybe, to simulate some sort of transaction.