Googleの最新データ分散技術「Spanner」が凄すぎる!独自の原子時計を設置

000282

WIREDは26日(現地時間)、グーグルの最新分散データ処理技術「Spanner」が

どのようにして地理的制約を超えて正確な同期を実現するのか、

その内情の一部を明らかにしています。

そもそも「Spannerって何?」という状況ですが、2・3年ほど前に書籍で盛んに

取り上げられた「Bigtable」は今から5年ほど前にメインで使われていた技術。

それをさらに進化したものが今回の「Spanner」です。

実はSpannerの詳細は現在も明らかにされていません。

最近流行のNoSQLやら地理的制約を超えたデータ分散もグーグルの「Bigtable

プロジェクトに触発されたものですが、これらには問題がありました。

それはネットワークトラフィックが増えすぎるという点です。データを同期するために

ネットワークにデータを垂れ流しにしていたのではコスト的に不利といえます。

それらの研究・技術・アルゴリズムの根底にあるものは

「サーバ間で同じ内部時刻を保つのは無理である」という前提条件があるという点です。

それは、離れたサーバ同士で時間を統一するのは非常に困難だからです。

このようなシステムを構築する際、人間が常々意識する1秒なんかよりもさらに細かい

ミリ秒単位での動きを意識しなければなりません。

通常、サーバやパソコンの時刻を一致させるにはNTPという技術があります。

普段利用しているPCの時計が比較的正確を保っているのはNTPを使って

定期的に時刻を補正しているおかげです。

面白いことに、グーグルはこの流れを完全に無視して別のアプローチを採ったようです。

ここが今回の肝になります。つまり「そんな前提条件を無くしてしまえばいい」と、

ちゃぶ台返しのような方法を採用したのです。その方法とは、グーグルは

「データセンタに独自の原子時計を設置すればいいじゃん」と考えてしまったようです。

まさに “Google Way” 。

さらにGPSを使って時刻信号を受信するなどの策も講じているとのこと。

そして、これらの正確な時間を計る技術は「TrueTime API」として提供され、

社内のソフトウェアエンジニアが簡単に利用することができるようになっているようです。

これで離れたサーバ同士の時間を同一に保つことができるようになり、『時間』という

統一基準を利用できるようになりました。その結果、比較的簡単にデータの整合性を

保つことができるようになります。それどころか、高度な同期を実現するためのムダな

トラフィックを抑えられるという仕組みです。

「前提条件を崩してしまえばいい」という考え方がいかにもグーグルらしいですが、

この原子時計GPSの技術を開発するのに4年もの歳月がかかっているとのことなので、

やはり開発は大変なものだったと思われます。

http://ggsoku.com/2012/11/google-datacenter-spanner/

Google は常に正確な時刻を知るために独自の原子時計を作ってしまった

というお話。スケールが大きすぎてピンと来ませんが、Googleの技術力は

やはりハンパないものと確認できます。

この最新データ分散技術「Spanner」が、今後、どのように応用されていくかにも

注目が集まっています。

ではまた今度(`・ω・´)ゞ