-
Notifications
You must be signed in to change notification settings - Fork 7
Database load time comparison
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 |
- 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
[1] Todo
[2] https://github.com/antirez/redis
[3] https://github.com/RedisLabs/memtier_benchmark