[jira] Commented: (JCR-1064) Optimize queries that check for the existence of a property

2007-09-19 Thread Ard Schrijvers (JIRA)

[ 
https://issues.apache.org/jira/browse/JCR-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12528684
 ] 

Ard Schrijvers commented on JCR-1064:
-

Have been thinking this issue over, since I think it is quite important 
performance improvement to get it right. I want to remove the part from the 
MultiIndex constructor below resetVolatileIndex();  (thus the 
Recovery.run(this, redoLog); and the rest) and move this in  a seperate method, 
which I call from the SearchIndex after the MultiIndex constructor and the test 
for the index format.  

WDOT? 

 Optimize queries that check for the existence of a property
 ---

 Key: JCR-1064
 URL: https://issues.apache.org/jira/browse/JCR-1064
 Project: Jackrabbit
  Issue Type: Improvement
  Components: indexing
Affects Versions: 1.3.1
Reporter: Ard Schrijvers
Priority: Minor
 Fix For: 1.4

 Attachments: JCR-1064-2.patch, JCR-1064-2.patch, JCR-1064-2.patch, 
 JCR-1064-2.patch, JCR-1064-DEPR.patch


 //[EMAIL PROTECTED] is transformed into the 
 org.apache.jackrabbit.core.query.lucene.MatchAllQuery, that through the 
 MatchAllWeight uses the MatchAllScorer.  The calculateDocFilter() in 
 MatchAllScorer  does not scale and becomes slow for growing number of nodes. 
 Solution: lucene documents will get a new Field:
 public static final String PROPERTIES_SET = _:PROPERTIES_SET.intern();
 that holds the available properties of this document. 
 NOTE: Lucene indices build without this performance improvement should still 
 work and fall back to the original implementation

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (JCR-1112) CacheManager interval between recalculation of cache sizes should be configurable

2007-09-19 Thread Martijn Hendriks (JIRA)

[ 
https://issues.apache.org/jira/browse/JCR-1112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12528718
 ] 

Martijn Hendriks commented on JCR-1112:
---

Hi,

I think that there are some issues with the current CacheManager that could be 
improved:

- The MLRUItemStateCache.touch method triggers the CacheManager.cacheAccessed 
method, which may call resizeAll. When the system is heavily loaded, many 
threads may unnecessarily be blocked by the synchronized block in 
CacheManager.cacheAccessed. The chances for this increase as SLEEP decreases 
and the time needed for resizeAll increases. This could easily be improved .

- The resizeAll method is expensive (for MLRUItemStateCaches, which are used 
everywhere) because it calls MLRUItemStateCache.getMemoryUsed, which 
recalculates the size of each entry in the cache (linear complexity in the size 
of the cache...). Since the NodeState/PropertyState.calculateMemoryFootprint 
seem to give approximate values anyway, wouldn't it be an idea to keep track of 
the approximate cache size in the MLRUItemStateCache itself? Furthermore, 
getMemoryUsed even blocks read-access to the cache. A large shared cache such 
as the one of the SharedItemStateManager suffers significantly from this, I 
think.

The minimum time between rebalancing seems small but, as Thomas noted, there 
are certain use-cases where this is needed. Isn't there a way to detect such 
extreme cache blowups in another way? When, for instance, a MLRUItemStateCache 
keeps track of its own approximate size, the time derivative of this size could 
be used to prevent blowups.

Best wishes,

Martijn

 CacheManager interval between recalculation of cache sizes should be 
 configurable
 -

 Key: JCR-1112
 URL: https://issues.apache.org/jira/browse/JCR-1112
 Project: Jackrabbit
  Issue Type: New Feature
  Components: core
Reporter: Przemo Pakulski
Assignee: Thomas Mueller
Priority: Minor
 Attachments: JCR-1112.txt


 Currently interval between recaluclation of cahce size is hard coded to 1000 
 ms. Resizing/recalculation of cache size is quite expensive method 
 (especially getMemoryUsed on MLRUItemStateCache is time consuming)
 Depending on the configuration, we realized that under some load up to 10-15% 
 percent of CPU time (profiler metrics) could be spend doing such 
 recalculations. It does not seem to be needed to resize cache every second. 
 Best this interval should be configurable in external config. file with other 
 cache settings (like memory sizes).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Jackrabbit 1.3.2 and 1.4 release planning

2007-09-19 Thread Jukka Zitting
Hi,

I'm about to start working on the release plans for both Jackrabbit
1.3.2 and 1.4. I'll start by identifying issues in Jira to target
releases, and will follow up with more detailed release plans for both
releases later this week.

The 1.3.2 release will be a patch release from the 1.3 branch, and
will contain a set of new bug fixes from trunk. I expect to only
include fixes that have already been implemented and tested, but
please let me know if there's some high priority bug that's still
pending and you'd like to see it released soon. I'd like to push to
have the 1.3.2 release out already in early October.

