Just reading the code. The property conglomerate provides a transactional way to store "database" properties. For performance it caches the values in a java hash table, so that subsequent look ups don't have to go to disk. It doesn't expect many properties so it's current implementation has no disk based indexing.
It looks to me like a hash table miss is always going have to do a table scan, so looking up a property that is usually not defined is going to be a fairly expensive operation. It is going to get locks, it is going to mark your transaction active, and currently is going to hold locks on the conglomerate until the transaction commits. Given that no locks are obtained on the hash table would it be appropriate to read the values at read committed rather than serializable?
