main

Начало разработки xa-tags

Решил наваять что-то для поддержки тэгов на уровне ФС.

На данный момент существующих реализаций много, от fuse-based ФС, до tracker'a с nepomuk'ом. Все они используют внешнее хранилище.

Сел думать. xattr на семействах ФС ext34 - маленький, в 2-3кб, значит нужно какое-то внешнее хранилище, просто засунуть тэги в xattr не выйдет1. Нужен быстрый поиск по тэгам - опять же нужно внешнее хранилище.

В xattr хранится только uuid, по которому из базы и вытягиваются метаданнные.

Спроектировал первую реализацию, демон, 2 типа бэкендов (sqlite/mongodb), конфиг демона и протокол досупа к базе на базе YAML'а, схемы метаданных с возможностью апгрейда и прочие плюшки. Сел прорабатывать протокол, запрос/ответ, ключевые слова, практически закончил... и остановился.

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

В общем, надо как-то сажать проект на диету.

На всякий случай выкладываю свои заметки в первом приближении, по описанию демона/базы и практически готовый протокол работы с ними.


  1. ну, я-то допустим знаю про ограничения, но упереться в него всё равно бы не хотелось ↩