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.