Hi all,
I've just started using Fisheye 3.0.1.
I noticed that SVN repository indexing is slow AND CPU intensive which sounded strange to me, so I did some sampling.
The SVN repository is available via HTTPS which is known to be slow, so I expected bad IO performance but not a steady 100% CPU usage.
I found out that during SVN indexing Fisheye is often executing com.cenqua.fisheye.svn.util.ChangePathUtil.isSubPath(..), which consumes 100% of a CPU.
Typical stack trace:
at java.lang.String.equals(String.java:1017)
at com.cenqua.fisheye.svn.util.ChangePathUtil.isSubPath(ChangePathUtil.java:18)
at com.atlassian.fisheye.svn.Svn2MessageContext.isApplicableChangePath(Svn2MessageContext.java:109)
at com.atlassian.fisheye.svn.Svn2MessageContext.getApplicableChangePaths(Svn2MessageContext.java:153)
at com.atlassian.fisheye.svn.Svn2MessageContext.isPartOfAdd(Svn2MessageContext.java:428)
at com.atlassian.fisheye.svn.Svn2Infill2Processor.getInfo(Svn2Infill2Processor.java:363)
at com.atlassian.fisheye.svn.Svn2Infill2Processor.infillChangeSet(Svn2Infill2Processor.java:187)
at com.atlassian.fisheye.svn.Svn2Infill2Processor.access$100(Svn2Infill2Processor.java:78)
at com.atlassian.fisheye.svn.Svn2Infill2Processor$1.perform(Svn2Infill2Processor.java:121)
at com.atlassian.fisheye.svn.Svn2Infill2Processor$1.perform(Svn2Infill2Processor.java:110)
at com.cenqua.fisheye.cache.BaseRevisionCache.withDbWriteLock(BaseRevisionCache.java:967)
at com.atlassian.fisheye.svn.Svn2Infill2Processor.process(Svn2Infill2Processor.java:110)
at com.atlassian.fisheye.svn.Svn2Scanner.slurpRepository(Svn2Scanner.java:210)
at com.atlassian.fisheye.svn.Svn2Scanner.doSlurpTransaction(Svn2Scanner.java:177)
at com.cenqua.fisheye.rep.BaseRepositoryScanner.ping(BaseRepositoryScanner.java:85)
at com.cenqua.fisheye.rep.BaseRepositoryEngine.doSlurp(BaseRepositoryEngine.java:92)
at com.cenqua.fisheye.rep.RepositoryEngine.slurp(RepositoryEngine.java:408)
at com.cenqua.fisheye.rep.ping.IndexingPingRequest.doRequest(IndexingPingRequest.java:25)
at com.cenqua.fisheye.rep.ping.IncrementalPingRequest.doRequest(IncrementalPingRequest.java:30)
at com.cenqua.fisheye.rep.ping.PingRequest.process(PingRequest.java:58)
at com.cenqua.fisheye.rep.RepositoryHandle.processPingRequests(RepositoryHandle.java:228)
Is there any fine tuning that I can do via configuration of the repository?
Thanks in advance.
Best regards,
Marco