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

Shalin Shekhar Mangar updated SOLR-6810:
----------------------------------------
    Attachment: SOLR-6810-trunk.patch

Latest patch.

The DistributedDebugComponentTest collects the filter_queries for every 
GET_FIELD requests. The existing DQA makes GET_FIELD requests only to those 
shards which contribute some documents to the results. However, the new DQA 
implementation makes a request to each shard regardless of whether it 
contributes a document or not. IMO, this is a bug (the extra request to every 
shard) but it is a bit tricky to solve for the following reasons:
# A user can make a request with rows=0 in order to get just the facet 
responses. In such cases, we must make the 
STAGE_EXECUTE_QUERY/PURPOSE_GET_FIELDS requests to each shard. In fact many 
tests such as TestJsonFacets and some pivot facet tests do this.
# Secondly, we must record things like numFound and maxScore from the results 
of the STAGE_LIMIT_ROWS itself if we are to skip requests to shards in the 2nd 
phase.

At this stage, all tests pass and I am working on removing the nocommits (the 
biggest of which I detailed above).

> Faster searching limited but high rows across many shards all with many hits
> ----------------------------------------------------------------------------
>
>                 Key: SOLR-6810
>                 URL: https://issues.apache.org/jira/browse/SOLR-6810
>             Project: Solr
>          Issue Type: Improvement
>          Components: search
>            Reporter: Per Steffensen
>            Assignee: Shalin Shekhar Mangar
>              Labels: distributed_search, performance
>         Attachments: SOLR-6810-trunk.patch, SOLR-6810-trunk.patch, 
> SOLR-6810-trunk.patch, branch_5x_rev1642874.patch, 
> branch_5x_rev1642874.patch, branch_5x_rev1645549.patch
>
>
> Searching "limited but high rows across many shards all with many hits" is 
> slow
> E.g.
> * Query from outside client: q=something&rows=1000
> * Resulting in sub-requests to each shard something a-la this
> ** 1) q=something&rows=1000&fl=id,score
> ** 2) Request the full documents with ids in the global-top-1000 found among 
> the top-1000 from each shard
> What does the subject mean
> * "limited but high rows" means 1000 in the example above
> * "many shards" means 200-1000 in our case
> * "all with many hits" means that each of the shards have a significant 
> number of hits on the query
> The problem grows on all three factors above
> Doing such a query on our system takes between 5 min to 1 hour - depending on 
> a lot of things. It ought to be much faster, so lets make it.
> Profiling show that the problem is that it takes lots of time to access the 
> store to get id’s for (up to) 1000 docs (value of rows parameter) per shard. 
> Having 1000 shards its up to 1 mio ids that has to be fetched. There is 
> really no good reason to ever read information from store for more than the 
> overall top-1000 documents, that has to be returned to the client.
> For further detail see mail-thread "Slow searching limited but high rows 
> across many shards all with high hits" started 13/11-2014 on 
> [email protected]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to