OSC 2008 関西に赴く。

オープンソースカンファレンス2008 Kansai - おいでやす に参加してきました。聞いてきたセッションは三つ。印象に残ったことをメモしておきます。

Mashup Caravan in KYOTO

MA by Mashup Awardsの主催である、リクルートさん、サンさんの技術セッションに加え、API 提供側の Prefered Infrastructure さんの http://labs.preferred.jp/reflexa/ の説明、また API 利用者側で、昨年トリプル受賞したという、位置情報コード LocaPoint(ロカポ) さんの説明、と、主催者、API 提供者、API 利用者というバランスで二コマ連続でも飽きない内容でした。

NetBeansjavascript エディタが何げによさげ。。。

偶然、サン時代の同期に出会い、その彼のはからいもあり、川崎さんやその他の発表者の皆様と簡単にご挨拶させて頂きました。

大賞の他にも、諸々部門賞があったり、デバイスの切り口のものがあったり、とかなり間口が広い印象を受けました。

OSS DRBD のご紹介

セッション後に、説明をされていた サードウェアの久保さんと少しお話させて頂きました。その時、いくつか伺った質問とそのご回答をば。

DRBD のブロックデバイスはローカルマウント出来るか ?

Yes 。例えば LVS でスナップショットをとり、それをローカルマウント可能。実際には、DRBD のメタ情報は、その上に構築する Filesystem からは見えない領域に書き込んでいる。また、メタ情報自体は、同一パーティションにもかけるし、別のブロックデバイス上に書く設定も可能。

DRBD のセカンダリは一台まで ?

Yes 。ただし、商用の DRBD+ を利用すれば、DRBD の上に一段さらに DRBD をかぶせられるとのこと。

パフォーマンスってどれくらいのもの ?

GbE をボンディングで利用すれば、シーケンシャルであれば、数百M くらいのオーダでは出る。よほど I/O シビアなアプリでない限りは、十分実用に耐えるレベル。

File Server などで、大きなデータ転送などには弱いのでは ?

ジャンボフレームを利用するような設定も可能。

逆に DB のログ書き込みといった少量で、ランダムなアクセスには弱い ?

8K くらいのレベルであれば、あまり影響はない。

DB のレプリケーション機能との棲み分けの設計の勘所は ? (一概にはいえないと思うという前提つきで)

やっぱり一概にはいえない (笑) とのこと。ただし、PostgreSQL などを DRBD 上で動かしている実績もあるし、出来ない事はない。その辺りは、アーキテクチャ設計で、アプリの特性をふまえた上で考えたら良い。後は、ミラー対象が DB だけなのか、それ以外もあるのか、といった観点もあるでしょう、とのこと。

Cluster 構築する時に利用する、クラスタマネージャのおすすめは ?

実績が多いのは、Heartbeat 。ただし、実際クラスタウェアにお願いするのは、DRBD のプライマリ/セカンダリの切り替えとローカルマウントなので、そこが出来るものであれば、基本的には何でも OK。手慣れているものがあれば、それを使えばいいし、実績もあり、情報も多いものを求めるなら Heartbeat がよいのでは。

やっぱりすごい!Memcached!!

memcached のお話。新鮮だったのは、DB のとトリガをフックにして、memcached 側にデータをプッシュするスタイルが徐々に増えてきているとのこと。PostgreSQL にも pgmemcacheなるものがあるらしい。

http://thimbleware.com/projects/jmemcached なども少し前にちらみをしたりしながら、意識はしていたミドルウェアではあるのですが、Java では、コンテナがインメモリで動いているし、LRU でのキャッシュ実装であれば、AOP 使って透過的にアプリ組み込みでもいいよね、という感覚でスルーしていた部分もありました。

が、最近では mixi さんの Tokyo Tyrantや、KLab さんの repcachedなどのレプリケーション機能と、DB のトリガフックを利用すれば、結構良い感じに使えるのでは、と思ったりしてきました。