[ Russian ] [ English ]

Алгоритмы управления буферным пулом СУБД при работе с флэш-накопителями

Прохоров Андрей Анатольевич,
Институт системного программирования РАН,
EmailToProkhorov@gmail.com

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

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

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

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

В докладе описываются ключевые особенности флэш-памяти, которые необходимо учитывать для обеспечения эффективного обмена информацией с флэш-накопителями. Коротко обсуждаются основные принципы построения буферного пула СУБД. А также производится обзор трех современных алгоритмов управления буферным пулом, оптимизированных для работы с SSD. Алгоритмы CFDC [2] и CASA [2] опираются на эвристические методы, при учете особенностей флэш-памяти, в то время как алгоритм FD-Buffer [3] достаточно точно решает задачу минимизации математического ожидания среднего времени доступа к страницам БД. Эффективность обозреваемых алгоритмов была экспериментально подтверждена их авторами в TPC-C тестах производительности.

Презентация доклада в формате PowerPoint: prokhorov20121129.pptx

Литература:

  1. Goetz Graefe. The Five-minute Rule: 20 Years Later and How Flash Memory Changes the Rules. // ACM QUEUE, July/August 2008.
  2. Y. Ou, T. Härder, and P. Jin. CFDC: a flash-aware replacement policy for database buffer management. // DaMoN, 2009.
  3. Sai Tung On,Yinan Li,Bingsheng He, Ming Wu, Qiong Luo, Jianliang Xu. FD-Buffer: A Buffer Manager for Databases on Flash Disks. 2010.
Supported by Synthesis Group