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.
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|
Browse files, revisions and diffs
See changeset ancestry
Use JIRA integration features
View the Activity stream
Search filenames, content, and diffs
See line count data
See commit author
See file revision ancestry and predecessors
Use eyeQL queries
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.
Changing these values can adversely impact the performance of your FishEye instance. Please proceed with caution.