
プロセス・スレッド・コネクションプールで読み解く Pythonバックエンド
`uvicorn --workers 4` と `ThreadPoolExecutor(max_workers=4)` は、なぜ同じ『ワーカー』で別の実装を指すのか」「同時ユーザー数千人のサービスが、なぜプール 20 本で平然と動くのか」。FastAPI / SQLAlchemy / PostgreSQL を業務で扱いつつ、これらの問いに根拠を持って答えられない中堅エンジニア向けに、ハードウェア層(MMU / TLB)から OS 層(プロセス / pthread)、ランタイム層(GIL / PEP 703・779)、ライブラリ層(uvicorn / SQLAlchemy)、パターン層(コネクションプール / PgBouncer)までを 5 階層で一気通貫に解き直します。20 本のプールで 6,600 ユーザーを捌ける式、`max_connections` のサイジング、設計レビュー 12 観点、出典付きリファレンス値早見表まで持ち帰れます。
Chapters
はじめに 本書の歩き方と前提知識
全体像 ハードウェアからアプリまでの5階層モデル
プロセスとは何か 仮想アドレス空間とコンテキストスイッチのコスト
スレッドとは何か 共有資源と独立資源の分解
Python GIL を正しく理解する
ワーカー抽象 役割と実装を分けて考える
uvicorn / Gunicorn / ThreadPoolExecutor の選択基準
DBコネクションの物理的実体 TCP接続とサーバープロセス
コネクションプールの数学 20本で6,600ユーザーを捌ける理由
SQLAlchemy セッションとトランザクション
PostgreSQL MVCC と暗黙トランザクションの落とし穴
max_connections を増やしたのに遅くなる謎
PgBouncer / RDS Proxy の使いどころ
FastAPI BackgroundTasks の実体
Starlette + ThreadPoolExecutor のスレッド階層を解剖する
ケーススタディ 外部API連携バッチの設計判断
チェックリストと設計判断のフレームワーク
Author
Topics
- 公開
- NEW
- 文章量
- 約234,607字
- 価格
- 1,000円