Lower the default read timeout with Elasticsearch

Description

We currently have a very high value of 60s, due to calls to the health API where we indeed may have to wait this long.

If per-request timeouts are added to Jest (https://github.com/searchbox-io/Jest/issues/411), we could use that instead and avoid this high default read timeout.

We asked for per-request timeouts to be added to the official Elasticsearch client, so let's wait for that first.

It looks like it's not going to happen. Let's try another way: use a lower read timeout by default, but implement health checks in Hibernate Search so that we try again on read timeout, until the health check timeout is reached. For an idea of how to do this, see how we used to trigger a refresh after a flush; the code was removed, but you will probably need to reintroduce it: https://github.com/hibernate/hibernate-search/commit/cefff76cca94f1aa941736ffae14320dadd072fb

Also, I've read somewhere that the health check after creating an index is no longer necessary in Elasticsearch 5 onwards; let's investigate that?

Environment

None

Activity

Show:
Yoann Rodière
August 20, 2020, 6:53 AM

I believe this was solved in the Elasticsearch Rest Client version 7.9 with this pull request: we can now set a per-request timeout. So you'll probably be able to implement this much more easily than what we discussed. Please, let's have a talk before you start?

Assignee

Fabio Massimo Ercoli

Reporter

Yoann Rodière

Labels

None

Suitable for new contributors

None

Feedback Requested

None

Components

Fix versions

Priority

Major
Configure