# Stubby
## 概要
**Stubby** は [[Google]] が内部向けに開発した RPC(リモートプロシージャコール)ライブラリ。外部公開の gRPC と同等の機能を持ち、Google Search・Gmail・Maps・YouTube などのユーザー向けサービスと、[[Spanner]]・[[Bigtable]]・F1・GFS などの内部データ管理システムで広く使用されている。
## 特徴
- ロケーション非依存な通信: リモートマシンへの関数呼び出しがローカル呼び出しと同様に見える
- 接続管理・ネットワークプロトコル・パラメータのマーシャリング/デマーシャリング・暗号化/復号化・スレッドスケジューリングをスタック内に隠蔽
- ユーザ空間ライブラリとして実装
## RPC フリートワイド計測での位置づけ
[[@2023__SOSP__A Cloud-Scale Characterization of Remote Procedure Calls]] では、Stubby を通じて Google フリート全体の RPC 特性(レイテンシ・スループット・コールグラフ・CPU コスト)を 700 日間・722 億サンプル規模で計測。10,000+ の異なる RPC メソッドが分析対象となった。
## gRPC との関係
Stubby は Google 内部向けで、その設計知見を元に **gRPC**(外部公開版)が開発された。gRPC は現在多くのクラウドアプリケーションで標準 RPC フレームワークとして採用されている。
## 出典
- [[@2023__SOSP__A Cloud-Scale Characterization of Remote Procedure Calls]]