Редактирование: Базы Данных, 27 лекция (от 14 декабря)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.

Текущая версия Ваш текст
Строка 26: Строка 26:
Долговечность
Долговечность
-
При сбоях БД смогла восстаносить последнее рабочее состояние. Явное или неявное выполнение rollback внутри транзакции. Оно может быть инициировано системой или юзером.
+
При сбоях БД смогла воостаносить последнее рабочае состоячние. Явное или неявное выполненине roolback внутри транзакции. Оно может инициир системой или ю
Ильдар: хотел бы я дожить до возраста, в котором забываешь, то ли я придумал, то ли кто-то ещё...
Ильдар: хотел бы я дожить до возраста, в котором забываешь, то ли я придумал, то ли кто-то ещё...
Строка 32: Строка 32:
СУБДЖ всё грамотно делать, при этом как можно реже дёргаться с дисками.
СУБДЖ всё грамотно делать, при этом как можно реже дёргаться с дисками.
-
Самая частая причина – выключение питания. В результате теряем кусок буферов. Может быть так, что завершённые ситуации не сохранились, а незавершенные сбросили буфера. И в результате можем получить физическую несогласованность. В результате мы привыкли, что софтварь и другие мягкие штучки приятнее, чем хардвар и другие жесткие штучки, но тут это не так.
+
Самая чатсая причина – выключение питания. В результате теряем кусок буферов. Может быть так, что завершённые ситуации не сохранились, а незаверш сбросили буфера. И в рещультате можем получить физическую несогласованность. В результате мы привыкли, что сфтварь и другие мягкие штучки приятнее, чем хардвар и другие жосткие штучки, но тут это не так.
-
Все уже 25 лет ждём, когда появится быстрая память, которая позволяет сохранять состояние после выключения питания.
+
Все уже 25 ле ждём, когда появится быстрая память, которая позволяет сохранять состояние после выключения питания.
//напомнить лектору про main memory БД
//напомнить лектору про main memory БД
-
Потеря информации: перестаёт читаться внешний носитель.
+
Потеря информации: перетсаёт читаться внешний носитель.
Если мы будем работать с интеллектуальными дисками, то оптимизации будут избыточными.
Если мы будем работать с интеллектуальными дисками, то оптимизации будут избыточными.
-
Рассказ в предположении, что система знает, как устроен жесткий диск.
+
Рассказ в предп, что система знает, как устроен жосткий диск.
-
Логически это просто, вопрос, откуда взять минуса. Самый простой вариант – у каждой транзакции есть своя локальня память. Есть много вещей, которые связаны с транзакцией локально.
+
Логически это просто, вопрос, откуда взять минуса. Самый простой вариант – у каждой транзакции есть свояя локальня памчть. Есть много вещей, которые связаны с транз локально.
-
Компенсирующая информация – если была операция удаления, то записываем, что было удалено, если добавления – что и откуда.
+
Компенсирующая информация – если была оп удаления, то записываем, что было удалено, если добавлвения – что и откуда.
-
Если мы транзакцию сделали, а потом сбой, то придётся выполнять её заново.
+
Если мы транзакцию сделаи, а потом сбой, то придётся выполнять её заново.
Рассм две операции в связи с этим:
Рассм две операции в связи с этим:
Строка 54: Строка 54:
# REDO
# REDO
-
Журнал пишется в последовательном режиме, не разрешается менять уже записанные в память кусочки.
+
Журнало пишется в последовательном режиме, не разрешается менять уже записанные в памчть кусочки.
Хороший вопрос на экзамене – почему нельзя ставить ссылки вперёд.
Хороший вопрос на экзамене – почему нельзя ставить ссылки вперёд.
-
Журнал такого вида никак не может помочь, если потеряли буфера памяти. Соответственно, задача восстановить физически целостное наиболее близкое к сбою состояние.
+
Журнал такого вида никак е может помочь, если потерялди буфыера памяти. Соответственна, задача восстановить физически целостное наиболее близкое к сбою состояние.
Предположим, выполняем операцию вставки кортежа. Выполнили первую микрооперацию, нашли место, начали обновлять индекс, и если расщеспление дошло до корня, и записали только два блока, а три нет, то с ним мы не сможем работать.
Предположим, выполняем операцию вставки кортежа. Выполнили первую микрооперацию, нашли место, начали обновлять индекс, и если расщеспление дошло до корня, и записали только два блока, а три нет, то с ним мы не сможем работать.
Строка 64: Строка 64:
Предположим, мы можем восстановить к томцу моменту, когда запись вставлена, а индексы не обновлены. В таком состоянии мы спокойно можем удалить запись.
Предположим, мы можем восстановить к томцу моменту, когда запись вставлена, а индексы не обновлены. В таком состоянии мы спокойно можем удалить запись.
-
Подходы к восстановлению физической согласованности БД:
+
Подходы к восст физ соглас БД:
Первый подход, и чем дольше лектор живёт, тем больше он ему нравится, хотя он говорил, что он плохой – использование теневых копий.
Первый подход, и чем дольше лектор живёт, тем больше он ему нравится, хотя он говорил, что он плохой – использование теневых копий.
-
Что такое теневой механизм в отрыве от БД. Этот механизм был придуман для работы с файлами. Какая была задача: операции с файлами синхронизуются на уровне файла целиком. Так вот, основная цель теневого механизма – если какой-то файл открыл файл на обновление (файл – набор блоков во внешней памяти), начинает менять блоки. Структура файла неизвестна, например, могут быть ссылки. Некий процесс начинает его менять. Требуется от механизма, что если в момент до закрытия файла происходит сбой, чтобы файл автоматически был в первоначальном состоянии, а если дошли до закрытия, то при следующем открытии в новом состоянии. У каждого файла есть таблица отображения. Когда файл открывается, вся таблица отображения считывается в основную память. После этого тот экземпляр, который попал в основную память называется текущим, а на внешней – теневым. До закрытия меняется только текущая таблица. Если процесс меняет блок 2, то система выделяет место под блок 2 и ставит ссылку на него. И так для всех. При закрытии всё записывается. Теперь если выключается питание, текущая таблица пропадает, остаётся теневая, то есть та, которая до открытия. При закрытии же есть вопрос, как это сделать. Если таблица занимала бы один блок, то можно было бы её обновить за один обмен с памятью. Дополнительно, на внешнем носителе иметь место под две карты, тогда пишем в неиспользуемую таблицу, если произодет сбой, то ссылка не поменяется, а если вдруг до конца записали и тогда меняем ссылку.
+
Что такое теневой механизм в отрыве от БД. Этот механизм был придуман для работы с файлами. Какая была задача: операции с файлами синхронизуются на уровне файла целиком. Так вот, осчновная цель теневого механизма – если какой-то файл открыл файл на обновление (файл – набор блоков во внеш памяти), начинает менять блоки. Структура файла неизвестна, наприер, могут быть ссылки. Некий процесс начинает его менять. Тркбуется от механизма, что если в момент до закртытия файла происходит сбой, то файл автоматически был в первоначальном состоянии, а если дошли до закрытия, то при следующем открытии в новом состоянии. У каждого файла есть таблица отображения. Когда файл открывается, вся таблица отображения считывается в основную память. После этого тот экземпляр, который попал в осн память наз текущим, а на внешней – теневым. До закрытия меняется только текущая таблица. Если процесс меняет блок 2, то система выделяет место под блок 2 и ставит ссылку на него. И так для всех. При закрытии всё записывается. Теперь если выключается питание, текущая таблица пропадает, остаётся теневая, то есть та, которая до открытия. При закрытии же есть вопрос, как это сделать. Если таблица занимала бы один блок, то можно было бы её обновить за один обмен с памятью. Дополнительно, на внеш носителе иметь место под две карты, тогда пишем в неиспользуемую таблицу, если произоёдт сбой, то ссылка не поменяется, а если вдруг до конца записали и тогда меняем ссылку.
-
Есть спеециальная операция, которая называется Checkpoint. Начинает выполняться чекпоинт. Система говорит РСС, давайте-ка вы ребята доделайте микрооперации и сообщите, что это сделано.После этого разгружаем все буфера, меняется таблица отображения, и с этого момента продолжаются микрооперации и предположим, что возникает мягкий сбой. Мы потеряли память. Ну и классно. Мы восстанавливаемся из внешней памяти.
+
Есть спеециальная операцияЮ, которая называется Checkpoint. Начинает выполняться чекпоин. Система говорит РСС, давайте-ка вы ребята доделайте микрооперации и сообщите, что это сделано.После этого разгружаем все буфера, меняется таблица отображения, и с этого момента продолжаются микрооперации и предположим, что возникает мягкий сбой. Мы потеряли память. Ну и классно. Мы восстанавливаемся из внешней памяти.
-
Как ведётся журнал. Есть компонент, который занимается блокировкой. Менеджер буферов единственный работает с внешней памятью. Менеджер журнала. Сидит администратор. Он должен всем сказать, что ребята притормозитесь. Они притормаживаются. После этого в пуле буферов полный порядок. После этого они говорят журналу «скажи нам журнал, а где мы находимся», журнал им говорит. Посде этого начинается длинная-длинная история. Поменять таблицы отображения, разгрузить буфера... Поле этого говорят, что поехали дальше. Это протокол операции выполнения контрольной точки.
+
Как ведётся журнал. Есть компонент, который занимается блокировкой Менеджер буферов единственный работает с внешней памятью. Менеджер журнала. Сидит администратор. Он должен всем сказать, что ребята притормозитесь. Они притормаживаются. После этого в пцуле буферов полный порядок. После этого они говорят журналу «скажи нам журнал, а где м находимся», журнал им говорит. Посде этого наинается длинная длинная история. Поменять таблицы отображения, разгрузить буфера... Поле этого говорят, что поехали дальше. Это протокол операции выполнения контрольной точки.
Пишется журнал высокого уровня, куда пишутся логические операции. Это логические журналы.
Пишется журнал высокого уровня, куда пишутся логические операции. Это логические журналы.

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Личные инструменты
Разделы