[
https://issues.apache.org/jira/browse/SOLR-11598?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16387975#comment-16387975
]
Aroop edited comment on SOLR-11598 at 3/6/18 3:43 PM:
------------------------------------------------------
I tried the patch and I see promising results over multiple runs:
Query Times in ms for Search Streaming Expressions with different number of
fields in the sort expressions:
| | *Search Only Streaming Expression - QTime in ms*|
|*Number of Sort Fields*|*1st Call*|*2nd Call*|*3rd Call*|*4th Call*|
| *{color:#14892c}10{color}*|9635|7945|7042|6804|
| *{color:#14892c}8{color}*|12065|9017|6792|6314|
| *{color:#14892c}6{color}*|10733|7433|6146|5508|
| *{color:#14892c}4{color}*|9654|6746|5224|4497|
Similarly for a much more complicated streaming expression of the form
[select(rollup(search())) ]
|*Number of Sort Fields*|*Qtime (ms) (1st call)*|*Qtime (ms) (2nd call)*|
|*{color:#14892c}10{color}*| 33,303|2389|
|{color:#14892c}*8*{color}| 31,453|1150|
|*{color:#14892c}6{color}*| 26,403|990|
|*{color:#14892c}4{color}*| 16,346|705|
Test Setup details:
# These tests were done with the same fields.
# This was run against the ailas which points to about 34 collections each of
size ~ 20 GB. (total size: 640 GB, total documents: 5,808,140,268.00 [5.8
Billion] )
# The queries used in this set would have actually fetched data from 2
collections (due to filters ), so 40 GB size and 456,903,090 documents [456
Million]
was (Author: aroopganguly):
I tried the patch and I see promising results over multiple runs:
Query Times in ms for Search Streaming Expressions with different number of
fields in the sort expressions:
||{color:#333333}*Number of Sort Fields*{color}||{color:#333333}*QTime Call1*
{color}||{color:#333333}*QTime Call2* {color}||{color:#333333}*QTime Call3*
{color}||*{color:#707070}{color:#333333}QTime Call{color}
{color:#333333}4{color}{color}*||
||{color:#14892c}*10*{color}||{color:#707070}9635{color}||{color:#707070}7945{color}||{color:#707070}7042{color}||{color:#707070}6804{color}||
||{color:#14892c}8{color}||{color:#707070}12065{color}||{color:#707070}9017{color}||{color:#707070}6792{color}||{color:#707070}6314{color}||
||{color:#14892c}6{color}||{color:#707070}10733{color}||{color:#707070}7433{color}||{color:#707070}6146{color}||{color:#707070}5508{color}||
||{color:#14892c}4{color}||{color:#707070}9654{color}||{color:#707070}6746{color}||{color:#707070}5224{color}||{color:#707070}4497{color}||
Similarly for a much more complicated streaming expression of the form
[select(rollup(search())) ]
|*Number of Sort Fields*|*Qtime (ms) (1st call)*|*Qtime (ms) (2nd call)*|
|*{color:#14892c}10{color}*| 33,303|2389|
|{color:#14892c}*8*{color}| 31,453|1150|
|*{color:#14892c}6{color}*| 26,403|990|
|*{color:#14892c}4{color}*| 16,346|705|
Test Setup details:
# These tests were done with the same fields.
# This was run against the ailas which points to about 34 collections each of
size ~ 20 GB. (total size: 640 GB, total documents: 5,808,140,268.00 [5.8
Billion] )
# The queries used in this set would have actually fetched data from 2
collections (due to filters ), so 40 GB size and 456,903,090 documents [456
Million]
> Export Writer needs to support more than 4 Sort fields - Say 10, ideally it
> should not be bound at all, but 4 seems to really short sell the StreamRollup
> capabilities.
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: SOLR-11598
> URL: https://issues.apache.org/jira/browse/SOLR-11598
> Project: Solr
> Issue Type: Improvement
> Security Level: Public(Default Security Level. Issues are Public)
> Components: streaming expressions
> Affects Versions: 6.6.1, 7.0
> Reporter: Aroop
> Priority: Major
> Labels: patch
> Attachments: SOLR-11598-6_6-streamtests, SOLR-11598-6_6.patch,
> SOLR-11598-master.patch, SOLR-11598.patch, SOLR-11598.patch, SOLR-11598.patch
>
>
> I am a user of Streaming and I am currently trying to use rollups on an 10
> dimensional document.
> I am unable to get correct results on this query as I am bounded by the
> limitation of the export handler which supports only 4 sort fields.
> I do not see why this needs to be the case, as it could very well be 10 or 20.
> My current needs would be satisfied with 10, but one would want to ask why
> can't it be any decent integer n, beyond which we know performance degrades,
> but even then it should be caveat emptor.
> [~varunthacker]
> Code Link:
> https://github.com/apache/lucene-solr/blob/19db1df81a18e6eb2cce5be973bf2305d606a9f8/solr/core/src/java/org/apache/solr/handler/ExportWriter.java#L455
> Error
> null:java.io.IOException: A max of 4 sorts can be specified
> at
> org.apache.solr.handler.ExportWriter.getSortDoc(ExportWriter.java:452)
> at org.apache.solr.handler.ExportWriter.writeDocs(ExportWriter.java:228)
> at
> org.apache.solr.handler.ExportWriter.lambda$null$1(ExportWriter.java:219)
> at
> org.apache.solr.common.util.JavaBinCodec.writeIterator(JavaBinCodec.java:664)
> at
> org.apache.solr.common.util.JavaBinCodec.writeKnownType(JavaBinCodec.java:333)
> at
> org.apache.solr.common.util.JavaBinCodec.writeVal(JavaBinCodec.java:223)
> at org.apache.solr.common.util.JavaBinCodec$1.put(JavaBinCodec.java:394)
> at
> org.apache.solr.handler.ExportWriter.lambda$null$2(ExportWriter.java:219)
> at
> org.apache.solr.common.util.JavaBinCodec.writeMap(JavaBinCodec.java:437)
> at
> org.apache.solr.common.util.JavaBinCodec.writeKnownType(JavaBinCodec.java:354)
> at
> org.apache.solr.common.util.JavaBinCodec.writeVal(JavaBinCodec.java:223)
> at org.apache.solr.common.util.JavaBinCodec$1.put(JavaBinCodec.java:394)
> at
> org.apache.solr.handler.ExportWriter.lambda$write$3(ExportWriter.java:217)
> at
> org.apache.solr.common.util.JavaBinCodec.writeMap(JavaBinCodec.java:437)
> at org.apache.solr.handler.ExportWriter.write(ExportWriter.java:215)
> at org.apache.solr.core.SolrCore$3.write(SolrCore.java:2601)
> at
> org.apache.solr.response.QueryResponseWriterUtil.writeQueryResponse(QueryResponseWriterUtil.java:49)
> at
> org.apache.solr.servlet.HttpSolrCall.writeResponse(HttpSolrCall.java:809)
> at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:538)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:361)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:305)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1691)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
> at
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
> at
> org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
> at org.eclipse.jetty.server.Server.handle(Server.java:534)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
> at
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
> at
> org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
> at
> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
> at
> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
> at
> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
> at java.lang.Thread.run(Thread.java:745)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]