I am Charmie

メモとログ

スケーラビリティ

参考文献: Pythonではじめるソフトウェアアーキテクチャ

スケーラビリティ = 計算リソースの追加によりソフトウェアシステムが拡張される程度

システム拡張

  1. 垂直スケール (スケールアップ): 計算ノード内でリソース(CPUやRAM)を追加,リソースを有効活用
  2. 水平スケール (スケールアウト): 計算ノード(負荷分散させたサーバクラスタ)を新しく追加

並行性

  1. マルチスレッディング: 並列タスクを複数スレッドで実行
  2. 全スレッドは同一プロセス内で実行される
  3. マルチプロセッシング: 複数のプロセスでプログラムを実行
  4. マルチスレッディングよりオーバヘッドを伴う
  5. 非同期処理: タスクに実行順序に優先度を付けず非同期に実行
  6. 単一スレッド上で実行

並行性と並列性

  1. 並行性: 複数のタスクを全く同じ時間に実行する必要はない
  2. 並列性: 複数のタスクを同時に実行