CassandraのMemtableについて

引き続きCassandraについて調査中で、今回はCassandraの内部構造のひとつ、Memtableについて。 Cassandraでの書き込み操作はまずディスク上のCommitLog(書き込み操作のログ)に対して行われ、それからメモリ上のMemtableと呼ばれる構造体に対して書き込まれます。Memtableの構造は以下のようになっていて、ColumnFamily毎に保持されています。Key の列の Token は書き込み要求時にデータを保持するノードを決める際に計算されるものです。 Mem…

CSSの解釈について

業務の合間に制作部の社内勉強会にちょこちょこ参加していろいろ学んだのでメモ。 ここではCSSの最適化について。 * ブラウザはCSSをどう解釈している? ルールを照合するとき、右端のセレクタから調べ始めて、順に左のセレクタを調べていく。 ということは、 [css] #contents > li { font-weight: bold; } [/css] のようなルールの場合「contents という id を持つ要素を探して、その直接の子要素が li 要素かどうかを調べる」ではなく「すべての l…

Cassandra Java Client

前回 Cassandra Thrift APIのConsistencyLevel と内容的に前後してしまいますが、Cassandra APIのテストコードを一応載せておきます。データ操作(取得/登録/削除)に関するAPIはひととおり使用してあるので、コードを見ればだいたいの使い方は理解できると思います。また、各APIのシグネチャはCassandraのホームディレクトリにjavadocディレクトリがあるのでそこで確認できます。 (org.apache.cassandra.thrift.Cassan…

Cassandra Thrift APIのConsistencyLevel

前回に引き続きCassandraについて調査継続中で、今回はThrift APIの ConsistencyLevel について。以下のサイトの該当項目をざっくりと意訳した程度のメモです。 API06 – Cassandra Wiki Cassandra Thrift APIにおける ConsistencyLevel は、 storage-conf.xml で設定した <ReplicationFactor> (データの複製を保存するノード数)に基づいてread/writeの…

perlのithreads

業務とは離れたことをほんとは書きたいのですが、半日つぶしちゃったのでせっかくなのでメモ。 perlのスレッド(ithreads)について。 ithreadsはスレッド生成時にすべての変数をコピーし、Copy on Write※は行われません (C/C++から使えるpthreadsだとスタック以外のメモリ領域は暗黙的に共有され、コピーは行われない)。変数をスレッド間で共有したい場合は、宣言時にthreads::sharedのshared属性を明示的に付ける必要があります。ちなみに、C/C++でOp…

Cassandraについて

分散ストレージのCassandraについて調査中。 CassandraはNoSQL(Not only SQL)データベースの一つ。TwitterやDiggがMySQLからCassandraに移行したことでも有名です。公式サイトのOverviewにもあるように特徴は以下のようになっています。 特徴 Proven (証明) Facebook, Twitter, Diggなど多くのサービスでの利用実績 Fault Tolerant (耐障害性) レプリケーションによりサーバがダウンしても自動復帰可能 …

livedoor reader ..?

なにが起きたのかわからない。。 livedoor reader を普段使っていないので全く気付かなかったんですが、いったい年明けに何が起こったのか。。 参考:[TopHatenar] FeedBurnerの管理ページでは数字の大きな変化は特にないようですが、 livedoor reader 上だとなんかリセット(? されてます。 心配なのはこのブログの記事がLDRユーザーの人にちゃんと通知されてるのかどうか。 この記事自体もそれを確認するためのテスト記事です。 以上、よろしくおねがいします。

mx.rpc.http.HTTPServiceってなに?

このクラスの存在を初めて知りました。 そもそも mx.* パッケージを真面目に調べたことがないから; 今までREST APIなどをActionScriptから利用するときは、URLLoaderとかURLRequestとかURLVariablesとかよく考えると不思議な名前のクラスを使っていましたが、HTTPServiceを使うとちょっと楽です。シンプルになります。 URLLoader.load(URLRequest) っていうインタフェースがどうもしっくりこないので; 以下、Flex 4での利用…