On Apr 17, 2013, at 1:42 PM, Shawn Heisey <s...@elyograg.org> wrote:

> On 4/17/2013 10:29 AM, Umesh Prasad wrote:
>> We use DIH and have turned off the Auto commit because we have to sometimes
>> build index from Scratch (clean=true) and we not want to
>> Our master server sees a lot of restarts, sometimes 2-3 times a day. It
>> polls other Data Sources for updates which are quite a few. Master
>> maintains a version of last committed version and can handle uncommitted
>> changes.
>> 
>> Given the frequent restarts, We can't really afford a huge start up at this
>> point.
>>  In the worst case, does Solr allow for disabling transactional log ?
> 
> Unless you are using SolrCloud, you can disable the updateLog. SolrCloud 
> requires it.
> 
> There is one additional caveat - when you disable the updateLog, you have to 
> switch to MMapDirectoryFactory instead of NRTCachingDirectoryFactory.  The 
> NRT directory implementation will cache a portion of a commit (including hard 
> commits) into RAM instead of onto disk.  On the next commit, the previous one 
> is persisted completely to disk.  Without a transaction log, you can lose 
> data.

I don't think this is true? NRTCachingDirectoryFactory should not cache hard 
commits and should be as safe as MMapDirectoryFactory is - neither of which is 
as safe as using a tran log.

- Mark

> 
> My advice - keep the updateLog on, and use autoCommit with 
> openSearcher=false.  It is the best way to avoid large transaction logs.  It 
> sounds like you do not want the auto commits to affect query results, which 
> is a reasonable goal.  You can have that even with autoCommit - just set 
> openSearcher to false.  Here's an example, no need to stick with the numbers 
> that I have included:
> 
> <updateHandler class="solr.DirectUpdateHandler2">
>  <autoCommit>
>    <maxDocs>25000</maxDocs>
>    <maxTime>300000</maxTime>
>    <openSearcher>false</openSearcher>
>  </autoCommit>
>  <updateLog />
> </updateHandler>
> 
> Thanks,
> Shawn
> 

Reply via email to