aba4760b02
The native process can only handle one operation at a time, so in order the protect against multiple operation at a time (e.g. post data and flush or multiple post data operations) there should be protection in place to guarantee that at most only a single thread interacts with the native process. The current protection is broken when a job close is executed, more specifically the wait logic is broken here. This commit changes the threading logic when interacting with the native process by using a custom `ExecutorService` that that uses a single worker thread from `ml_autodetect_process` thread pool to interact with the native process. Requests from the ml apis are initially being queued and this worker thread executes these requests one by one in the order they were specified. Removed the general `ml` threadpool and replaced its usages with `ml_autodetect_process` or `management` threadpool. Added a new threadpool just for (re)normalizer, so that these operations are isolated from other operations. relates elastic/x-pack-elasticsearch#582 Original commit: elastic/x-pack-elasticsearch@ff0c8dce0b |
||
---|---|---|
.github | ||
buildSrc | ||
dev-tools | ||
docs/public | ||
license-tools | ||
migrate | ||
plugin | ||
qa | ||
transport-client | ||
.dir-locals.el | ||
.gitignore | ||
.projectile | ||
GRADLE.CHEATSHEET.asciidoc | ||
LICENSE.txt | ||
NOTICE.txt | ||
README.asciidoc | ||
build.gradle | ||
gradle.properties | ||
migrate-issues.py | ||
settings.gradle |
README.asciidoc
= Elasticsearch X Pack A set of Elastic's commercial plugins: - License - Security - Watcher - Monitoring - Machine Learning = Setup You must checkout x-pack and elasticsearch with a specific directory structure. The elasticsearch checkout will be used when building x-pack. The structure is: - /path/to/elastic/elasticsearch - /path/to/elastic/elasticsearch-extra/x-pack-elasticsearch == Native Code **This is mandatory as tests depend on it** Machine Learning requires platform specific binaries, build from https://github.com/elastic/machine-learning-cpp via CI servers. The native artifacts are stored in S3. To retrieve them infra's team Vault service is utilized, which requires a github token. Please setup a github token as documented: https://github.com/elastic/infra/blob/master/docs/vault.md#github-auth The github token has to be put into ~/.elastic/github.token, while the file rights must be set to 0600. = Build - Run unit tests: + [source, txt] ----- gradle clean test ----- - Run all tests: + [source, txt] ----- gradle clean check ----- - Run integration tests: + [source, txt] ----- gradle clean integTest ----- - Package X-Pack (wihtout running tests) + [source, txt] ----- gradle clean assemble ----- - Install X-Pack (wihtout running tests) + [source, txt] ----- gradle clean install -----