so i wonder how many other databases are affected by the fsync issue? it can't be just PostgreSQL. has anyone asked their commercial DB vendors yet? https://lwn.net/Articles/752063/ …
-
-
Replying to @jer_s
I notice the DNFS doc 762374.1 says all access will be DIO.
1 reply 0 retweets 2 likes -
Replying to @joelgarry
obviously won't impact DIO configs. but if you install XE on OEL and create a DB from the installer, does it do DIO by default? or normal files with caching? i'm curious about other DBs too, both OSS and proprietary.
2 replies 0 retweets 1 like -
Replying to @jer_s @joelgarry
It is not direct IO by default but all files are opened with O_DSYNC, and write failure will offline the file (or even crash the instance since 11.2.0.2) so I suppose we don’t have this issue.
1 reply 0 retweets 1 like -
Replying to @FranckPachot @jer_s
I'm probably not understanding something, but isn't the Linux issue a silent fail? No error reported, no offline/crash?
2 replies 0 retweets 1 like -
Replying to @joelgarry @jer_s
Not silently. The 1st fsync() returns an error. But if you retry fsync() you will not get error again. Postgres devs thought that the OS keeps track of errors for them. But if O_DSYNC and close at first write() failure, you have no corruption. File is inconsistent but recoverable
1 reply 0 retweets 1 like -
Without fsync() after each write there’s also the risk that the filesystem reorders the writes. Depends on filesystems and mount options. And not following the order (redo, block write, file header) can be very bad.
1 reply 0 retweets 4 likes -
That's perfectly fine for postgres. Data is only written out once the corresponding journal entries have been safely fsynced to disk.
1 reply 0 retweets 2 likes -
Couldn't another program get the error though? Anything running on the same server can fsync() and clear the error so oracle never sees it? Didn't think Linux offered any way around this.
1 reply 0 retweets 1 like -
With current linux the error gets reported to all FDs that have been open long enough:https://lwn.net/Articles/724307/ …
2 replies 0 retweets 1 like
Also, this is essentially per inode. So even for the case of not having an fd open, the file with the error would need to be fsynced by concurrent program. Not just any fd.
-
-
Ok. Re-read about O_DSYNC and oracle normal I/O... been awhile since I dug into this; but it’s fun wrapping my brain around it. :) Thx
@FranckPachot0 replies 0 retweets 1 likeThanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.