Опубликован MyRocks, движок хранения к СУБД MySQL от Facebook
Facebook представил проект MyRocks, в рамках которого развивается новый движок хранения для СУБД MySQL 5.6, основанный на системе хранения RocksDB, оптимизированной для Flash-накопителей. Главными целями создания MyRocks является повышение эффективности хранения данных на Flash-накопителях и сокращение размера БД.
В качестве основных причин большого потребления дискового пространства в InnoDB отмечается фрагментация, низкая степень сжатия и выравнивание сжатых данных внутри хранилища по страницам фиксированного размера (размер страницы 8 Кб и даже если данные упакованы в 5 Кб все равно будет израсходован блок в 8 Кб). Хранилище MyRocks лишено данных недостатков: применяет размер страницы плавающего размера и предоставляет значительно более эффективный метод сжатия. MyRocks также выполняет меньше операций последовательного чтения и записи за счет использования модели хранения данных в форме лога (Log Structured Merge Trees), допускающей только дополнение (чистка производится сборщиком мусора).
При хранении аналогичного объема данных внедрение нового хранилища на основные серверы Facebook позволило на 50% сократить размер БД по сравнению со сжатым хранилищем InnoDB и в 3.5 раза по сравнению с InnoDB без применения сжатия. Кроме сокращения размера применение MyRocks также привело к ускорению репликации за счет сокращения операций чтения при обновлении ключей. Также ускорились операции загрузки данных в БД, благодаря пакетной обработке входящих данных.
При этом MyRocks имеет ряд ограничений, таких как отсутствие поддержки внешних ключей, online DDL, автоматического определения взаимных блокировок, партицирования, полнотекстовых и пространственных индексов. Со временем имеющиеся недостатки планируется устранить.