hi stefan

Stefan Guggisberg wrote:
ItemState instances are cached on multiple layers. Please have a look
at dominique's earlier post which IMO explains jackrabbit's design quite nicely:
http://thread.gmane.org/gmane.comp.apache.jackrabbit.devel/1172
thanks for the reference.


the SharedItemStateManager is at the bottom layer and caches ItemState instances read from the PM. this memory-sensitive cache, apart from helping to reduce PM calls, guarantees that there's only *one* ItemState instance for any given id on this layer. this is crucial for jackrabbit's support of isolation levels. caching in the PM would therefore IMO be redundant if not disadvantageous because it would
use up (memory) resources that could be used more efficiently by jackrabbit.
got it.


regarding clustering:
clustering is a very interesting topic and we had quite a few discussions
on how it could be supported in jackrabbit.
is there an archive of this?

> clustering can IMO not be
entirely delegated to the PM. it has to be tackled on a higher level.
the sticking point is how to synchronize the multiple jackrabbit instances in a cluster.


Have you seen the oscache approach for clustering? it seems interesting. I'm just thinking out loud, Local and Shared ItemStateManagers could favor composition over inheritance. The current ItemStateCache implementation is a good fit for the first, and an oscache like approach could be a good choice for the latter in a clustering scenario.

Maybe this could be a deployment decision, with a "shared-cache" tag in the config file that leaves to the deployer the cache strategy selection for shared ItemStates.

A pluggable cache for shared item states would also be useful for network deployments with or without clustering. Those who chose a rdbms backend would be able to to use a cache that relies also in the local filesystem, and not only in mem.

there's no easy answer to that and it would certainly require considerable
work in jackrabbit's core. as our main priority is getting jackrabbit version 1.0 out clustering support has to wait i'm afraid.
It has sense. It seems many people is waiting for a release in order to use it in production.

Sorry for being such a pain, I'm becoming a jackrabbit fun and I'd like to use it on any project I get involved.

thanks
edgar

Reply via email to