SlideShare une entreprise Scribd logo
1  sur  44
Rapid Rebalance
Aerospike v3.8.3
2016/08/02
Aerospike Meetup #4 in Tokyo
上原 誠
Web系企業で
AerospikeとかCassandraとかクラウドとかHadoopとかやってました
今日は日本のコミュニティ代表
上原 誠 (@pioho07)
ポケモントレーナーレベル:12
チーム:赤
マイグレーションのつらたん(´・ω・`)
運用上必ずある”静的なコンフィグ変更”、”ASバージョンアップ”、”ノードメンテナ
ンス”で必ずマイグレーションは走ります
 マイグレーション中はレプリケーションファクタがマイナス1
 マイグレーションの時間が長い(3TBくらいだと20h超え)
 クラスタ内のノード全台にバージョンアップする場合、マイグレーション終了を
待つ必要があるので、所要時間は↑掛けるノード数(5台ノードクラスタだと1週間)
 マイグレーション速度のスレッド調整は手動
 マイグレーション中の負荷がサービスに若干影響出ることも
マイグレーションについては
今回説明しないのでこの辺見てね
Rapid Rebalance in v3.8.3 in June.
Rapidっていい響じゃないか!
Intro
リンク切れやノード再起動のような、クラスタ構成の変更後に、
パーティションのリバランスや同期を行うプロセスをマイグ
レーションと言います。3.8.3から、このマイグレーションは、
従来のものに比べて、40倍の速度で行うことができるようにな
りました。システム運用チームは、アップグレードや静的設定
の変更等を非常に短時間で行うことができるようになります。
また、マイグレーション動作時のレイテンシへの影響を小さく
することができるようになりました。
Intro
 マイグレーションはリンク障害、ノードリスタート時のリバ
ランスと同期プロセス
 EEのv3.8.3ではこのマイグレーションが40倍速くなった
※新規ノード追加とかフォーマットされたノード追加、また多
分ノード削除時もRapid対象外。
つまりメンテナンスや障害によるプロセスのリスタートやネッ
トワークの瞬断のような一時的な状況をRapid Rebalanceは想定
している。
要約
High-Level Design
移行データの受信側から送信側にパーティション内のデータの
メタデータをdigestの順番で送信し、送信側では、自分側のパー
ティション内のデータと比較し、どのデータを送るのかの判断
をします。この判断には、conflict resolution(競合回避)を使
い、送信側が勝ったデータのみを受信側に送信します。
High-Level Design
 受信側から送信側にパーティションのメタデータを送る。
 送信側でデータを比較し送る必要があるデータを判断し送る。
この判断にはgenerationかlast-update-timeのいずれかを使っ
て判定する。
要約
Challenges
3つあります。
①マイグレーションはfabric層の上で動作し、これは、メッセー
ジの順番を変える可能性があります。そのため、メタデータを
順番通りに送ることは難題で、今回、シーケンス番号を付加す
ることにしました。送信側が一つ前のシーケンス番号をackした
場合のみ、受信側から次の番号のものを送り、送信側は最終番
号を管理することになっています。もし、小さな番号を受け
取った場合、ackを返しますが、処理は行いません。これにより、
メッセージは順番通りに到着することになります。タイムアウ
トや再送信の場合、メッセージは、順番通り、かつ、一回しか
処理されません。
Challenges
②受信側から送信側にメタデータを送る際に、一つ一つのレ
コードのメタデータを送ると非常に遅くなるため、このメタ
データを128KBの固まり(以下、バッチ)にして送ることにし
ました。
Challenges
③いつでも、このメタデータを送る方法が速い訳ではありませ
ん。送信側のデータが非常に少ない場合、受信側のメタデータ
を送ることの方が、送信側の全てのデータをそのまま送ること
よりもコストがかかる可能性もあります。そこで、平均として、
メタデータの1つのバッチで、1つのみのレコードを送るような
パーティションには、このRRを適用しない(従来と同じによう
に、すべてのデータを送る)ことにしました。
Challneges
 ①メタデータを順番通り送るためシーケンス番号を付加しま
した。送信側が1つ前のackを確認してから次のバッチを受け
取る。最終番号を管理してる。もし若い番号を受け取っても
処理しない。
 ②メタデータをレコード単位ではなく128KB単位(バッチ)で送
る
 ③データ量によってはメタデータのやりとりのコストが大き
くなるので、RRを使わず従来の方法で送る場合もある
要約
Implementation
① 送信側から受信側に、開始メッセージ(RRをサポートしている
こととそのパーティション内のデータ数を含む)を送る。
② 受信側は、(Challenge③)を考慮して、RRを使うか否かのackを返
します。
③ 受信側がRRを利用する場合、メタデータのバッチを生成するた
めのproducerとconsumerのスレッドを立てます。
④ producerスレッドは、対象のパーティション内のデータをス
キャンし、メタデータ・バッチを作成し、キューに入れます。
Implementation
⑤ consumerスレッドは、キューからバッチを取りだし、シーケンス番
号を付けて、送信側に送ります。consumerは、受信側からackが返って
くるまでは、次のバッチの処理を開始しません。
⑥ 並行して、送信側は、受信側がRRをサポートしているかを含んだ開
始メッセージを受け取り、マイグレーションのためのデータのスキャン
を開始します。RRがサポートされている場合、メタデータ・キューを
ブロックします(ここちょっと詳細不明、1つづつ処理する為?でも
キューでしょ?)。
⑦ 送信側が受信側からのバッチを受け取った後、それをローカルの
キューに入れ、受信側にackを返します。
⑧. 送信側では、バッチの内容を調べ、受信側に送るデータの判断をし
ます。
Implementation
 ①~⑧あとでお読みください。。要約
Conclusion
運用者にとり、RRを利用することで、サーバのアップグレード
や静的設定の変更等の際のマイグレーションを日単位から分単
位に短縮することが可能になります。
Conclusion
 運用者はハッピーになるでしょう要約
検証環境
 Aerospike Server Spec
Aerospike Server x3, Replication Factor 2
OS CentOS6,
m3.xlarge,
SSD 100GB x3, IOPS 3000
SSD Capacity 900GB(HWM 50%)
MEM Capacity 42GB(HWM 60%)
Before Binary:aerospike-server-community-3.6.3-el6
After Binary:aerospike-server-enterprise-3.8.4-el6
検証環境
 Client
Java Client Library 3.2.4
 Aerospike Management Console 3.6.9
aerospike-amc-enterprise-3.6.9-el6.x86_64.rpm
旧バージョンで試す
※データやスペックなど環境によって結果は変わります。あしからず。
一例として参考にしてもらえればと。
./run_benchmarks -h xxx.xxx.xxx.xxx -p 3000 -n test -k 100000000 -l 30 -s 1 -o
S:1500 -w RU,0 -z 16
約1億件のデータでレプリ込で300GBの容量
1レコード1500byteでちょっとでかい。。
Let’s Try!
プロセスのリスタート実施
12時間くらいかかった。。
SSD本数とかIOPSとか低めにしてたのもあるかと
 1台プロセスをリスタート。10:54
 1時間15分くらいしてノードイン、12:16にクラスタイン
Versionup to v3.8.4
Versionup to v3.8.4
 1台プロセスをリスタート。10:54
 1時間15分くらいしてノードイン、12:16にクラスタイン
versionup to v3.8.4
 1台プロセスをリスタート。10:54
 1時間15分くらいしてノードイン、12:16にクラスタイン
新バージョンで試す
※データやスペックなど環境によって結果は変わります。あしからず。
一例として参考にしてもらえればと。
Let’s Try!
バージョンアップ後、プロセスのリスタート実施(データはそのまま同じ)。
ノードのクラスタイン確認。02:42:26
Let’s Try!
バージョンアップ後同じデータに対してプロセスのリスタート実施
Mean of Partitions log
absent: Number of partitions not owned by this node
sync: Number of non-master partitions owned by this node
actual: Number of master partitions owned by this node
actual + sync + absent = 4096 partitions for the namespace
マイグレーション完了確認。02:43:39
1分13秒
40倍どころじゃないけど
600倍近い・・
READ/WRITEしながらマイグレーション
してなかった、、(´・ω・`)
WRITE: 20000TPSくらい
READ: 2000TPSくらい
5分プロセス落としてから起動する
ノードクラスタイン確認。03:01:32
マイグレーション完了確認。03:17:39
16分07秒
44倍!
ほう!!
サーバー側負荷こんな感じ
No Migration
Migration
※ちなみにノードのクラスタアウトもテストしましたがRRのような速度は出ていません。
正確な値を出す時間はありませんでしたがRR適用外確定です。そりゃそうだね。
まさかのドキュメント通り早い
今回の定常的に数万レベルのWRTEされてる
状態もAerospikeのワークロードケースとして
ベターじゃないかな
Rapid Rebalanceの処理フローを絵
にしてますが、この感性は日本人
にはないなぁ・・
はい、地味な機能ですよね。
地味だけれども運用する人にとったら
これはうれしい
私は運用してたらほんとうれしい
Rapid Rebalance so good!
But this is the Enterprise Edition functionality.
Mr. Braian
Please also add in a Community Edition.
Thankyou very match
今日はこれを言いに来ました
ご清聴ありがとうございました

