Согласованность - это глубокая тема, и трудно понять, как правильно . Проблема возникает, когда два почти одновременных изменения происходят с одними и теми же данными: конфликтующие обновления могут поступать в одном порядке на одном сервере, а в другом - на другом. Это проблема, поскольку два сервера больше не согласны с тем, что представляют собой данные, и неясно, кто «прав».
Краткий рассказ: получите вашу любимую СУБД (например, mysql популярна) и подключите свои серверы приложений к так называемой трехуровневой модели . Обязательно выполняйте сложные обновления в транзакциях , что обеспечит приемлемую модель согласованности.
Долгосрочная история: Трехуровневая модель хорошо подходит для веб-сайтов / услуг малого и среднего масштаба. В конечном итоге вы обнаружите, что единственная база данных становится узким местом. Для сервисов, трафик чтения которых значительно больше трафика записи, общая оптимизация заключается в создании механизма репликации базы данных с одним или несколькими подчиненными, где все записи идут на один мастер (требуется для согласованности с нераспределенными транзакциями), но более распространенные операции чтения могут передаваться любому из считанных рабов.
Для служб с равномерно смешанным трафиком чтения / записи вы можете лучше обойтись, если отбросите некоторые удобства (и сопутствующие ограничения), которые предоставляет формальный SQL, и вместо этого используйте одно из различных хранилищ данных «nosql», которые недавно возникла. Их относительные достоинства и пригодность для решения различных проблем сами по себе являются глубокой темой.