You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the NLP service receives a query to transform text, it first runs the text through a ML model, and then sends subqueries out to the Geo and ReadModel services in parallel. The issues is that if one of those services are down, a result will never return, and the NLP service will keep a reference to that task in memory indefinitely. This isn't an issue for the end user, since the API service will automatically timeout requests that take too long (currently 5 seconds). I'd like to add similar logic to the NLP Resolver class, and automatically remove queries that exceed a constant timeout.
Another factor is that the NLP processing itself can be very time consuming. A nice solution may be to refactor the text processing call from the base NLPService class into the Resolver class, and initialize a TTL value on creation. Then, after each processing step the TTL could be checked and the process aborted if the timeout has been exceeded.
The text was updated successfully, but these errors were encountered:
When the NLP service receives a query to transform text, it first runs the text through a ML model, and then sends subqueries out to the Geo and ReadModel services in parallel. The issues is that if one of those services are down, a result will never return, and the NLP service will keep a reference to that task in memory indefinitely. This isn't an issue for the end user, since the API service will automatically timeout requests that take too long (currently 5 seconds). I'd like to add similar logic to the NLP Resolver class, and automatically remove queries that exceed a constant timeout.
Another factor is that the NLP processing itself can be very time consuming. A nice solution may be to refactor the text processing call from the base NLPService class into the Resolver class, and initialize a TTL value on creation. Then, after each processing step the TTL could be checked and the process aborted if the timeout has been exceeded.
The text was updated successfully, but these errors were encountered: