Agile Cat — in the cloud

Google が OSS NoSQL として発表した、LevelDB の狙いは Chrome にあるのか?

Posted in Google, HTML5, NoSQL by Agile Cat on August 1, 2011

Google Open-Sources NoSQL Database Called LevelDB
By
Klint Finley / July 30, 2011 10:30 AM
http://www.readwriteweb.com/hack/2011/07/google-open-sources-nosql-data.php

_ Read Write

_ googleIn May Google open-sourced a BigTable-inspired key-value database library called LevelDB under a BSD license. It was created by Jeff Dean and Sanjay Ghemawat of the BigTable project at Google. It’s available for Unix based systems, Mac OS X, Windows, and Android.

この 5月に Google は、LevelDB という名の、BigTable を彷彿とさせる key-value データベース・ライブラリを、BSD 許可証の下でオープン化した。 それは、Google の BigTable プロジェクトに属する、Jeff Dean と Sanjay Ghemawat により作られたものである。そして、Unix ベースのシステムおよび、Mac OS X、Windows、Android で利用できる。

Although it first appeared in Google Code months ago, a blog post from Google earlier this week made the project more widely known.

それは、数カ月前に Google Code に登場したが、今週(7/30)に Google がブログにポストしたことで、プロジェクトの存在が広く知れわたった。

imageLevelDB is not a database server like other other key-value stores like Redis or Membase. Instead, it would most likely be used as an embedded database for other applications, much the way SQLite or Berkley DB are used. The technical advantage to using LevelDB instead of other key-value stores is its support for ordered data. Also, its BSD license is more liberal than the GPL Sleepycat license of Berkley DB.

LevelDB は、Redis や Membase といった、key-value ストアのデータベース・サーバーではない。それは、他のアプリケーションにエンベッドされるデータベースとして、使用される見込みが高い。つまり、SQLite やBerkley DB の用法に近いものとなる。他の key-value ストアに換えて、LevelDB を利用する際のテクニカルなアドバンテージは、ソートされたデータのサポートとなる。それに加えて、BSD ライセンスは、Berkley DB に適用される Sleepycat ライセンスよりも自由度が高い。

According to the announcement:

以下は、アナウンスメントからの抜粋である:

For example, LevelDB may be used by a web browser to store a cache of recently accessed web pages, or by an operating system to store the list of installed packages and package dependencies, or by an application to store user preference settings. We designed LevelDB to also be useful as a building block for higher-level storage systems. Upcoming versions of the Chrome browser include an implementation of the IndexedDB HTML5 API that is built on top of LevelDB. Google’s Bigtable manages millions of tablets where the contents of a particular tablet are represented by a precursor to LevelDB.

たとえば LevelDB は、最近にアクセスされた Web ページをキャッシュする Web ブラウザにより、あるいは、インストール済みのパッケージや依存性をリストする OS により、そして、ユーザー・プリファレンスをストアするアプリケーションなどにより利用されるだろう。さらに、私たちは、ハイ・レベルなストレージ・システムのための、有益なビルディング・ブロックとして、LevelDB をデザインしてきた。 これから登場してくる、将来の Chrome ブラウザ・バージョンは、この LevelDB 上に構築され、IndexedDB HTML5 API の実装を取り込むことになる。 Google の Bigtable は、何百万というタブレットを管理するが、その場所において、特定タブレットのコンテンツが前処理されることで、LevelDB へ向けて表示されていく。

LevelDB isn’t limited to just being used as an embedded database, however. Basho is already exploring the possibility of using LevelDB with Riak as an alternative to Bitcask or InnoDB. The company conducted some benchmarks, which you can find in this blog post.

しかし、 LevelDB の用途は、エンベッドされたデータベースだけに限定されるものではない。 すでに Basho は、Bitcask や InnoDB に代わる選択肢として、LevelDB と Riak を組み合わせて利用する、可能性について研究している。 そして、いくつかのベンチマークが行われたが、その結果を、このブログ・ポストで確認することが可能だ。

Google also released its own set of benchmarks here.

さらに Google は、それらのベンチマークで用いたセットを、ココ で公表している。

According to the project site the key features are:

  • Keys and values are arbitrary byte arrays.
  • Data is stored sorted by key.
  • Callers can provide a custom comparison function to override the sort order.
  • The basic operations are Put(key,value), Get(key), Delete(key).
  • Multiple changes can be made in one atomic batch.
  • Users can create a transient snapshot to get a consistent view of data.
  • Forward and backward iteration is supported over the data.
  • Data is automatically compressed using the Snappy compression library.
  • External activity (file system operations etc.) is relayed through a virtual interface so users can customize the operating system interactions.
  • Detailed documentation about how to use the library is included with the source code.

And the limitations are:

  • This is not a SQL database. It does not have a relational data model, it does not support SQL queries, and it has no support for indexes.
  • Only a single process (possibly multi-threaded) can access a particular database at a time.
  • There is no client-server support builtin to the library. An application that needs such support will have to wrap their own server around the library.

See Also

ーーーーー

NoSQL も、まずは利用シナリオありきで、考えられるようになってきなのですね。IndexedDB HTML5 API って、どれほどのパーフォーマンスを見せてくれるのでしょう。 :) とても楽しみですね。 ーーー __AC Stamp 2

ーーーーー

<関連>

NoSQL Database で 認識しておくべき 9つのポイント
NoSQL のユースケースを一般論と具体論で整理する
NoSQL の CouchDB が Android に搭載されるという話
Big Data を 美味しくいただくための、クッキング・ブックを作ろう
http://www.quora.com/LevelDB

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: