Hi Tomasz,
currently all workspaces are initialized and loaded on startup, which is
unfortunate when there are a lot of workspaces. however, I think it
should be possible to change this behaviour to only load workspaces that
are actively in use, that is, a session is connected to it.
One reason I'm aware of why workspaces need to be initialized on startup
is that each workspace index also contains the repository wide version
index. because of this, all workspace indexes need to be up and running
to include versioning changes. I've created a jira issue to cover this:
http://issues.apache.org/jira/browse/JCR-257
anyone else aware of other areas that prevent us from putting a
workspace to sleep when it is not actively used?
regards
marcel
Tomasz Dabrowski wrote:
After a few months of using my application my repository will have over
800 workspaces. That's why I decided to wrote some prototyping how many
workspaces can be in Jackrabbit (it clones one workspace many times).
Result of it is: Every time when Jackrabbit is started all files related
with indexing are opened (from "<workspace>/index" folder). As you know
OS has its own constraint for number of opened file per process. So in
fact "more workspace" = "more index files" = higher possibility to get
error "Too many files open".
Does anyone know if there are any constraints for number of workspaces
in repository? Have you tried in your project lots of workspaces??? Is
there any possibility to decrease number of index files for workspace
(eg. by defining some parameter in <SearchIndex> from repository.xml)
Ps. Of course I can set higher number for file per process in OS, but
this is not good idea ;)