[pgsql-jp: 35681] Re: pgpoolのfflush()におけるEAGAIN

Tatsuo Ishii t-ishii @ sra.co.jp
2005年 7月 6日 (水) 18:26:24 JST


石井です.

> 山下と申します。
> 
> 現状FreeBSD4.11、postgresql7.4.8でpgpoolを使用していますが、
> 大量のデータをやり取りする際にfflush()でEAGAINが発生しており
> ます。この問題については pgsql-jp:35408 にて同様の問題が発生
> している様子です。その際fflush() のリトライにより対処を試み
> る案が石井様より提示されておりますが、色々と調べたところ問題
> がありそうなのでポストさせて頂きました。
> 
> 資料として http://lc.linux.or.jp/paper/lc2005/CP-08.pdf> 「5.6 nonblocking writeにおけるデータ消滅」にある記述では、
> 
> --以下引用
> 書き込みバッファ内のデータがfflushされて書き込まれる時に
> EAGAINで失敗した場合、stdioの実装によってはまだ書き込まれて
> いないデータが捨てられてしまう場合がある。
> --引用ここまで
> 
> となっております。有効な解決方法が見付かりましたら、また御報
> 告させて頂きます。

上記ペーパ見てみました.結局自前でstdio相当のものを実装するしかなさそ
うですね.rubyは自前でstdioを実装しているそうなので,それをもらってく
る手もありますが,ライセンスがGPLなのでそれもできないですね.

まあ,一から作ってもたいしたことないと思うので,地道に自分で何とかする
ことにします.
--
Tatsuo Ishii



pgsql-jp メーリングリストの案内