Здравствуйте, Nikolay Bespalov, Вы писали:
NB>Необходимо:
Не хранить весь "индекс" в оперативной памяти.
По ключу "быстро" получить данные. "Быстро" — быстрее линейного. С этим понятно — B-деревья(и разновидности).
По ключу (для выбранного пути) найти дочерние ключи (т.е. "файлы" лежащие в выбранной директории). Вот с этим не понятно.
hierarchyid из ms sql? реализацию можно подсмотреть, открыв в ilspy тип SqlHierarchyId, сборка Microsoft.SqlServer.Types.dll
Тип устроен так, что поддерживает range scan, т.е. привернуть поверх него индекс — уже чисто технический вопрос.