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