Классика баз данных - статьи

       

в системах баз данных журнализуются


Во-вторых, в системах баз данных журнализуются изменения физической базы данных, и в предельном случае в журнал попадает содержимое как удаленной, так и заново созданной страницы. Таким образом, при неэффективной реализации при каждом перемещении одной страницы данных из одного места в другое заполняются две страницы журнала. При более эффективной реализации журнализуются только действия, связанные с новым размещением страницы данных, а старая страница вместе со своим содержимым не освобождается до тех пор, пока новое содержимое не будет надежно записано на новое место []. Другими словами, при перемещении страницы из одного местоположения (например, в персистентной флэш-памяти) в другое местоположение (например, на диске) требуется записать в журнал восстановления всего лишь несколько байт.

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

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

Однако в системе баз данных имеются встроенные механизмы, позволяющие легко отслеживать перемещения страниц.Эти механизмы свойственны структуре данных, являющейся «рабочей лошадкой» систем баз данных, – индексам на основе B-деревьев. По сравнению с файловыми системами, эти механизмы обеспечивают эффективные перемещения страниц, при каждом из которых требуется только часть последовательной операции записи (в журнале восстановления), а не целая операция записи с произвольным доступом.

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


Содержание  Назад  Вперед