[ 
https://issues.apache.org/jira/browse/SOLR-3585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mikhail Khludnev updated SOLR-3585:
-----------------------------------

    Attachment: SOLR-3585.patch
                SOLR-3585-oome-and-default-tests-chain.patch

incremental patch SOLR-3585-oome-and-default-tests-chain.patch 
full patch SOLR-3585.patch is also attached.

bq. RE IOExceptions... see handleError() which does ...
I reordered lines in ThreadBurster.Runner.run(). now it passes OOME into 
Callback.handleError(). CUPF.handleError() now accepts more throables.

bq. that should be clarified in comments/docs) is that the "next" 
I refreshed CUPF javadoc, but rely on your sense of beauty on commit anyway 

bq. Also, I think I see a bug. UPRChain.createProcessor doesn't create any URPs 
prior to 
it's either not a problem, or I didn't get you, I don't think I need to ...
bq. ... fix this by inserting NoOpDistributingUpdateProcessorFactory at the 
head of the factories when creating the chain.

DUPF is inserted when chain is read from xml, it isn't inserted when I request 
"tail-chain" remaining after CUPF. 

bq. Testing: Since its semantics are aligned with default behavior,..
I added new chain named concurrent and mark it default (fortunately it's absent 
so far) in solrconfig.xml and solrconfig-tlog.xml. it should impact many tests. 
at least FullSolrCloudDistribCmdsTest and CloudSolrServerTest touches CUPF and 
stay green.

is it enough in scope of this ticket? is it non-invasive enough? or you propose 
something particular.

As a followup (separate) ticket I can propose to add/and check that CURP is 
between DUPF and RUPF in UpdateRequestProcessorChain.init() and insert in 
default implicit chain SolrCore.loadUpdateProcessorChains().

bq. but It's still not apparent to me the way you coded it is necessary (and I 
agree on avoiding ThreadLocal). I think I'll try and change it and see if the 
test breaks. 
I bet LogUpdateProcessor punish you if you push it concurrently enough. see 
SOLR-2694, SOLR-2804, SOLR-3484, SOLR-3314.

bq. It's also unclear why you clone the AddUpdateCommand in processAdd(). 
no secret here. 
look how XMLLoader.processUpdate() mutates same AddUpdateCommand instance (on 
every <doc> tag). It's curious that CUSS doesn't allow such way.









> processing updates in multiple threads
> --------------------------------------
>
>                 Key: SOLR-3585
>                 URL: https://issues.apache.org/jira/browse/SOLR-3585
>             Project: Solr
>          Issue Type: Improvement
>          Components: update
>    Affects Versions: 4.0-ALPHA, 5.0
>            Reporter: Mikhail Khludnev
>         Attachments: SOLR-3585-oome-and-default-tests-chain.patch, 
> SOLR-3585.patch, SOLR-3585.patch, SOLR-3585.patch, SOLR-3585.patch, 
> SOLR-3585.patch, multithreadupd.patch, report.tar.gz
>
>
> Hello,
> I'd like to contribute update processor which forks many threads which 
> concurrently process the stream of commands. It may be beneficial for users 
> who streams many docs through single request. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to