2010-01-01から1年間の記事一覧

最後に…

どうも最後までお付き合いいただきまして、ありがとうございました。 もしソースみたいなんて方がおられましたら、コメントでも残して置いてください。

分散への考察その2−Entity分割方式

全点数を一つのインスタンスに格納するのではなく、適当な点数の範囲毎にインスタンスを分けて分散させるアイデアです。 今回試しに実装したものは0〜10万点の範囲で作成していますが、これを4096点毎に25個のインスタンスに分けて実装したのが↓です。 http:…

分散への考察その1−分散カウンタ方式

スケールするカウンタの実装として、「分散カウンタ」というのが知られています。 appengineでは更新処理に比べてgetがとても早いので、カウンタ用のEntityを複数個用意して、 ・更新はランダムに選んだどれか一つに対して実施 ・カウンタの値は全部parallel…

ランキング計算以外も実現できる?

id:koherentさんがajn8向けに作成されたスライドを見ながら、同じことができるか考えてみました。 http://www.slideshare.net/koher/skiplists20100604 P.36 リストの要素数・・・一番上の階層の保持する人数。O(1)で計算可能。 P.37 要素番号による検索・・・要す…

Skiplistと比べると…

このデータ構造はSkiplistと比べて、汎用性がありません。 扱うのが整数値の点数なら問題ないですが、例えばこれが小数値だと途端に難しくなります。 特に文字列を扱うのは多分無理でしょう。 Skiplistなら任意ソート条件が扱えるんですが、こちらは使用でき…

Google App Engineのランキング問題

Google App Engineで何かと話題になってたランキング問題。 appengine ja night #8(ajn8)に参加された方ならご存知のように、既にid:koherentさんがSkiplistというアルゴリズムを使って解決しています。 参考:http://d.hatena.ne.jp/koherent/20100425/1272…

JavaでもRubyみたいなMap(Hash)のリテラルが欲しい!

と思って考えてみました。Javaで適当なMap作るときって、 Map<String, String> map = new HashMap<String, String>(); map.put("tako", "octopus"); map.put("ika", "squid"); map.put("namako", "sea cucumber"); ってな感じじゃないですか?RubyとかだとMap(RubyだとHash)のリテラルがある</string,></string,>…

Slim3でDIコンテナっぽくテストする方法

2週間ほど前に、急遽SAStruts+Seasar2+S2JDBCの現場のヘルプに呼ばれました。 ところがテツさん、Seasar2はおろかDIコンテナ自体やったことなくて、大急ぎで勉強する羽目になりまして。 今も勉強しながら作業しているんですが、そんな中ふと「あれ、Slim3で…

DNS Rebindingとケータイ

セキュリティ業界で有名な徳丸浩さんが書いた、「iモードIDを用いた「かんたんログイン」のDNS Rebinding脆弱性」&「DNS Rebinding」という記事(↓)を見て、ふと思ったこと。http://www.hash-c.co.jp/info/20091124.html http://www.tokumaru.org/d/20071126…