Note:
This topic has been translated from a Chinese forum by GPT and might contain errors.Original topic: RPO测试是如何测试的

Has anyone looked into how to accurately test the RPO (Recovery Point Objective) for databases (MySQL, TiDB)?
Note:
This topic has been translated from a Chinese forum by GPT and might contain errors.Original topic: RPO测试是如何测试的
Has anyone looked into how to accurately test the RPO (Recovery Point Objective) for databases (MySQL, TiDB)?
The extreme test of the specific definition of RPO=0 as commonly mentioned.
This depends on the disaster recovery configuration, such as two locations and three centers, or three locations and five centers. Achieving RTO and RPO of 0 is very easy.
RPO, the number of records lost when a failure occurs. Currently, most domestic databases claim an RPO of 0, meaning no data will be lost even when a failure occurs. My basic understanding is that this is ensured through the Raft algorithm to maintain data consistency. That is, when the original leader fails, writes are temporarily blocked until a new leader is elected. Once the new leader is in place, the blocked writes are directed to the new leader. In this scenario, the client does not report an error but experiences a brief pause (the time it takes to switch leaders). Alternatively, during the leader election process, client writes may fail (failure does not mean data loss), and the client can keep retrying until the new leader is elected and the retry succeeds.
Based on this understanding, I think we can design a test as follows:
This is my basic understanding. Please correct me if there are any inaccuracies.
RPO refers to whether data is lost in various abnormal scenarios, such as one minute, five minutes, etc.
The unit of RPO is seconds (s), so it cannot be the number of lost records mentioned in the answer.
This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.