Agile Cat — in the cloud

December 31, 2009

Agile_Cat 的、今年最大の発見とは?

Filed under: .Chronicle,James Hamilton,NoSQL — Agile Cat @ 12:24 pm
Tags: , , , , , , ,

ぜんぜん速くならないランダム・アクセス

ハードウェアは解らないし、あまり書く機会もない Agile_Cat ですが、この 20数年の間に、HDD のランダム・アクセスが殆ど速くなっていないという事実には、かなりビックリしました。 以下のグラフは、師匠とお呼びしたいほど敬愛しております、James Hamilton 氏の ISCA 2009-PDF からのもので、同氏と Dava Patterson 氏による調査の結果と記載されています。

HDD Speed 

シーケンシャルの方はといいますと、ご覧のとおり、この間に100倍以上のパフォーマンス向上が達成されています。 HDD というハードウェアの構造上の問題なのかとも思いますが、SSD になったからとして、いきなり変わるものでもなさそうです。

SSD Speed

これは、自分のノート PC にインストールした SSD と、メインのデスクトップで使っているHDD の、read/write 速度の比較です。 1.8インチと 3.5インチという違いがありますが、4k ブロックの write では、反対に SSD の速度が低下しているという状況です。

もちろん、eBay の最安値を狙って、Agile_Cat が 2年ほど前に購入したものと、最新の SSD では、その間に大きな進歩があるのでしょう。 しかし、それにしても、たとえば Hadoop が見せつけた、RDB に対するケタ違いの能力差と比べると、SSD によるパフォーマンスの向上は微々たるものとなってしまいます。

そして、ランダム・アクセスの速度が向上しない状況と、SSD が(それほど)効果的なソリューションとならない状況を合わせると、ますます RDB は不利になり、その反対に、ハードウェアの進歩という追い風を受ける NoSQL は、その真価を発揮するようになっていくのでしょう。

・・・ とは言え、クラウド・ビジネスの 2010年における最初の主戦場は、Azure 対 Salesforce になりそうな気配です。 どちらも、既存のソリューションを、そのままクラウドへというスタンスのビジネスを推進しています。 もちろん、それも重要な視点であり、IT 全体の進化にとって不可欠な要素ですが、このようなデータを見ると、いずれは RDB が、Next Legacy の代名詞になるような気がしてならないのです、、、と 大晦日になっても考えています。。。

そんなこんなで、今年の Agile_Cat も、これが最後のポストとなります。 そして、この一年を振り返ってみると、この James が提示してくれたグラフが、ずっと意識の底にあり、そこを起点にして、あらゆる事象を眺めてきたような気がします。

ーーー

今年は、たくさんの方にアクセスしてもらえて、ほんとうに嬉しかったです。 有難うございました。そして、来年も よろしくお願いしま~~~す。

では、みなさん、良いお年をお迎えください。 ーーー A.C.

<関連>
役割を減じる Cloud での RDBMS

December 30, 2009

Agile_Cat 2009 – Top 10

Filed under: Research — Agile Cat @ 7:03 am
Tags: , , , , , , ,

Hadoop が上位を占めた 2009!

AC

ついに、Database Sharding が最後まで逃げきってしまいました。 これには、とにかく 驚きです! 多くの人が、RDB の限界に気づき、その視点から情報を追いかけてきた結果だと思います。 それと、一連の Hadoop 関連のポストにも驚きです。正直言って、こんなにも、Hadoop が人気者だとは想像すらしませんでした。

その中でも、” Overview of Hadoop Conference 2009 in Japan ” は初めての英語のポストで、ハドゥカンが終わった直後に、眠い目をこすりながら書いたという記憶があります。お恥ずかしながらという英語ですが、この後から http://twitter.com/Agile_Cat で、海外からの Follower さんが急に増えたりして、結果としては良かったと思っています。

