App Engine

Single Property Indexを作らないとComposite Indexも作成されない?

昨日行われたappengine ja night #9で話題になった次の二つについて試してみました。 プロパティa、bに対してSingle Property Indexは作らずにComposite Indexだけを作った場合、a=1、b=2、c=3のようなフィルタを使えばComposite Index + ZigZag Scanを試せ…

App Engine上で順位・平均・中央値等を計算するライブラリを作る

先日のエントリー「Google App Engineでランキングやページングを実現する」にたくさんのブックマークをいただきありがとうございます。まさかここまで盛り上がると思っていなかったので驚いています。前のエントリーでSkip ListではなくB-treeによる実装に…

Google App Engineでランキングやページングを実現する

昨日一昨日、Google App Engine (GAE)に関する日本最大の勉強会(だと思う)appengine ja night #7 (ajn7)が行われました。その中で『ランキング問題』が話題に上がりました。『ランキング問題』とは、何十万件もの点数のデータがあるときに、App Engine上で…

Indexable B-treeを作る

新幹線で東京に移動している間に前の記事、Google App Engineでランキングやページングを実現するに信じられないくらいのブックマークがついていてびっくりしているのですが、新幹線の中でぼーっと考えているとより高速なランキングを作る方法に気付きました…

DatastoreMapのソースをGitHubにアップする

タイトル通り、DatastoreMap(やMemcacheMap、DatastoreOutputStream等)のソースをGitHubにアップしました。GitHub初めてでよくわかってないけど、これでいいのかな?GitHub - koher/Koherent-App-Engine-Library-for-Java: Koherent App Engine Library is…

Google App Engine用に作ったDatastoreMapを高速化する

以前に、Google App Engine for Java(以下GAE/J)のデータストアにHashMapのような感覚で書き込む(または読み込む)ためのDatastoreMapというクラスを作成しましたが、より現実的な利用を考えて高速化を行いました。java.util.Mapのメソッドを仕様に忠実に…

Google App Engine上にFileOutputStreamを実装する

Google App Engine for Java(以下GAE/J)で、FileOutputStreamのような感覚でデータストアに書き込むためのOutputStreamを実装しました。 背景 GAE上ではFileOutputStreamを始めとしたファイル書き込みのためのクラスを利用することができません。代わりに…

Google App EngineのDatastoreをMapでラップする

Google App Engine for Javaで、ちょっとしたデータを永続化するためだけにDatastoreを触るのは面倒です。そこで、Datastoreをjava.util.Mapでラッピングしたクラスを作ってみました。(もうすでに誰かが作ってそうなにおいがぷんぷんするんですが軽く調べて…