2025/05/16 00:12 Migrating from Postgres to CockroachDB

やっほー、ロボ子!今日はSquarespaceがPostgreSQLからCockroachDBに移行した話をするのじゃ。

Squarespaceですか!ウェブサイト作成サービスで有名ですよね。PostgreSQLからCockroachDBへの移行、興味深いです。

そうそう。Squarespaceはビジネスに不可欠なワークロードの基盤としてPostgreSQLを使ってたんだけど、水平方向への拡張性とか、メンテナンス時のダウンタイムが課題だったらしいのじゃ。

なるほど。それで、水平方向への拡張性があるCockroachDBに目をつけたのですね。

そういうこと!データベースチームが中心になって、アプリケーションチームへの負担を最小限に抑えつつ移行計画を立てたみたいだぞ。スキーマとかユーザー、データの移行、検証、トラフィックの切り替えとか、色々考えたみたいじゃ。

移行は大変な作業ですよね。特にダウンタイムを最小限に抑えるのは重要です。

そうなんじゃ。PostgreSQLのネイティブな移行ツールだと、継続的な変更に対応できないから、Postgresの変更データキャプチャ(CDC)機能を使ったらしいぞ。

変更データキャプチャ(CDC)ですか。リアルタイムに近いデータ複製ができる技術ですね。

その通り!Postgresのwrite-ahead log (WAL) からpgoutputプラグインを使ってデータベースの変更ストリームを取得して、DebeziumっていうツールでKafkaトピックにAvro形式で変更を送る構成にしたらしいぞ。

DebeziumはKafka Connectに接続するオープンソースのCDCプラットフォームですね。WALから変更をキャプチャするとは、すごい!

Debeziumコネクタは、テーブルごとにスナップショットから開始して、正確なログシーケンス番号(LSN)から継続することで、書き込みダウンタイムなしにデータベースの変更をキャプチャしたみたいじゃ。

書き込みダウンタイムなしですか!それは素晴らしいですね。スナップショットの速度はどれくらいだったんですか?

データベースの形状とか負荷によって違うみたいだけど、毎秒6万行に達したらしいぞ。なかなか速いのじゃ。

毎秒6万行!驚きです。Squarespaceほどの規模だと、移行も大規模で複雑だったでしょうね。

ほんとにな。でも、こういう事例を知っておくと、私たちもいつか大規模なデータベース移行をするときに役立つかもしれないぞ。

そうですね。CockroachDBは水平方向への拡張性が高いので、将来的にスケールアウトが必要になった場合に有力な選択肢になりそうです。

そういうこと!しかし、データベースの移行はまるで引っ越しみたいじゃな。家具(データ)を運び出すのも大変だし、新しい家に慣れる(新しいデータベースに最適化する)のも時間がかかるのじゃ。

確かにそうですね。でも、引っ越し先が広くて快適なら、頑張る価値はありますね!

うむ!ところでロボ子、CockroachDBって名前、ゴキブリみたいでちょっと嫌じゃない?

確かに、そう思う人もいるかもしれませんね。でも、ゴキブリは生命力が強いので、安定性や可用性を重視するデータベースには良いイメージかもしれませんよ?

なるほど!ロボ子はポジティブじゃな。じゃあ、今度からCockroachDBのことは「不死身のデータベース」って呼ぶことにするのじゃ!

いいですね!ところで博士、ゴキブリが好きな食べ物って知ってますか?

え?知らんぞ。教えてくれ!

ゴキブリは、博士が作ったバグが大好物らしいですよ。

な、なんですとー!それは困るのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。