Get VS. Multi-Get in .NET SDK
I've been using Couchbase 2.0 for a while and I think it's a great tool for high performance.
I recently found something unexpected. I log the time taken for every step of my app service process to check the performance. I was surprised that multi-get (i.e. get(List)) was being very slow, taking up to 43 seconds to get 200 documents. If it was an isolated case I wouldn't worry, but in all other instances requesting 200-800 documents at once, I got an average of ~12.5 seconds.
The thing is that I added some code just after the multi-get to loop through all the keys and get those one by one, and it is surprisingly faster (405ms to 3.3s) for the same documents.
Interestingly, in some cases, multi-get doesn't retrieve all the documents.
Seeing the results, I would go with the loop option, but that contradicts the best-practices in the documentation.
I am using the .NET 3.5 SDK (version 1.2.6) and Couchbase server 2.0.
Any help appreciated.