It's the "write" method in o.a.l.index.SegmentInfos

It's called from IndexWriter/DirectoryIndexReader.

Mike

"robert engels" <[EMAIL PROTECTED]> wrote:
> Can you point me to the code that does the actual writing of the  
> SEGMENTS.XXX file?
> 
> On Nov 26, 2007, at 1:16 PM, Michael McCandless wrote:
> 
> >
> > This is correct.
> >
> > This just means the DeletionPolicy cannot delete a commit point until
> > all files referenced by a future (the next) commit point are done
> > being sync'd (DeletionPolicy needs to query the Directory to find out
> > which files are on stable storage).
> >
> > However before we even go there, I'm going to run perf tests of
> > background sync'ing to see if it can reduce the cost of syncing.
> >
> > Mike
> >
> > "robert engels" <[EMAIL PROTECTED]> wrote:
> >> I am not sure all of this effort is going to work anyway...
> >>
> >> I think you need to sync all of the segment files, THEN write the
> >> segments.XXXX file and sync it.
> >>
> >> It does you no good if there is a valid segments.XXX file, but some
> >> of the dependent files may not have written successfully to disk.
> >>
> >> By the proper ordering of the operations
> >>
> >> write files
> >> sync files
> >> write SEGMENTS FILE with chceksum, and sync
> >>
> >> is the only way to be certain the index is not internally corrupt.
> >>
> >> I have not looked at closely, so it may already be doing this (but I
> >> don't think so).  Code is getting a bit hard to follow for me.
> >>
> >> On Nov 26, 2007, at 12:14 PM, Doug Cutting (JIRA) wrote:
> >>
> >>>
> >>>     [ https://issues.apache.org/jira/browse/LUCENE-1044?
> >>> page=com.atlassian.jira.plugin.system.issuetabpanels:comment-
> >>> tabpanel#action_12545535 ]
> >>>
> >>> Doug Cutting commented on LUCENE-1044:
> >>> --------------------------------------
> >>>
> >>>> I found out however that delaying the syncs (but intending to
> >>>> sync) also
> >>> means keeping the file handles open [...]
> >>>
> >>> Not necessarily.  You could just queue the file names for sync,
> >>> close them, and then have the background thread open, sync and
> >>> close them.  The close could trigger the OS to sync things faster
> >>> in the background.  Then the open/sync/close could mostly be a no-
> >>> op.  Might be worth a try.
> >>>
> >>>> Behavior on hard power shutdown
> >>>> -------------------------------
> >>>>
> >>>>                 Key: LUCENE-1044
> >>>>                 URL: https://issues.apache.org/jira/browse/
> >>>> LUCENE-1044
> >>>>             Project: Lucene - Java
> >>>>          Issue Type: Bug
> >>>>          Components: Index
> >>>>         Environment: Windows Server 2003, Standard Edition, Sun
> >>>> Hotspot Java 1.5
> >>>>            Reporter: venkat rangan
> >>>>            Assignee: Michael McCandless
> >>>>             Fix For: 2.3
> >>>>
> >>>>         Attachments: FSyncPerfTest.java, LUCENE-1044.patch,
> >>>> LUCENE-1044.take2.patch, LUCENE-1044.take3.patch
> >>>>
> >>>>
> >>>> When indexing a large number of documents, upon a hard power
> >>>> failure  (e.g. pull the power cord), the index seems to get
> >>>> corrupted. We start a Java application as an Windows Service, and
> >>>> feed it documents. In some cases (after an index size of 1.7GB,
> >>>> with 30-40 index segment .cfs files) , the following is observed.
> >>>> The 'segments' file contains only zeros. Its size is 265 bytes -
> >>>> all bytes are zeros.
> >>>> The 'deleted' file also contains only zeros. Its size is 85 bytes
> >>>> - all bytes are zeros.
> >>>> Before corruption, the segments file and deleted file appear to be
> >>>> correct. After this corruption, the index is corrupted and lost.
> >>>> This is a problem observed in Lucene 1.4.3. We are not able to
> >>>> upgrade our customer deployments to 1.9 or later version, but
> >>>> would be happy to back-port a patch, if the patch is small enough
> >>>> and if this problem is already solved.
> >>>
> >>> -- 
> >>> This message is automatically generated by JIRA.
> >>> -
> >>> You can reply to this email to add a comment to the issue online.
> >>>
> >>>
> >>> -------------------------------------------------------------------- 
> >>> -
> >>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to