Googleだけが提供できるサービスのヒントはBorgにあった
Borgとは1セル1万サーバといった巨大なリソースを管理できる、Google独自のコンテナ。昔から存在していたけど公開されていなかった。
ところが、近年のDockerブームでGoogleもその存在を明かすようになったらしい。
Large-scale cluster management at Google with Borg
さて、話はDremelやNearlineといった、Googleしか出来そうにない、すごいサービスをどうやって実現しているか、ということ。
こんなすごい話を惜しげもなくGoogleの人がセミナーで喋ってくれたので、忘れないうちに記録しておく。
Dremel: Interactive Analysis of Web-Scale Datasets
Dremelは超並列分散アーキテクチャのGoogle自製DB。AdSenseのログ分析等で使う。
ログ分析という処理は、インデックスがないから全件検索をやる必要があり、数TBもあるとGoogle得意のMapReduceを使っても、数時間平気でかかるものらしい。
ところがDremelは数TBのログ全件検索をものの数秒で実現してしまう?
なぜ、Googleだけがそんなことができる?
その答えがBorgだと。
BorgはDremelのリクエストがくると、サーバ1万台に対してクエリのJOBを割り当てて、超並列分散の検索処理をやっているのだそうだ。
つまり、あなたがクエリを発行すると、その後ろで1万台ものサーバが、一瞬働いてくれるということ。
Google Cloud Storage Nearline - Cloud Storage — Google Cloud Platform
Nearlineは超低価格なバックアップ用ストレージサービス。他社と違ってリストアも早い。なぜ?ディスクを使ってるの?ディスクを使ったら、こんな低価格実現できないはず・・・
その答えもBorgらしい。
BorgはサーバのCPU/メモリリソースだけじゃなくてディスクも管理する。通常Borg上のサービスは、ディスクのIO性能が大事だから、それを満たすようリソース管理すると、どうしてもディスクの領域が余ってしまうそうだ。
余ったディスクは安く売ればいいじゃないか!
それがNearlineだそうです。
つまりNearlineはGmailやAppsやGoogleサービスが余らせたディスク領域を使っている、ということ。サービスの邪魔にならないよう、低IOを条件にしていたのね。
さすが、頭のいい連中は考えることが違うなぁ。。