Может ли база данных обеспечить изящное управление этим, во многом будет зависеть от того, использует ли она методы строгой двухфазной блокировки (S2PL) или многоуровневого управления параллелизмом (MVCC) для управления параллелизмом. В MVCC чтения не блокируют записи, и наоборот, поэтому очень легко управлять этим с помощью относительно простой логики. В рамках S2PL вы тратите слишком много времени на блокировку базы данных, чтобы быть хорошим механизмом для управления этим, поэтому вам, вероятно, захочется взглянуть на внешние механизмы. Конечно, внешний механизм может работать независимо от базы данных, просто он не необходим с MVCC.
Базы данных, использующие MVCC: PostgreSQL, Oracle, MS SQL Server (в определенных конфигурациях), InnoDB (кроме уровня изоляции SERIALIZABLE) и, возможно, многие другие. (Это те, которые я знаю по от руки.)
Я не нашел никаких подсказок в вопросе о том, какой продукт баз данных вы используете, но если это PostgreSQL, вы можете рассмотреть вопрос об использовании рекомендательных блокировок. http://www.postgresql.org/docs/current/interactive/explicit-locking.html#ADVISORY-LOCKS Я подозреваю, что многие другие продукты имеют похожий механизм.