Евгений Поляков сообщил в списке рассылки разработчиков ядра Linux о готовности для включения в состав ядра Linux кода новой реализации сетевой распределённой файловой системы POHMELFS (Parallel Optimized Host Message Exchange Layered File System). Грег Кроу-Хартман (Greg Kroah-Hartman), курирующий экспериментальный «staging» раздел ядра Linux, в котором начиная с выпуска 2.6.30 поставляется код POHMELFS, уже удалил из ветки 3.3-rc3 код старой реализации POHMELFS, вместо которой в ближайшие дни будет добавлена новая версия. Таким образом, код новой реализации POHMELFS, основанный на работе поверх распределённого хранилища Elliptics, войдёт в состав ядра Linux 3.3.
Новшества в новой версии:
- Поддержка «кворума на чтение», в дополнение к ранее реализованному «кворуму на запись». Суть кворума на запись в том, что в ситуации, когда запись осуществляется параллельно на несколько узлов, с созданием трёх резервных блоков на разных узлах, для успешного завершения операции записи должно быть успешно записано как минимум два блока с продублированными данными (настраивается через опцию 'successful_write_count='). Кворум на чтение, позволяет гарантировать чтение самой свежей порции данных, реплицированных на несколько узлов. При каждом запросе на чтение производится проверка мета-данных с наскольких узлов и выбор блока с самым свежим временем изменения. Одновременно, если выявлены более старые блоки они помечаются для последующей синхронизации;
- Поддержка режима совместимости с HTTP-приложениями. Для чтения и записи данных в POHMELFS теперь возможно дополнительно использовать специальный HTTP API, работающий напрямую с хранилищем Elliptics по идентификатору объекта, который теперь генерируется как хэш от файлового пути. Можно создавать такие схемы, при которых данные читаются из web-приложения через HTTP API, а записываются через штатный интерфейс файловой системы, и наоборот. Ограничением режима совместимости с HTTP-приложениями является невозможность прямого переименования файлов (требуется удаление файла и добавление нового).
- Поддержка жёстких ссылок (hardlink) и специальных файлов (socket/pipe).