Contenu connexe

En vedette

Aerospike v3 install
Aerospike v3 installAerospike v3 install
Aerospike v3 install
Makoto Uehara
 
いままで使ってきた携帯電話
いままで使ってきた携帯電話いままで使ってきた携帯電話
いままで使ってきた携帯電話
Ippei Ogiwara
 
Hadoopの紹介
Hadoopの紹介Hadoopの紹介
Hadoopの紹介
bigt23
 

En vedette (20)

Aerospike 02 監視
Aerospike 02 監視Aerospike 02 監視
Aerospike 02 監視
 
AWSome Day Helsinki Intro
AWSome Day Helsinki IntroAWSome Day Helsinki Intro
AWSome Day Helsinki Intro
 
NoSQL in Real-time Architectures
NoSQL in Real-time ArchitecturesNoSQL in Real-time Architectures
NoSQL in Real-time Architectures
 
Aerospike Architecture
Aerospike ArchitectureAerospike Architecture
Aerospike Architecture
 
Aws st 20130522-piop_sbench
Aws st 20130522-piop_sbenchAws st 20130522-piop_sbench
Aws st 20130522-piop_sbench
 
AWSと色の話 - JAWS-UG中央線 第5回勉強会 LT
AWSと色の話 - JAWS-UG中央線 第5回勉強会 LTAWSと色の話 - JAWS-UG中央線 第5回勉強会 LT
AWSと色の話 - JAWS-UG中央線 第5回勉強会 LT
 
