## 定義 スケーラビリティ障害(scalability fault)とは、システムの 1 つ以上の側面(ノード数・データ量・並行リクエスト数など)がある閾値を超えて増加したときにのみ顕在化し、小規模では潜在したままの障害を指す。機能・性能・セキュリティ・並行性障害と症状(性能劣化・リソース枯渇・レースコンディション等)が似ることがあるが、決定的な違いは「スケール依存の顕在化」という性質にある——コードは小規模では正しく動作するが、ある閾値を超えると破滅的に失敗する。(Source: [[@2026__arXiv__Understanding and Detecting Scalability Faults in Large-Scale Distributed Systems]]) 中核概念は「次元コード断片(Dimensional Code Fragment, DCF)」——反復回数が 1 つ以上のスケール可能な次元(ロード・データ・クラスタ・障害数)と相関するコード断片——である。DCF はそれ自体が障害でもアンチパターンでもなく、スケーラブルなシステムの基本的な構成要素だが、性能クリティカルパスに存在する・外部 API/IO 呼び出しを含む・グローバルロックで保護されている、といった特定のアンチパターンと結びついたときに初めて障害化する。(Source: [[@2026__arXiv__Understanding and Detecting Scalability Faults in Large-Scale Distributed Systems]]) 根本原因は 4 カテゴリに分類される: (1) compute(スケールに紐づく実行時間オーバーヘッド)、(2) unbound(スケールに紐づくリソース消費オーバーヘッド)、(3) bloat(スケーラビリティを制限するデータ構造設計)、(4) logic(大規模時にのみ表面化する論理的欠陥)。このうち compute と unbound はいずれも DCF を伴い、全体の 67.34% を占める。(Source: [[@2026__arXiv__Understanding and Detecting Scalability Faults in Large-Scale Distributed Systems]]) ## 横断的知見 - [[潜在的障害]]は Cook (1998) の「複雑システムは常態的に潜在的欠陥の混合を内包し、複数障害の組み合わせによってのみ破滅に至る」という一般理論を提示するが、スケーラビリティ障害はその**スケール軸への特殊化**として読める: 潜在化の条件が「他の障害との組み合わせ」ではなく「単一の次元(ノード数・データ量等)が閾値を超えること」という単純化された形で与えられる。これにより Cook が述べた「事前可視性の限界」を、DCF という具体的な観測可能プロキシ(反復回数とスケール状態の相関)に置き換えて突破しようとする点が ScaleLens の核心的な工夫と言える。(Source: [[@1998__CtL__How Complex Systems Fail]], [[@2026__arXiv__Understanding and Detecting Scalability Faults in Large-Scale Distributed Systems]]) - [[分散システム障害]]研究はこれまでコントロールプレーンの並行バグ・設定ミス・部分障害、あるいはシステム境界をまたぐクロスシステムインタラクション障害(データプレーン・管理プレーンの不整合)に注目してきたが、スケーラビリティ障害はさらに異なる軸——「単一次元の量的増加」という軸——を持つ障害クラスである。444 件中 25.5% を占める logic カテゴリ(コーナーケース・リーク・レース)は、クロスシステムインタラクション障害や部分障害研究と重なる可能性があるが、本論文の対象は主に compute/unbound の DCF 起因障害に絞られており、logic カテゴリの検出は将来課題として明示的に残されている。(Source: [[@2023__EuroSys__Fail through the Cracks - Cross-System Interaction Failures in Modern Cloud Systems]], [[@2026__arXiv__Understanding and Detecting Scalability Faults in Large-Scale Distributed Systems]]) - **スケーラビリティ障害の「スケール依存の顕在化」という性質は、コードレベルの粒度(ScaleLens論文が対象とするDCF)だけでなく、アーキテクチャレベルの粒度でも観察される**: 『ウェブオペレーション』12章(2011年)は、マスタ/スレーブ型レプリケーションの書き込みスケールについて「マスタの限界に達したら、スケールアウトの効果は急速に落ちていく」と述べる。この現象は、書き込み量というスケール可能な次元(コード内の反復回数ではなくクラスタ全体のトラフィック量)が閾値を超えたときにのみ性能劣化が顕在化するという点で、ScaleLensが定義する「スケール依存の顕在化」というスケーラビリティ障害の中核的性質と同じ構造を持つ。ただしScaleLens論文が対象とするのは単一プロセス内のコード断片(DCF)がスケールと相関して実行時間・リソース消費を悪化させるという**コードレベル**の障害であるのに対し、12章が描くのは複数サーバにまたがるレプリケーションアーキテクチャ全体が書き込み負荷の増大によって限界を迎えるという**アーキテクチャレベル**の障害であり、両者は同じ「スケール依存の顕在化」という性質を異なる粒度(コード対アーキテクチャ)で示す。ScaleLensの4分類(compute/unbound/bloat/logic)はいずれもコード断片を単位とするため、12章が描くようなアーキテクチャレベルのスケーラビリティ障害はこの分類の対象外にあると考えられる。(Source: [[@2011__OReillyJapan__ウェブオペレーション - Chapter 12 ウェブにおけるリレーショナルデータベースの戦略と戦術]] §12.2.2, [[@2026__arXiv__Understanding and Detecting Scalability Faults in Large-Scale Distributed Systems]]) - **『ウェブオペレーション』9章(2011年)が描く「キャッシュスタンピード」は、12章のレプリケーション書き込みスケール限界とは異なる層——リクエストを受ける側(フロントエンド・キャッシュ層)——で生じる、もう一つのアーキテクチャレベルのスケール依存障害である**: 12章がデータベースの書き込みスケール限界(マスタが書き込みを捌ききれなくなる)を描くのに対し、9章はリアクティブキャッシュ方式(キャッシュミス時に都度データベースへ問い合わせる)が、小規模なリクエスト量では問題なく動作するが、単一のホットキー(フロントページ)への同時リクエスト数がある閾値を超えてキャッシュ失効と重なると、全リクエストが一斉にデータベースへ殺到して過負荷に陥るという現象を報告する。両者はいずれも「小規模では正しく動くが、ある次元(書き込み量、あるいは同時リクエスト数)が閾値を超えると破滅的に失敗する」というスケーラビリティ障害の中核的性質を共有しながら、12章は**データを書き込む側**、9章は**データを読み出す側(キャッシュ経由の読み取り)**という、リクエストの流れの中で対称的な位置に現れる。9章の対策(memcachedを主体とするリバースプロキシへの刷新、データベースの非正規化と読み取り専用データベースの追加)は、ScaleLensの4分類(compute/unbound/bloat/logic)がいずれもコード断片(DCF)を単位とするのに対し、これもまた複数コンポーネント(プロキシ・キャッシュ・データベース)にまたがるアーキテクチャレベルの障害であり、ScaleLensの分類の対象外にあると考えられる。(Source: [[@2011__OReillyJapan__ウェブオペレーション - Chapter 12 ウェブにおけるリレーショナルデータベースの戦略と戦術]] §12.2.2, [[@2011__OReillyJapan__ウェブオペレーション - Chapter 9 予期しないトラフィック急増への対応]] §9.2, [[@2026__arXiv__Understanding and Detecting Scalability Faults in Large-Scale Distributed Systems]]) ## 未解決の問い - ScaleLensの4根本原因カテゴリ(compute/unbound/bloat/logic)はいずれもコード断片(DCF)を単位とするが、『ウェブオペレーション』12章が示すような**アーキテクチャレベル**のスケーラビリティ障害(レプリケーションの書き込みスケール限界等)を検出する手法は、コードレベルの静的解析(ScaleLens・ScaleView)とは別の枠組みが必要になるのではないか。両者を統一的に扱う分類は存在するか。 - bloat・logic カテゴリ(全体の 32.66%)は DCF を伴わないため ScaleLens の検出範囲外である。これらを検出するには、メモリフットプリント解析や並行性解析とどう組み合わせるべきか。 - マルチスレッド関連のスケーラビリティ障害(55 件のベンチマークで ScaleView が検出漏れした全 17 件がこれに該当)を検出するには、コールグラフ解析をどう拡張すべきか(著者らも将来課題としている)。 - Java・Apache エコシステムから帰納された 4 根本原因カテゴリ・11 アンチパターンの分類法は、非 JVM 系分散システム(C++/Go/Rust)や HPC のような密結合な計算応用領域でも成立するか。 ## 関連 - ソース: [[@2026__arXiv__Understanding and Detecting Scalability Faults in Large-Scale Distributed Systems]] / [[@2011__OReillyJapan__ウェブオペレーション - Chapter 12 ウェブにおけるリレーショナルデータベースの戦略と戦術]] / [[@2011__OReillyJapan__ウェブオペレーション - Chapter 9 予期しないトラフィック急増への対応]] - 概念: [[分散システム障害]] / [[潜在的障害]] / [[障害パターンプロファイリング]] / [[分散キャッシュ]] - 実体: [[ScaleLens]] / [[Hao-Nan Zhu]] / [[Cesar A. Stuardo]] / [[Haryadi S. Gunawi]] / [[MySQL]] ## 出典 - [[@2026__arXiv__Understanding and Detecting Scalability Faults in Large-Scale Distributed Systems]] - [[@2011__OReillyJapan__ウェブオペレーション - Chapter 12 ウェブにおけるリレーショナルデータベースの戦略と戦術]] §12.2.2(マスタ/スレーブレプリケーションにおける書き込みスケール限界という、アーキテクチャレベルのスケール依存障害) - [[@2011__OReillyJapan__ウェブオペレーション - Chapter 9 予期しないトラフィック急増への対応]] §9.2(キャッシュスタンピードという、フロントエンド・キャッシュ層側のスケール依存障害)