Performance degredation between 0.90.5 and 1.4.1

Hi,

We're in the process of upgrading from 0.90.5 to 1.4.1 and we see a
significant performance depredation in one of our queries.
A short profiling session shows that the biggest difference is in the
"nested native script" part of the query (see attached), which accounted
for about 10% of the total search time in 0.90.5, but now it accounts for
almost 50% in 1.4.1.
Most of that time is spent in
org.elasticsearch.search.lookup.DocLookup.get(Object), which in turn calls
a lot to
org.elasticsearch.index.fielddata.ordinals.SinglePackedOrdinals$Docs.getOrd(int)
and the script looks something like this:

private Map<String, Double> multipliers;
public float runAsFloat() {
    ScriptDocValues.Strings term = (ScriptDocValues.Strings)doc().get("nested 

document term");
ScriptDocValues.Doubles strength = (ScriptDocValues.Doubles) doc().
get("nested document term strength");

    double score = multipliers.get(term.getValue()) * (1 + strength.

getValue());
return (float)score;
}

Any idea on what changed between 0.90.5 and 1.4.1 that could have caused
this?
Is there a better way of doing DocLookup that I'm missing?

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/847a79a0-05a5-450c-a4c4-39ceb49cf0e3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

This might be better raised as an issue on github as one of the devs can
comment directly on the code you're interested in.

On 14 January 2015 at 23:10, Meidan meidan.alon@gmail.com wrote:

Hi,

We're in the process of upgrading from 0.90.5 to 1.4.1 and we see a
significant performance depredation in one of our queries.
A short profiling session shows that the biggest difference is in the
"nested native script" part of the query (see attached), which accounted
for about 10% of the total search time in 0.90.5, but now it accounts for
almost 50% in 1.4.1.
Most of that time is spent in
org.elasticsearch.search.lookup.DocLookup.get(Object), which in turn calls
a lot to
org.elasticsearch.index.fielddata.ordinals.SinglePackedOrdinals$Docs.getOrd(int)
and the script looks something like this:

private Map<String, Double> multipliers;
public float runAsFloat() {
    ScriptDocValues.Strings term = (ScriptDocValues.Strings)doc().get("nested

document term");
ScriptDocValues.Doubles strength = (ScriptDocValues.Doubles) doc
().get("nested document term strength");

    double score = multipliers.get(term.getValue()) * (1 + strength.

getValue());
return (float)score;
}

Any idea on what changed between 0.90.5 and 1.4.1 that could have caused
this?
Is there a better way of doing DocLookup that I'm missing?

--
You received this message because you are subscribed to the Google Groups
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/847a79a0-05a5-450c-a4c4-39ceb49cf0e3%40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/847a79a0-05a5-450c-a4c4-39ceb49cf0e3%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAEYi1X8ifx%3D6NVKOdqj5s_8ofD3G86SNgFORH3P9f0LzurKaVw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.