Google が開発した基盤技術の例▪ Borg/ Omega●コンテナを用いたアプリケーション実行基盤●OS レイヤーを隠蔽して、アプリケーションレベルでの管理に集中●リソーススケジューラーによるアプリケーションデプロイの最適化http://research.google.com/pubs/pub44843.htmlhttp://www.hpts.ws/papers/2015/wilkes.pdf基盤とアプリケーションの明確な責任分界点
12.
Google が開発したデータストア技術の例▪ GoogleFile System / Colossus●分散ファイルシステム●大容量ファイルのシーケンシャルな読み込みと追記処理に特化してチューニング●MapReduce や Bigtable など上位ミドルウェアのバックエンドとして使用▪ Bigtable●行単位アクセスに特化した Key-Value ストア(複数行のトランザクションは非対応)●1 つの行の中に複数のカラムファミリーを用意して複数データを保存●追記処理しかできない GFS の上に高速なデータの書き換え処理を実装!ユースケースの分析に基づいた機能選定技術的制約の打破
13.
Google が開発したデータストア技術の例▪ Megastore●Bigtableをバックエンドとして実装した分散データストア●複数データセンターにまたがるレプリケーションと「エンティティグループ」単位でのトランザクション(強い一貫性を持ったデータアクセス)●実質的に無限のスケーラビリティ(レイテンシーは Bigtable より劣る)▪ Spanner●MegaStore の欠点を克服するために再実装された分散データストア●RDB に類似したテーブル構造と SQL トランザクションを実現●原子時計による時刻同期システムを用いて、分散データベースにおける性能問題を解決技術的制約と機能要件の合理的なトレードオフ技術的制約の打破
Borg / Omega▪Google のデータセンターで稼働するミドルウェア/アプリケーションの多数が稼働する標準基盤●Web Search●Gmail, Google Docs●Bigtable, MapReduce, FlumeJava, MillWheel●Google File System, Bigtable, Megastore●分散ビルドシステム●Google Compute Engine●etc…▪ OSS として再実装したものが Kuberneteshttps://research.google.com/pubs/pub43438.html
17.
(参考) Colossus について▪Google File System の後継として開発▪ Google における標準的な分散ファイルシステムとして利用▪ 詳細情報は未公開
18.
Google File System▪Google におけるファイルアクセスのパターンを分析して仕様を決定●大容量ファイルのシーケンシャルな読み込みと追記処理に特化してチューニング●他の操作(部分書き換えなど)も可能ではあるが、性能は出ない▪ 冗長性の確保などは基盤側で実装●64MB のチャンクに分割して複数サーバーに複製保存●サーバー障害時は自動的に切り替え並列データ処理の結果を受け渡し大容量データの受け渡しhttp://research.google.com/archive/gfs.html
19.
Google File System19チャンクサーバープライマリセカンダリ セカンダリデータフロークライアントクライアントコントロールフロー▪ データフローを最適化することで書き込み性能を向上●クライアントから複数のチャンクサーバーに対してシリアルにデータ転送●データ受信を開始したチャンクサーバーは、即座に転送を開始●コントロールフローを分離して、チャンクサーバー間のデータ整合性を確保
20.
Bigtable▪ 構造化データを保存するための大規模分散 Key-Valueストア●クローラーが収集した HTML ファイルから、衛星画像ファイルまで大小さまざまなデータを保存●行単位でのアトミックな操作●Row Key の辞書順での高速スキャンhttp://research.google.com/archive/bigtable.html