Re: Why we are going to have to go DirectIO

Поиск
Список
Период
Сортировка
От KONDO Mitsumasa
Тема Re: Why we are going to have to go DirectIO
Дата
Msg-id 52A03AD3.6000606@lab.ntt.co.jp
обсуждение исходный текст
Ответ на Re: Why we are going to have to go DirectIO  (Claudio Freire <klaussfreire@gmail.com>)
Ответы Re: Why we are going to have to go DirectIO
Список pgsql-hackers
(2013/12/04 16:39), Claudio Freire wrote:
> On Wed, Dec 4, 2013 at 4:28 AM, Tatsuo Ishii <ishii@postgresql.org> wrote:
>>>> Can we avoid the Linux kernel problem by simply increasing our shared
>>>> buffer size, say up to 80% of memory?
>>> It will be swap more easier.
>>
>> Is that the case? If the system has not enough memory, the kernel
>> buffer will be used for other purpose, and the kernel cache will not
>> work very well anyway. In my understanding, the problem is, even if
>> there's enough memory, the kernel's cache does not work as expected.
>
> Problem is, Postgres relies on a working kernel cache for checkpoints.
> Checkpoint logic would have to be heavily reworked to account for an
> impaired kernel cache.
>
> Really, there's no difference between fixing the I/O problems in the
> kernel(s) vs in postgres. The only difference is, in the kernel(s),
> everyone profits, and you've got a huge head start.
Yes. And using something efficiently DirectIO is more difficult than BufferedIO.
If we change write() flag with direct IO in PostgreSQL, it will execute hardest 
ugly randomIO.

> Communicating more with the kernel (through posix_fadvise, fallocate,
> aio, iovec, etc...) would probably be good, but it does expose more
> kernel issues. posix_fadvise, for instance, is a double-edged sword
> ATM. I do believe, however, that exposing those issues and prompting a
> fix is far preferable than silently working around them.
Agreed. And, I believe that controled BufferedIO is faster and easier than 
controled DirectIO perfectly. In actually, Oracle database uses BufferedIO to 
access small datasets, and uses DirectIO to access big datasets. It is because 
using OS file cache more efficiently.

Regards,
-- 
Mitsumasa KONDO
NTT Open Source Software Center



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: Regression tests failing if not launched on db "regression"
Следующее
От: Peter Geoghegan
Дата:
Сообщение: Re: Why we are going to have to go DirectIO