Posterous Spaces is no longer available Thanks to all of my @posterous peeps. Y'all made this a crazy ride and it was an honor and pleasure working with all of y'all. Thanks to all of the users. Thanks to the academy. Nobody will read this.
Test Pilot is a platform aimed at collecting structured user feedback from Firefox and other Mozilla Labs experiments. Mozillaはユーザ調査を迅速におこなう方法としてMozilla Labs Test Pilotを展開している。インストールされたエクステンションを通じてデータを収集するというもので、収集されたデータは分析後、Firefoxの各種開発や設計に反映される。 Riak and Cassandra and HBase, oh my! ≪ Blog of Dataにおいて、このプロジェクトで利用するバックエンドにRiakを採用したというストーリーが紹介されている。Test Pilotで収集されるデータは最小でも100万ユーザから、年末には1,000万ユーザまで増
2010年05月25日 Riak と Cassandra と HBase、あらまー! Mozilla Blog Riak and Cassandra and HBase, Oh My!の勝手訳。各分散 KVS の特徴が分析されていて興味深い……と思って訳してみた。この無様なタイトルは Google 翻訳による。 Riak と Cassandra と HBase、あらまー! 我々は、SoCorro Crash プロジェクトにおいて HBase との統合を進めているが、その話はちょっと置いておいて、今回はメトリック・チームが巻き込まれている別のプロジェクトについて話をしよう。 Mozilla Labs Test Pilotは、実世界の Firefox ユーザをから集めたデータを分析して、ユーザ・エクスペリエンスを向上させるための実験をしたり、定量的データを集めたりするためのプロジェクトだ。 私
ざっくり全体像 各ノードは、定期的に『ランダムに選んだノード、および、ランダムに選んだシード』と Gossip パケットを交換する。 Gossip パケットの 1 回のやりとりは、Syn → Ack → Ack2 の 3way で行われる。 このやりとりの中で、双方のノードは、相手が持っている『グローバル情報』と自分が持っている『グローバル情報』の Digest を比較して、自分の方が新しい情報を持っていれば、その差分を相手に送って、相手の情報をアップデートする。 ※『グローバル情報』とは、各ノードが担当するトークンの一覧など、クラスタの全体像を表す情報のこと。各ノードは、それぞれ、ローカルでこれらの情報を保持しており、理想的にはすべてのノードが同じ情報を持っているべきもの。 仮に、シードが無かったとすると、各ノードは、まったくランダムな相手と情報を交換するので、確率論的には、永遠に最新情
▼その他 Google Code Search(Githubなどにコミットされているソースコードを見れます) 私はNetBeans+Maven+Scala/Lift+Cassandraの環境で構築しました。 Hectorライブラリを使うとデータの取得、追加、削除をシンプルに記述出来ます。 【取得例】 クラスター名:ST Cluster キースペース名:ST KeySpace カラムファミリ名:Index キー:seiya.terashima@xxx.com カラム:id package com.seiyablogproject.snippet import _root_.scala.xml.NodeSeq import _root_.net.liftweb.util.Helpers import Helpers._ import me.prettyprint.cassandra.seria
その場の思い付きを、ヒマをみつけてWebサイトにしてみるブログCassandraが気になっていたんですが、同じ列指向データベースのHBaseはどうなんだろうと思って、簡単に比較してみました。 データの一貫性 NoSQL系は、そもそもRDBMSに比べて一貫性がゆるめに設計されている感じがあります。実際、Cassandraは、行ロックがなくトランザクションが使えません。複数のクライアントからの更新が被った場合は、タイムスタンプを見て最新のものを現在の値に設定するようになっています。結果整合性っていうみたいですね( ̄∇  ̄ ) ただ、まったく一貫性に関するオプションがないわけではなく、クエリ発行時にConsistencyLevelを指定することで、全てのレプリケーションノードに書込まれたことを保証したりは出来るみたいです。一方、HBaseの方は行ロック可能で、トランザクションを使うことができま
Cassandraをはじめたばっかりの時に自分の頭を整理するために書いたモデル図が他の人にも役に立ったようで、トラックバックがきていた。ありがたいことです。 で、トラックバック元のブログを読んでいたら、こんなことが書いてあった。 Columnの構成はシンプルで、name,valueとtimestampで構成されています。(中略)また面白いことにtimestampの時間は、クライアント型のtimestampを設定します。なので、サーバ側とちゃんと時間同期しておいてくださいねとのことです。思い切った割り切りですね。分散型DBってこんな感じなのでしょうか。 Cassandraのデータモデリング。或いはKeyspaceの設定方法 - プログラマになりたい このtimestampの話って結構重要だと個人的には思っている。前からブログに書こうかなーと思ってたので、反射的に書いておく。 Cassandr
Facebookが新しいサービス「Messages」の基盤として、NoSQLデータベースの「HBase」を選択したことを、先日の記事「Facebookが新サービスの基盤にしたのは、MySQLでもCassandraでもなく、HBaseだった」で紹介しました。 HBaseは、Facebookによると次のような特徴を備えていると説明されてます。 負荷に対して非常に高いスケーラビリティと性能を発揮 CassandraよりもシンプルなConsistency Model(一貫性モデル)を備えている 自動ロードバランス、フェイルオーバー、圧縮機能 サーバーごとに数十個のシャードを割り当て可能、などなど このHBaseはどのようなデータベースなのでしょうか? 情報を集めてみました。 HBase入門のプレゼンテーション 最初に紹介するのは「HBaseエバンジェリスト」Tatsuya Kawano氏のプレゼン
データベースの世界でいま注目されているのがNoSQL。特にキーバリュー型データストアは、グーグルのBigTable、FacebookやTwitterが内部で利用しているCassandraやAmazonクラウドが提供しているSimpleDBなど、すでに実際に使われ始めています。 ではそのNoSQLをリレーショナルデータベースの代わりに使ってシステムを構築するとどうなるのか? 身をもって体験したことを記したShinya Kawanaka氏によるプレゼンテーション「間違った方向にCassandraを使ってみた」が公開されています。 NoSQLを用いたシステム構築は、リレーショナルデータベースによる構築どう違うのか? とても分かりやすくまとめられています。ご本人の承諾もいただいたので、その内容を紹介しましょう。 NoSQLを使ったときに起こる恐ろしい事例 プレゼンテーションのテーマは「NoSQLを
Apache Cassandraの0.6.xまではキースペースとカラムファミリ(RDBでいうデータベースとテーブルのような単位)を設定ファイルに記述していたため、設定変更には再起動が必要だった。しかし、0.7ではこれを動的に作成や変更ができるようになっているとのことだったので試してみた。 0.7.0-beta1をダウンロードして展開する。 $ wget ftp://ftp.riken.jp/net/apache//cassandra/0.7.0/apache-cassandra-0.7.0-beta1-bin.tar.gz $ tar xzvf apache-cassandra-0.7.0-beta1-bin.tar.gz $ cd apache-cassandra-0.7.0-beta1/設定ファイルを書き換える。0.6.xまではconf/storage-conf.xmlに設定していたが
Windows から Ruby で Cassandra を使うための準備 Ruby から Cassandra を使ってみる あたりの続きです。 get_columns 単一のカラムの値を取得する get_columns のサンプルコードです。 カラムは配列で複数指定可能です。 require 'rubygems' require 'cassandra' include Cassandra::Constants client = Cassandra.new('Keyspace1', '127.0.0.1:9160') p client.get_columns(:Standard1, 'jsmith', ['first']) 実行結果は以下のようになります。 ["John"] multi_get 複数のキーの値を取得する multi_get のサンプルコードです。 require 'rubyg
クラウド時代の新しいデータベースとして、非リレーショナルな構造を持つNoSQLデータベースが話題になっています(NoSQL=Not Only SQL。命名の経緯はこちら)。そのNoSQLの中で、もっとも注目されているデータベースの1つがApacheのCassandraです。 Cassandraは、Facebookで大規模データ処理のために開発され、その後オープンソースとなり、現在ではApache Software Foundationのプロジェクトとして開発されています。 現在、CassandraはFacebookやDiggなどで使われている、もしくは使うことが検討されているとされ、Twitterでも(ツイートデータの格納には使われないようですが、それ以外の用途で)利用されています。 TwitterとDiggがNoSQLの「Cassandra」を選ぶ理由 Twitterが、Cassandr
The Apache Software Foundation Announces Apache Cassandra 0.7 -- FOREST HILL, Md., Jan. 11, 2011 /PRNewswire/ -- Cassandraは、NoSQLデータベースの中でもキーバリュー型データストアと呼ばれる分野でもっともよく知られているソフトウェアの1つ。もともとFacebookで大量のデータを高速に処理するためのデータベースとして開発され、オープンソースとして公開されたもの。現在はThe Apache Foundationにより開発が続けられています。 追加された機能 Cassandra 0.7では、主にメモリ利用効率の向上、オンライン状態でのスキーマ変更、セカンダリインデックスなどの機能が追加されています。RackspaceのブログCloud:Blogにポストされたエントリ「Ne
Cassandraは、Thriftフレームワークを使用しているため、さまざまな言語でクライアントをコーディングすることができます。 ということで、PerlでCassandraのデータ操作を行ってみました。 Perl以外のクライアント用モジュールについては、以下を参照してください。 ClientOptions - Cassandra Wiki (モジュールインストール) CPANから"Net::Cassandra"をインストールします。 私の環境では、"Class::Accessor"と"Bit::Vector"がインストールされなかったので、別途インストールしました。 cpan> install Net::Cassandra cpan> install Class::Accessor cpan> install Bit::Vector 以下、サンプルコードです。(といっても、Net::Ca
Facebookが15日に発表した新しいサービス「Facebook Messages」は、チャットやつぶやき、そして電子メールなど、自分宛のテキストやメッセージをすべて1つのインボックスで管理できると発表されました。 同社が15カ月かけて開発してきたこの新サービスのバックエンドデータベースは、これまで同社が大規模運用してきたMySQLでも、同社が開発したNoSQLデータベースのCassandraでもなく、グーグルのBigTableをモデルとしてオープンソースで開発された分散データベース「HBase」でした。 Facebookのソフトウェアエンジニア、Kannan Muthukkaruppan氏がFacebookにポストした記事「The Underlying Technology of Messages」で、その技術的背景が紹介されています。 MySQLとCassandraが落選した理由 H
trunk版のCassandra(Cassandra 0.7)で遊んでみた。 設定ファイルがYAMLに変わるのは誰得?って印象があったが案外違和感がない。普段LAMP系のソフトウェアを扱っている人間にはYAMLの方が自然に感じる。 動的にKeyspaceやColumnFamilyを追加できる機能はgood。APIが変わりすぎてないか…Vector clockサポートが入るといった大きな変更があるから仕方がないのかもしれないし、APIのInterfaceは0.6系のものより洗練されていると感じたが、Pythonで言うとlazyboyとかpycassaいったCassandraラッパーライブラリは全く動かなくなるのではないか。まだbetaすら出ていない段階だから何とも言えないが、これがCassandra Projectの流儀だとすると、いろいろ慎重にならざるをえない。KeyspaceやColum
CLIには(というかCassandraのクライアント側から)キースペースやカラムファミリーを作成したり追加・削除したりする機能は無い。 変更したい場合はstorage-conf.xmlのKeyspaceを修正し、Cassandraを再起動する必要がある。 connect Cassandraに接続するコマンド。 cassandra> connect localhost/9160 Connected to: "Test Cluster" on localhost/9160 接続に成功すると、クラスター名が表示される。 show cluster name 接続中のクラスター名を表示するコマンド。 →Thrift APIのdescribe_cluster_name() cassandra> show cluster name Test Cluster show keyspaces クラスター内のキ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く