4 ms·
One of the additional benefits of RDB is the fact for a given database size, the number of I/Os on the system is bound, whatever the activity on the database is
by Androsynth 15y ago
One of the additional benefits of RDB is the fact for a given database size, the number of I/Os on the system is bound, whatever the activity on the database is. This is a property that most traditional database systems (and the Redis other persistence, the AOF) do not have.
Can you expand on this? Specifically:
-Do you mean 'bound' as in 'limited by' or 'known'?
-Why are RDB snapshots I/O bound when other systems are not?
-Why is this an advantage?
- antirez 15y agoIf you write the DB on disk sequentially, every 5 minutes, the I/O you perform is a fixed amount regardless of the amount of writes you have against the dataset. For instance using pipelining Redis can easily peak 400k operations per second, and you can have a few instances in the same box. In this setup 5 minutes of data loss may be acceptable, if you are writing 2 millions of records per second, and RDB make this possible. The I/O performed will always be proportional to the number of keys, it is not proportional to the operations the instances are receiving per second. With Redis AOF, and generally with most other databases, it is unlikely that you have an operational mode where the I/O is simply proportional to the size of the data set, and not to the amount of reads/writes.
- jorangreef 15y agoWhat about a hybrid RDB/AOF option, where AOF is not written immediately but every N seconds, using the latest delta?