5月 122011
 

Varnish3.0のβ1がリリースされました。
Varnish Cache 3.0 beta 1
新機能がたくさん増えてますがまずはサマリから、詳しいのはあとで

Preliminary streaming support, both on miss and on pass.

miss,pass時にストリーミングをサポートしました。
今までミスヒットなどでVarnishに返却すべきオブジェクトがない場合バックエンドからVarnishに転送が終わるまでクライアント側には何も返却してきませんでした。
いわゆるストアアンドフォワードですね
ところがストリーミングを有効にするとカットスルーのような動作を行います。
受信したらそのままクライアントに返すイメージです。
そのためOSのISOイメージのような大きいファイルがミスヒットした場合でもレイテンシが少なくレスポンスを返却できます。
beresp.do_streamを有効にすると動作します。
ただ注意事項としてストリーミング中に他のクライアントは保留されます。
おそらくは同じファイルの場合だけだと思いますがそこまで詳しく書いてないのであとで検証したいと思います。

Compression and uncompression support, including stiching together compressed ESI fragments.

ESIでGZIPに対応しました。

Plugins (vmods)

プラグイン機能が出来ました(vmods)
あとで詳しく記事にします。

Much improved documentation.

ドキュメントを大幅に改善しました。

Better default values for parameters.

デフォルトのパラメータをより良い値に調整しました。
記事書きました→VarnishCache3.0beta1で変更されたパラメータ一覧

Varnishncsa now has custom log format support.

varnishncsaがカスタムログ形式に対応しました。
やっと対応しました!
-Fで指定可能です。

Varnishlog, varnishncsa and varnishhist can now filter out records that match multiple expressions.

varnishlog,varnishncsa,varnishhist(varnishsizesも)複数の条件でフィルタできるようになりました
-m tag:regexの形で今までひとつしか指定できなかった絞り込み条件を複数指定できるようになりました
ただ僕が試したところだと2つまでしかできなかったのでちょっと調べてみます(varnishlog)

他にもVCLの記述が結構変わってたりするので注意が必要です。
またSourceへのリンクが5/12現在404になっていますがファイル名が間違っているだけなので書き換えてください
(varnish-3.0-beta1.tar.gzがリンクされてるけどvarnish-3.0.0-beta1.tar.gz)
さらにそのままrpmbuildで失敗したのでspecファイルを以下のように修正する必要があります。


[root@LIP-APP-01 redhat]# diff varnish.spec.org varnish.spec
9c9
< Source0: %{name}-3.0-beta1.tar.gz
---
> Source0: %{name}-3.0.0-beta1.tar.gz
75c75
< %setup -q -n varnish-3.0-beta1
---
> %setup -q -n varnish-3.0.0-beta1


1月 282011
 

Varnish2.1.5がリリースされました
Varnish Cache 2.1.5
バグフィックスが主です

英語は苦手ですが簡単に訳してみました間違ってたらすいません
後で実際の動作は確認してみます

Two bugs relating to Content-Length and possible duplication of Content-Length headers have been resolved.

Content-Lengthが重複してしまう問題に関する二件のバグを修正しました
該当しそうなチケット duplicate Content-Length headers

Support for bourne-like “here”-documents in the command line interface, allowing <<__EOF__ and similar schemes.

bourneシェルっぽいヒアドキュメントをサポートしました。(<<__EOF__)

Fixed an issue with re-using connections after Chunked-Encoding.

Chunkedエンコード時の接続を再利用する問題を修正しました。

Fix a bug that would inflate the “lost header” count and could cause problems during heavy traffic over a single connection, typically seen by load testing.

一般的な負荷試験でよく行われる単一接続で大量トラフィックを流した際にlost headerカウントが実際の値より増えるバグに対処しました

Use the time of cache-insertion for “If-Modified-Since” requests if a “Last-Modified” header isn’t provided by the backend.

Last-Modifiedヘッダがバックエンドから提供されない場合、バックエンドに取得しに行った時刻をLast-Modifiedとして扱いIf-Modified-Sinceリクエストに対応するようにしました。
該当しそうなチケット Conditional GETs based on modification time are not honored if Last-Modified was not explicitly set

Merge multi-line Vary and Cache-Control headers from clients, which Google Chromium seem to split up.

