Twitterバックエンドがプロトコルバッファーに切り替え

ユーザーのツイートのメインコピーはMySQLおよびCassandraデータベースに保存されますが、同社は分析および追加のソフトウェアアプリケーションに使用できる追加のストレージもHadoopに展開します。



このシステムからの情報は、Hadoop独自のSQLに似たクエリ言語であるJava MapReduceまたはPigを使用して要求できます。 現時点では、検索システムはすでにこのバックエンドに転送されており、他のアプリケーションも将来登場する予定です。



Twitterプログラマーは、XML、CSV、JSONなどの一般的なテクノロジーを拒否したため、バックエンドデータを保存する形式として、Googleが開発した比較的未知のプロトコルバッファー形式(Habrで既に説明しました)を選択しました。 実装の技術的な詳細は、火曜日のHadoopWorldカンファレンスでTwitterによって発表されました。



毎日、12 TBの新しいデータがTwitterデータベースに追加されます。 このようなボリュームでは、適切な形式を選択することが重要です。 プロトコルバッファ、Hadoop、および関連技術の組み合わせにより、この問題に対処します。



各ツイートは、データベース内の17個のフィールドで構成され、そのうち6個には少なくとも1つのサブフィールドがあります。 将来、Twitterは他のサブフィールドを追加する予定です。 将来、ストレージシステムは、10億人のユーザーからの1兆ツイートに耐え、効果的に機能するはずです



ユーザーコンテンツに加えて、内部ログ(システムで発生する80種類を超える操作)からのサービス情報も受信し、データベースに保存します。 このデータのほとんどは、無料のScribeテクノロジー(Facebookが開発)を使用して集約されます。



XMLに対するプロトコルバッファの利点は、大量のデータで明らかになりつつあります。 Twitterの開発者によると、1兆個のXMLツイートには1つではなく約10ペタバイトかかることがあります。 JSONは、多くの冗長な情報も保存します。 それとは反対に、データがカンマだけで区切られているCSV。 余分なものはありませんが、サブフィールドを構成することは困難です。



プロトコルバッファにはこれらの欠点はありません。 さらに、データ構造を再構築するプロセスを自動化します。 プロトコルバッファチュートリアルで述べたように、データ構造化メソッドを一度定義すれば十分です。その後、特別に生成されたコードを使用して、さまざまなストリームおよび異なる言語で構造化データを簡単に読み書きできます。



All Articles