Алгоритмы управления буферным пулом СУБД при работе с флэш-накопителями
Прохоров Андрей Анатольевич,
Институт системного программирования РАН,
EmailToProkhorov@gmail.com
Постепенное совершенствование технологий и удешевление производства флэш-памяти привели к созданию твердотельных накопителей данных(SSD), которые в настоящее время все чаще используются как в персональных компьютерах, так и в системах хранения данных. С появлением подобных устройств, время доступа к хранимой информации снизилось с 10 мс, характерных для жестких дисков, до 0,1 мс [1]. Несмотря на столь существенный прирост производительности, скорость работы современных СУБД по-прежнему лимитируется скоростью работы устройств хранения данных. Поэтому одним из важнейших механизмов повышения скорости работы СУБД является кэширование часто используемых данных в буферном пуле, расположенном в невыгружаемой области оперативной памяти.
При разработке алгоритмов управления буферным пулом решается задача минимизации математического ожидания среднего времени доступа к страницам БД. Для носителей информации на магнитных дисках скорость чтения и записи данных одинакова, поэтому при работе с такими устройствами выгодно кэшировать страницы, которые будут использованы в ближайшее время (алгоритм Белади). Так как подобный алгоритм практически не реализуем, используются его эффективные приближения LRU, LFU, CLOCK и др.
Так как стоимость носителей информации на магнитных дисках невысока, разработчики флэш-накопителей были вынуждены не только добиваться превосходства над магнитными дисками по техническим характеристикам, но и стремиться к минимизации цены конечного устройства. Увеличение плотности хранения данных и экономия на вспомогательных управляющих элементах привели к ряду особенностей, характерных для наиболее распространенных твердотельных накопителей. Чтение и запись в таких устройствах производится блоками размером в несколько килобайт, удаление блоками в сотни килобайт, а запись может осуществляться только после удаления. Также постепенная деградация ячеек хранения данных сделала необходимым постоянное перемешивание содержимого флэш-накопителя, для выравнивания частоты использования элементов памяти. Данные ограничения привели к асимметрии скоростей чтения и записи данных.
Для построения буферного пула, оптимизированного для работы с флэш-памятью, необходимо не только поддерживать высокий процент попаданий в дисковый кэш, но и минимизировать процент дорогостоящих промахов по записи. Также при построении подобных алгоритмов необходимо учитывать их взаимодействие с механизмами перемешивания содержимого флэш-накопителей.
В докладе описываются ключевые особенности флэш-памяти, которые необходимо учитывать для обеспечения эффективного обмена информацией с флэш-накопителями. Коротко обсуждаются основные принципы построения буферного пула СУБД. А также производится обзор трех современных алгоритмов управления буферным пулом, оптимизированных для работы с SSD. Алгоритмы CFDC [2] и CASA [2] опираются на эвристические методы, при учете особенностей флэш-памяти, в то время как алгоритм FD-Buffer [3] достаточно точно решает задачу минимизации математического ожидания среднего времени доступа к страницам БД. Эффективность обозреваемых алгоритмов была экспериментально подтверждена их авторами в TPC-C тестах производительности.
Презентация доклада в формате PowerPoint: prokhorov20121129.pptx
Литература:
- Goetz Graefe. The Five-minute Rule: 20 Years Later and How Flash Memory Changes the Rules. // ACM QUEUE, July/August 2008.
- Y. Ou, T. Härder, and P. Jin. CFDC: a flash-aware replacement policy for database buffer management. // DaMoN, 2009.
- Sai Tung On,Yinan Li,Bingsheng He, Ming Wu, Qiong Luo, Jianliang Xu. FD-Buffer: A Buffer Manager for Databases on Flash Disks. 2010.
|