[ https://issues.apache.org/jira/browse/LUCENE-3237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13964782#comment-13964782 ]
Uwe Schindler commented on LUCENE-3237: --------------------------------------- Hi, I checked in the other issue already source code of OpenJDK. [https://issues.apache.org/jira/browse/LUCENE-5570?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13964623#comment-13964623] In fact, fsync syncs the whole file, because it relies on fsync() POSIX API or FlushFileBuffers() in Windows. Both really sync the file the descriptor is pointing to. Those functions don't sync the descriptor's buffers only. > FSDirectory.fsync() may not work properly > ----------------------------------------- > > Key: LUCENE-3237 > URL: https://issues.apache.org/jira/browse/LUCENE-3237 > Project: Lucene - Core > Issue Type: Bug > Components: core/store > Reporter: Shai Erera > Attachments: LUCENE-3237.patch > > > Spinoff from LUCENE-3230. FSDirectory.fsync() opens a new RAF, sync() its > FileDescriptor and closes RAF. It is not clear that this syncs whatever was > written to the file by other FileDescriptors. It would be better if we do > this operation on the actual RAF/FileOS which wrote the data. We can add > sync() to IndexOutput and FSIndexOutput will do that. > Directory-wise, we should stop syncing on file names, and instead sync on the > IOs that performed the write operations. -- This message was sent by Atlassian JIRA (v6.2#6252) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org