Блокировка записи

Record locking Основы блокировки данных Блокировка данных предотвращает одновременный доступ к данным для предотвращения несогласованных результатов.  Классический пример: два банковских […]

Record locking

  • Основы блокировки данных

    • Блокировка данных предотвращает одновременный доступ к данным для предотвращения несогласованных результатов. 
    • Классический пример: два банковских клерка пытаются обновить одну и ту же банковскую учетную запись для двух разных транзакций. 
    • Клерк 1 копирует запись и применяет транзакцию, в то время как клерк 2 изменяет копию и сохраняет результат, перезаписывая транзакцию клерка 1. 
    • Чтобы предотвратить перезапись данных, можно заблокировать файл при изменении записи любым пользователем. 
  • Реализация и управление блокировками

    • Блокировка позволяет нескольким пользователям редактировать таблицу базы данных одновременно, предотвращая конфликты. 
    • При попытке получить одну и ту же запись для редактирования, доступ к записи блокируется. 
    • После сохранения или отмены редактирования блокировка снимается. 
    • Блокировка предотвращает сохранение данных таким образом, чтобы они не перезаписывали другие изменения, сохраняя целостность данных. 
  • Гранулярность блокировки

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

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

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

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

    • Если ожидающий блокировки объект переходит в спящий режим, производительность улучшается, если объект уведомляется о предоставлении блокировки, а не просыпается по системному таймауту. 

Полный текст статьи:

Блокировка записи — Википедия

Оставьте комментарий

Прокрутить вверх