Teruhiko, The index remains consistent even when a background merge fails, meaning commit truly represents a valid index after it's called. You can share merge schedulers, though in practice it's not going to improve anything.
Jason 2009/11/20 Teruhiko Kurosaka <k...@basistech.com>: > I was experimenting how Lucene handles 2-phase commit. > Then I noticed I am not catching all Exceptions > from Lucene. And I think this is because Lucene's > default MergeScheduler is ConcurrentMergeScheduler, > which spawns threads to its job, and Exceptions thrown > in child threads are never reported to the parent. > > Isn't this problematic when Lucene participates > in the 2-phase commit? Becuause the application > doesn't get an Exception when something bad happened > at merge time, it proceeds as normal and will > ask other parties in transaction to commit their > writes. If I changed the MergeScheduler > to SerialMergeScheduler, my code could catch > the Exceptions. I'd like to hear what others > think. > > By the way, do I need a new instance > of SerialMergeScheduler for each call > to setMergeScheduler on an IndexWriter? > Or can I just share a single instance > of SerialMergeScheduler with multiple > IndexWriters? > > -kuro > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org