スティルハウスの書庫の書庫

はてなダイアリーで書いてた「スティルハウスの書庫」を移転してきました。

#appengine で skiplist ってすごくね?

@koherさんのエントリ「Google App Engineでランキングやページングを実現する」はすごいです。。

どうすごいのかは、時間があるときに改めてエントリを書きますが(もう寝なきゃ〜)、とりあえずはこの件で@kibayosさんからいただいた貴重な情報群のまとめです:

結論から言うと、

私のつぶやきに対する@kibayosさんのお返事:

はい。RT @kazunori_279: まとめ: #appengine 含むNoSQL/KVSのエントリ間でskiplistを作れば、任意ソート条件でランク、カウント、指定範囲の最大/最小/中央/平均/合計値、 pagingをO(log n)で実装できる... 理解合ってますか?

私のつぶやき:

確かに更新コストは高いけど(INSERTがんばれ系)、私としては、#appengine で正確なgroup byクエリをO(log n)で実装できちゃう点に感動するなぁ。。夢に見たcount(*)が! avg(*)が!

4/26追記

そろそろ寝ようかな〜と思ってたら@koherさんのつぶやきが始まって、@kibayosさんと3人で濃すぎる深夜のつぶやき大会になってしましました^^;; お題は「skiplistとB-Treeはどう違うのか?」「B-Treeでよいなら、既存DBのインデックスとどこが違うのか?」です。

あわせて読みたいIndexable B-treeを作る