Hi guys,

I have a need to commit after a certain amount documents have been fed OR after a given amount of idle time. Autocommit currently supports the max documents, however, the maxTime setting does not work for me because it is time since the first batch was submitted, not the last batch. After looking through the code is seems fairly trivial to add this support, however I want to get everyones opinion on what should take precedence (idle time or max time) if both happen to be set in solrconfig? I would imagine that max time trumps idle time, thoughts?

Also, looking at the current code I see this particular block in the addedDocument method of the CommitTracker class:

      // maxTime-triggered autoCommit
      long ctime = (commitWithin>0) ? commitWithin : timeUpperBound;
      if( ctime > 0 ) {
        _scheduleCommitWithin( ctime );
      }

This means that if commitWithin is defined, it always takes precedence over timeUpperBound. What if timeUpperBound is less than commitWithin? I think this piece of code should schedule the commit within the shortest amount of time. Something like this:

long ctime = (commitWithin > 0 && commitWithin < timeUpperBound) ? commitWithin : timeUpperBound;

Is this correct?

Thanks,

Matt Weber

Reply via email to