The 1.4 release will be the next feature from Jackrabbit trunk. It
will contain all the recent work  on jackrabbit-core as well as both
the OCM and SPI layers as new release components. There are still a
number of issues open and I think I still need to open a few new
issues targeted for the release, so it might well be a few more months
before the release is ready. In any case I'd very much like to push
the release out during Q4 this year.

PS. We probably need to soon start making more comprehensive plans
also for the 2.0 release. At least we should come up with a plan on
what to do with Jackrabbit trunk after the 1.4 release. I'll follow up
on that once the 1.3.2 and 1.4 plans are more concrete.

BR,

Jukka Zitting


[jira] Commented: (JCR-1138) Data store garbage collection

2007-09-19 Thread Thomas Mueller (JIRA)

[ 
https://issues.apache.org/jira/browse/JCR-1138?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12528753
 ] 

Thomas Mueller commented on JCR-1138:
-

Revision 577297: Add AbstractBundlePersistenceManager.getAllNodeIds

 Data store garbage collection
 -

 Key: JCR-1138
 URL: https://issues.apache.org/jira/browse/JCR-1138
 Project: Jackrabbit
  Issue Type: Improvement
  Components: core
Reporter: Thomas Mueller
Assignee: Thomas Mueller

 Currently the data store garbage collection needs to be run manually. It 
 should be simpler to use (maybe tool based), or automatic.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (JCR-935) ConcurrentModificationException during logout (cont'd)

2007-09-19 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/JCR-935?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12528769
 ] 

Stefan Guggisberg commented on JCR-935:
---

hi esteban,

thanks for sharing your results. as mentioned earlier, FineGrainedISMLocking 
represents experimental code. it's work in progress and hasn't (yet?) been 
'officially' endorsed. therefore i don't consider this issue a jackrabbit bug.

if we agree to follow the approach of FineGrainedISMLocking we'll need to 
carefully investigate the new concurrency issues (such as the NPE mentioned 
earlier). the current 'synchronized' statements have been very carefully placed 
and are the result of exhaustive debugging sessions hunting down concurrency 
issues with DefaultISMLocking. synchronizing on the various ItemState methods 
as suggested bears IMO a high risk of causing dead locks. 

cheers
stefan

 ConcurrentModificationException during logout (cont'd)
 --

 Key: JCR-935
 URL: https://issues.apache.org/jira/browse/JCR-935
 Project: Jackrabbit
  Issue Type: Bug
  Components: core
Affects Versions: 1.3
Reporter: Pablo Rios

 I seldom get a CME running ConcurrentReadWriteTest.testReadWrite test.
 Following are different stack traces of two runs:
  
 Exception in thread Thread-9 java.util.ConcurrentModificationException
  at 
 org.apache.commons.collections.map.AbstractReferenceMap$ReferenceEntrySetIterator.checkMod(AbstractReferenceMap.java:761)
  at 
 org.apache.commons.collections.map.AbstractReferenceMap$ReferenceEntrySetIterator.hasNext(AbstractReferenceMap.java:735)
  at 
 org.apache.commons.collections.map.AbstractReferenceMap$ReferenceValues.toArray(AbstractReferenceMap.java:543)
  at java.util.Collections$UnmodifiableCollection.toArray(Unknown Source)
  at java.util.Collections$UnmodifiableCollection.toArray(Unknown Source)
  at 
 org.apache.jackrabbit.core.state.LocalItemStateManager.dispose(LocalItemStateManager.java:341)
  at 
 org.apache.jackrabbit.core.state.SessionItemStateManager.dispose(SessionItemStateManager.java:316)
  at org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:1269)
  at org.apache.jackrabbit.core.XASessionImpl.logout(XASessionImpl.java:379)
  at 
 org.apache.jackrabbit.core.AbstractConcurrencyTest$Executor.run(AbstractConcurrencyTest.java:114)
  at java.lang.Thread.run(Unknown Source)
 Exception in thread Thread-9 java.util.ConcurrentModificationException
   at 
 org.apache.commons.collections.map.AbstractReferenceMap$ReferenceEntrySetIterator.checkMod(AbstractReferenceMap.java:761)
   at 
 org.apache.commons.collections.map.AbstractReferenceMap$ReferenceEntrySetIterator.nextEntry(AbstractReferenceMap.java:770)
   at 
 org.apache.commons.collections.map.AbstractReferenceMap$ReferenceValuesIterator.next(AbstractReferenceMap.java:829)
   at 
 org.apache.commons.collections.map.AbstractReferenceMap$ReferenceValues.toArray(AbstractReferenceMap.java:544)
   at java.util.Collections$UnmodifiableCollection.toArray(Unknown Source)
   at java.util.Collections$UnmodifiableCollection.toArray(Unknown Source)
   at 
 org.apache.jackrabbit.core.state.LocalItemStateManager.dispose(LocalItemStateManager.java:341)
   at 
 org.apache.jackrabbit.core.state.SessionItemStateManager.dispose(SessionItemStateManager.java:316)
   at org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:1269)
   at 
 org.apache.jackrabbit.core.XASessionImpl.logout(XASessionImpl.java:379)
   at 
 org.apache.jackrabbit.core.AbstractConcurrencyTest$Executor.run(AbstractConcurrencyTest.java:114)
   at java.lang.Thread.run(Unknown Source)
 My working copy is revision 538918 with both JCR-314 patches applied, using 
 FineGrainedISMLocking strategy.
 I run this test manually from within Eclipse 3.2.1 / JRE 1.5.0_10-b03.
 The workstation were I run this test has an Intel Dual-Core Xeon 5130 2 GHz. 
 To able to compare this CPU with another, with the default params of this 
 test (NUM_NODES = 5, NUM_THREADS = 5, RUN_NUM_SECONDS = 20), the number of 
 operations are ~ #writes performed: 300-400, #reads performed: 470 - 
 490.
 Regards,
 Pablo

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Reopened: (JCR-1126) Content created by one TOMCAT not visible for another TOMCAT

