VoldemortやTokyo Cabinetといったキー/バリューシステムにおけるモデリングの最小単位はキー/バリューペアになる。そして、BigTableやそのクローンでは可変数の属性をもつタプルに、CouchDBやMongoDBといったドキュメントデータベースではドキュメントになる。これに対しグラフデータベースでは、データセット全体をひとつの巨大な高密度ネットワーク構造としてモデル化する。 ここではNOSQLデータベースにおける2つの興味深いポイント、スケーラビリティと複雑さについて詳しく説明する。 1. スケーラビリティ CAP: ACID 対 BASE 従来のデータベースシステムのほとんどは、トランザクションに基づいてデータの完全性を保証する。トランザクションを使うことで、データ管理のあらゆる状況において、データの一貫性を確保している。こうしたトランザクションの性質は、ACID(A
I recently was asked what maximal amount transactions per second we can get using MySQL and XtraDB / InnoDB storage engine if we have high-end server. Good questions, though not easy to answer, as it depends on: – durability setting ( innodb_flush_log_at_trx_commit = 0 or 1 ) ? – do we use binary logs ( I used ROW based replication for 5.1) – do we have sync_binlog options. So why would not take t
先月、Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジンというエントリでSPIDERストレージエンジンによるスケールアウトが凄い!という話を書いた。SPIDERストレージエンジンは凄いヤツだが、ノウハウがあまりウェブ上で見つからない。唯一見つかる日本語の記事は、ウノウラボによる「国産MySQLストレージエンジン「Spider」の作者、斯波健徳氏に聞く 」だけである。SPIDERストレージエンジンは斯波氏による単独の作品であるため、斯波氏は開発だけで手いっぱいであり、使い方の紹介記事を書くことまでは手が回らないのであろう。こんな凄いストレージエンジンをドキュメントが足りないせいで使って貰えないなんて勿体ない!! というわけで、今日はSPIDERストレージエンジンの基本的な使い方について紹介する。少し長いエントリであるが、最後までお付き
CAP 定理と BASE の概念を考えたのは UCB の Brewer 先生で、彼は inktomi の偉い人だったというのは前回述べた。 当時のinktomiはYahoo!や Microsoft、それにgooにも検索エンジンを提供していて、1億以上のWebページ(テラバイト級のデータ)を扱っていたようだ。 手元のWEB+DB PRESS Vol.49 のはてなブックマークリニューアル記事によると、現在のはてなブックマークは1160万URLと100GBのHTMLデータ(圧縮済み)を扱っているらしいので、ざっくりいって98年の時点でinktomi は現在のはてブの10倍のデータを扱っていたといってもいい。inktomiで使っていたコンピュータの性能は現在のPCサ ーバに比べれば1/10程度の性能なので、システム全体でみると現在のはてブの100倍の規模になるだろうか。 結果的には、inktom
その例としてBeck氏自身が過去に取り組んできた生命保険会社のアプリケーションを例に挙げます。そのアプリケーションでは毎日のようにスキーマが変化するため、SQLとORM(Object-Relational Mapping)では対応できず、オブジェクトデータベースのGemstoneを利用することで対応できたと述べています。 こうしたSQLだけでは満たせないさまざまな要件、上記の図にあるようにスキーマの可塑性、スケーラブルなデータ読み込み、書き込み、処理の柔軟性などを満たすために、リレーショナルデータベース以外のNoSQLな製品が開発された。これがNoSQLの登場の背景にあるとBeck氏は解説します。一方で、こうしたさまざまなNoSQLを、NoSQLという言葉で表すのは適当ではないという憂慮も示しています。 Here is where the futility of defining NoSQ
-Patterns From Shared-All to Shared-Nothing Successfully used Patterns in application and table design with Hbase Bob Schulze, eCircle AG March 2010 @ Berlin Apache Hadoop Get Together -Patterns Audience ➲ You have Big Data ➲ Your Organization needs predictable scaling options ➲ You need to be flexible with your Data ➲ You are a Techie Person -Patterns Content ➲ What is shared? ➲ Recap RDBMS vs HB
Over the last couple years, we see an emerging data storage mechanism for storing large scale of data. These storage solution differs quite significantly with the RDBMS model and is also known as the NOSQL. Some of the key players include ... GoogleBigTable, HBase, Hypertable AmazonDynamo, Voldemort, Cassendra, Riak Redis CouchDB, MongoDB These solutions has a number of characteristics in common K
By Jonathan Ellis, Systems Architect Unprecedented data volumes are driving businesses to look at alternatives to the traditional relational database technology that has served us well for over thirty years. Collectively, these alternatives have become known as “NoSQL databases.” The fundamental problem is that relational databases cannot handle many modern workloads. There are three specific pr
Webスケールのデータを扱うためにさまざまなデータベースが登場してきている、ということを昨日のエントリ「データベースは目的別に使い分けるべし」で紹介しました。 特にリレーショナルモデルをベースとしない、非SQL系(NoSQL)と呼ばれるさまざまな種類のデータベースが登場してきています。非SQL系のデータベースは以前からオブジェクトデータベースやドキュメントデータベース、階層型データベースなどが存在していましたが、最近注目されているのがキーバリュー型データストアと呼ばれるデータベース。 ブログ「High Scalability」にポストされたエントリ「A Yes for a NoSQL Taxonomy」では、これら非SQL系のデータベースを詳細に9分類し、それぞれの分類に属するデータベースをリストアップしています(基になったのは「NoSQL is a Horseless Carriage」
いろいろな本からメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),
日本の衆議院選挙が間近に迫っていますが、昨年米国で行われた大統領選において、オバマ陣営がIT技術を駆使したという話はよく知られています。MySQLももちろん使われていました。今年4月にサンタクララで開催されたMySQL Conference & Expo 2009というイベントでは、最終日のキーノートにおいて、Obama Tech Teamの方々より、大統領選においてMySQLがいかに使われたかという発表が行われました。 本当はカンファレンス終了後にすぐちゃんとしたレポートを書いて公開する予定だったのですが、その週に起こった草なぎ剛逮捕とか、そのほかの出来事にすっかり気を取られて放置していました。Blogを始めた契機にTwitterの中で興味を持っている方がいるかどうか聞いたところ、そこそこの方が興味を示したので、ここで簡単にまとめたメモを公開することにします。 ●チームメンバー 発表者は
昨日は BKCon 2006 に行ってきた。 BK というのは「一般的にはバッドノウハウの事」なんですが、昨日のは、BKCon と言っても、かつて開催された Bad Knowhow Conference 2004 の続編とかではなく、"B"atara "K"esuma "Con"ference 2006 です。 ※正しくは横浜 Linux ユーザグループ主催の「第 65 回カーネル読書会」のテーマ "mixi.jp: Scaling Out With Open Source" です。 ちなみに、Batara Kesuma さんというのは、株式会社ミクシィの取締役。 mixi の裏側を見せますというか、ちょっと hip な言いかたをすれば "Inside mixi's backend" ってカンジです。 とりあえず、プレゼン内容は YAPC::Asia の時と大凡同じでしたが、プレゼンの持ち
MySQLを使ったWebシステムの場合、そのDB管理にphpMyAdminを用いることが多いのではないだろうか。ではPostgreSQLを利用する場合はどうだろう。その場合にはphpPgAdminがある。さらにFirebirdの場合はどうだろう。 まるでGUIアプリケーションのようなDB管理ソフトウェア 一つのDB向けに限らず対応していると、操作が同じで済むのでは混乱が少なくて済む。様々なDBを使いこなすならUhuraを使ってみてはどうだろう。 今回紹介するオープンソース・ソフトウェアはUhura、WebベースのDBコンソールだ。 UhuraはPHPで作られたDB管理ソフトウェアだ。データベースの一覧や、テーブルの一覧、ビューやトリガーの一覧を見ることができる。インタフェースにExtJSを用いているので、まるでGUIアプリケーションのような画面構成になっている。 様々なショートカットキーが
今回から数回にわたり、Kaiという分散Key/Valueストアについて解説させていただきます。 まず、第1回では井上がKaiのコンセプトをご紹介します。次回以降は、Kai開発者の一人である幾田さんがKaiの利用方法について解説します。最終回では、gooホームでKaiを運用している橋本さんから、Kaiの運用方法について紹介していただく予定です。なお、本連載が対象とするKaiのバージョンは0.4です。 Kaiとは Kaiとは、分散型のKey/Valueストアです。Amazon.comが2007年に発表したDynamoというシステムに触発されて、そのオープンソース版として開発されています。Kaiをバックエンドに据えてWebサイトを構築することで、高いスケーラビリティやアベイラビリティを実現できます。2009年5月には、gooホームのバックエンドに導入され、運用実績も高まってきました。 Kaiは多
2009年6月2日 分散なんとか勉強会で「CouchDB Relax」発表しました こちらもスライドを置いておきます。 Git同様に公開用に少しだけ調整しています。 CouchdbView more Microsoft Word documents from cohtan. Futonデモ、CouchAppデモ、Sofaデモなど、なんだかんだで45分きっかりお話した感じでした。 僕もまだちゃんとわかっていないところが多いので、これからも色々さわってみます。 この勉強会の直前にプログラミングErlangを購入しました。 プログラミングErlangposted with amazlet at 09.06.02Joe Armstrong オーム社 売り上げランキング: 12450 おすすめ度の平均: 前準備 Erlangならこの本が一番 Amazon.co.jp で詳細を見る これからCouch
ノートPCの冷却ファンがうるさいのを対処しようとしてWebで調べたら、そのファンの設計者が「静音性へのこだわり」を語ったページにたどり着いて複雑な心境のmikioです。今回は、Tokyo Cabinet(TC)の最新バージョンで実装された動的デフラグ機能について長々と説明します。 断片化とデフラグ 任意のサイズのデータを管理する記憶装置においては、利用可能領域の断片化(fragmentation)の問題が常につきまといます。ファイルシステム上で任意のサイズのファイルを管理する際にも、データベースファイル内で任意のサイズのレコードを管理する際にも、C言語のmalloc/free関数群でメモリの管理をする際にも、様々なレイヤで断片化が起きうるのです。なぜなら、データを削除もしくは移動した際の空き領域を再利用するにあたって、その領域と同じサイズのデータが常に入ってくるとは限らないからです。特にデ
Please Note: this was written January 2009 - see the comments for updates and additional information. A lot has changed since I wrote this. Perhaps you’re considering using a dedicated key-value or document store instead of a traditional relational database. Reasons for this might include: You're suffering from Cloud-computing Mania. You need an excuse to 'get your Erlang on' You heard CouchDB was
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く