Что бы вы ни делали, убедитесь, что у вас нет более 1000 дочерних узлов под любым конкретным узлом.
Как и в любой (реальной) файловой системе, если вы хотите перечислить папку с большим количеством файлов / подпапок в ней, это может занять некоторое время.
По умолчанию Jackrabbit 2.x теперь хэширует пространство пользователя.
то есть:
/users/s/sa/sandra
/users/s/si/simong
...
Я бы лично пошел за вашим первым предложением, так как оно имеет больше смысла.
У нас есть веб-приложение, где все наши пользователи могут загружать / удалять / изменять свои файлы в JCR, и сделали это следующим образом:
/_users/s/si/simon/public
/_users/s/si/simon/public/My Pictures
/_users/s/si/simon/public/My Pictures/2010/06/Trip to the US
/_users/s/si/simon/public/My Pictures/2010/06/Trip to the US/DC1001.jpg
/_users/s/si/simon/private/account_details.txt
...
Мы неукоснительно следим за тем, как создаются домашние папки в UNIX-подобных системах.
Мы стараемся сделать все, что можем (разумно). Как, например, пользовательское пространство (/ s / si / simong), но также такие вещи, как сообщения:
/_users/s/si/simong/messages/2009/12/25/ab34ed87dee
/_users/s/si/simong/messages/2010/03/12/e4f1de3cd48
...
Однако индивидуальный пользователь не должен иметь более 1000 дочерних файлов в заданной папке (хотя мы их предупреждаем).
Поступая таким образом, вы также получаете хорошее преимущество от контроля доступа.
то есть: все, что находится в ~ / private, доступно только для чтения и записи текущему пользователю, ~ / public доступно для чтения всем.