2007-09-19 Thread Rama Krishna (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCR-1126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rama Krishna reopened JCR-1126:
---


We are implementing the tomcat load balancing for my application.
So, we need to share the same repository for all tomcats.
 
1) We have shared the repository folder for all tomcats (NSF mount)

2) added the cluster node in repository.xml
 
Cluster id=node1
Journal class=org.apache.jackrabbit.core.journal.FileJournal
param name=revision value=${rep.home}/revision.log /
param name=directory value=${rep.home}/../shared /
/Journal
/Cluster
 
3) added same repository.xml in all tomcats
 
4) First tomcat is started successfully
 
5) While starting the second tomcat, its throwing error.
 
Please advise.
 
Here is the error details:
 
 
19.09.2007 12:34:08 *INFO * [main] Init: [None] OCS RepositoryServlet 
initializing.. (OcsLogger.java, line 80)
19.09.2007 12:34:08 *INFO * [main] Init: [None] repository-home   = 
/opt/webhost/ocs/shared/tomcat/mounted_data/jcr (OcsLogger.java, line 80)
19.09.2007 12:34:08 *INFO * [main] Init: [None] repository-config = 
/opt/webhost/ocs/tomcat5.5.9/webapps/ocs/WEB-INF/content-repository/repository.xml
 (OcsLogger.java, line 80)
19.09.2007 12:34:08 *INFO * [main] Init: [None] repository-name   = 
ocs.repository (OcsLogger.java, line 80)
19.09.2007 12:34:08 *INFO * [main] Init: [None] jaas config   = 
/opt/webhost/ocs/tomcat5.5.9/webapps/ocs/WEB-INF/content-repository/jaas.config 
(OcsLogger.java, line 80)
Sep 19, 2007 12:34:08 PM org.apache.jackrabbit.core.RepositoryImpl init
INFO: Starting repository...
Sep 19, 2007 12:34:08 PM org.apache.jackrabbit.core.util.RepositoryLock acquire
WARNING: Existing lock file 
/opt/webhost/ocs/shared/tomcat/mounted_data/jcr/.lock detected. Repository was 
not shut down properly.
19.09.2007 12:34:08 *ERROR* [main] Init: [None] Unable to initialize 
repository: javax.jcr.RepositoryException: The repository home 
/opt/webhost/ocs/shared/tomcat/mounted_data/jcr appears to be in use since the 
file named .lock is locked by another process.javax.jcr.RepositoryException: 
The repository home /opt/webhost/ocs/shared/tomcat/mounted_data/jcr appears to 
be in use since the file named .lock is locked by another process.
 at 
org.apache.jackrabbit.core.util.RepositoryLock.acquire(RepositoryLock.java:129)
 at org.apache.jackrabbit.core.RepositoryImpl.init(RepositoryImpl.java:229)
 at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:521)
 at 
