RDS-MySQLのクロスリージョンリードレプリカの昇格時間を計測してみました。
計測方法
- Masterはバージニア、Replicaはオレゴン
- MySQLのバージョンは5.6.23
- 1DB、約6000万レコード
- 計測開始はオレゴン側で[リードレプリカを昇格]ボタンを押す
- [SELECT CURTIME()]で時間表示とともに、Insertを発行
- 昇格前はInsertに失敗するはず
- 昇格後はInsertに成功するはず
# 昇格前 mysql> SELECT CURTIME();INSERT INTO item () VALUES (); +-----------+ | CURTIME() | +-----------+ | 02:50:01 | +-----------+ 1 row in set (0.07 sec) ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement mysql> SELECT CURTIME();INSERT INTO item () VALUES (); +-----------+ | CURTIME() | +-----------+ | 02:51:36 | +-----------+ 1 row in set (0.08 sec) ERROR 2013 (HY000): Lost connection to MySQL server during query # 昇格のための再起動中 mysql> mysql> mysql> SELECT CURTIME();INSERT INTO item () VALUES (); ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... ERROR 2003 (HY000): Can't connect to MySQL server on 'test-rep3.cuplkakj9btg.us-west-2.rds.amazonaws.com' (111) ERROR: Can't connect to the server No connection. Trying to reconnect... ERROR 2003 (HY000): Can't connect to MySQL server on 'test-rep3.cuplkakj9btg.us-west-2.rds.amazonaws.com' (111) ERROR: Can't connect to the server # 昇格後 mysql> mysql> mysql> SELECT CURTIME();INSERT INTO item () VALUES (); No connection. Trying to reconnect... Connection id: 1 Current database: testdb +-----------+ | CURTIME() | +-----------+ | 02:51:44 | +-----------+ 1 row in set (0.07 sec) Query OK, 1 row affected (0.09 sec) mysql> mysql> mysql> SELECT CURTIME();INSERT INTO item () VALUES (); +-----------+ | CURTIME() | +-----------+ | 02:51:47 | +-----------+ 1 row in set (0.08 sec) Query OK, 1 row affected (0.08 sec) Add Comment
結果
- 再起動の間、約8秒ほどのサービス断でオレゴンで利用可能となった
- 1レコードのDBに対しても同じく8秒程度だった
- データ件数により変わるかもしれないが、大きな違いなさそう?