August 2017
Intermediate to advanced
590 pages
8h 40m
Japanese
執筆:Alejandro Forero Cuervo
編集:Sarah Chavis
本章では、データセンター内のロードバランシングに焦点を当てます。特に注目するのは1つのデータセンター内で一連のクエリを分配する処理のアルゴリズムです。本章では、処理を行う個々のサーバーにリクエストをルーティングするためのアプリケーションレベルのポリシーを取り上げます。低レベルのネットワーキングの原理(例えばスイッチやパケットのルーティング)やデータセンターの選択については、本章では取り上げません。
データセンターに到着する一連のクエリがあるとしましょう。それらはそのデータセンター自体、リモートのデータセンター、あるいはそれらの両方から来るもので、データセンターがクエリを処理するために持っているリソースを超えないペースでやってくる(あるいは超えるとしてもごく短時間)ものとします。また、データセンター内には複数のサービスがあり、クエリはそれらのサービスを利用するためのものです。それらのサービスは、均一で交換可能な大量のサーバープロセスとして実装されており、それらのプロセスは多くの場合さまざまなマシン上で動作しています。通常、最も小さなサービスはそういったプロセスを最低でも3つ使って動作しており(それ以下になれば、1つのマシンを失うだけで50%以上のキャパシティが失われてしまうことになります)、最も大規模なものなら10,000以上のプロセスを使用していることもあります(データセンターのサイズに依存します)。典型的にはサービスは100から1,000のプロセスで構成されます。私たちは、こういったプロセスをバックエンドタスク(あるいは単にバックエンド)と呼んでいます。他のタスクは ...