[ https://issues.apache.org/jira/browse/LUCENE-1313?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jason Rutherglen updated LUCENE-1313: ------------------------------------- Attachment: LUCENE-1313.patch Realizing the previous patches approach has grown too complicated, this is a far simpler implementation that fulfills the same goal, batching segments in RAM until they exceed a given maximum size, then merging those RAM segments to a primary directory (i.e. disk). All the while allowing all segments to be searchable with a minimum latency turnaround. * Segment names are generated for the ram writer from the primary writer, this insures name continuity. Actually I'm not sure this is necessary anymore. * The problem is when the ram segments are merged into the primary writer, they appear to be non-contiguous. Some of the contiguous segment checking has been relaxed for this case, and needs to be conditional on the segment merging being from the ram dir. Perhaps we can have our cake and eat it too here by keeping the contiguous check around for all cases? * When the ram writer's usage exceeds a specified size, the ram buffer is flushed, and the ram segments are synchronously merged to the primary writer using a mechanism similar to addIndexesNoOptimize. > Near Realtime Search (using a built in RAMDirectory) > ---------------------------------------------------- > > Key: LUCENE-1313 > URL: https://issues.apache.org/jira/browse/LUCENE-1313 > Project: Lucene - Java > Issue Type: New Feature > Components: Index > Affects Versions: 2.4.1 > Reporter: Jason Rutherglen > Priority: Minor > Fix For: 3.1 > > Attachments: LUCENE-1313.jar, LUCENE-1313.patch, LUCENE-1313.patch, > LUCENE-1313.patch, LUCENE-1313.patch, LUCENE-1313.patch, LUCENE-1313.patch, > LUCENE-1313.patch, LUCENE-1313.patch, LUCENE-1313.patch, LUCENE-1313.patch, > LUCENE-1313.patch, LUCENE-1313.patch, LUCENE-1313.patch, LUCENE-1313.patch, > LUCENE-1313.patch, LUCENE-1313.patch, LUCENE-1313.patch, LUCENE-1313.patch, > LUCENE-1313.patch, lucene-1313.patch, lucene-1313.patch, lucene-1313.patch, > lucene-1313.patch > > > Enable near realtime search in Lucene without external > dependencies. When RAM NRT is enabled, the implementation adds a > RAMDirectory to IndexWriter. Flushes go to the ramdir unless > there is no available space. Merges are completed in the ram > dir until there is no more available ram. > IW.optimize and IW.commit flush the ramdir to the primary > directory, all other operations try to keep segments in ram > until there is no more space. -- 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: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org