When a user hasn't identified all of their schema at startup, we are dependent on no interactions between adding/updating tables and access to these tables. Would be preferable to introduce a level of locking. Obviously this locking should allow concurrent read access, but prevent read+write at the same time.
Could add a lock on each DatastoreTable maybe, but that on its own won't allow concurrent reads.
The current lock in RDBMSStoreManager doesn't prevent reads of the schema information, possibly part way through an update.