Facebook открыл модуль Flashcache для организации кэширования на SSD-накопителях

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

Как известно, если у движка хранилища данных InnoDB рабочий набор данных не умещается в пуле кэша, тогда отзывчивость (latency) операций чтения сильно ухудшается. Эту проблему можно решить, если расположить рабочий набор данных на более быстром носителе информации, например, на SSD дисках. Модуль Flashcache, созданный инженерами Facebook, занимается именно этой задачей - он работает как универсальных механизм кэширования для любого приложения, работающего с блочным устройством.

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

Модуль выпущен и проверен для работы только в ядрах Linux 2.6.18 и 2.6.20. При работе Flashcache базируется на технологии Linux Device Mapper (DM), для вытеснения старых данных поддерживаются методы FIFO и LRU. Из дополнительных возможностей и планов отмечено: функции зеркалирования кэша на несколько SSD-накопителей; задействование команды ATA TRIM для более оптимального распределения данных по SSD; планируется более тесная интеграция с файловыми системами (сейчас кэш работает только на блочном уровне); ожидается появление гибких средств для определения контента не подлежащего кэшированию.

©  OpenNet