第29章: リソース

プラネタリスケールコンピュータは物理的なリソース上で動作します:コンピュート(命令を実行するプロセッサ)、メモリ(アクティブデータのための高速ストレージ)、永続ストレージ(耐久性のあるデータのための低速ストレージ)、そしてネットワーク(すべてを接続するリンク)です。これらのリソース——その特性、限界、コスト——を理解することは、効率的なシステムの設計に不可欠です。

各リソースタイプには速度と容量の階層があります。コンピュートについて:レジスタ、L1キャッシュ、L2キャッシュ、L3キャッシュ、メインメモリ、ディスクの順で、各ステップはおおよそ前のステップより1桁遅く1桁大きくなります。ストレージについて:NVMe SSD、SATA SSD、回転ディスク、テープの順で、アクセス時間はマイクロ秒から秒の範囲に及びます。ネットワークについて:ループバック、ローカルネットワーク、データセンターネットワーク、広域ネットワーク、大陸間リンクの順で、レイテンシーはマイクロ秒から数百ミリ秒の範囲に及びます。

リソースコストは桁違いに異なります。CPUサイクルのコストは実質的にゼロです。ディスクI/Oにはミリ秒単位のコストがかかります。大陸間のネットワークラウンドトリップには数百ミリ秒のコストがかかります。キャッシングサービスは、この階層を活用して、頻繁にアクセスされるデータをメモリ(ナノ秒)に保持し、ストレージ(ミリ秒)やリモートサービス(数十ミリ秒)からの取得を避けています。