In a comment to the last post, there was a request to conduct some benchmarks with a mixed workload that does not test insert/delete/update/get operations in isolation but when they work together.
To do this, I put together a quick benchmark that inserts 10,000 documents, and after each insert either
- directly fetches the inserted document (i.e. insert / get),
- updates the inserted documents and retrieves it (i.e. insert / update / get), or
- deletes it (i.e. insert / delete)
The three cases are alternated deterministically, meaning each case occurs with the same frequency and in the same order. It’s probably still not the best ever test case, but at least it reflects a mixed read and write workload.
The document ids used in the test were monotically increasing integers, starting from some base value. That means no random values were used.
The test was repeated for 100,000 documents as well. The dataset still fully fits in RAM. The tests were run in the same environment as the previous tests so one can compare them.
The results are in line with the results shown in the previous post. Here’s the chart with the results of the 10,000 documents benchmark:
And here are the tests result for the 100,000 documents benchmark: