echo "[h]Overview[/h]"
echo "In this benchmark, we drive the database with an insert-only workload. For this, we continuously insert keys of sizes between 8 to 16 bytes with corresponding values of sizes between 8 and 128 bytes."
echo "The databases are configured to expose performance figures as achievable for in-memory database sizes. They are allowed to keep a high amount of unflushed data in memory. This is mainly to improve comparability to Membase, which does not support any different behavior (as of Membase version 1.6.0.1)."
echo ""
echo "[h]Rationale[/h]"
echo "Running an insert-only workload reveals how well the database can handle quickly growing data sets. This workload reflects the performance to be expected for tasks like in-database logging or dump loading of data."
echo ""
echo "[h]Notes about the results[/h]"
echo "RetinkDB provides results which are clearly above those of Membase and MySQL. Both Membase and MySQL achieve a steady insert throughput of 100k - 150k queries per second. RethinkDB on the other hand maintains an insertion rate of more than 500k keys per second for the first 750 seconds. The following drop in RethinkDB's performance is due to the fact that the in-memory cache has almost filled up with dirty pages at this point. In order not to overflow the cache, RethinkDB at that point starts forcing dirty data to disk, which temporarily delays writing queries. Also, RethinkDB applies throttling mechanisms at this point, to specifically delay write queries, while keeping the database responsive to readers."
echo "As a consequence, RethinkDB can provide vastly superior peek insert-performance. Only when more data gets inserted than the disk write performance can handle for an enlonged period of time, the system becomes bound by disk write performance eventually."
