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.

Was this helpful?

Thanks for your feedback!

Why was this unhelpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport