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

       

Резюме и выводы


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

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

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

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

В операционных системах и файловых системах флэш-память будет, главным образом, использоваться как временное хранилище (например, как быстрая резервная копия виртуальной памяти или как дополнительный кэш файловой системы). Оба эти вида применения относятся к модели расширенного буферного пула. При выполнении запланированного останова системы содержимое флэш-памяти могло бы записываться в персистентное хранилище.
Однако при отказе системы описание содержимого флэш-памяти, сохраняемое в основной памяти, будет утрачено, и его потребуется реконструировать путем анализа содержимого способом, очень близким к тому, который применяется при восстановлении традиционных файловых систем. В качестве альтернативы содержимое флэш-памяти можно было бы аннулировать и загружать по требованию.
С другой стороны, в системах баз данных флэш-память будет использоваться как персистентное хранилище на основе модели расширенного диска. Текущее содержимое будет описываться персистентными структурами данных (например, родительскими узлами индексов на основе B-деревьев). Традиционные механизмы поддержки долговечности данных (в частности, журнализация и контрольные точки) обеспечивают согласованность данных и их эффективное восстановление после отказов системы. При запланированном останове системы нет потребности в переписи содержимого флэш-памяти на диск.
Имеются две причины использования разных моделей флэш-памяти. Во-первых, системы баз данных полагаются на регулярное выполнение операций установки контрольных точек, во время которого измененные страницы выталкиваются из буферного пула в персистентное хранилище. Перемещение измененной страницы из основной памяти в расширенный буферный пул во флэш-памяти приводит к существенным накладным расходам при выполнении следующей операции установки контрольной точки. Необходимо найти свободный буфер в основной памяти, прочитать в основную память содержимое страницы из флэш-памяти и затем записать эту страницу на диск. Совершенно ни к чему добавлять такие накладные расходы к операции установки контрольной точки, которая в системах баз данных выполняется довольно часто. С другой стороны, в операционных системах и файловых системах контрольные точки не используются, и поэтому в них флэш-память можно использовать как расширенный буферный пул.
Во-вторых, в основных персистентных структурах данных баз данных – B-деревьях – обеспечиваются механизмы отображения и отслеживания местоположений, требующие выполнения частых перемещений и замещений страниц.Следовательно, для отслеживания местоположения страницы данных при ее перемещении между диском и флэш-памятью можно использовать ту же структуру данных, которая поддерживается для обеспечения эффективного поиска в базе данных. Кроме того, что удается обойтись без описателей буферного пула и т.д. для страниц во флэш-памяти, отсутствие косвенности при адресации страницы позволяет максимально ускорить поиск в базе данных.
Наконец, поскольку у флэш-памяти и дисков существенно отличаются соотношения времени задержки доступа и скорости передачи данных, для них являются оптимальными разные размеры узлов B-дерева. О’Нейл в своей работе о SB-дереве показывает, что в многоуровневой иерархии памяти требуются два разных размера узлов. Для перемещения отдельных страниц требуются недорогие механизмы, точно такие же, как те, которые нужны для перемещения страниц между флэш-памятью и диском.

Содержание раздела