Aerospike & GCE (LSPE Talk)
Aerospike & GCE (LSPE Talk)Aerospike & GCE (LSPE Talk)
Aerospike & GCE (LSPE Talk)
 
Aerospike v3 install
Aerospike v3 installAerospike v3 install
Aerospike v3 install
 
とあるKVSをAutoscalingしてみる
とあるKVSをAutoscalingしてみるとあるKVSをAutoscalingしてみる
とあるKVSをAutoscalingしてみる
 
Aerospike xdr (Cross Datacenter Replication)
Aerospike xdr (Cross Datacenter Replication)Aerospike xdr (Cross Datacenter Replication)
Aerospike xdr (Cross Datacenter Replication)
 
Introduction to Redis - LA Hacker News
Introduction to Redis - LA Hacker NewsIntroduction to Redis - LA Hacker News
Introduction to Redis - LA Hacker News
 
Aerospike deep dive LDTs
Aerospike deep dive LDTsAerospike deep dive LDTs
Aerospike deep dive LDTs
 
Touch the mahout
Touch the mahoutTouch the mahout
Touch the mahout
 
NamenodeHA導入背景と運用状況
NamenodeHA導入背景と運用状況NamenodeHA導入背景と運用状況
NamenodeHA導入背景と運用状況
 
ansible 社内お勉強会資料
ansible 社内お勉強会資料ansible 社内お勉強会資料
ansible 社内お勉強会資料
 
20131209_buildinsidermeetup
20131209_buildinsidermeetup20131209_buildinsidermeetup
20131209_buildinsidermeetup
 
サービスを成長させる為の開発について
サービスを成長させる為の開発についてサービスを成長させる為の開発について
サービスを成長させる為の開発について
 
Javaone報告会
Javaone報告会Javaone報告会
Javaone報告会
 
いままで使ってきた携帯電話
いままで使ってきた携帯電話いままで使ってきた携帯電話
いままで使ってきた携帯電話
 
Hadoopの紹介
Hadoopの紹介Hadoopの紹介
Hadoopの紹介
 

Plus de Makoto Uehara (6)

AutoScaling & SpotInstance Handson
AutoScaling & SpotInstance HandsonAutoScaling & SpotInstance Handson
AutoScaling & SpotInstance Handson
 
aerospike on aws
aerospike on awsaerospike on aws
aerospike on aws
 
20170803 bigdataevent
20170803 bigdataevent20170803 bigdataevent
20170803 bigdataevent
 
Ecs words
Ecs wordsEcs words
Ecs words
 
Gcpug tokyo february 2016
Gcpug tokyo february 2016Gcpug tokyo february 2016
Gcpug tokyo february 2016
 
Aws st 20130617-auto_scaling
Aws st 20130617-auto_scalingAws st 20130617-auto_scaling
Aws st 20130617-auto_scaling
 

Dernier

Dernier (7)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

Aerospike Rapid Rebalance