Я разрабатываю распределенную файловую систему с помощью riak для проекта. Я хочу сохранить древовидную структуру в базе данных riak и получить идентификатор узла, когда указан путь (путь, например /root/dev/bin)
Я думал использовать материализованные пути для хранения дерева, в котором дерево хранится с использованием идентификатора узла и пути от корня.
A
/ \
B C
/ \ \
D E F
Идентификатор узла | Путь
A _
B A
C A
D A,B
F A,C
Таким образом, чтобы получить идентификатор пути, одним из решений является сохранение пути в качестве ключа и идентификатора узла в качестве значения, а затем использование ключевых фильтров riak для получения идентификатора узла для пути, другое решение — сохранить путь в качестве значения и использовать riak search, чтобы получить идентификатор узла. Если я использую поиск riak, должен ли я сохранить путь как массив json или сохранить его как простую строку?
Кроме того, я хочу выполнять такие операции, как
1. Get childrens of a node(all files in a directory)
2. Add new children(add files or folders)
3. Traverse the tree
Итак, что вы думаете о вышеуказанных решениях или у вас есть какие-либо другие предложения?
Спасибо