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

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

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

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

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

Текущая версия Ваш текст
Строка 10: Строка 10:
Как должны происходить работа по схеме, которую лектор вчера нарисовал. С точки зрения координации.
Как должны происходить работа по схеме, которую лектор вчера нарисовал. С точки зрения координации.
-
Вопрос: для того, чтобы выполнить какую-либо операцию на уровне РСС, нужно, вообще говоря, выполнить следующие действия: поменять данные, установить блокировку, нужно поместить запись в журнал. В каком порядке их выполнять? На самом деле, правильный ответ на этот вопрос такой – сначала блокировка, потом запись в журнал, последнее – физические изменения. До тех пор, пока не установлена блокировка, мы не имеем права делать что-либо с объектами. Второе, почему запись сначала в журнала – это общее правило протокол Write Ahead Lock (Пиши Сначала в Журнал). Если бы сначала менялась страница, то могло бы так оказаться, что на диске присутствуют изменённые страницы, а записи нет. Если начала пишется в журнал, то гарантируется, что такого не будет. Лектор не слышал и не читал, что без него нельзя жить, но этот протокол является достаточным, т.е. если ему следовать, то восстановление проходит.
+
Вопрос: для того, чтобы выполнить какую-либо операцию на уровне РСС, нужно, вообще говоря, выполнить следующие действия: поменять данные, установить блокировку, нужно поместить запись в журнал. В каком порядке их выполнять? На самом деле, правильный ответ на этот вопрос такой – сначала блокировка, потом запись в журнал, последнее – физические изменения. До тех пор, пока не установлена блокировка, мы не имеем права делать что-либо с объектами. Второе, почему запись сначала в журнала – это общее правило протокол Write Ahead Lock (Пиши Сначала в Журнал). Если бы сначала менялась страница, то могло бы так оказаться, что на диске присудствуют изменённые страницы, а записи нет. Если начала пишется в журнал, то гарантируется, что такого не будет. Лектор не слышал и не читал, что без него нельзя жить, но этот протокол является достаточным, т.е. если ему следовать, то восстановление проходит.
-
В журналах с теневым механизмом:
+
В журналах в теневым механизмом:
То, что проходило после точки, почти всегда не очень существенно.
То, что проходило после точки, почти всегда не очень существенно.
Если на участке после точки не встретим записи коммит, то для них мы не сможем сделать REDO. Для лог журналом с использованием теневого механизма – когда выполняется коммит. мы обязаны в журнале иметь все записи от этой транзакции, в том числе и коммит. В чём проблема – для каждой логической операции должна писаться отдельная запись.
Если на участке после точки не встретим записи коммит, то для них мы не сможем сделать REDO. Для лог журналом с использованием теневого механизма – когда выполняется коммит. мы обязаны в журнале иметь все записи от этой транзакции, в том числе и коммит. В чём проблема – для каждой логической операции должна писаться отдельная запись.
-
Логический журнал содержит всю информацию, которая нужна для отката. Т.о., если ведётся логич журнал, избыточным становится индивид журнал. Что для этого нужно – хранить для каждой транзакции последнюю запись в журнале (?)
+
Логич журнал содерж всю информацию, которая нужна для отката. Т о, если ведётся логич журнал, избыточным становится индивид журнал. Что для этого нужно – хранить для каждой транзакции последнюю запись в журнале (?)
-
Проблема с фиксацией – в транзакционных БД соотношение чтения и записи 2 к 1. Мы специально в СУБД делаем громадный буфферный пул, чтобы меньше дисковых операций. А с журналом что? там для каждой операции один обмен с диском. Так что для журналов также используется буферизация, но не такая хитрая. Называется техника Pysh-Pull (полукарман). Представьте, что у человека один карман. Тогда неудобно складывать и доставать деньги. Тогда заводим два полукармана, в один складываем деньги, из другого достаём. Когда деньги в одном кончатся, меняем их ролями. Есть несколько буферов, из одного пишется на диск, система пишет в другие. При правильном подборе числа буферов журнализация не замедляет работу системы. За исключением коммит. Оказывается, при выполнении коммита выталкивать тот полукарман, куда она помещается, вот этого достаточно для того, чтобы потом восстановить состояние БД для всех зафиксированных транзакций. Это очень дорогая операция, поэтому есть много систем с негарантированной фиксацией транзакций.
+
Проблема с фиксацией – в транзакционных БД соотношение чтения и записи 2 к 1. Мы специально в СУБД делаем громадный буфферны пул, чтобы меньше дисковых операций. А с журналом что? там для каждой операции один обмен с диском. Так что для журналов также используется буферизация, но не такая хитрая. Называется техника Pysh-Pull (полукарман). Представьте, что у человека один карман. Тогда неудобно складывать и доставать деньги. Тогда заводим два полукармана, в один складываем деньги, из другого достаём. Когда деньги в одном кончатся, меняем их ролями. Есть несколько буферов, из одного пишется на диск, система пишет с другие. При правильном подборе числа буферов журнализация не замедляет работу системы. За исключением коммит. Оказывается, при выполнении коммита выталкивать тот полукарман, куда она помещается, вот этого достаточно для того, чтобы потом восст сост БД для всех зафикс транзакций. Это очень дорогая операция, поэтому есть много систем с негарантированной фиксацией транзакций.
Скоро мы будем иметь БД в каждом холодильнике. Холодильник по этой БД выбирает, что купить на след неделю, покупает, заполняется и кормит след неделю. Но администратором холодильника лектор быть бы не хотел.
Скоро мы будем иметь БД в каждом холодильнике. Холодильник по этой БД выбирает, что купить на след неделю, покупает, заполняется и кормит след неделю. Но администратором холодильника лектор быть бы не хотел.
-
Сейчас лектор будет говорить про использование ещё одного уровня журнализации вместо тен механизма – хранить образы блоков.
+
Сейчас лектор будет говорить про исп ещё одного уровня журнализации вместо тен механизма – хранить образы блоков.
-
Недостаток теневого механизма – мы долго храним старые копии. Тут же мы храним старые копии, пока не сохраним новый блок.
+
Недостаток тен механизма – мы долго храним старые копии. Тут же мы храним старые копии, пока не сохраним новый блок.
Конечно, писать 33 байта и потом писать весь блок очень расточительно. Поэтому хорошо бы сохранять только разность. А для этого нужен язычок. А его придумать очень сложно.
Конечно, писать 33 байта и потом писать весь блок очень расточительно. Поэтому хорошо бы сохранять только разность. А для этого нужен язычок. А его придумать очень сложно.
Строка 42: Строка 42:
Здесь можно восставливать по-тупому, а можно и подряд, потому что они логически упорядочены. Это пока не добрались до конца физ журнала, если добрались, то восстановились.
Здесь можно восставливать по-тупому, а можно и подряд, потому что они логически упорядочены. Это пока не добрались до конца физ журнала, если добрались, то восстановились.
-
Оказывается, можно отказаться от дяденьки и можно регулировать время остановок просто размером журнала. Известно, сколько потребуется места в журнале для n микроопераций. Как это работает – запустилась система, начинаем заполнять журнал. Заполняем до того момента, пока не поймём, что этого куска хватит, чтобы закончить все микрооперации. Как закончили – сбрасываем на диск. Единственное, что нужно сдклать – синхронизнуться с логическим. И потом можно опять начинать с начала. Он небольшой.
+
Оказывается, можно отказаться от дяденьки и можно регулировать время остановок просто размером журнала. Известно, сколько потерб места в журнале для н микроопераций. Как это работает – запустилась система, начинаем заполнять журнал. аполняем до стого момента, пока не поёмём что этого куска хватит, чтобы закончить все микрооп. Как законцили – сбрасываем на диск. Нсдинсвенное, что нужно сдклать – синхронизнуться с логическим. И потом можно опять начинать с начала. Он небольшой.
Две вещи:
Две вещи:
Строка 48: Строка 48:
при переполнении – выталкивание и сначала.
при переполнении – выталкивание и сначала.
-
Две вещи: можно было бы обйтись только физ журналом, и всё бы работало. Было бы гораздо проще. Но. Когда есть лог журнал, то физический может быть маленьким. Но когда он один, нужно его весь тянуть, иначе не сможем восстановиться после сбоя. А тогда логический журнал компактнее. Насколько помнит лектор, идея комбинир логического и физического журналов появилась ещё в систем Р. Вначале у них исп. теневой механизм, но у них были диски маленькие и его было тяжело поддерживать.
+
Две вещи: можно было бы обйтись только физ журналом, и всё бы работало. Было бы гораздо проще. Но. Когда есть лог жкрнал, то физ может быть маленьким. Но когда он один, нужно его весь тянуть, иначе не сможем восст полсле сбоя. А тогда лог журнал компактнее. Насколько помнит лектор, идея комбинир лог и физ журналов появилась ещё в систем Р. Вначале у них исп. теневой механизм, но у них были диски маленькие и его было тяжело поддерживать.
-
Это ужасная головная боль для администратора. Он переполняется. Переполн логического журнала это неприятная ситуация, потому что требуются долгие действия по архивации. Выход – не всё журнализовать. Но это опять же головная боль для администратора.
+
Это ужасная головная боль для администратора. Он переполняется. Переполн лог журанала это неприятная ситуация, потому что требуются долгие действия по архивации. Выход – не всё журнализовать. Но это опять же головная боль для администратора.
<!-- //педедыв -->
<!-- //педедыв -->
Строка 56: Строка 56:
Лектор решил ещё раз всех переписать.
Лектор решил ещё раз всех переписать.
-
Как должна работать операция коммит – если каждый раз при завершениее микроопеации происходит выталкивание из микрожурнала, то тут выталкивается содержимое логического журнала.
+
Как должна работать операция коммит – если каждый раз при заверш микрооп происходит выт из микрожурнала, то т ут выталкивается содержимое логического журнала.
=Восстановление после жёсткого сбоя=
=Восстановление после жёсткого сбоя=

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

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