[ https://issues.apache.org/jira/browse/LUCENE-1313?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12705963#action_12705963 ]
Michael McCandless commented on LUCENE-1313: -------------------------------------------- * We shouldn't add FSD.setPrimaryExtensions? * The dual directories is continuing to push deeper (when I'm wanting to do the reverse). EG, MergeScheduler.getDestinationDirs should not be needed? * We should no longer need IndexWriter.getFlushDirectory? IE, IW once again has a single "Directory" as seen by IFD, DocFieldProcessorPerThread, etc. In the NRT case, this is an FSD; in the non-NRT case it's the Dir that was passed in (unless, in a future issue, we explore using FSD, too, for better performance). * We can't up and change CMS.handleMergeException (breaks back-compat); can you deprecate old & add a new one that calls old one? Let's have the new one take a Throwable and MergePolicy.OneMerge? * Instead of overriding "equals" (FSD.equals) can you change to "Directory.contains"? * IW's RAMDir usage still isn't factored in properly. EG DW.doBalancRAM is not taking it into account. * Furthermore, we can't call writer.getRamDirSize() from DW.balanceRAM -- that's far too costly. Instead, whenever RAMDir changes (deletes are applied, or a new RAM segment is created), we must push down to DW that usage with a new synchronized method. (I described this above). We should remove IW.getRamDirSize()... ie, this size should always be "pushed on change", not "polled on read". We change it rarely and read it incredibly often. * We don't need IW.getRamLogMergePolicy()? Instead, let's ignore "MergePolicy.useCompoundFile()" when we are writing the new segment to RAMDir? Likewise we should not cast RAMMergePolicy to LogMergePolicy in setRAMMergePolicy, nor turn off its CFS there. * I still don't think we need a separate RAMMergeScheduler; I think CMS should simply always run such merges (ie not block on max thread count). IW.getNextMerge can then revert to its former self. * MergePolicy.OneMerge.segString no longer needs to take a Directory (because it now stores a Directory). * The mergeRAMSegmentsToDisk shouldn't be fully synchronized, eg when doWait is true it should release the lock while merges are taking place. > Realtime Search > --------------- > > 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: 2.9 > > 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 > > > Realtime search with transactional semantics. > Possible future directions: > * Optimistic concurrency > * Replication > Encoding each transaction into a set of bytes by writing to a RAMDirectory > enables replication. It is difficult to replicate using other methods > because while the document may easily be serialized, the analyzer cannot. > I think this issue can hold realtime benchmarks which include indexing and > searching concurrently. -- 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