それと、驚いたのは、” NoSQL Ecosystem とは? ” が 7位に入ったことです。 このポストが、12月 10日前後だったことを考えると、これは大変な勢いです。 間違いなく、2010 年の注目すべき領域となるでしょう。

  1: Database Sharding _1
  2: Hadoop : Twitter よ、お前もか!
  3: Hadoop World 2009 レポート
  4: 速報 : Hadoop Conference 2009 Tokyo レポート
  5: PDC 2009 セッションが発表に!
  6: Overview of Hadoop Conference 2009 in Japan
  7: NoSQL Ecosystem とは? _1
  8: Hadoop Conference Japan 2009 が、もう満員だって!
  9: ITIL V2 は消えてしまうのか?
10: Hadoop DFS Architecture_3

ご覧のように、Agile_Cat 2009 Top 10 は、Database Sharding と、Microsoft、NoSQL、そしてシブイところで ITIL が、それぞれ 1つずつありますが、その他はすべて Hadoop 関連となりました。さて、来年は、どのような展開になるのでしょうか? ーーー A.C.

December 29, 2009

Agile_Cat 2009 – Top 11~20

Filed under: Research — Agile Cat @ 8:23 am
Tags: , , , , , , ,

Google のスケール感覚が目立った 2009!

AC

以下のリストで思い入れがあるのは、なんといっても ”Google 的 クラウド連携の ABC ?” です。 これは、Google I/O のビデオから起こしたもので、けっこう時間をかけて Visio で作ったのですよ~~~。 おそらく、今年の Agile_Cat の中では、もっともマクロな視点を提供しているポストかと思います。 これに関連するものとしては、” Google は 1000万台のサーバーを目指す ? ” がありますが、もう少し調べたいと思いつつ、今年はできませんでした。

それと、” Windows Azure MapReduce Demo ” も、Simon さんとのやりとりの後に出てきただけに、とても嬉しいポストとなりました。 実は、”Hadoop が Microsoft の教材に?” を見て、彼にメールを送ったら、この Web キャストが出てきたので、ひょっとしらモチベーションの一部になったのかとも思っています。Azure+MapReduce というキーワードは、とにかく Agile_Cat 的には大満足でした。

なお、” AppFabric とは?” は順当な結果で、” David Chappell のヒミツ ” では、David さんの知られざる一面がご披露されています。 未読の方は、ぜひ、ど~ぞ。それと、”サーバー保有台数ランキング” も面白いですよ ~~~。

11: Google 的 クラウド連携の ABC ?
12: エンタープライズ RDBMS を Hadoop で補完 _2
13: Hadoop DFS _ Introduction
14: Hadoop DFS Architecture _7
15: Windows Azure MapReduce Demo
15: サーバー保有台数ランキング
16: HP のコンテナ・データセンター
17: Database Sharding _3
18: エンタープライズ RDBMS を Hadoop で補完 _1
19: AppFabric とは?
20: David Chappell のヒミツ

明日は、いよいよ Top 10 です。 おそらく、みなさんが エッエエ~~~ と思う結果になるでしょう。 ぜひ、ご覧ください。

December 28, 2009

Agile_Cat 2009 – Top 21~30

Filed under: Research — Agile Cat @ 7:56 am
Tags: , , , , , , ,

今年のランキング情報で、2010 を占おう!

AC

Amazon、Google、Microsoft の御三家が、それなりにランキングをシェアしていて、そこに Hadoop 関連の情報が混ざるという、Agile_Cat らしい展開です。 ”Hadoop が Microsoft の教材に?” は、Simon Guest さんの資料から抽出したものですが、とても面白いコンテンツになりました。 夏の TechED US で、彼は、Hadoop とか、MapReduce とか、おぉっ! と思う内容に触れ始めました。このポストと、”Azure White Paper の SDS 部分が改変” には、http://twitter.com/nsharp_2ch さんの貴重なコメントがついていますので、ぜひ、ご参照ください。

”Amazon のプライベート クラウド” と ”Google Data Center を YouTube で!” も、それぞれが 2009 という年を象徴するコンテンツだと思います。 なお、YouTube での紹介は ”Google Data Center を YouTube で!” の方が画像が見やすいです。 それと、”Hadoop とベンチマーク” は ス・ゴ・イ です。1TB/分 のソートが可能だという、2009年6月時点での、Yahoo の発表内容をまとめたものです。

