jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Boston <...@tfd.co.uk>
Subject onEvent and Session sharing.
Date Thu, 14 Oct 2010 21:01:40 GMT
Hi,

I have been hitting some performance problems with Sling based on Jackrabbit 2.1 and notice
a pattern that I think is causing the problem, but want to confirm it with someone more knowledgable.



The pattern is an javax.jcr.observation.EventListener.onEvent(....) implementation using a
session from a containing class provisioned by another thread.

The behaviour is system wide blocking of all threads that provisioned the session in question.

In our case its inside the ACLProviders. We make heavy use of ACLs so every ACLProvider (ie
all threads with a session) is intermittently blocked when an ACL modification is made.

Am I reading the situation correctly?
I know that JR 2.2 has made steps forwards in this area, but is there a cure for 2.1 ? 
(like binding casting to EventImpl to avoid a session lookup, as in the SearchManager ?)

There is a similar pattern in
GarbageCollector$Listener
LockManagerImpl
UserAccessControlProvider$CompilePermissions
RetentionRegistryImpl

Although I suspect that none of these are high traffic locations.

Ian


Mime
View raw message