neo4j/neo4j — pull request #3158 by tinwelint (2014-09-25 20:28:51+00:00)
Title: Refactorings and improvements on batch importer staging

The staging framework for the ParallelBatchImporter has been
changed to reduce time spent in the framework itself as well
as reporing much more accurate statistics.

- Simplified Stage to only have #add(Step), instead of input/add
- Simplified and streamlined waiting of conditions in individual steps
where conditions are first busy waited a little while, to then
back off to a sleep strategy.
- Improved accuracy of statistics of upstream/downstream idling,
possible since better placed for measuring was found.
- DetailedExecutionMonitor will find and print which step is the
current most likely step to be the bottle neck in the stage.
- Correctly and efficiently follows the contract of a step, where
batches must be sent downstream in the order they arrived, which
implies total ordering as a whole between steps. Previously there
was too strict checks such that some parallelization was hindered.