Рубрики

ВОРОТА | GATE-CS-2006 | Вопрос 85

Рассмотрим следующую последовательность записей двух транзакций на банковском счете с начальным балансом 12000, которые переводят 2000 в ипотечный платеж, а затем применяют 5% -ую процентную ставку.

  1. T1 start
  2. T1 B old=12000 new=10000
  3. T1 M old=0 new=2000
  4. T1 commit
  5. T2 start
  6. T2 B old=10000 new=10500
  7. T2 commit 

Предположим, что система базы данных дает сбой непосредственно перед записью 7 записи в журнал. Когда система перезапускается, какое утверждение верно для процедуры восстановления?
(A) Мы должны повторить запись в журнале 6, чтобы установить B на 10500
(B) Мы должны отменить запись журнала 6, чтобы установить B на 10000, а затем повторить записи журнала 2 и 3.
(C) Нам не нужно повторять записи журнала 2 и 3, поскольку транзакция T1 зафиксирована.
(D) Мы можем применять операции повтора и отмены в произвольном порядке, потому что они идемпотентны

Ответ: (Б)
Объяснение: Мы должны отменить запись журнала 6, чтобы установить B на 10000, а затем повторить сбой записи журнала 2 и 3 системы bcoz перед операцией фиксации. Поэтому нам нужно отменить активные транзакции (T2) и повторить зафиксированные транзакции (T1)

Примечание: здесь мы не используем контрольные точки.

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

Восстановление:
Когда происходит сбой и восстановление системы с одновременными транзакциями, она ведет себя следующим образом:

=> Система восстановления считывает журналы в обратном направлении от конца до последней контрольной точки.

=> Поддерживает два списка: список отмены и список повторов.

=> Если система восстановления видит журнал с и или просто, она помещает транзакцию в повторный список.

=> Если система восстановления видит журнал, в котором не найдено ни одного журнала фиксации или отмены, она помещает транзакцию в список отмены.

Все транзакции в списке отмены затем отменяются и их журналы удаляются. Все транзакции в повторном списке и их предыдущие журналы удаляются и затем переделываются перед сохранением их журналов.

Таким образом, ответ — B, повторите записи журнала 2 и 3 и отмените запись журнала 6
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2006 | Вопрос 85

0.00 (0%) 0 votes