lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dipen <>
Subject Re: IndexWriter commit
Date Mon, 15 Sep 2008 19:55:38 GMT
hi michael,
  this is rather hard for me to understand, if a system loses power
(electricity), how can it be ensured that fsync() call will happen at all,
this commit function relies on fsync() but what if OS doesnt have time or
power in this case to actually call fsync() and synchronize. I read about
fsync() long time bacck and had this same question.

Is there anything like ultimate transaction preservation procedure as a
state of no power is almost unpedictable and unplannable. This is rather
silly question I know, but just coz you mentioned and I happened to read, I
wouldn loose this opportunity to ask this :)


On Tue, Sep 16, 2008 at 12:18 AM, Michael McCandless <> wrote:

> There is no difference, unless your computer/OS crashes or loses power
> shortly after you had call the method.
> In that case, there's a big difference: commit() guarantees your index will
> be intact (assuming the storage system holding your index was not damaged)
> but with flush(), which doesn't sync() the index files it writes, it's
> entirely possible that the index will become corrupt because some files were
> still in the OS's write cache when it crashed.
> But the guarantee only holds if the underlying storage system is "honest"
> about fsync(), ie, it truly flushes all written bytes for that file to disk
> before returning.
> Mike
> Cam Bazz wrote:
>  Hello,
>> What is the difference between flush in <2.4 and commit?
>> Also I have been looking over docs, and they mention commit(long) but
>> there is no commit(long) method but only commit()
>> Best.
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
>> For additional commands, e-mail:
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message