アカウント名:
パスワード:
今のPostgreSQLのボトルネックは、8.1以降大きく解消したとはいえ各種内部ロックなので、mmap()にしてもそんなに快適にはならないような気がする。
それに、キャッシュのヒット率を上げるなら、メモリの有効活用よりバッファアルゴリズムを改良するとか他にやることがある。まあ、mmap()辺りの話は昔からずっと言われている割には全然実現していないので、移植性の問題か、はたまたみんなやる気がないのかな、とか思っている。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell
門外漢ですが (スコア:0, 余計なもの)
Re:門外漢ですが (スコア:1)
今の DBMS は read/write でデータを読み書きしている。write はともかく、read の方は、
read only な mmap にしてくれないかな。変更するときにコピーをとって write するって事で。
というのは、read/write は kernel 側と DBMS 側に1つづつページのコピーを持っている。
kernel 側は「手元にあるこのキャッシュのコピーは、DBMS 側がもっているあのページと
同じものだ」という事が判らないので(read とは「コピーしてよこせ」という意味ですので)
これじゃ、4Gあったとして、全部データに使えても実質2Gbyteしか使えない事になる。
mmapなら kernel cache と DBMS 側のページが「同じもの」と判るので、少しだけでも
この無駄が減る。
高速化の前にこの辺の無駄を削ってからの方が、トータルスループットが快適に上がると思うだが…。
fjの教祖様
Re:門外漢ですが (スコア:2, 興味深い)
今のPostgreSQLのボトルネックは、8.1以降大きく解消したとはいえ各種内部ロックなので、mmap()にしてもそんなに快適にはならないような気がする。
それに、キャッシュのヒット率を上げるなら、メモリの有効活用よりバッファアルゴリズムを改良するとか他にやることがある。まあ、mmap()辺りの話は昔からずっと言われている割には全然実現していないので、移植性の問題か、はたまたみんなやる気がないのかな、とか思っている。
64bits向けなら好し(?) (スコア:0)
fopen() + ( fseek() + fread() ) × n + fclose() より大抵遅いので、
一般的な32bits環境では mmap() しっぱなしでどうにかなる
全体が4GB未満のデータベースでしか速くならない
ってことになるんじゃないですかね。
Re:64bits向けなら好し(?) (スコア:2, 興味深い)
fjの教祖様
Re:門外漢ですが (スコア:0)