Riak CS 1.5.0 が米国時間で昨日、リリースされた。OSSになってから1年余りになる。このリリースは、1.4系に残っていた多くのバグをなおしつつ、いくつかのAPI追加を行ったものだ。相変わらず運用まわりの地味な機能追加が多い。また、コレは Riak 1.4系の上で動作する最後のRiak CSになるだろう。1系の集大成だと個人的には思う。思えば一年半、遠くにきたもんだ。いろいろ怒られたり、ちょっとだけ売れたり、ちょっと前には Riak CS上で今をときめくトレジャーデータのシステムが動き始めたりと…
なんでこんなことを書いているかというと、このリリースのために割といろいろ頑張ったからですね。こういう風にあちこちで使われている製品のソースコードに、技術的な難しさはほとんどないとはいえかなりの量をコミットしたのは私の人生では初めてのことなので、これはまたちょっと感慨深いのであった。1.3のときにつくった Bucket Policy もそれなりに使われているみたいなのだけど、あれは新機能の追加がほとんどなので、既存の部分をそこまで理解しなくても作れたのでよかった。それに、後に同僚いわく「あんな短いコードでどうして動くのかサッパリわからん」といわしめたゴルフ力もあって、ちょっと一人よがりなところはあったかなーと思う(今もあるけど)。
1.5.0 のみどころその1: Hadoop MapReduceがちゃんと動くようになった
むかし、Riak CSをHiveのデータソースにするという記事を書いたのだけども、いまいち歯切れの悪い記事であった。それは、PUT Copyが実装されていないせいで、Reduce完了後のファイルの移動に必ず失敗していたのだった。MixiではHadoopの方にパッチを当てて使っていたそうだが、さすがに世界中でそうしてくれというわけにもいかず、Javaを書けないのでHadoopにパッチをコントリビュートする力もなかった。で、今回そのPUT Copyを実装したのでHadoopが普通に動くようになったという話でした。
Yay! Hadoop MapReduce worked on top of Riak CS 1.5.0 beta without any modification!! pic.twitter.com/nwbSn2C5jy
— Not yet diet fat (@kuenishi) 2014, 6月 19
1.5.0 のみどころその2: 削除が速くなった
それまでのRiak CSでも、削除そのものは速いけれども、論理削除はバックグラウンドで動作するGCを待たないといけなかった。このGCが遅くて、シングルスレッドで動いていたり、Riakの新しい効率的なAPIを使っていなかったりでとても遅くて、ファイルの作成と削除があまり多いとディスク使用量が平衡できずに膨らんでいくという問題があったのだけど、とりあえずこのGCを並列動作できるようにして、Riakの新しいAPIを使うように修正していった。だいぶ速くなって、今度はディスクがボトルネックになるようになったのだけど、Riakの削除がこれまた曲者で…ネットワーク分断に耐えるように作るから仕方がないんだけどね。
1.5.0 のみどころその3: 今話題のSparkが普通に動く
http://qiita.com/kuenishi/items/71b3cda9bbd1a0bc4f9e
jets3tを使っているから当たり前なんだけども。
1.5.0 のみどころその4: バグが沢山なおっている(ぇっ
お後がよろしいようで。えっ。
それではみなさん、バグの報告やPull Requestをお待ちしています。