[ https://issues.apache.org/jira/browse/PIO-115?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16137419#comment-16137419 ]
ASF GitHub Bot commented on PIO-115: ------------------------------------ Github user mars commented on the issue: https://github.com/apache/incubator-predictionio/pull/424 Thanks for your feedback @dszeto. I've addressed the code style & JIRA issue. > Cache name-to-ID lookups for Storage app & channel > -------------------------------------------------- > > Key: PIO-115 > URL: https://issues.apache.org/jira/browse/PIO-115 > Project: PredictionIO > Issue Type: Improvement > Components: Core > Affects Versions: 0.11.0-incubating > Reporter: Mars Hall > Assignee: Mars Hall > > When stress testing the Universal Recommender with high-concurrency HTTP/REST > queries, we observed that Elasticsearch traffic was majority composed of > requests resolving the Storage app's name & channel, over and over and over > again! In this case, [each per-query call to > `LEventStore.findByEntity`|https://github.com/heroku/predictionio-engine-ur/blob/master/src/main/scala/URAlgorithm.scala#L694] > re-resolves the app name to an ID. > This changeset implements memoization for the function that performs these > name-to-ID lookups, so that only one set of lookups is performed per process > for each app+channel combination. As a result, we've seen overall throughput > increase 📈 and error rate drop dramatically 📉. > This common optimization effects all storage backends, not just Elasticsearch. -- This message was sent by Atlassian JIRA (v6.4.14#64029)