What happened to open_sync_without_odirect?

Started by Josh Berkusalmost 15 years ago4 messages
#1Josh Berkus
josh@agliodbs.com

Last I remember, we were going to add this as an option. But I don't
see a patch in the queue. Am I missing it? Was I supposed to write it?

--
-- Josh Berkus
PostgreSQL Experts Inc.
http://www.pgexperts.com

#2Bruce Momjian
bruce@momjian.us
In reply to: Josh Berkus (#1)
Re: What happened to open_sync_without_odirect?

Josh Berkus wrote:

Last I remember, we were going to add this as an option. But I don't
see a patch in the queue. Am I missing it? Was I supposed to write it?

I don't know, but let me add that I am confused how this would look to
users. In many cases, kernels don't even support O_DIRECT, so what
would we do to specify this? What about just auto-disabling O_DIRECT if
the filesystem does not support it; maybe issue a log message about it.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +

#3Josh Berkus
josh@agliodbs.com
In reply to: Bruce Momjian (#2)
Re: What happened to open_sync_without_odirect?

On 1/15/11 4:30 PM, Bruce Momjian wrote:

Josh Berkus wrote:

Last I remember, we were going to add this as an option. But I don't
see a patch in the queue. Am I missing it? Was I supposed to write it?

I don't know, but let me add that I am confused how this would look to
users. In many cases, kernels don't even support O_DIRECT, so what
would we do to specify this? What about just auto-disabling O_DIRECT if
the filesystem does not support it; maybe issue a log message about it.

Yes, you *are* confused. The problem isn't auto-disabling, we already
do that. The problem is *auto-enabling*; ages ago we made the
assumption that if o_sync was supported, so was o_direct. We've now
found out that's not true on all platforms.

Also, test results show that even when supported, o_direct isn't
necessarily a win. Hence, the additional fsync_method options.

--
-- Josh Berkus
PostgreSQL Experts Inc.
http://www.pgexperts.com

#4Bruce Momjian
bruce@momjian.us
In reply to: Josh Berkus (#3)
Re: What happened to open_sync_without_odirect?

Josh Berkus wrote:

On 1/15/11 4:30 PM, Bruce Momjian wrote:

Josh Berkus wrote:

Last I remember, we were going to add this as an option. But I don't
see a patch in the queue. Am I missing it? Was I supposed to write it?

I don't know, but let me add that I am confused how this would look to
users. In many cases, kernels don't even support O_DIRECT, so what
would we do to specify this? What about just auto-disabling O_DIRECT if
the filesystem does not support it; maybe issue a log message about it.

Yes, you *are* confused. The problem isn't auto-disabling, we already
do that. The problem is *auto-enabling*; ages ago we made the
assumption that if o_sync was supported, so was o_direct. We've now
found out that's not true on all platforms.

Also, test results show that even when supported, o_direct isn't
necessarily a win. Hence, the additional fsync_method options.

I think it would be clear if we did not use o_direct for open_*sync, but
only for open_*sync_direct, so there was no auto-direct anything --- you
had to ask for it, and if we don't support it, you get an error. Right
now people aren't sure what they are getting.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +