On 5/12/2015 10:58 AM, Amr Ali wrote: > I have a business case in which I need to be able for the rollback. When I > tried add/commit I was not able to prevent other threads that write to a > given Solr core from committing everything. I also tried indexwriter but Solr > did not get changes until we restart it.
This is how Lucene is designed. The bulk of Solr's functionality is provided directly by Lucene, including the way that commits work. Adding transaction support with individual rollback capability would be a VERY fundamental and low-level change to Lucene. I bet you would find that major pieces of Lucene functionality are dependent on the current non-transactional design for commits, which means that changing it would probably require changes in every major subsystem found in the code, and that general performance might be very adversely affected. Verifying correctness and fixing problems could take weeks or months. I don't think the benefit is worth the pain, especially when there's a simple workaround -- don't overlap changes that need to be treated as different transactions -- do them at different times. Thanks, Shawn