Как работает процесс «Запустить задачу в фоновом режиме, обновить базу данных» с точки зрения БД? - PullRequest
0 голосов
/ 15 апреля 2011

Многие веб-сайты выполняют запланированные задачи на разных «временных расстояниях», которые приносят новый контент или обновляют контент в базе данных. Как база данных избегает проблем с параллелизмом?

В обычном настольном приложении, если у вас есть данные, к которым имеют доступ несколько потоков, они должны как-то синхронизироваться.

Как правило, веб-сайт продолжает работать постоянно, и после завершения запланированного задания вы увидите, что появляется новый контент или обновляется старый.

Я даже не знаю, что искать в Google :), поэтому я могу прочитать больше об этой теме.

1 Ответ

1 голос
/ 16 апреля 2011

Современные СУБД имеют концепцию транзакций.СУБД гарантирует, что все изменения внутри транзакции происходят одновременно, и что каждая транзакция всех пользователей обрабатывается по одному.СУБД знает, с какой версии данных началась каждая транзакция, и обычно может разобраться.

Несмотря на то, что это предотвращает записи с путаницей данных, все же возможно, что данные больше не будут иметь смысла, когда нескольколюди меняют связанные данные.Вот почему большие системы часто имеют своего рода блокировку на уровне объекта в приложении, поэтому, если у вас есть база данных клиентов, только один человек может получить доступ к данным для этого одного клиента в целях его изменения.Этот уровень защиты не может быть реализован в базе данных, так как для его предотвращения требуется глубокое знание взаимосвязей сущностей и рабочего процесса приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...