Kivaloo performance
The following graphs and table show kivaloo performance on six benchmarks with between 10 MB (easily fits into RAM) and 10 GB (doesn't even come close to fitting into RAM) of key-value pairs. The benchmarks were performed on a c1.medium EC2 instance using ephemeral-disk storage, with a 2 kB B+Tree page size, and with 40-byte keys and 40-byte values.
On each graph, the solid line shows kivaloo-1.2.0 performance while the dashed lines shows kivaloo-1.1.0 and kivaloo-1.0.0 performance.
Data store size | Bulk insert | Bulk update | Bulk extract | Random read | Random mixed | Hotspot read |
217 pairs | 125156 | 110870 | 29922 | 216081 | 28536 | 234540 |
218 pairs | 131942 | 106657 | 29870 | 194122 | 23511 | 227447 |
219 pairs | 126354 | 109205 | 30026 | 169680 | 20316 | 223916 |
220 pairs | 130599 | 110657 | 31635 | 158993 | 14498 | 225026 |
221 pairs | 127436 | 76205 | 20898 | 10818 | 4033 | 131837 |
222 pairs | 133400 | 75555 | 20787 | 7276 | 2841 | 113003 |
223 pairs | 131116 | 75220 | 19947 | 6136 | 1109 | 94227 |
224 pairs | 124170 | 60757 | 21736 | 460 | 427 | 59398 |
225 pairs | 120481 | 60670 | 22096 | 152 | 211 | 62764 |
226 pairs | 126806 | 60014 | 21783 | 130 | 131 | 62868 |
227 pairs | 131405 | 60616 | 21802 | 102 | 99 | 58957 |
The drop between 220 and 221 is when the data no longer fits into the default 128 MB memory limit on kvlds; around 224 the data no longer fits into the operating system disk cache (c1.medium instances have 1.7 GB of RAM).
For details about the benchmarks, see the BENCHMARKS file in the kivaloo source code tarball.