protected internal override void DoAfterWriter(TaskScheduler es) { double minReopenSec = 0.01 + 0.05 * Random().NextDouble(); double maxReopenSec = minReopenSec * (1.0 + 10 * Random().NextDouble()); if (VERBOSE) { Console.WriteLine("TEST: make SearcherManager maxReopenSec=" + maxReopenSec + " minReopenSec=" + minReopenSec); } GenWriter = new TrackingIndexWriter(Writer); SearcherFactory sf = new SearcherFactoryAnonymousInnerClassHelper(this, es); NrtNoDeletes = new SearcherManager(Writer, false, sf); NrtDeletes = new SearcherManager(Writer, true, sf); NrtDeletesThread = new ControlledRealTimeReopenThread <>(GenWriter, NrtDeletes, maxReopenSec, minReopenSec); NrtDeletesThread.Name = "NRTDeletes Reopen Thread"; NrtDeletesThread.Priority = Math.Min(Thread.CurrentThread.Priority + 2, Thread.MAX_PRIORITY); NrtDeletesThread.SetDaemon(true); NrtDeletesThread.Start(); NrtNoDeletesThread = new ControlledRealTimeReopenThread <>(GenWriter, NrtNoDeletes, maxReopenSec, minReopenSec); NrtNoDeletesThread.Name = "NRTNoDeletes Reopen Thread"; NrtNoDeletesThread.Priority = Math.Min(Thread.CurrentThread.Priority + 2, Thread.MAX_PRIORITY); NrtNoDeletesThread.SetDaemon(true); NrtNoDeletesThread.Start(); }
protected internal override void DoAfterWriter(TaskScheduler es) { double minReopenSec = 0.01 + 0.05 * Random().NextDouble(); double maxReopenSec = minReopenSec * (1.0 + 10 * Random().NextDouble()); if (VERBOSE) { Console.WriteLine("TEST: make SearcherManager maxReopenSec=" + maxReopenSec + " minReopenSec=" + minReopenSec); } genWriter = new TrackingIndexWriter(writer); SearcherFactory sf = new SearcherFactoryAnonymousInnerClassHelper(this, es); nrtNoDeletes = new SearcherManager(writer, false, sf); nrtDeletes = new SearcherManager(writer, true, sf); nrtDeletesThread = new ControlledRealTimeReopenThread <IndexSearcher>(genWriter, nrtDeletes, maxReopenSec, minReopenSec); nrtDeletesThread.Name = "NRTDeletes Reopen Thread"; #if !NETSTANDARD nrtDeletesThread.Priority = (ThreadPriority)Math.Min((int)Thread.CurrentThread.Priority + 2, (int)ThreadPriority.Highest); #endif nrtDeletesThread.SetDaemon(true); nrtDeletesThread.Start(); nrtNoDeletesThread = new ControlledRealTimeReopenThread <IndexSearcher>(genWriter, nrtNoDeletes, maxReopenSec, minReopenSec); nrtNoDeletesThread.Name = "NRTNoDeletes Reopen Thread"; #if !NETSTANDARD nrtNoDeletesThread.Priority = (ThreadPriority)Math.Min((int)Thread.CurrentThread.Priority + 2, (int)ThreadPriority.Highest); #endif nrtNoDeletesThread.SetDaemon(true); nrtNoDeletesThread.Start(); }
protected internal override void DoAfterWriter(TaskScheduler es) { SearcherFactory factory = new SearcherFactoryAnonymousInnerClassHelper(this, es); if (Random().NextBoolean()) { // TODO: can we randomize the applyAllDeletes? But // somehow for final searcher we must apply // deletes... Mgr = new SearcherManager(Writer, true, factory); IsNRT = true; } else { // SearcherManager needs to see empty commit: Writer.Commit(); Mgr = new SearcherManager(Dir, factory); IsNRT = false; AssertMergedSegmentsWarmed = false; } LifetimeMGR = new SearcherLifetimeManager(); }
protected override void DoAfterWriter(TaskScheduler es) { SearcherFactory factory = new SearcherFactoryAnonymousInnerClassHelper(this, es); if (Random().NextBoolean()) { // TODO: can we randomize the applyAllDeletes? But // somehow for final searcher we must apply // deletes... Mgr = new SearcherManager(Writer, true, factory); IsNRT = true; } else { // SearcherManager needs to see empty commit: Writer.Commit(); Mgr = new SearcherManager(Dir, factory); IsNRT = false; AssertMergedSegmentsWarmed = false; } LifetimeMGR = new SearcherLifetimeManager(); }
protected internal override void DoAfterWriter(TaskScheduler es) { double minReopenSec = 0.01 + 0.05 * Random().NextDouble(); double maxReopenSec = minReopenSec * (1.0 + 10 * Random().NextDouble()); if (VERBOSE) { Console.WriteLine("TEST: make SearcherManager maxReopenSec=" + maxReopenSec + " minReopenSec=" + minReopenSec); } GenWriter = new TrackingIndexWriter(Writer); SearcherFactory sf = new SearcherFactoryAnonymousInnerClassHelper(this, es); NrtNoDeletes = new SearcherManager(Writer, false, sf); NrtDeletes = new SearcherManager(Writer, true, sf); NrtDeletesThread = new ControlledRealTimeReopenThread<>(GenWriter, NrtDeletes, maxReopenSec, minReopenSec); NrtDeletesThread.Name = "NRTDeletes Reopen Thread"; NrtDeletesThread.Priority = Math.Min(Thread.CurrentThread.Priority + 2, Thread.MAX_PRIORITY); NrtDeletesThread.SetDaemon(true); NrtDeletesThread.Start(); NrtNoDeletesThread = new ControlledRealTimeReopenThread<>(GenWriter, NrtNoDeletes, maxReopenSec, minReopenSec); NrtNoDeletesThread.Name = "NRTNoDeletes Reopen Thread"; NrtNoDeletesThread.Priority = Math.Min(Thread.CurrentThread.Priority + 2, Thread.MAX_PRIORITY); NrtNoDeletesThread.SetDaemon(true); NrtNoDeletesThread.Start(); }