сделать стартовой | в избранное | реклама на сайте
Логин: Пароль: Войти Регистрация?/Забыли пароль?
Поиск по сайту: Поиск
IT DAY
НОВОСТИ
НАУКА
АНАЛИТИКА
ТЕХНИКА
ИГРЫ
СОФТ
ТЕХНОБЛОК

Блокировка кортежа

НОВОСТИ
Блокировка кортежа Матрица интерпретируется следующим образом. Рассмотрим некоторый кортеж t и предположим, что транзакция А блокирует кортеж t различными типами блокировки (что обозначено в заголовках столбцов соответственно символами S и X, тогда как отсутствие блокировки — прочерком). Предположим также, что некоторая транзакция В запрашивает блокировку кортежа t.

В остальных ячейках матрицы символ N отмечает конфликтную ситуацию (запрос со стороны транзакции В не может быть удовлетворен, и эта транзакция переводится в состояние ожидания), a Y— допустимую ситуацию (запрос со стороны транзакции В удовлетворяется). Очевидно, что данная матрица является симметричной.

Теперь следует ввести понятие протокол доступа к данным (или протокол блокировки), который с помощью описанных выше Х- и S-блокировок позволит избежать возникновения проблем.

Прежде чем обновить какой-либо кортеж, транзакция должна установить для него Х-блокировку. Если транзакция уже установила для кортежа S-блокировку (что возможно в случае последовательного выполнения операций Retrieve и Update), необходимо расширить S-блокировку до уровня Х-блокировки.

Замечание. В транзакциях запросы на установку блокировки обычно задаются неявным образом; например, запрос на выборку кортежа подразумевает неявный запрос на установку для него S-блокировки, а запрос на обновление кортежа — неявный запрос на установку для него Х-блокировки.

При этом под термином "обновление" (как и ранее) подразумеваются, помимо операций UPDATE, также операции INSERT (вставка) и DELETE (удаление). При строгом описании протокола имеют место небольшие отличия, связанные с выполнением операций вставки и удаления, однако здесь они опущены.

Если запрашиваемая со стороны транзакции В блокировка отвергается из-за конфликта с блокировкой, уже установленной со стороны транзакции А, то транзакция В переводится в состояние ожидания. Причем транзакция В будет находиться в состоянии ожидания до тех пор, пока не будет снята блокировка, установленная ранее транзакцией А. Замечание. Система обязательно должна гарантировать, что транзакция В не будет находиться в состоянии ожидания бесконечно долго (иногда эту ситуацию называют зависанием). Самым простым способом получения подобной гарантии является организация обработки запросов на блокировку по принципу "первым поступил — первым обработан".

Х-блокировки сохраняются вплоть до конца выполнения установившей их транзакции (до ее фиксации (COMMIT) или отката (ROLLBACK)). S-блокировки также обычно сохраняются вплоть до окончания транзакции, однако в этом случае следует учесть замечания.
 
Читайте также:

  • Блокировка
  • Проблема зависимости от незафиксированных результатов
  • Устранение трех проблем параллельности
  • Проблема зависимости от не зафиксированных результатов
  • Восстановление транзакции


  • главноепопулярное

     Энья записала рождественский альбом

     Samsung сообщила о разработке самого тонкого ЖК-монитора

     Новый сверхлегкий ноутбук Fujitsu работает от батареи более 10 часов
    IT Day | Реклама | Форум | Контакты | Архив Подписаться на RSS
    тел.: (312) xx-xx-xx
    тел./факс: (312) xx-xx-xx
    моб.: (555) xx-xx-xx
    адрес: г.Бишкек, 720001
    ул.xxxx xx/x кв.x
    e-mail: just@love.kg
    Разработка NE, ©-2008.
    При использовании материалов с сайта гиперссылка на источник обязательна.
    Лучшие предложения! Предлагаем чайный набор купить по доступным ценам. . торговое холодильное оборудование