21: Hadoop とベンチマーク
22: NoSQL Ecosystem とは? _2
23: 教育機関への Dryad 提供が始まる
24: Azure White Paper の SDS 部分が改変
25: Hadoop が Microsoft の教材に?
26: Google Data Center を YouTube で!
27: Amazon のプライベート クラウド
28: Hadoop DFS Architecture_2
29: Windows Storage Server 2008 とは?
30: Windows Azure Storage の新機能

明日は、Agile_Cat 2009 – Top 11~20 です。 ど~ぞ、お楽しみに。 ーーー A.C.

December 27, 2009

HBase の構造を考える _1

Filed under: NoSQL — Agile Cat @ 8:55 am
Tags: , , , , , ,

HBase Architecture 101 – Storage_1
Monday, October 12, 2009
http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.html

image

About Me

My Photo

Lars George
 
I am a Software Engineer by heart and work on large scale, distributed, failover-safe systems. Especially "NoSQL" type storage architectures and their related projects like Hadoop with HBase, Hive, Pig. Or Dynomite, Voldemort, Cassandra and so on. I am offering consulting services in this area and for these products. Contact me at info@larsgeorge.com or read about my offer!

View my complete profile

One of the more hidden aspects of HBase is how data is actually stored. While the majority of users may never have to bother about it you may have to get up to speed when you want to learn what the various advanced configuration options you have at your disposal mean. "How can I tune HBase to my needs?", and other similar questions are certainly interesting once you get over the (at times steep) learning curve of setting up a basic system. Another reason wanting to know more is if for whatever reason disaster strikes and you have to recover a HBase installation.

多くのケースにおいて、HBase の隠された局面のひとつは、実際にデータをストアする方式となる。その点について、大多数のユーザーは気にする必要が無いかもしれないが、各種の先進的なコンフィグレーションを学習したいと望むときには、取捨選択のスピードを上げる必要があるかもしれない。まず、”どうしたら HBase をニーズに合わせられるか?” という疑問がある。そして、(ときには重要な)基本的なシステムを設定するための学習曲線を超えた途端に、他の類似する問題が生じてくる。さらに多くのことを知りたくなる理由は、その理由が災害対策であったとしても、HBase インストレーションをリカバーが必要だという点にある。

In my own efforts getting to know the respective classes that handle the various files I started to sketch a picture in my head illustrating the storage architecture of HBase. But while the ingenious and blessed committers of HBase easily navigate back and forth through that maze I find it much more difficult to keep a coherent image. So I decided to put that sketch to paper. Here it is.

私として努力したのは、多様なファイルを取り扱う各クラスを知ることであり、HBase のストレージ・アーキテクチャを例証するスケッチから取り掛かった。 なぜなら、HBase の創造的で恵まれたコミッターたちが、その迷路を自在に前後へとナビゲートするにもかかわらず、一貫したイメージを保持することが極めて難しいと認識した。したがって、私はペーパーにスケッチを描くことに決めた。 しれが、以下のものである。

HBase Large

Please note that this is not a UML or call graph but a merged picture of classes and the files they handle and by no means complete though focuses on the topic of this post. I will discuss the details below and also look at the configuration options and how they affect the low-level storage files.

それは、UML や Call Graph ではないが、取り扱うクラスとファイルをマージしたものである。ただし、このポストのトピックに、完全に焦点を合わせたものでもない。以下に詳細を記述し、さらにコンフィグレーション・オプションと、それらが低レベルのストレージ・ファイルに影響を与える様子にも注目していく。

The Big Picture

So what does my sketch of the HBase innards really say? You can see that HBase handles basically two kinds of file types. One is used for the write-ahead log and the other for the actual data storage. The files are primarily handled by the HRegionServer’s. But in certain scenarios even the HMaster will have to perform low-level file operations. You may also notice that the actual files are in fact divided up into smaller blocks when stored within the Hadoop Distributed Filesystem (HDFS). This is also one of the areas where you can configure the system to handle larger or smaller data better. More on that later.

