The good news is that I finally managed to get a full refactoring done. The VERY good news is that it allowed to get a first NoSQL storage implementation done quickly and easily using the OrientDB document database as the underlaying implementation. Now, I finally have some numbers to show and here they are in the micro benchmark page of the project wiki.
I quote from the wiki (I’m lazy!):
The benchmark shows that atomic operations (put, get) on heap storage are, of course, an order of magnitude faster than on the others, but only for a small number of entries – total execution time gets affected by garbage collection – doubling the number of entries multiplies total test execution time by a factor of 5.3. Starting from 100k entries off-heap storage outperforms heap.
Now a nice picture to make it clearer:
The wiki also states that:
Doubling the number of items roughly doubles both average execution time and total elapsed for OrientDB while off-heap storage average execution time is not affected by the increase in size and number of entries
And here is the graphs showing it clearly:
I’m happy to say that the OrientDB storage implementation performs pretty well (it probably needs some tuning, anyhow) considering it keeps entries on disk (that could be retrieved later and even after a restart, which is a plus). Considering it is a one-night effort and that I still have to try out the binary database implementation it’s an excellent result.