MySQL億レベルのデータ移行の移行ポリシー
2806 ワード
ステップ
サブプロジェクトは、データ同期インタフェースを提供し、状況に応じて同期されたスレッド数と一括挿入されたデータ量を選択できます.具体的な手順:フルマイグレーション:現在のライブラリ内のすべての履歴データ(新しいプロジェクトはデータマイグレーションのインタフェースを提供し、大量にデータを移行することができ、このプロセスはライブラリ内の大部分のデータを消去する) インクリメンタルマイグレーション:フルマイグレーション開始時刻を記録し、マイグレーションフルマイグレーション中に変更するデータ .データの比較:インタフェースを通じてCassandraとMySQLの中のデータを比較して、最終的なデータの一致性は一定の99.99%以上の に達しますデュアルライト:フルマイグレーションとインクリメンタルマイグレーションに問題がないことをデータ比で確認した後、デュアルライトを開きます.ダブルライトに問題がある場合は、データのペアよりもダブルライトの問題を発見することができます. 切Cassandra読み:ダブル書き込みに問題がないことを確認した後、MySQL書き込みを閉じます.
テスト結果
Spring-data-cassandra5スレッド、各スレッド150データ、1時間、808万データ、13.4万/分 5スレッド、各スレッド500データ、15分、274万データ、22.8万/分Spring-data-cassandra接続駆動時の速度が遅すぎて、検査後、Spring-data-cassandraのAPIで、一括挿入操作、内部実現は1本1本挿入の であることが分かった.
Cassandra-driver
本機では、Cassandraの同時読み取りと同時書き込みを修正するスレッド数は32で、ロットごとのデータサイズは5000 kbで、読み取りと書き込みのタイムアウト注意は500000ミリ秒で、テスト結果は以下の通りです.は、ノード を使用する.は2つのノードに追加されました: commitLogを閉じ、2つのノード commitLogを閉じ、1つのノード サーバ上で実行、3つのノード Scylla-driver
Scylla-driverドライバを使用すると、Cassandra-driverとほぼ同じ速度になります.
##まとめ計3台のサーバにCassandraをインストールし、Cassandraパラメータの構成が完全に一致している場合、86サーバでのデータ移行速度は45万/分~60万/分、120サーバで70万/分~80万/分、106サーバで80万/分~85万/分です. データ移行中、Cassandraの同時スレッド、読み書きタイムアウト、JVMパラメータなどを修正してテストしてみましたが、データ移行中にサーバディスクが頻繁にIOしていることがわかりました.最終的なボトルネックはCassandraがmemtableのflushからディスクのSSTableにデータを転送することです.
サブプロジェクトは、データ同期インタフェースを提供し、状況に応じて同期されたスレッド数と一括挿入されたデータ量を選択できます.具体的な手順:
テスト結果
Spring-data-cassandra
Cassandra-driver
本機では、Cassandraの同時読み取りと同時書き込みを修正するスレッド数は32で、ロットごとのデータサイズは5000 kbで、読み取りと書き込みのタイムアウト注意は500000ミリ秒で、テスト結果は以下の通りです.
10 ,MySQL 5000 , 1000 , ,137 45.6 / 1000 21.9
10 ,MySQL 5000 , 2000 , ,76 38 / 1000 26.3
6 ,MySQL 5000 , 2000 , ,99 50 / 1000 20
6 ,MySQL 5000 , 5000 , ,52 52 / 1000 19.2
5 ,MySQL 5000 , 1000 ,7 ,400 57 / 1000 17.5
5 ,MySQL 5000 , 2000 , ,56 56 / 1000 17.8
5 ,MySQL 5000 , 5000 , ,36 36 / 1000 27.7
5 ,MySQL 5000 , 5000 , ,790 79 / 1000 12.6
5 ,MySQL 10000 , 5000 , ,632 63.2 / 1000 15.8
10 ,MySQL 5000 , 5000 , ,650 65 / 1000 15.3
5 ,MySQL 5000 , 5000 , ,760 76 / 1000 13.1
5 ,MySQL 5000 , 5000 , ,690 69 / 1000 14.5
5 ,MySQL 5000 , 5000 ,2.5 ,110 ,44 / 1000 22.7
5 ,MySQL 1000 , 5000 ,3 ,133 , 44 / 1000 22.7
5 ,MySQL 10000 , 5000 ,3 ,84 , 28 / 1000 35.7
10 ,MySQL 10000 , 5000 ,2 ,87 , 43.5 / 1000 22.9
5 ,MySQL 10000 , 5000 , 80 / 1000 12.5
5 ,MySQL 20000 , 5000 , 85 / 1000 11.8
5 ,MySQL 10000 , 10000 , 80 / 1000 12.5
10 ,MySQL 10000 , 5000 , 76 / 1000 13.1
Scylla-driverドライバを使用すると、Cassandra-driverとほぼ同じ速度になります.
##まとめ