com.hp.ocs.j2ee.RepositoryServlet.startRepository(RepositoryServlet.java:337)
 at com.hp.ocs.j2ee.RepositoryServlet.init(RepositoryServlet.java:191)
 at javax.servlet.GenericServlet.init(GenericServlet.java:211)
 at org.apache.catalina.core.StandardWrapper.loadServlet(Unknown Source)
 at org.apache.catalina.core.StandardWrapper.load(Unknown Source)
 at org.apache.catalina.core.StandardContext.loadOnStartup(Unknown Source)
 at org.apache.catalina.core.StandardContext.start(Unknown Source)
 at org.apache.catalina.core.ContainerBase.addChildInternal(Unknown Source)
 at org.apache.catalina.core.ContainerBase.addChild(Unknown Source)
 at org.apache.catalina.core.StandardHost.addChild(Unknown Source)
 at org.apache.catalina.startup.HostConfig.deployDescriptor(Unknown Source)
 at org.apache.catalina.startup.HostConfig.deployDescriptors(Unknown Source)
 at org.apache.catalina.startup.HostConfig.deployApps(Unknown Source)
 at org.apache.catalina.startup.HostConfig.start(Unknown Source)
 at org.apache.catalina.startup.HostConfig.lifecycleEvent(Unknown Source)
 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Unknown Source)
 at org.apache.catalina.core.ContainerBase.start(Unknown Source)
 at org.apache.catalina.core.StandardHost.start(Unknown Source)
 at org.apache.catalina.core.ContainerBase.start(Unknown Source)
 at org.apache.catalina.core.StandardEngine.start(Unknown Source)
 at org.apache.catalina.core.StandardService.start(Unknown Source)
 at org.apache.catalina.core.StandardServer.start(Unknown Source)
 at org.apache.catalina.startup.Catalina.start(Unknown Source)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:585)
 at org.apache.catalina.startup.Bootstrap.start(Unknown Source)
 at org.apache.catalina.startup.Bootstrap.main(Unknown Source)
 (OcsLogger.java, line 124)


 Content created by one TOMCAT not visible for another TOMCAT
 

 Key: JCR-1126
 URL: https://issues.apache.org/jira/browse/JCR-1126
 Project: Jackrabbit
  Issue Type: Bug
  Components: webapp
 Environment: Application running on loadbalanced 3 tomcats in unix

Re: Jackrabbit 1.3.2 and 1.4 release planning

2007-09-19 Thread Julian Reschke

Jukka Zitting wrote:

...
The 1.4 release will be the next feature from Jackrabbit trunk. It
will contain all the recent work  on jackrabbit-core as well as both
the OCM and SPI layers as new release components. There are still a
number of issues open and I think I still need to open a few new
issues targeted for the release, so it might well be a few more months
before the release is ready. In any case I'd very much like to push
the release out during Q4 this year.
...


Sounds good to me. In particular, I think that once JCR2SPI has been 
integrated as a top-level project, we should try to work on reducing 
code duplication between it and the monolithic Jackrabbit.


BR, Julian


[jira] Resolved: (JCR-1126) Content created by one TOMCAT not visible for another TOMCAT

2007-09-19 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCR-1126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting resolved JCR-1126.


Resolution: Invalid
  Assignee: Jukka Zitting

Again resolving this as Invalid. Please do not use the issue tracker for 
support questions.

The clustering feature request each cluster node to have their separate 
repository home directory and configuration files - only the persisted content 
is shared between the cluster nodes. See 
http://wiki.apache.org/jackrabbit/Clustering and the Jackrabbit mailing list 
archives for more details. Also, feel free to ask questions on the Jackrabbit 
mailing list, but please only file bug reports when you are reasonably sure 
that the problem is caused by Jackrabbit itself and not a misconfiguration.

 Content created by one TOMCAT not visible for another TOMCAT
 

 Key: JCR-1126
 URL: https://issues.apache.org/jira/browse/JCR-1126
 Project: Jackrabbit
  Issue Type: Bug
  Components: webapp
 Environment: Application running on loadbalanced 3 tomcats in unix
Reporter: Rama Krishna
Assignee: Jukka Zitting
 Attachments: jaas.config, repository.xml, screenshot-1.jpg, 
 workspace-v1.2.xml


 Hello friends, 
 I am working in a Content Management Project. 
 We have implemented load balancing in TOMCAT (say A, B and C). 
 But now the content created by TOMCAT-A is not visible for TOMCAT-B and 
 TOMCAT-C even though content folder is shared between the TOMCATS. 
 Thanks  Regards, 
 RK

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: release for Jackrabbit 1.4

2007-09-19 Thread ruchi goel

Jukka Zitting wrote:

Hi,

On 9/11/07, ruchi goel [EMAIL PROTECTED] wrote:
  

What is the expected time frame for release of Jackrabbit 1.4 ?



I don't yet have any exact dates, but I'd expect at least a month or
two before the release is ready. At least we still need to finalize
the data store implementation and handle the upgrades of the OCM and
SPI components. I'll come up with a more detailed release plan with
relevant Jira references in near future.

Is there interest in getting some essential bug fixes out already
before the 1.4 release? I could easily imagine doing a 1.3.2 patch
release if there's interest.

BR,

Jukka Zitting
  
Yes, we are deeply interested in an interim release since we were 
dependent on Graffito's OCM layer earlier. Now since it is part of 
Jackrabbit , we will be depending on a Jackrabbit release   to be 
bundled in our product.


Is 1.4 release on hold because of the bugs  mentioned in the mail chain 
( with the same subject).


Thanks,
Ruchi