Agile Cat — in the cloud

Real World NoSQL シリーズ – Netflix における Amazon SimpleDB

Posted in Amazon, Big Data, Entertainment, Netflix, NoSQL by Agile Cat on February 17, 2011

Real World NoSQL: Amazon SimpleDB at Netflix
By Guy Harrison Feb. 4, 2011, 11:45am PST
http://gigaom.com/cloud/real-world-nosql-amazon-simpledb-at-netflix/

_ Gigaom

Edit Note: This is the fourth of a multi-part series of posts exploring the use cases for NoSQL deployments in the real world. So far, the series has covered case studies on MongoDB,Cassandra and Hbase.

ーーーーー

With all the excitement surrounding the relatively recent wave of non-relational – otherwise known as “NoSQL” – databases, it can be hard to separate the hype from the reality. There’s a lot of talk, but how much NoSQL action is there in the real world? In this series, we’ll take a look at some real-world NoSQL deployments.

ノン・リレーショナル、さもなければ「NoSQL」 データベースとして認識されている大きなウネリが、このところ様々な憶測をもたらしているが、そこから真実と虚構を切り分けるのは、難しい作業となる。 数多くの話題が提供されているが、現実の世界において、NoSQL への取り組みは、どれぐらいの件数になっているのか? このシリーズでは、現実の世界における、いくつかの NoSQL ディプロイメントについて注目していく。

Amazon

Netflix provides rent-by-mail and streaming movies in the United States. The shift from mail-order to streaming video had fairly significant implications for Netflix’s application infrastructure. Netflix realized that it would need multiple geographically dispersed data centers and far more processing capacity. Rather than build these new data centers, Netflix decided to migrate its applications to Amazon’s AWS cloud. This allowed the company to concentrate its intellectual efforts on building customer value rather than nationwide data centers.

Netflix は、US における映画マーケットにおいて、メールによる貸し出しとストリーミングを介して、それらのコンテンツを提供している。 そのメール・オーダーから、ストリーミング・ビデオへのシフトは、Netflix のアプリケーション。インフラストラクチャに対して、きわめて大きな影響をおよぼした。 そのためには、マルチ・ロケーションに分散されたデータセンターと、さらなるプロセシング・キャパシティが必要になると、Netflix は理解した。 そして Netflix は、そのための新しいデータセンターを構築するよりも、Amazon AWS クラウドへアプリケーションを移行する方針を定めた。それにより同社は、全国的規模でのマルチ・データセンターの構築ではなく、顧客にとっての価値を構築するという、より知的な作業に集中することを可能にした。

As a part of this bold move, Netflix migrated core parts of its database from Oracle to Amazon’s SimpleDB data store. This migration is one of the biggest migrations to the cloud yet undertaken, with the Netflix system serving the needs of more than 16 million subscribers and hosting over 100,000 DVD titles.

この思い切った手段の一部として、Netflix はデータベースのコア部分を、Oracle から Amazon SimpleDB データ・ストアへと移行させた。 それは、Netflix のシステムにおける、1600万人以上のサブスクライバーにサービスを提供し、100,000以上の DVD タイトルをホストするものである。 つまり、すでに着手された、クラウドにおける最大級の移行である。

SimpleDB is a key-value store that runs within the Amazon Web Services (AWS) cloud, and promises reliable and transparently scalable storage together with a flexible schema that supports either immediate or eventual consistency. SimpleDB is a virtually zero-administration service: there is no database administration involved in scaling the system – storage and computer power is assigned dynamically and automatically by Amazon as the database grows.

SimpleDB は、Amazon Web Services(AWS)クラウド上で稼働する Key-Value ストアであり、イミディエイトあるいはイベンチュアルのコンシステンシーをサポートする柔軟なスキーマを組み合わせた、信頼性と透過性を持つスケーラブルなストレージを保証する。 SimpleDB は、アドミニストレーションが実質的に不要なサービスである。 つまり、システムのスケーリングに関与する、データベース・アドミニストレーションが存在しない。そして、対象となるデータベースが成長するにつれて、ストレージつコンピューティングのパワーは動的かつ自動的に、 Amazon により割り当てられる。

