[
https://issues.apache.org/jira/browse/SOLR-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
lehong.ding updated SOLR-15408:
-------------------------------
Description:
h4. *Background:*
Before we moving to solr 8.8.1 from 7.7.2, we performed some performance test
on solr 8.8.1. We met a lot of concurrent update error in solr log.
*Envrironment:*
{{solrCloud with 3 cluster nodes with 500 collections, 5 collections have about
10m documents.}}
(1 shard, 3 replica)
h4. *Threads:*
30 update/add threads + 10 deleteByQuery threads
h4. *Results:*
During deleteByQuery thread runing, only one node (lead node) has update
transactions, but other two node has none .
h4. Errrors:
java.io.IOException: Request processing has stalled for 20091ms with 100
remaining elements in the queue.java.io.IOException: Request processing has
stalled for 20091ms with 100 remaining elements in the queue. at
org.apache.solr.client.solrj.impl.ConcurrentUpdateHttp2SolrClient.request(ConcurrentUpdateHttp2SolrClient.java:449)
at org.apache.solr.client.solrj.SolrClient.request(SolrClient.java:1290) at
org.apache.solr.update.SolrCmdDistributor.doRequest(SolrCmdDistributor.java:345)
at
org.apache.solr.update.SolrCmdDistributor.submit(SolrCmdDistributor.java:338)
at
org.apache.solr.update.SolrCmdDistributor.distribAdd(SolrCmdDistributor.java:244)
at
org.apache.solr.update.processor.DistributedZkUpdateProcessor.doDistribAdd(DistributedZkUpdateProcessor.java:300)
at
org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:230)
at
org.apache.solr.update.processor.DistributedZkUpdateProcessor.processAdd(DistributedZkUpdateProcessor.java:245)
at
org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:106)
at
org.apache.solr.handler.loader.JavabinLoader$1.update(JavabinLoader.java:110)
at
org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:343)
at
org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readIterator(JavaBinUpdateRequestCodec.java:291)
at org.apache.solr.common.util.JavaBinCodec.readObject(JavaBinCodec.java:338)
at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:283) at
org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readNamedList(JavaBinUpdateRequestCodec.java:244)
h4. Temporary Solution:
adding -Dsolr.http1=1 in solr start parameters
There are still some error in error log but the number is much small.
h4. My Questions:
1 We found solr cluster will eventually get the data consistent. What’s the
concurrent update error mainly impacted?
2 Adding -Dsolr.http1=1 in solr start parameters can reduce the error number.
Do we realy need add this parameter? And does this parameter will be kept in
later version?
Many Thanks.
was:
h4. *Background:*
Before we moving to solr 8.8.1 from 7.7.2, we performed some performance test
on solr 8.8.1. We met a lot of concurrent update error in solr log.
*Envrironment:*
{{solrCloud with 3 cluster nodes with 500 collections, each has about 1m
documents.}}
(1 shard, 3 replica)
h4. *Threads:*
30 update/add threads + 10 deleteByQuery threads
h4. *Results:*
During deleteByQuery thread runing, only one node (lead node) has update
transactions, but other two node has none .
h4. Errrors:
java.io.IOException: Request processing has stalled for 20091ms with 100
remaining elements in the queue.java.io.IOException: Request processing has
stalled for 20091ms with 100 remaining elements in the queue. at
org.apache.solr.client.solrj.impl.ConcurrentUpdateHttp2SolrClient.request(ConcurrentUpdateHttp2SolrClient.java:449)
at org.apache.solr.client.solrj.SolrClient.request(SolrClient.java:1290) at
org.apache.solr.update.SolrCmdDistributor.doRequest(SolrCmdDistributor.java:345)
at
org.apache.solr.update.SolrCmdDistributor.submit(SolrCmdDistributor.java:338)
at
org.apache.solr.update.SolrCmdDistributor.distribAdd(SolrCmdDistributor.java:244)
at
org.apache.solr.update.processor.DistributedZkUpdateProcessor.doDistribAdd(DistributedZkUpdateProcessor.java:300)
at
org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:230)
at
org.apache.solr.update.processor.DistributedZkUpdateProcessor.processAdd(DistributedZkUpdateProcessor.java:245)
at
org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:106)
at
org.apache.solr.handler.loader.JavabinLoader$1.update(JavabinLoader.java:110)
at
org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:343)
at
org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readIterator(JavaBinUpdateRequestCodec.java:291)
at org.apache.solr.common.util.JavaBinCodec.readObject(JavaBinCodec.java:338)
at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:283) at
org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readNamedList(JavaBinUpdateRequestCodec.java:244)
h4. Temporary Solution:
adding -Dsolr.http1=1 in solr start parameters
There are still some error in error log but the number is much small.
h4. My Questions:
1 We found solr cluster will eventually get the data consistent. What’s the
concurrent update error mainly impacted?
2 Adding -Dsolr.http1=1 in solr start parameters can reduce the error number.
Do we realy need add this parameter? And does this parameter will be kept in
later version?
Many Thanks.
> ConcurrentUpdate issue of solr 8.8.1
> ------------------------------------
>
> Key: SOLR-15408
> URL: https://issues.apache.org/jira/browse/SOLR-15408
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Affects Versions: 8.8.1
> Reporter: lehong.ding
> Priority: Major
>
> h4. *Background:*
> Before we moving to solr 8.8.1 from 7.7.2, we performed some performance test
> on solr 8.8.1. We met a lot of concurrent update error in solr log.
> *Envrironment:*
> {{solrCloud with 3 cluster nodes with 500 collections, 5 collections have
> about 10m documents.}}
> (1 shard, 3 replica)
> h4. *Threads:*
> 30 update/add threads + 10 deleteByQuery threads
> h4. *Results:*
> During deleteByQuery thread runing, only one node (lead node) has update
> transactions, but other two node has none .
> h4. Errrors:
> java.io.IOException: Request processing has stalled for 20091ms with 100
> remaining elements in the queue.java.io.IOException: Request processing has
> stalled for 20091ms with 100 remaining elements in the queue. at
> org.apache.solr.client.solrj.impl.ConcurrentUpdateHttp2SolrClient.request(ConcurrentUpdateHttp2SolrClient.java:449)
> at org.apache.solr.client.solrj.SolrClient.request(SolrClient.java:1290) at
> org.apache.solr.update.SolrCmdDistributor.doRequest(SolrCmdDistributor.java:345)
> at
> org.apache.solr.update.SolrCmdDistributor.submit(SolrCmdDistributor.java:338)
> at
> org.apache.solr.update.SolrCmdDistributor.distribAdd(SolrCmdDistributor.java:244)
> at
> org.apache.solr.update.processor.DistributedZkUpdateProcessor.doDistribAdd(DistributedZkUpdateProcessor.java:300)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:230)
> at
> org.apache.solr.update.processor.DistributedZkUpdateProcessor.processAdd(DistributedZkUpdateProcessor.java:245)
> at
> org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:106)
> at
> org.apache.solr.handler.loader.JavabinLoader$1.update(JavabinLoader.java:110)
> at
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:343)
> at
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readIterator(JavaBinUpdateRequestCodec.java:291)
> at
> org.apache.solr.common.util.JavaBinCodec.readObject(JavaBinCodec.java:338) at
> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:283) at
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readNamedList(JavaBinUpdateRequestCodec.java:244)
>
> h4. Temporary Solution:
> adding -Dsolr.http1=1 in solr start parameters
> There are still some error in error log but the number is much small.
>
> h4. My Questions:
> 1 We found solr cluster will eventually get the data consistent. What’s the
> concurrent update error mainly impacted?
> 2 Adding -Dsolr.http1=1 in solr start parameters can reduce the error
> number. Do we realy need add this parameter? And does this parameter will be
> kept in later version?
> Many Thanks.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]