それらのファイルは、主として HRegionServer のものとして取り扱われる。 ただし、特定のシナリオでは、HMaster でさえ低レベルのファイル操作を必要とするだろう。さらに、Hadoop Distributed Filesystem(HDFS)にストアされるとき、それらのファイルが実際より小さなブロックに分割されることに気付くだろう。この方式は、大きなデータや小さなでデータを適切に操作するような、システムのコンフィグレーションを可能にするための 1つの領域である。そのことについては、後に触れる。

The general flow is that a new client contacts the Zookeeper quorum (a separate cluster of Zookeeper nodes) first to find a particular row key. It does so by retrieving the server name (i.e. host name) that hosts the -ROOT- region from Zookeeper. With that information it can query that server to get the server that hosts the .META. table. Both of these two details are cached and only looked up once. Lastly it can query the .META. server and retrieve the server that has the row the client is looking for.

新しいクライアントが、特定の Row キーを探すために、最初に Zookeeper quorum (Zookeeper ノードの別個のクラスタ)とのコンタクトを取るというのが、一般的な流れである。 Zookeeper から、ROOT リージョンをホストするサーバー名(すなわちホスト名)を検索することで、それが実行される。 この情報を用いることで、そのサーバーにクエリーをかけることが可能となり、.META table をホストするサーバーが取得される。 ここでの 2つの詳細情報は、どちらもキャッシュされ、一度調べられるだけである。最終的に、.META サーバーへのクエリーが可能となり、クライアントが探している Row を持つ、サーバーへの検索が実現される。

Once it has been told where the row resides, i.e. in what region, it caches this information as well and contacts the HRegionServer hosting that region directly. So over time the client has a pretty complete picture of where to get rows from without needing to query the .META. server again.

たとえば、region などの Row が存在する場所と、一度会話が成立すると、その情報をキャッシュし、その region をダイレクトにホスティングする HRegionServer とコンタクトを取る。そして、クライアントは再び .META サーバーへのクエリーを必要とすることなく、Row を取得すべき場所の、きわめて詳細な全体像を、長時間にわたり維持することになる。

Note: The HMaster is responsible to assign the regions to each HRegionServer when you start HBase. This also includes the "special" -ROOT- and .META. tables.

Note: HBase を起動するとき、それぞれの HRegionServer に対して region を割り当てる責任を、HMaster は持つ。 それにより、 "special" -ROOT- と .META table も取り込むことになる。

Next the HRegionServer opens the region it creates a corresponding HRegion object. When the HRegion is "opened" it sets up a Store instance for each HColumnFamily for every table as defined by the user beforehand. Each of the Store instances can in turn have one or more StoreFile instances, which are lightweight wrappers around the actual storage file called HFile. A HRegion also has a MemStore and a HLog instance. We will now have a look at how they work together but also where there are exceptions to the rule.

続いて、HRegionServer は対象となる region をオープンし、それが対応する HRegion オブジェクトを生成する。 HRegion が "open" されるとき、あらかじめユーザーが定義したように、すべてのテーブルに対応する個々の HColumnFamily のための、Store インスタンスが設定される。 HFile と呼ばれる実際のストレージ・ファイルのラッパーである、1つ以上の StoreFile インスタンスを、それぞれの Store インスタンスは持つことができる。 さらに、HRegion は MemStore と HLog のインスタンスを持つ。 ここまでで、それらの協調動作することだけではなく、例外ルールもあることが分かるはずだ。

<続く>

ーーー

3回くらいに分けて掲載して良く予定です。 ーーー A.C.

<関連>

HBase の構造を考える _1
HBase の構造を考える _2
HBase の構造を考える _3
NoSQL Ecosystem とは? _1
Hadoop DFS _ Introduction
エンタープライズ RDBMS を Hadoop で補完 _1
The Anatomy of Hadoop I/O Pipeline _1

Next Page »

Theme: Rubric. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 3,239 other followers