Netflix needed to make significant compromises in exchange for the scalability provided by Amazon AWS and SimpleDB. Complex SQL operations such as joins between tables or aggregate “group by” operations which would normally be executed within the database were moved to the application layer. In some cases this required that the data model be de-normalized; data that would be stored in multiple tables in Oracle was flattened into a single SimpleDB structure so that joins could be avoided.

Amazon AWS と SimpleDB が提供するスケーラビリティと引き換えに、Netflix は大幅な妥協を強いられた。 通常はデータベース内で実行されるテーブル間の join や、“group by” によるアグリゲーションといった、複雑な SQL オペレーションがアプリケーション・レイヤに移動した。 いくつかのケースでは、これらのデータ・モデルを de-normalize する必要があった。つまり、Oracle ではマルチ・テーブルにストアされるデータを、シングル SimpleDB 構造内にフラットに展開し、join を回避する必要があった。

Relational database transactions were depreciated in favour of SimpleDB’s optimistic concurrency mechanism, which allows modifications to proceed only if an item is unchanged since it was last accessed. For instance, an attempt to increment a counter (number of rentals for a video for instance) would be rejected if the counter was simultaneously modified by another transaction. Even so application developers needed to be aware that certain operations (reading a value immediately after modifying it, for instance) might incorrect or at least unexpected results.

リレーショナル・データベース・トランザクションは、SimpleDB の楽観的コンカレント・メカニズムを導入するために軽視され、最後にアクセスされたときから、アイテムが変化していない場合に限り、処理を進めるように修正された。 たとえば、カウンターが別のトランザクションにより同時に修正された場合は、カウンターをインクリメント(レンタルされたビデオの本数など)させる試みは拒絶されるであろう。 それにしても、アプリケーション・デベロッパーは、特定のオペレーション(たとえば 修正直後の値の読み出し)が不正確なケースを知る必要がある。また、少なくとも、想定外の結果がもたらされるのであれば、それも知らなければならない。

Netflix doesn’t use SimpleDB for all storage; Oracle, MySQL and the Amazon S3 service all form significant parts of the Netflix architecture. Nevertheless, with more than 16 million customers, Netflix has made a significant commitment to a non-relational alternative and one which, it says, allows them to better meet customer and shareholder needs. Netflix has been generous in sharing their experiences in articles such as this one.

Netflix では、すべてのストレージに対して、SimpleDB を用いるわけではない。つまり、Oracle/MySQL/Amazon S3 の全てのサービスにより、Netflix アーキテクチャの重要なパートが構成される。それにもかかわらず、1600万人以上の顧客を前提として、 Netflix はノン・リレーショナルという選択肢をコミットした。 その点において、顧客と関係者の要件を充たすものと評価できる。このような記事において、そのエクスペリエンスを共有することに関して、Netflix は寛大である。

To learn more about the factors driving big data and optimal strategies for solving it, including from Hadoop, NoSQL and MPP database leaders, come to our Big Data conference held on March 23 in NYC.

Hadoop から、NoSQL、そして MPP といった、最先端のデータベースを含めて、ビッグ・データを取り扱う際の要因について、また、それを解決するための最適化された戦略を学ぶために、 3月23日に NYC で開催される、私たちの Big Data conference に参加して欲しい。

Guy Harrison is a director of research and development at Quest Software, and has over 20 years of experience in database design, development, administration, and optimization. He can be found on the internet at www.guyharrison.net, on e-mail at guy.harrison@quest.com and is@guyharrison on twitter.

Related content from GigaOM Pro (sub req’d):

 

 

 

ーーーーー

まぁ、日本でいえば TAUTAYA とか DeNA みたいな会社なんでしょうね、Netflix は。また、SimpleDB は S3 ほど有名ではないと思いますが、マルチ・データセンターによる冗長性を確保しているのですね。 Agile_Cat も、この Google に関する記事を見て初めて知りましたが、大したものです。その分、S3 に対してパフォーマンスで遅れをとりますが、トレードオフとして、致し方ないところなんでしょうね。 ーーー __AC Stamp 2

ーーーーー

<関連>
Real World NoSQL シリーズ – Openwave における Cassandra
Real World NoSQL シリーズ – 4PB を処理する Trend Micro の HBase

Comments Off on Real World NoSQL シリーズ – Netflix における Amazon SimpleDB

%d bloggers like this: