wakatonoの戯れメモ

はてなダイアリーから引っ越してきました。

趣向を変えた負荷試験(1)

一度、svnserveApache経由とで同じリポジトリを叩き合いたいと思っていたのですが、その夢が(ぇ?)今日かないました(ぅぉ)。

  • リポジトリに3つのファイルを用意する
  • 3つのファイルを3つのクライアントから個別に更新、コミットする


…とまぁ、ここまではいいんですが、それぞれのクライアントで

とかいうエキセントリックなことを(笑)。
結果:リポジトリファイルがマッハでオシャカになりました。
svnadmin recover でなおらない(いきなり黙る)くらい逝ってます。

趣向を変えた負荷試験(2)

さすがにfile://はやりすぎだろう、と反省(ぇ?)。
なので、svn://とhttp://の2つに絞り、やることにする。ちなみに今度はsvnservehttpdの2つからしかたたかない。
ただし、リポジトリはbdbとfsfsの2つで用意し、個別にたたいてみる。

fsfsでやった結果:片方のリポジトリへのコミットがことごとくはじかれる。他のクライアントから変更した覚えないのにコンフリクトしてるとか言われるし…。

bdbでやった結果:どちらのコミットも問題ないようです。2つのクライアントにさらに追加しましたが、どれもコミットはうまくいってるように見えます。

fsfsがまだ枯れてないってことなのかな、これは。

趣向を変えた負荷試験〜中間的な結論〜

いまんところは、

  • ファイルアクセス
  • svnserve経由のアクセス
  • httpd経由のアクセス

のいずれか1つに絞ったほうがいいですね。
やっぱお勧めはhttpd経由のアクセスかなぁ。WebDAVプロトコル(びみょーにシーケンス異なるけど)使ってるからProxy超えは気にならないし、その気になればmod_authz_svnとかも使えるし、認証手段もいろいろ使えるし。

Subversionが嫌いですかぁ

BerkeleyDBを使ってるあたりでオレも(嫌ほど)痛い目にあいました…。
でも、新しいDBフォーマット(しかもスクラッチから起こされている)が現在のHEAD Branchで実装されてるし、意外に先行きは明るそう。
データベース形式がテキストであるか否かというあたりは…難しいですね。基本的には、

  • 大元
  • 差分1
  • 差分2

という感じで取得していき、あるリビジョンnからn+1での変更内容すべてを1つのファイルに書き出すという形をとってますから。そこで管理されるものが全てテキストであるか否かで内容が変わってくるんじゃないかなと(見たけど忘れた)。
あと、安心担保システムというくだりがありましたが、remove一発であとくされなく(バージョン管理されてた痕跡すらも)消えるあたりは初心者に使わせるにはちょっと不安材料になるかなぁ…と個人的には思います。
もっとも、Subversionにも不満がないわけじゃなくって、

  • たった3クライアントで一晩中連続コミットかけつづけたくらいで壊れるな


というあたりが不満ですかね。
このあたりは継続してウォッチしていきますが。