Page MenuHomePhabricator

The ltr plugin fails on a circuit breaker because of script.max_compilations_per_minute
Closed, ResolvedPublic

Description

By reusing the ScriptService we are hitting a circuit breaker that prevents large featuresets to be compiled in one row.
Currently we used featureset with 14 features and the limit is 15 compilations per minutes, with larger featuresets we need to send the query multiple times in several minutes to be able to compile all the features.
This is rather dangerous and we should find a solution:

  • easy/short term: increase script.max_compilations_per_minute so that we never fail on it
  • do not depend on ScriptService: import mustache and do the templating on our own (storing compiled templates in our cache)

Event Timeline

Change 367668 had a related patch set uploaded (by DCausse; owner: DCausse):
[operations/puppet@production] Add script.max_compilations_per_minute to elasticsearch

https://gerrit.wikimedia.org/r/367668

Change 367668 merged by Gehel:
[operations/puppet@production] Add script.max_compilations_per_minute to elasticsearch

https://gerrit.wikimedia.org/r/367668

debt triaged this task as Medium priority.Jul 27 2017, 5:09 PM
debt edited projects, added Discovery-Search (Current work); removed Discovery-Search.
debt subscribed.

The work-around for this is good, but we probably want a more permanent solution.

tested on relforge and my local machine (with max_compilations_per_minute set to 4) and seems to work as expected (PR: https://github.com/o19s/elasticsearch-learning-to-rank/pull/64)

EBernhardson subscribed.

This is merged, although we will need to deploy the new plugin version.

https://gerrit.wikimedia.org/r/#/c/352170 is updated but not yet deployed, I think it's fine to run the A/B on the current deployed version of the plugin:
It has https://github.com/o19s/elasticsearch-learning-to-rank/commits/1_0 up to fdd71b1 which includes all fixes for runtime scoring of xgboost models.
We agreed with Guillaume to deploy the new plugins on codfw first then on eqiad after the interleaving A/B test is done.