nekop's blog

OpenShift / JBoss / WildFly / Infinispanの中の人 http://twitter.com/nekop

JRubyでHotRodクライアントを書く

JBoss / WildFly (全部俺) Advent Calendar 2013の8日目です。

Infinispan Serverのテストをするときに、まず1万エントリ突っ込む、というようなことをよくやります。他にも並列アクセスだとかいろいろなシナリオを実行したいのですが、このようなやたら頻繁に書き直すようなトライアンドエラー系の仕事をJavaでやるというのは罰ゲームっぽいのでスクリプトでやりたい。Infinispan Serverにはispn-cli.shという簡易CLIが付属してはいるのですが、もう少し柔軟性が欲しいところです。

というわけでJRubyjruby-hotrod.rbというのを書きました。

バルクオペレーションのテスト前提なのでキー末尾にはカウントがくっつく仕様です。一旦こんなスクリプト書いてしまえばあとは煮るなり焼くなりマルチスレッドから負荷かけるようにするなりある程度自由にできます。

jruby jruby-hotrod.rb put -c 10000

手元の環境だと2.5秒くらいで1万エントリのputできます。

JRubyで書くとDir.glob each requireできるのでMavenとかclasspathとか最初の面倒なところすっとばしてコード書き始められるので良いですね。