TwitterはCassandraへの投資を続ける

先週後半ぐらいから、Cassandra関連で色々動きがあったので、まとめておきます。

一番注目されるTwitterのCassandraへの方針ですが、Twitterのエンジニアリングブログの記事で明らかにされています。

We're using Cassandra in production for a bunch of things at Twitter. A few examples: Our geo team uses it to store and query their database of places of interest. The research team uses it to store the results of data mining done over our entire user base. Those results then feed into things like @toptweets and local trends. Our analytics, operations and infrastructure teams are working on a system that uses cassandra for large-scale real time analytics for use both internally and externally.

For now, we're not working on using Cassandra as a store for Tweets. This is a change in strategy. Instead we're going to continue to maintain our existing Mysql-based storage. We believe that this isn't the time to make large scale migration to a new technology. We will focus our Cassandra work on new projects that we wouldn't be able to ship without a large-scale data store.

http://engineering.twitter.com/2010/07/cassandra-at-twitter-today.html

前段で、TwitterはCassandraを使用し続けており、Geo関連データのストレージや、内部向けと外部向けの両方で使用しているリアルタイム分析機能ではCassandraを使用したシステムで動かしている、と言っています。

また、後段ではTweetの保存にCassandraを使用することは断念し、既存のMySQLベースのストレージを使用し続ける、と言っています。これは、Twitterがこのところパフォーマンス上の問題をかかえている現状では、新しい技術に手を出すのはリスクが大きすぎる、という非常にまっとうな判断だと思います。

より重要なことは、最後の

We're investing in Cassandra every day. It'll be with us for a long time and our usage of it will only grow.

という一文で、TwitterはCassandraへの投資を日々続けており、将来的にも使用範囲を拡大していく、と言っています。

また、Techcrunchの記事

First, Twitter won’t be using the Cassandra database system to store tweets. Second, Cassandra will be used for Twitter’s realtime analytics product. The one they haven’t officially announced yet.

http://techcrunch.com/2010/07/09/twitter-analytics-mysql/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+Techcrunch+(TechCrunch)&utm_content=Twitter

では、Twitterがもうすぐリリースすると予想されているリアルタイム分析サービスとの関連に言及されています。この新しいサービスでは、Cassandraが重要な役割を担っているようです。

このところ、Cassandra関連では、NoSQL magazineで、

  • Facebook is still using Cassandra internally for the inbox search, but they are using their own version
  • even if except the initial code share Facebook has stopped contributing to the Cassandra project, the community on ASF is doing well (read growing)
http://nosql.mypopescu.com/post/781834027/cassandra-status-inside-facebook-twitter-digg-and

Facebookは、Cassandraを使用し続けているが、Apacheのものとは、forkしたバージョンを使用している」(Facebookのような巨大なシステムを運用している会社がオープンソースをカスタマイズして使用していることはそれほど珍しいことではないと思います)という話や、Twitterの中の人が


(「重要なデータの保存には使用していない」)と言っており、Cassandraに重大な問題があるのでは、と話題になったのですが、実態はそこまで本質的な問題があったわけではないようです。

ちなみに、Twitterが、Cassandraの本採用を断念。「いまは切り替えの時期ではない」 - Publickeyでは、「本採用を断念」とありますが、Tweetの保存以外のプロダクトでは使用を拡大していこうとしているので、以前に比べ後退しているとは言え、「TwitterはCassandraを本採用している」と私は思うのですが、どうなのでしょう。