序文
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
なぜゴキブリなのか?
CockroachDB: The Definitive Guide』へようこそ!本書では、クラウド用に構築された分散SQLデータベースであるCockroachDBを使ってアプリケーションを構築し、デプロイする方法を学ぶ手助けをしたい。
まず、誰もが尋ねる質問だ:なぜCockroachDBという名前なのか?
エンジニアリングの不変性のひとつは、物事は壊れるということだ。十分な規模があれば、物事は常に壊れている。1台のマシンで1年に1度起こるような故障が、何百ものシャードを運用していると毎日のように起こるようになる。大規模に対応しようとするシステムは、フォールトトレランスを中核的な責任として扱わなければならない。これは、GoogleのMapReduceフレームワークの重要な洞察のひとつである。すべての計算が比較的制限されたフレームワーク内に収まるように要求することで、障害が発生した後に必要な作業を自動的に再実行することがシステムにとって簡単になった。
高可用性レプリケーションは、苦労して設定した結果ではなく、初日からデータベースのデフォルトの状態であるべきだ。そして、2日目(あるいは200日目)を見据えて、データベースはアプリケーションとともに成長し、暴走がパニックに陥ることなく、成功を祝うことができるようにしなければならない。
私たちがリレーショナルデータベースをゼロから構築しようとしたとき、一貫性、ネイティブレジリエンス、データローカリティ、そして大規模なスケールを最新のクラウドアプリケーションにもたらしたいと考えた。私たちの構想は、パブリッククラウド上に与えられたあらゆるリソースをコロン化し、容赦なく自己最適化できるシステムだった。利用可能なスペースを利用し、グローバルに分散されたノードセット全体で平衡に達するデータベースは、新しいリソースを取り込むだけでなく、マシンやデータセンター、あるいは地域全体がダウンしても、データベースは残りの利用可能なリソースを単純に均等化する。
私たちは、ペリプラネタ・ブルンネア(厄介なゴキブリ)のように、世界的に偏在し、根絶することが不可能なデータベースを構築することを目指した。こうしてCockroachDBが誕生した。
CockroachDBを構築する
CockroachDBの起源は、必然の物語である。文字通り、スペンサー・キンボール、ピーター・マティス、そして私、ベン・ダーネルは、私たち自身が必要とするリレーショナル・データベースの構築に着手した。
Googleで一緒に働いた後、私たち3人はしばらく別々の方向に進んだ。最終的に私たちは、Viewfinderという新興企業で(スペンサーの弟でマイクロソフトSQLサーバーのベテランであるアンディとともに)再び一緒に働くことになり、写真の整理とソーシャル共有のためのアプリケーションを開発した。もちろん、私たちはそれが成功することを望んでいたので、スケールの大きなものを作りたかった。結局のところ、スペンサーが言うように、「時にはクソも起こる。そして、規模が大きくなれば、クソは常に起こる。"
そのプロジェクトの歴史を考えると、大規模なスケーラビリティを必要とするほどうまくはいかなかった。また、モノリシックデータベースやMySQLのシャーディングなどに自分たちを固定したくなかった。私たちは以前にもそのような道を通ったことがあり、それが私たちの行きたいところにつながらないことはわかっていた。そのため、最善の選択肢としてNoSQLのオプションを検討し、最終的にDynamoDBに落ち着いた。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access