マシンキャッシュ
マシンキャッシュとは、中央処理装置(CPU)またはメインメモリ(RAM)と、ハードドライブやネットワークリソースなどのより低速なストレージデバイスの間に位置する高速データストレージ層を指します。その主な機能は、頻繁にアクセスされるデータを保存し、システムがプライマリストレージにアクセスするよりもはるかに速く情報を取得できるようにすることです。
現代のデータ集約型アプリケーションにおいて、レイテンシ(命令の後にデータ転送が開始されるまでの遅延)は大きなボトルネックです。適切に実装されたマシンキャッシュは、このレイテンシを大幅に削減します。高速で局所化されたメモリからリクエストを処理することにより、CPUが低速なI/O操作を待つ必要がなくなり、アプリケーションの応答性とスループットの向上に直接つながります。
キャッシングは局所性の原理に基づいて動作します。時間的局所性(今データにアクセスすれば、間もなく再びアクセスされる可能性が高い)と空間的局所性(今データにアクセスすれば、その近くのデータも間もなくアクセスされる可能性が高い)です。リクエストが来ると、システムはまずキャッシュをチェックします。データが存在する場合(「キャッシュヒット」)、即座に返されます。存在しない場合(「キャッシュミス」)、システムはより低速なソースからデータをフェッチし、使用した後、将来の使用のためにキャッシュにコピーを保存します。
マシンキャッシュは、技術のさまざまなレイヤーに展開されています。
マシンキャッシングを利用する利点は定量化できます。
効果的なキャッシュを実装することは、複雑さを伴わないわけではありません。主な課題には以下が含まれます。
関連する概念には、メモリ階層、コンテンツデリバリーネットワーク(CDN)、データベースレプリケーションがあります。これらのシステムがどのように相互作用するかを理解することは、スケーラブルで高性能なアーキテクチャを設計するために極めて重要です。