Pipelined indexing
Prior to Fisheye 3.0, indexing of a repository in Fisheye was performed as a serial, monolithic process from the first commit to the latest. The result was that sometimes it could take a long time before the latest (newest) changesets became visible in Fisheye. Since the newest changesets are often the most interesting, Fisheye could seem to be less than useful until indexing had fully completed.
For Fisheye 3.0, and later, a pipelined indexing approach splits the indexing process into separate tasks that can be performed in a phased and concurrent way. This approach allows Fisheye to provide core functionality, such as review creation, file browsing, the activity stream and Jira integration, for all the changesets in the repository, far sooner than in previous versions. You can get on with your work, while Fisheye quietly completes the fine details of indexing in the background.
For now, pipelined indexing is only available for Subversion repositories. Other SCMs will be supported in subsequent releases.
Indexing phases
Pipelined indexing splits the indexing process for a repository into two phases. Tasks within those phases are performed in parallel. When a phase completes, the Fisheye functionality that depends on that information then becomes available. The phases, and the functionality associated with them, is shown in the table below:
Phase | What you can do and see |
1. Scanning | Create reviews Browse files, revisions and diffs See changeset ancestry Use Jira integration features View the Activity stream |
2. Indexing | Search filenames, content, and diffs See line count data See commit author See file revision ancestry and predecessors Use eyeQL queries |
Monitoring progress
When you add a repository to Fisheye, and enable it, pipelined indexing begins immediately. An administrator can monitor indexing progress in the 'Repository status' section of the 'Repository' page:
Click Show more to see more details for the indexing process.
You can Stop, and Restart, indexing if necessary.
When browsing a repository that is currently being indexed, you'll see a progress indicator at the top right of the page:
Advanced: configuring pipeline indexing
At start up, Fisheye 3.0, and later, auto-configures the pipeline based on the detected environment. This default configuration should suit most users. You may choose to tune aspects of the pipeline operation to suit your environment using the fisheye.pipeline.name
system properties listed in JVM system properties. To set any of these properties, please see JVM system properties.
In changing these properties, please be aware that there is a single instance of the pipeline, shared between all repositories.
Caution
Changing these values can adversely impact the performance of your Fisheye instance. Please proceed with caution.