You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@solr.apache.org by Shawn Heisey <ap...@elyograg.org> on 2022/08/05 22:46:23 UTC

Optimize not working, Solr version 9.1.0-SNAPSHOT

While looking into a problem described on the #solr slack channel, I 
tried to have Solr optimize my core. It seems to have completely ignored 
the command.  I am running 9.1.0-SNAPSHOT, compiled from branch_9x.

The user on slack also tried to optimize their index, running version 
8.11.2, and that system behaved the same as mine.

I'm running this Java version, installed as Ubuntu packages:

openjdk version "11.0.16" 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu120.04, 
mixed mode, sharing)

The user on slack is running:
Oracle Corporation OpenJDK 64-Bit Server VM 11.0.13 11.0.13+8

I have switched to the Shenandoah GC, I am told that the slack user has 
not made any major tweaks to the Solr startup.  They are using the 
docker container, I installed using the included service installer script.

Instead of optimize, they were able to do expungeDeletes, which dropped 
their index from 32GB to 24GB.  My index is only 660MB.  I have no 
deleted docs.

I have been trying to unravel the code to see if maybe optimize has been 
completely disabled (as well as being removed from the admin UI) but 
have not able to figure out where to look.  I have an update processor 
chain defined, but it does not have the processor that ignores commits 
and optimizes:

   <updateRequestProcessorChain name="default" default="true">
     <processor class="solr.TrimFieldUpdateProcessorFactory"/>
     <processor class="solr.LogUpdateProcessorFactory"/>
     <processor class="solr.DistributedUpdateProcessorFactory"/>
     <processor class="solr.RunUpdateProcessorFactory"/>
   </updateRequestProcessorChain>

Below is the last api call I used to try the optimize.  At first I was 
not including the commit option.  Adding it did not help:

curl -v 
"http://localhost:8983/solr/dovecot/update?optimize=true&commit=true"

Does anyone have any ideas why the optimize is not working? Am I doing 
the api call right?

Thanks,
Shawn


Re: Optimize not working, Solr version 9.1.0-SNAPSHOT

Posted by Rahul Goswami <ra...@gmail.com>.
I recently hit this problem on 8.11.1. It was a tiny test index with 2
segments. One of the segments *might* have been from 7.x.  I wanted to
optimize and rewrite the index into a single segment in 8.x . But optimize
didn’t work.

In this case though, before optimize, numDocs=maxDocs. So I thought that
might be the probable cause and probably lucene determines there is no
benefit to optimize. So I induced a delete by doing an atomic update on an
existing document. Then ran optimize with
commit=true&optimize=true&maxSegments=1. Worked this time.

Not sure if this is as designed when numDocs=maxDocs, but was definitely
strange at first.

-Rahul


On Fri, Aug 5, 2022 at 6:46 PM Shawn Heisey <ap...@elyograg.org> wrote:

> While looking into a problem described on the #solr slack channel, I
> tried to have Solr optimize my core. It seems to have completely ignored
> the command.  I am running 9.1.0-SNAPSHOT, compiled from branch_9x.
>
> The user on slack also tried to optimize their index, running version
> 8.11.2, and that system behaved the same as mine.
>
> I'm running this Java version, installed as Ubuntu packages:
>
> openjdk version "11.0.16" 2022-07-19
> OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu120.04)
> OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu120.04,
> mixed mode, sharing)
>
> The user on slack is running:
> Oracle Corporation OpenJDK 64-Bit Server VM 11.0.13 11.0.13+8
>
> I have switched to the Shenandoah GC, I am told that the slack user has
> not made any major tweaks to the Solr startup.  They are using the
> docker container, I installed using the included service installer script.
>
> Instead of optimize, they were able to do expungeDeletes, which dropped
> their index from 32GB to 24GB.  My index is only 660MB.  I have no
> deleted docs.
>
> I have been trying to unravel the code to see if maybe optimize has been
> completely disabled (as well as being removed from the admin UI) but
> have not able to figure out where to look.  I have an update processor
> chain defined, but it does not have the processor that ignores commits
> and optimizes:
>
>    <updateRequestProcessorChain name="default" default="true">
>      <processor class="solr.TrimFieldUpdateProcessorFactory"/>
>      <processor class="solr.LogUpdateProcessorFactory"/>
>      <processor class="solr.DistributedUpdateProcessorFactory"/>
>      <processor class="solr.RunUpdateProcessorFactory"/>
>    </updateRequestProcessorChain>
>
> Below is the last api call I used to try the optimize.  At first I was
> not including the commit option.  Adding it did not help:
>
> curl -v
> "http://localhost:8983/solr/dovecot/update?optimize=true&commit=true"
>
> Does anyone have any ideas why the optimize is not working? Am I doing
> the api call right?
>
> Thanks,
> Shawn
>
>