読者です 読者をやめる 読者になる 読者になる

テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(akashic report) 1.0.0-RC3のリリース

github.com

2016-05-05  Akira Hayakawa <ruby.wktk@gmail.com>

    * v1.0.0-RC3
    * Change metadata-caching algorithm
    * Change BAL interface
    * Move Vagrantfile to project top level

RC2を出したのが24日前なので, およそ1ヶ月ぶりにRC3を出します. これは, 1.0.0の正式リリース前の最後のRCとなります.

RCを刻むのは, 現時点でのバグを潰していくのもそうですが, 細々としたことを煮詰めていくことで仕様を見つめ直すためです. 例えば, ドキュメントや設定ファイルを書くことによっても仕様のおかしなところに気づくことがあります.

今回のリリースで大きく変わったのは

  • メタデータキャッシングのアルゴリズム変更: BALに依存しない形にしました
  • Vagrantfileをプロジェクトのトップレベルに移動して, アカストのデーモン, admin-cli, admin-webまでが一括でインストール出来るようにしました

の2点です.

1点目, メタデータキャッシングについては, BALのFileAttr経由で渡してもらっていたcacheKeyというのを排除しました. この変更のために他のところも見直しをして, 改善されたと思います. 実装というのは, どんどんやってみるとあるべき姿が浮かび上がってくるものです. 作っている本人が思うのは不思議なことですが「本当はこういうソフトウェアだったんだ」と気づくことがあります.

今回のメタデータキャッシングによって, 以下の制約がつきます.

  • オブジェクトを上書きする時は, 1秒以上離さなければいけません. 1秒未満で上書きした場合は, 1秒待ちます. (キャッシュの鍵として秒単位のタイムスタンプを使っているためです) このケースを守っているのは, オブジェクトが1秒以内に上書きされるケースが実用上は結構あると思っているからです. (例えば, Dropboxのようなサービスを想像してください) また, s3-testsにoverwriteのテストがたくさんあるためです.
  • オブジェクトが削除されたあと再作成された場合, これも1秒離さないとキャッシュは破綻します. しかし, そのオブジェクトが必要ならば削除してから再作成などせずに上書きするはずなので, このケースは救わないことにしました.

その他のケースでは完全にワークすると思います.

2点目, Vagrantfileについては, 実際の運用はこれでやってもらうというつもりで提供します. というのも, サーバを一つ用意してアカストをインストールするというのは嫌われるからです. 私はVMは主にカーネルデバグのために使いますが, ウェブ業界では実運用にVMを使うことが多いようです.

1.0.0に向けて, ドキュメントの整備やslideなどの資料作成に勤しみます. 何かウェブアプリケーション開発者が集まる場でアカストを発表出来たらよいとも考えています.