Eric

Thanks for your quick response.
So in the solrconfig.xml keep the  out of the box setting of 15 seconds

    <autoCommit>
      <maxTime>15000</maxTime>
      <openSearcher>false</openSearcher>
    </autoCommit>

and also have the <autoSoftCommit> setting set to something like 5 minutes
      <autoSoftCommit>
        <maxTime>300000</maxTime>
      </autoSoftCommit>

Then in the existing SolrJ code just simply delete the line

up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);

Is this what you recommended I try.

Thanks

Tyrone


On Tue, Jul 21, 2020 at 1:16 PM Erick Erickson <erickerick...@gmail.com>
wrote:

> What you’re seeing is the input from the client. You’ve passed true, true,
> which are waitFlush and waitSearcher
> which sets softCommit _for that call_ to false. It has nothing to do with
> the settings in your config file.
>
> bq. I am not passing the parameter to do a softCommit  in the SolrJ
> command.
>
> I don’t think so. That’s a hard commit. This is a little tricky since the
> waitFlush and waitSearcher params don’t
> tell you that they are about hard commits. There used to only be hard
> commits, so...
>
> But…. these settings are highly suspicious. Here’s the long form:
>
>
> https://lucidworks.com/post/understanding-transaction-logs-softcommit-and-commit-in-sorlcloud/
>
> It is risky to have your autocommit settings commented out. You risk
> transaction logs growing
> forever to no  purpose whatsoever.
>
> Your call does a hard commit _and_ opens a new searcher for, apparently,
> every document.
>
> But your autoSoftCommit settings also open a new searcher without doing
> anything about flushing
> data to disk every second. Usually, this is far too often unless you have
> extremely stringent latency
> requirements, and in this case unless you’re only indexing once in a great
> while your caches
> are pretty useless.
>
> I strongly urge you to uncomment autocommit settings. Make the autoCommit
> interval something
> reasonable (15-60 seconds for instance) with openSearcher=false.
>
> Then lengthen your autoSoftCommit settings to as long as you can stand.
> The longer the interval,
> the less work you’ll do opening new searchers, which is a rather expensive
> operation. I like
> 5-10 minutes if possible, but your app may require shorter intervals.
>
> Then don’t send any commit settings in your SolrJ program at all.
>
> Best,
> Erick
>
> > On Jul 21, 2020, at 1:32 PM, Tyrone Tse <tyrone...@hotmail.com> wrote:
> >
> > I am using Solr 8.5 cloud, and in my collection I have edited the
> > solrconfig.xml file to use
> > <autoSoftCommit>
> >        <maxTime>1000</maxTime>
> >      </autoSoftCommit>
> >
> > and commented out the default <autoCommit> configuration
> >
> >  <!--
> >    <autoCommit>
> >      <maxTime>15000</maxTime>
> >      <openSearcher>false</openSearcher>
> >    </autoCommit>
> >  -->
> >
> > We are using SolrJ to post files to the Solr here is the snippet of Java
> > code that does it
> >
> > try(HttpSolrClient solrClient = solr.build()){
> >    ContentStreamUpdateRequest up = new
> > ContentStreamUpdateRequest("/update/extract");
> >    up.addFile(f, mimeType);
> >    String tempId = f.getName() + (new Date()).toString();
> >    up.setParam("literal.id", tempId);
> >    up.setParam("literal.username", user);
> >    up.setParam("literal.fileName", f.getName());
> >    up.setParam("literal.filePath", path);
> >    up.setParam("uprefix", "attr_");
> >    up.setParam("fmap.content", "attr_content");
> >    up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
> >    logger.info("PreRequest");
> >    solrClient.request(up);
> >    logger.info("PostRequest");
> >    resultId = tempId;
> > } catch (IOException | SolrServerException |
> > HttpSolrClient.RemoteSolrException e) {
> >    logger.error("Error connecting.committing to Solr", e);
> > }
> >
> > So I am not passing the parameter to do a softCommit  in the SolrJ
> command.
> >
> > When I posted a file to my Solr core, when I look at the solr.log file I
> > see the following information
> >
> > 2020-07-21 16:38:54.719 INFO  (qtp1546693040-302) [c:files s:shard1
> > r:core_node5 x:files_shard1_replica_n2]
> o.a.s.u.p.LogUpdateProcessorFactory
> > [files_shard1_replica_n2]  webapp=/solr path=/update
> >
> params={update.distrib=TOLEADER&update.chain=files-update-processor&waitSearcher=true&openSearcher=true&commit=true&softCommit=false&distrib.from=
> > http://192.168.1.191:8983/solr/files_shard2_replica_n6/
> >
> > Does having  <autoSoftCommit> set in the solrconfig.xml override REST
> Post
> > calls that have the parameter softCommit=false and force a softCommit
> when
> > the data is posted to Solr.
> >
> > Thanks in advance.
>
>

Reply via email to