Skip to content
This repository has been archived by the owner on Mar 7, 2023. It is now read-only.

Database load time comparison

Jerrin Shaji George edited this page Mar 20, 2019 · 3 revisions

The following table compares the database load time of Go Redis [1] with C Redis [2]. Go Redis stores its data on a persistent memory device, and uses persistent memory in byte addressable mode. For C Redis, the database load time when it stores its data as an RDB dump both on SSD and on a persistent memory device (used like a storage disk in block I/O mode) is measured.

Data was inserted in to the databases using memtier benchmark [3]. Key value pairs of size between 32 and 1000 bytes are inserted into the database and the database load time measured.

It is seen that the database load time for Go Redis is significantly faster than C Redis. The database load of C Redis with SSD and pmemdisk were similar with database load with pmemdisk slightly faster than from SSD in some cases.

Datasize (GB) Go Redis (ms) C Redis PMEM (ms) C Redis SSD (ms)
0.246 75
0.27 1247 1219
0.479 116
0.53 2355 2375
0.912 206
1.01 4451 4561
1.303 265
1.44 6520 6479
1.974 364
2.19 10270 10085
2.644 559
2.93 12779 13045
3.1607 655
3.5 16311 16633
Database load time comparison

Notes

  • During initialization Go runtime was able to map all arenas at the same address as before and hence did not have to do any pointer swizzling.
  • Redis version: 5.0.3

References

[1] Todo
[2] https://github.com/antirez/redis
[3] https://github.com/RedisLabs/memtier_benchmark

Clone this wiki locally