Scalability
スケーラビリティ(scalability)とは電気通信やソフトウェア工学において、システムまたはネットワークまたはアルゴリズムの、持つべき望ましい特性の1つで、利用者や仕事の増大に適応できる能力・度合いのこと。一種の拡張性である。より具体的には、システムを小規模なものからリソース(特にハードウェア)の追加によって大規模なものへと透過的に規模拡張できる能力はスケーラビリティの一種だといえる。リソースの量に比例して全体のスループットが向上するシステムはスケーラブルな(scalable)システムまたはスケーラビリティのあるシステムと呼ばれる。
システムの特性としてのスケーラビリティに一般的な定義を与えるのは難しい。具体的な事例においては、問題としている領域でスケーラビリティを確保するための条件を特定することが必要である。これはデータベース、ルータ、ネットワークなど情報工学の分野において非常に重要なことである。スケーラビリティは分散処理の透過性の概念と密接なつながりがある。
スケーラビリティの高さは様々な尺度で評価される。例として
規模透過性 負荷の高低に合わせてリソース・プールを拡大・縮小できること 位置透過性 ユーザーやリソースがどれだけ離れているか意識せずに、変わらない使い勝手でシステムが利用できること 異種透過性 システムを構成する機器やソフトウェアが異なっていることを意識せずに管理・利用できること がある。スケーラビリティについて議論する際には規模透過性のみを問題にすることも多い。
例えば、スケーラブルなデータベース管理システムではプロセッサやストレージを追加することでより多くのトランザクションを処理できるようにアップグレードでき、またアップグレードをシャットダウンなしに実行できる。
ルーティングプロトコルがネットワークの規模に関してスケーラブルであると言われるのは、Nをネットワーク内のノード数としたときに、各ノードに必要なルーティングテーブルのサイズが O(log N) に従って増大するときである。