У меня были некоторые проблемы с представлением вашей конкретной проблемы / потребности, но это все же заставило меня задуматься о Git и о том, как он хранит ссылки SHA1 на диске:
Возьмем шестнадцатеричное строковое представление заданного хеша, скажем, "abfab0da6f4ebc23cb15e04ff500ed54
". Нарежьте два первых символа в хэше (в нашем случае «ab
») и превратите его в каталог. Затем используйте остальное ("fab0da6f4ebc23cb15e04ff500ed54
"), создайте файл и поместите в него вещи.
Таким образом, вы получаете довольно приличную производительность на диске (в зависимости от вашей FS, естественно) с автоматической индексацией. Кроме того, вы получаете прямой доступ к любому известному хешу, просто вставив разделитель каталога после двух первых символов ("./ab/fab0da
[..]")
Извините, если я пропустил мяч полностью, но, если повезет, это может дать вам представление.