2025.02.03
ロート製薬が、社員の「気づき」をkintoneで集約・共有 全社的な業務改善を効率良く進めるための具体策
リンクをコピー
記事をブックマーク
水戸部章生氏:今までの話を振り返ると、Two Phase CommitはTSOを取得したり、リージョンの位置を把握したり、prewriteしたり、非常に何回もやり取りをするんだなと思いました。このような処理を改善すべく、2021年4月16日に新しいバージョンが出ました。TiDB 5.0では、これらの処理の高速化もサポートしています。
(スライドを指して)1つ目は非同期commitです。今までのcommitは、TSOは取得できますが、commitをするとprewriteをして、prewriteが終わるとまたcommit用のTSOを取得して、commit primaryを行ったらSuccessを返して、そのあとsecondaryのcommitが走るような流れでした。TiDB 5.0については、今回は紹介する時間がありません(笑)。
commit TSをどのようなロジックで設定しているか、別の機会で紹介できればと思います。prewriteをして確定すると、このデータはもう大丈夫ということで、commit処理を非同期で実施するので、ステップが1つ減ることになります。
そのほか、同じリージョンにだけデータを書き込む場合には、1PC、1Phase Commitで書き込む仕組みになっています。こちらは単純に、prewriteなしで1Phase Commitを行う仕組みによって、高速化を図っています。
また、TiDBはデフォルトでは悲観ロックになっています。もちろん他社のデータベースにはデフォルトでは悲観ロックになっているようなものもあるので、それらと合わせる意味もあります。また、先ほど話したとおり、CASやprewriteなどで実際にデータを書き込んだものの、ロックを取られていて元に戻さなければならない時には高負荷になってしまうので、先にロックを取得するような仕組みも使っています。
悲観ロックは、速くするためにいくつか技術的なことを行っています。1つは、メモリ上に2 Phase lockを置くこと。さらに、TiKVのnodeにコーディネーターの役割を持たせて、2PCブロックを回避することです。
(スライドを指して)簡単な図ですが、一番上にコーディネーターの動きがあります。下は、パーティシペーターです。最初にロックを取ったところでそれぞれのパーティシペーターが連絡をして、しっかり取り終わったあとにまた連絡を取り合うような流れで、回数を減らす動きをしています。
TiDBのロードマップも共有したいと思っています。TiDBはだいたい1年に1回くらいメジャーバージョンが上がっているので、たぶんこのTiDB 6.0も2022年には出るのではないかなと思っていますが(笑)。日々改善しているようなプロダクトです。
TiDB 6.0では、MySQL 8.0のCompatibilityを取る予定です。また、Cross-region deployment。複数のリージョンをまたいでやっていますが、TiDB 6.0では大阪のアクセスは大阪だけ、東京のアクセスは東京だけといった処理ができるようなデプロイメントもやろうとしています。
ほかにPoint-in-Time-Recoveryです。PiTRやDistributed bulk data importingのような機能も鋭意開発している状況です。(スライドを指して)一応ロードマップを示しますが、計画が変わる可能性もあるので、現状の共有として見ておいてもらえたらと思います。
最後におまけとして、AWS上での東京・大阪+ソウルの分散配置を少し試してみました。NewSQLなので先ほど話した地球規模まではいけませんでしたが、アジア規模でやってみました(笑)。
私たちのTiDBはAWSでインスタンスを生成して、デプロイが非常に簡単になっています。tiupコマンドで作ったyamlを読み込むと、すぐにインスタンスが作成されて稼働できるという2ステップで作っています。
今回のストアの配置は、大阪リージョンにTiKVと呼ばれるRaftのデータ置き場を3つ、東京リージョンに3つ、ソウルリージョンに1つとなっています。3つのコピーなので、それぞれのデータがしっかり分散されるような仕組みで置いています。
(スライドを指して)東京側に負荷をかけるインスタンスを生成して、この負荷だけを行ってみました。実際やってみると、少しレイテンシーが高くなっています。95パーセントタイルで89ミリセクです。99.9パーセントタイルでは252ミリセクになっていますが、今回はソウルリージョンにもリーダーを配置してしまっています。
今回は東京・大阪間だけでしっかりできるというコンセンサスのためなので、偶数でTiKVを置くとコンセンサスでは過半数が取れないため、ソウルリージョンにだけ1台置いて、そこにはリーダーを置かず、アクセスをしないようにしようと思いました(笑)。しかし、間違ってリーダーも配置してしまったので、89ミリセクと少し高めになっています。
東京・大阪だけでリーダーを配置すると40ミリや30ミリセクくらいになるので、サービスでもけっこう使えるのではないかと思えるくらいのレイテンシーだと思っています。
そして、実際に大阪に落としました。特に大阪がどうというわけではありませんが、たまたま大阪のリージョンの画面を開いていたので(笑)。
実際にリージョンを落としてみたいと思いますが、それはできないので、強制的にインスタンスを落としてみました。その結果、私たちのTiDBのRaftはリーダーのポイントが20秒で移動するようになっています。決して20秒間トランザクションを止めるわけではなく、20秒待機するようなかたちです。
(スライドを指して)上の図がCPUです。下の3つは大阪にあったTiKVノードが落ちているので、右側がなくなっています。一気にCPUが下がって、残りが上がってくる。下の図はTiKVの中にあるリーダーです。リーダーの配置がどうなるか。100個くらいあったリーダーがインスタンスを停止したことによりすべて落ちて、20秒後にほかのリージョンに移動しました。リーダーが移動したことによって、サービスはそのまま継続できます。
トランザクションはエラーなく稼働しているので、TPCC上ではまったくエラーのない状態でした。このようにNewSQLを使うと、新しいデータの置き方もできるのではないかと思っています。
私から、TiDBがどのような製品か、どのようなトランザクション処理ができるのかを簡単に紹介しました。そして、次のパートも私から始まります(笑)。ここからはPingCAP社として、私たちの製品を少し紹介して売り込もうと思っています。
私たちPingCAPは、製品やプロジェクトを複数持っています。(スライドを指して)こちらは、横軸にサービス型とサブスクリプション型、縦軸にそれぞれのプロダクトと分けて示しています。
左上がNewSQLで、「TiDB Cloud」というクラウド型データベース、フルマネージドサービスを提供しています。今はAWSとGCPの2つはフルマネージドサービスとして提供し、Azureは年内の提供を予定しています。他社のフルマネージドと同じくエンドポイント、つまり、お客さまに渡しても基本的なインフラ部分は私たちが管理する渡し方になります。
また、今紹介したTiDB Cloudの中に入っているTiDB分散型データベースも、通常のプロダクト、製品として出しています。もちろんオープンソースなので、お客さんがダウンロードして使うことも可能です。
NewSQLの中のKey-Valueストアのキーコンポーネント、ACIDサポートをしている「TiKV」と呼ばれるKey-Valueストアも製品として出しています。こちらはCNCFに寄贈しているプロジェクトですが、すでにGraduated Projectという成熟したプロダクトとして認定を受けています。スターも27,000くらい獲得した、非常に勢いのあるKVSだと思っています。
また、CNCFに参画しているので、Kubernetesをはじめ、Podが落ちたとしてもしっかりサービスを継続できます。ネットワークのスピリットを切る、CPUの負荷が上がってくる、メモリ使い切ったなどのシミュレートをするためのカオスエンジニアリングツールも出しています。「Chaos Mesh」と呼ばれるものですが、こちらも使用が可能です。
また、Chaos MeshとTiDB連携してTiPocketと呼ばれるものを作り、相互に連携しています。TiDBのリリースや何かしら不具合があった時のチェックにも、カオスエンジニアリングを使ってTiDBの品質を担保する取り組みを行っています。
さらに、TiDBエコシステムとして、移行・バックアップ・モニタリングツールも非常に充実しています。アップストリーム、ダウンストリームでBinlogを読み込んでTiDBに使わせるほか、Grafanaなどで監視し、TiDB OperatorをKubernetesタイアップでデプロイしています。
そのほか、インターフェイスとしてはSpark SQLもサポートしているので、ぜひお願いします。
関連タグ:
2025.01.30
2月の立春までにやっておきたい手帳術 「スケジュール管理」を超えた、理想や夢を現実にする手帳の使い方
2025.01.29
社内会議は「パワポ」よりも「ドキュメントの黙読」が良い理由 Amazon元本社PMが5つのポイントで教える、資料の書き方
2025.01.28
適応障害→ニート→起業して1年で年収1,000万円を達成できたわけ “統計のお姉さん”サトマイ氏が語る、予想外の成功をつかめたポイント
2025.01.27
【冒頭会見全文】フジテレビ、女性が被害報告後も“中居正広氏には正式に調査が行われなかった” 出演番組の継続については「憶測を呼ぶことを恐れ」と主張
2025.01.31
古い手帳から新しい手帳への繰り越し方 手帳を買い換えたら最初に書き込むポイント
2025.01.24
部下が愚痴をこぼした時は「同感」せずに「共感」する 1on1コミュニケーションの専門家が教える、上司側の“聞き方”のコツ
2025.01.23
コミュ力の高い人が無自覚にやっている話し方5選 心を開かない相手の本音を引き出す相づちと質問のテクニック
2025.01.30
とりあえず60点の資料で議論、不要な文章は「容赦なく削る」 Amazon元本社PMが語る、ドキュメント作成の7ステップ
2025.01.24
退職金がない人はiDeCoを月1万円+NISAがおすすめ 退職所得控除が改悪されてもiDeCoのメリットが大きい理由
2025.01.29
ニートから1年で年収1,000万になった目標設定術 “統計のお姉さん”サトマイ氏が明かす、週1で振り返りたいポイント