Fisheye spending a long time indexing a branch
Asked by Dan Deftos:

When creating a branch in our subversion repository, Fisheye's performance suffers while indexing the branch. Revisions created after the branch take a long time before they are available in Fisheye for Crucible review creation. Is there a setting or some other action we can take to increase the performance? We would like the branches to exist in Fisheye as they are feature branches which we would want to do code review from.


Answers:
author: Dave Theodore [Coyote Creek Consulting]
body: The branch appears as a complete new copy of the source repo to Fisheye. It will index all of the changesets from scratch when you create a branch. Other than reducing latency and improving individual changeset indexing performance (faster network, faster storage, local repo copy local to Fisheye, etc) there isn't a lot you can do. I generally recommend to clients to create a Fisheye repo for your mainline source repo and as you create branches and want them to show up in Fisheye, create a new Fisheye repo and point it at the branch. Unfortunately, an indexing task is single threaded, so it has no way to parallelize operations. If you have unused CPU threads, you can increase the number of incremental indexing jobs, which will reduce the impact on other repos, as well. I hope that helps.

comments: author: Conor
body: I'd just like to clarify a few points in your answer, some of which are version dependent."It will index all of the changesets from scratch when you create a branch." I'm not quite sure what you mean here. The branch processing involves creating the file entries for the files that are copied as part of the branch. All of the changesets prior to the branch operation will already have been indexed. They are not indexed again. As I said above, from FishEye 3.0, the filling in of these files that are part of the branch is now performed in the background and should not inhibit the indexing of subsequent changesets.As there is now background processing, the indexing task is not strictly single threaded. Changeset infill, metadata indexing and content indexing are performed in the background in a separate processing pipeline. There are inter-changeset dependencies which means some parts of indexing are serialized. the goal of FishEye 3.0 was to make changesets reviewable much earlier that was the case in prior versions.


author: Dan Deftos
body: Thanks for the responses. We running 3.5.1 of Fisheye. We had originally thought that setting the appropriate SVN Symbolic rules would prevent the indexing process from taking place. It seems there are other factors at work here and we have since opened a ticket with Atlassian support.


author: Jobin Kuruvilla [Adaptavist]
body: On top of what Dave said, here is a useful documentation: <https://confluence.atlassian.com/display/FISHEYE/Tuning+FishEye+performance>


author: Conor
body: What version of FishEye are you using? In FishEye 3.0, filling in the details of a branch should not prevent new changesets being indexed to the point where they can be reviewed?

comments: author: Danila Sudyko
body: Hello, Conor.  
Could you please help to solve the problem?  
The problem is that all IncrPing threads are busy indexing SVN repositories. If an SVN repository commits, the SVN repository sends a request to Crucible to index the corresponding FishEye repository. Because of the large number of SVN repositories with commits **where new branches are added** , all IncrPing threads are busy and repository queue to index grows. Commits to some FishEye repositories take a very long time to reach (1 - 2 days).  
I'm using Fisheye 4.8.8.  


Tags: fisheye-crucible-administration

svn