RavenDB perf test results

The test include inserting small documents, with 3 active (map only) indexes. The X axis is the number of document inserted. The Y axis is the number of milliseconds each operation took.

  • Insert - the time to insert all the documents, in batches of 128 documents each.
  • Index - the time that it takes all indexes to complete work

The baseline scenario was build 139. The test program can be found here: http://pastie.org/1085752

Three different changes were measures:

  • Index documents to a RAM directory and merge them to the index.
  • Eager indexing, which means indexing all the stale indexes (map part) and then running the reduce part.
  • Combination of both

image image

image image

image image

As an aside, I also tested the results with the timeout for indexing set to 10 minutes, which confirms that it isn't the timeout that is not relevant for index updates.

I then tried to move the indexing process to a multi threaded approach, which gives us this:

image image

Please note that currently only the map part of the indexes will run in a multi threaded fashion, the reduce part will run in a single thread (and yes, we plan to fix that).

I am currently looking at what else I can do to improve indexing perf.