Chromeで同じフィールドを複数行に分割してリクエストしてくる際に正しく解釈できない問題があったので(最初の行しかみなかった)
複数行にわたるVaryとCache-Controlはマージして扱うようにしました。
該当しそうなチケット VCL doesn’t account for duplicate headers with different content

Various build fixes and documentation improvements

ビルドが出来ない問題を修正し(よくチケットがあがってたSolarisとか?)、ドキュメントも改良しました。

Various bug fixes.

様々なバグフィックスを行いました

試験前なのにざくっと訳文みてくれた@W53SAありがとう!
東京きたら酒飲もうぜ


10月 222010
 

昨日Varnish2.1.4がリリースされました。

Varnish Cache 2.1.4

英語は苦手ですが簡単に訳してみました間違ってたらすいません

A bug in the binary heap layout caused inflated object counts, this has been fixed.

二分ヒープのレイアウトの問題でオブジェクトのカウントが溢れるバグを修正しました
→これかな? Changeset 5356

Much more comprehensive documentation.

ドキュメントが充実しました
→/usr/share/doc/にドキュメントが追加されるようになりました(varnish-docs-2.1.4-1.x86_64.rpm)

A DNS director that uses DNS lookups for choosing which backend to route requests to has been added.

DNSディレクターが追加されました
→詳しくは The DNS director
まだ動かしていないのであれですが
以下の場合有効そうです

    多段で構築している
    ネットワークがきちんと整理されている

要は範囲指定でガッツリ設定できるのである程度の台数を使用している場合設定が楽になりそうです。
間違ってたらすいません。

The client director now uses the variable client.identity for choosing which backend to send a given request to.

セッション維持機能が使えますということです。
複数のサーバがバックエンドにある場合においてAサーバで処理して返したユーザは次に接続する際もAサーバにつなぐということだと思います。
間違ってたらすいません。

String representation of now, making it easier to add Expires headers

2010/10/24追記:やっと動作がわかりました
nowをstringに自動的にキャストするようになりました。
これにより例えばExpiresの返却が簡単になります
vcl_deliver内で


set resp.http.Expires = now;

と書いた場合、前のバージョンではVCLがコンパイル出来ませんでしたが、2.1.4では


Expires: Sat, 23 Oct 2010 18:36:55 GMT

と帰ってきます。
ただ残念なことに以下の記述はできません


set resp.http.Expires = now + 10s;


[root@LIP-APP-01 etc]# varnishd -d -f /etc/varnish/default.vcl -C
Message from VCC-compiler:
Expected variable, string or semicolon
(input Line 71 Pos 29)
set resp.http.Expires = now + 10s ;
----------------------------#------

(訳THX:@W53SA)

Portability fixes for Solaris.

Solaris向けの修正があります。

Various bug fixes.

いろんなバグを修正


そういや少し気になったんですが
ここを見てたら最新版だけVarnish Cacheとなっていて
もしかしてVarnishブランドのほかソフトも出すのかな?とかかんぐってみたりw

あとRPMビルドするときにpython-sphinxが必要になってました


7月 312010
 

Varnish2.1.3がリリースされたようです

varnishのブログからの情報だと
安定版の2.0.6と同等の安定性とパフォーマンスを確保したので是非2.1.3を使って欲しいとのことです

実はそのうち記事でだそうと思ってたのですが2.1.2は2.0.6に比べるとパフォーマンスが多少落ちていたのでこれでよくなると嬉しいです
(テスト条件は格納オブジェクト数が10ぐらいだったのでどうかとも思いますが・・・)

また変更点は
・critbitのバグを修正
 →2.1.2の際にLAが1に貼りつくという現象がありましたがおそらくそれがなおると思います(まだ未検証なので・・・)
・varnishncsaのバグ修正(ログの取りこぼしなどがあったようです)
・Rangeリクエストのバグを修正
・VCLにlogコマンドを追加
だそうです

RPMビルドの際にひとつだけ注意点があります
varnish.specファイルのバージョン指定が2.1.2になっているのでそこを2.1.3に変更する必要があります


[root@LIP-NAS-01 redhat]# diff varnish.spec.org varnish.spec
3c3
< Version: 2.1.2
---
> Version: 2.1.3

参考サイト
Varnish 2.1.3 – Use it!
Varnish2.1.3

ダウンロード
The Varnish HTTP Accelerator