Facebook открыл модуль Flashcache для организации кэширования на SSD-накопителях
🕛 30.04.2010, 23:39
Сервис Facebook уже не 1 раз открывает свои наработки в области высокопроизводительных систем и Линукс, на этот раз решено поделиться наработками в области ускорения работы сервера MYSQL и иных интенсивно взаимодействующих с диском приложений, за счет организации процесса прозрачного кэширования данных на быстрых SSD-накопителях.Как видно, если у движка хранилища данных INNODB рабочий набор данных не умещается в пуле кэша, тогда отзывчивость (latency) операций чтения весьма ухудшается. Эту проблему возможно решить, если разместить рабочий набор данных на более быстром носителе информации, к примеру, на SSD дисках. Модуль Flashcache, созданный инженерами Facebook, занимается именно этой задачей - он работает как универсальных механизм кэширования для любого приложения, работающего с блочным устройством.
К тому же Flashcache повышает скорость записи, сперва кэшируя запись на хранилище SSD, а после неторопясь перекидывая данные на обычное хранилище стандартных вращающихся жёстких дисков. При том операции записи не атомарны и отложенное кэширование может привести к неполной записи данных в случае экстренного отключения питания. В данный момент создатели вынашивают планы по добавлению функций, которые дозволят устранить данный недостаток.
Модуль выпущен и проверен для работы лишь в ядрах Линукс 2.6.18 и 2.6.20. При работе Flashcache базируется на технологии Линукс Device Mapper (DM), для вытеснения старых данных поддерживаются методы FIFO и LRU. Из доп. возможностей и планов отмечено: функции зеркалирования кэша на несколько SSD-накопителей; задействование команды ATA TRIM для более оптимального распределения данных по SSD; планируется более тесная интеграция с файловыми системами (теперь кэш работает лишь на блочном уровне); ожидается появление гибких средств для определения наполнения не подлежащего кэшированию.