in reply to BerkeleyDB locks

Good question! In general, Hash access method page splits can happen at any time, and, when you're dealing with concurrency, there is no way to prevent locking. Probably your best bet is to check the Berkeley DB Reference Guide:

Berkeley DB Reference Guide

Also, I'd recommend using the Berkeley DB Concurrent Data Store Product. It might solve your problem.