Oren,
I was so frustrated with _so_ slow replication & indexing for existing DB when I upgraded to 2.5 with default settings these days. I post couple topics related to it, such as version out memory issue but I did not get right answer.
Here is more interesting but not that good found. Please take a look.
For a 7M db with 100 index. In 1.0, it took about 6-8 hours total to replicate and index with default settings (Raven/Esent/MaxVerPages=1024)
However in 2.5, it took _24_ hours with one change Raven/Esent/MaxVerPages=2048 because the first try got out of memory error.
BTW, the servers I am using are very powerful: 4-8CPU/24-64GB memory, SAN high performance storage (response time 1-9ms)
I tried to play with some configuration and really confused with Raven/MaxNumberOfItemsToIndexInSingleBatch, I tested two replications:
Raven/MaxNumberOfItemsToIndexInSingleBatch default, took 24+ hours
Raven/MaxNumberOfItemsToIndexInSingleBatch=8192, 8 hours
During the time, the memory usage is about 2-6GB, CPU average 15-20%
I think RavenDB 2.5 handle the memory usage much worse than 1.0 in the massive data insert case (for example replication)
It is not as the document said the bigger Raven/MaxNumberOfItemsToIndexInSingleBatch the better index speed.
I have one explanation that bigger# Raven/MaxNumberOfItemsToIndexInSingleBatch good for few index, but consider the index update cost, smaller # of Raven/MaxNumberOfItemsToIndexInSingleBatch could be good for if has couple tens index. This is to balance the indexing in memory and index updating for multiple index.
Any thought?
Thanks
James