Kahua Release
- Release Note
- Download
- Current Version 1.0.7.3 (2008-05-08)
kahua-web Release
- kahua-webとは
- Release Note
- Download
- Current Version 0.3.1 (2007-06-12)
Security Advisory
Event Log
Documentation
For developers
Site info
Related Site
Release Note for version 0.5
以前のバージョンとの相違
全体として、モジュール構成に大きな変更が加わっています。 特にデータベースの管理情報の格納方法が変更されているので、 0.4.1以前からアップグレードする際は必ず「注意事項」を読んでデータベースの変換を行ってください。
- kahua-spvrとkahua-keyservをスレッドプール化しました。
- kahua-spvrに含まれていた簡易HTTPd機能を単独のスクリプトkahua-httpdに切り出しました。
kahua-httpdもスレッドプール化されています。また、kahua-spvrからkahua-httpdを起動することも、
単独で起動することもできます。
# kahua-httpd --runas www:kahua -p 80
などとすれば、特権ポートをlisten(2)した後指定のユーザ/グループに権限を落とすことができます。 - 同一タイプのワーカーを複数起動することによって、負荷分散をはかることができるようになりました。
- kahua.persistenceモジュールをkahua.persistence、kahua.persistence.fs、kahua.persistence.dbi、 kahua.persistence.mysql、kahua.persistence.postgresqlに分割しました。
- [重要] MySQLやPostgreSQLへのデータベースの格納方法に変更を加えました。既存のデータベースを使い続けるには、
% kahua-dbutil fix mysql:kahua:password:db=kahuadb
などとして変換してやる必要があります。 - インストール先ディレクトリのいくつかが変更されました。例えば、
% ./configure --prefix=/usr/local/kahua
としてビルドした場合、0.4.1以前のバージョンでは/usr/local/kahua/bin/kahua /usr/local/kahua/sbin/kahua /usr/local/kahua/libexec/kahua /usr/local/kahua/share/info/kahua /usr/local/kahua/share/man/kahua
にインストールされていたファイルは、それぞれ/usr/local/kahua/bin /usr/local/kahua/sbin /usr/local/kahua/libexec /usr/local/kahua/share/info /usr/local/kahua/share/man
にインストールされます。 - アプリケーションのテンプレート生成などを行うkahua-packageコマンドが追加されました。
- Kahuaのconfig情報を取得するためのkahua-configコマンドが追加されました。
- <kahua-persistent-base>を継承するクラスを定義する際、スロットオプションに:final #tを渡すことで そのクラスのサブクラスが当該スロットをオーバーライドすることを禁止できるようになりました。
- セッションに明示的にデータを保存するために、関数kahua-local-session-ref/kahua-local-session-set!、 マクロdefine-session-object、述語kahua-sendable-object?が追加されました。
- app-serversファイルに :profiler <出力先パスのベース名> を指定することで、ワーカのプロファイリングを
行えるようになりました。
:profile /tmp/hoge
と指定すると、/tmp/hoge.<worker ID>に各ワーカのプロファイリング結果が、100リクエスト処理するごとに 出力されます。 - app-serversファイルに :default-database-name <データベース名> を指定することで、デフォルトで使用する データベースを変更できるようになりました。
- kahua-spvrから各ワーカへのping機能を廃止しました。代わりに子プロセスの終了ステータスを監視する形で 自動リスタート機能を再実装しています。
- make-kahua-collectionが :predicate キーワード引数と、:keys キーワード引数を取れるようになりました。 これにより、あらかじめ絞り込んだ形で<kahua-collection>を取得できます。
バグ修正
- 複数プロセス間で同一のデータベースにアクセスした際、一貫性を破壊する可能性のあった不具合を修正しました。
- 他の永続オブジェクトを参照するスロットが正常に実体化できないことがあった不具合を修正しました。
- MySQLやPostgreSQLをバックエンドにした際、接続時の文字エンコーディングを正しく設定するようにしました。
- kahua-spvrの子プロセスの管理を大幅に向上しました。
- JSON形式のデータを得る際、Content-Typeを正しく設定するようにしました。
- その他たくさんのバグを修正しました。
動作条件
- Gauche-0.8.7 以降(ただし、CVS HEADの使用を推奨します)
- Gaucheがpthreadをサポートするように構築されていること。
$ gosh -V|grep pthread Gauche scheme interpreter, version 0.8.7 [utf-8,pthreads]
のように表示されればOK。
注意事項
- 0.5では、0.4.1以前とRDBMSへの管理情報の格納方法が変更されています。
0.5に入れ換え後、必ず新たに追加された kahua-dbutil スクリプトで変換してください。
% /usr/local/kahua/bin/kahua-dbutil fix mysql:kahua:password:db=test ==Start checking: #<<kahua-db-mysql> "mysql:kahua:password:db=test" (active)>== Checking kahua_db_idcount...OK Checking kahua_db_classcount...FIXED ==Done==
- Linux カーネルバージョン 2.4 系列を使っているシステムでは、 NPTL(Native Posix Thread Library)が組込まれていない libc を使っている場合 (たとえば、2.4 系列カーネルの Debian 3.1 sarge)では正しく動作しません。 2.6系列のカーネルに入れ替えるか、NPTLを組み込んだlibcを使用してください。