JavaScriptを動くようにした

本当は分散トランザクションのこと
考えようとしてたけど、思いついたから
実装してみた。

内容はデータ取得メソッドにJavaScript
渡せるようにして、データが取得出来たら
そのデータに対してスクリプトが実行できます。
データノードで実行されるからCPU資源とか
借りれる感じです。
データの加工とか諸々つかえるかな?

あとはクライアントの接続メソッドに
複数のマスターノードを設定出来るようにしました。
接続中のマスターノードがこけても自動的に
再接続して処理を続行します。

okuyama ver0.5.0リリース
http://sourceforge.jp/projects/okuyama/releases/

okuyama0.4.0をリリース。今後

okuyama0.4.0をリリースしました。
http://sourceforge.jp/projects/okuyama/

分散トランザクションを実装する前に、付けたい機能を一通り実装。
追加機能は以下。
■データノードの動的追加をサポート
■データノード追加後に新しいノードへデータの移行を行う機能を追加
■データノードへのアクセスをメインデータノード、スレーブデータノード間でバランシング出来るモードを追加
■マスターノードを複数台稼動させ、負荷分散、冗長化出来る機能を追加

全体的な構成はこんな感じ。


まだまだ荒いところがあるのと、人手を必要(復旧など)とする部分があるので、
直すところは多くあるので徐々に改修していくのと同時分散トランザクションのことを
考えてみます。

オープンソースカンファレンス2010 Kansai@Kobeに参加しました

今日はオープンソースカンファレンスKobeに
参加してきました。私は会社が協賛してるので、
出展側で参加。

いや〜、スゴイ盛り上がりでした。
多くの方ともお話でき、実に有意義な時間を
過ごさせて頂きました。

さて、場所を懇親会に移して第二部スタート!!
こちらもスゴイ盛り上がり!!
私はというと、本日初めてお話させて頂いた、
EucalyptusのJpコミュニティーの方々と
終始席を共にさせていただきました。

話しはクラウドへ、と思いきや終始kvsの話題に。
やっぱりSQLライクなインターフェースは
あれば便利だよねとか、どこまで割り切った
設計モデルは許せるのかとか。
アプリ側にもある程度設計レベルから譲歩して
もらわないととか。
終盤はRDB並のトランザクション機構って無理なのかな
って話題に、okuyamaをモデルにポストイットに交互に
絵書いてあーだこーだと。
本当に有益な時間を過ごさせて頂きました。
アイディアも頂けたので、挑戦してみます。

本日参加されてた皆様、お疲れ様でした。

風邪から回復

何とか風邪から回復。
会社行ったら仕事山積みだー。
まあ自業自得ですが。

okuyamaネタで。
今日はkvsでの分散ロックを考えてみます。
chubbyとかZookeeperが有名ですが、
使うとしたらどういうのが使いやすいんでしょう。
方法はPaxos? Zab?
む、むずかしそうだ。。。

でも、提案、合意の方法は良いですね。
少し挑戦してみます。

風邪でダウン

今日は一日風邪でダウンしてました。
久々に熱出たな〜。
朝から病院行って薬飲んでねてた。

少しJavaネタを
Javaで変更されない変数(定数)を宣言する場合に
finalを付加すると思いますが、こうするとコンパイル時に
参照している箇所はコンパイラーがfinal宣言の実際の値に
置き換えます。

static final String FINALSTR = "a";
String str = FINALSTR;

private void test() {
if (str.equals("a")) {
System.out.println("equal");
} else {
System.out.println("not equal");
}
}

上の場合変数strにfinal宣言の値を代入してるところが
コンパイル後のclassファイルでは
String str = "a";
となります。

finalの値を参照している場合は宣言している部分だけ
変更しても意味がなく、全ての参照クラスの再コンパイル
必要になります。
jadなどで逆コンパイルしてみてください。


okuyama version 0.3.2 をリリースしました。
http://sourceforge.jp/projects/okuyama/

Webサーバのアクセスログから各ホストのアクセス回数をカウントするワンライナー

ApacheTomcatなどのデフォルトアクセスログフォーマットである
Common Log Formatからホスト別のアクセス回数を調べるワンライナー

cat access_log | cut -d - -f 1 | sort | uniq -c

もう一回sort入れてアクセス回数順とか。

風邪ひきました。
いたるところの関節が痛い。。。

初日記 はじめまして

初日記書いてみます。

しがないプログラマーやってます。
Javaとか使ってお仕事プログラムしながら、趣味で
kvsとかなんちゃってDBとか作ってます。

こんなんとか
Pure-Java永続化対応の分散オンメモリKey-Value「okuyama」
http://sourceforge.jp/projects/okuyama/

後は仮想化とか(お仕事でさけては通れないので)

車も好きでランエボでサーキット走ってます。

面白いこととか、発見があったら書いてきます。