[hibernate/hibernate-search] 1b16f5: HSEARCH-3872 Remove the minimum number of works in...
by Yoann Rodière
Branch: refs/heads/master
Home: https://github.com/hibernate/hibernate-search
Commit: 1b16f546e5d5bccbb772171815074eb2169ae8ce
https://github.com/hibernate/hibernate-search/commit/1b16f546e5d5bccbb772...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkBulker.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkBulker.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestratorProvider.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkBulkerTest.java
M integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/work/ElasticsearchIndexingIT.java
Log Message:
-----------
HSEARCH-3872 Remove the minimum number of works in an Elasticsearch bulk
Always bulk what can be bulked.
The goal is to make work execution simpler.
Commit: 6f109d1e229fded50ff64c124c50b5b6781e9171
https://github.com/hibernate/hibernate-search/commit/6f109d1e229fded50ff6...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkBulker.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkExecutionContext.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkSequenceBuilder.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchImmutableWorkExecutionContext.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessor.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchRefreshableWorkExecutionContext.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessor.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkExecutionContextImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestratorProvider.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkSequenceBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/BulkWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/ClearScrollWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/CloseIndexWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/CountWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/CreateIndexWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/DeleteByQueryWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/DropIndexWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/ElasticsearchWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/ExplainWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/FlushWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/GetIndexMetadataWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/MergeSegmentsWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/OpenIndexWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/PutIndexAliasesWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/PutIndexMappingWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/PutIndexSettingsWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/RefreshWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/ScrollWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/SearchWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/WaitForIndexStatusWorkBuilder.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/AbstractNonBulkableElasticsearchWork.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/AbstractSimpleElasticsearchWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/AbstractSingleDocumentElasticsearchWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/BulkWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ClearScrollWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/CloseIndexWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/CountWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/CreateIndexWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/DeleteByQueryWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/DeleteWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/DropIndexWork.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ElasticsearchForwardingWorkExecutionContext.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ElasticsearchWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ElasticsearchWorkAggregator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ElasticsearchWorkExecutionContext.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ExplainWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/FlushWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ForceMergeWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/GetIndexMetadataWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/IndexWork.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/NonBulkableElasticsearchWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/OpenIndexWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/PutIndexAliasesWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/PutIndexSettingsWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/PutIndexTypeMappingWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/RefreshWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ScrollWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/SearchWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/WaitForIndexStatusWork.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkBulkerTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkSequenceBuilderTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessorTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessorTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexingPlanWorkSetTest.java
M integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/mapping/ElasticsearchFieldAttributesIT.java
M integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/mapping/ElasticsearchFieldTypesIT.java
M integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/mapping/ElasticsearchTypeNameMappingSchemaIT.java
M integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/work/ElasticsearchIndexingIT.java
M util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch5TestDialect.java
M util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch60TestDialect.java
M util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch63TestDialect.java
M util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch64TestDialect.java
M util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch67TestDialect.java
M util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch7TestDialect.java
M util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/ElasticsearchTestDialect.java
M util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/rule/TestElasticsearchClient.java
Log Message:
-----------
HSEARCH-3872 Remove the ability to execute bulkable works outside of a bulk
Just execute them in a bulk, always. It's simpler, and more importantly
it allows us to get rid of the end-of-sequence refresh.
That end-of-sequence refresh must disappear if we want to have multiple
work queues and threads per index, sharded by document ID.
In that case, works from a single work plan may be executed in different
threads, thus we can no longer expect the refresh to be executed
"just after the sequence".
For now we'll execute refreshes as part of the bulk works, which may
incur a significant performance cost, as we may execute multiple
refreshes per index for each work plan.
We may want to look into this in the next commits, but since forced
refreshes already perform very badly, this is not a priority.
Commit: 89e702f27a9a787d2a06a9778334447f9095c621
https://github.com/hibernate/hibernate-search/commit/89e702f27a9a787d2a06...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/factory/impl/Elasticsearch67WorkBuilderFactory.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/factory/impl/Elasticsearch7WorkBuilderFactory.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/factory/impl/ElasticsearchWorkBuilderFactory.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexer.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexingPlan.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/DeleteWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/IndexWork.java
Log Message:
-----------
HSEARCH-3872 Do not URL-encode document identifiers for Elasticsearch indexing works
Now that works are always bulked, we do not need URL-encoding anymore.
Commit: 6f2f84dc69ac76191e69541dcc9e482fd1fecedc
https://github.com/hibernate/hibernate-search/commit/6f2f84dc69ac76191e69...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkBulker.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkSequenceBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkBulker.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkSequenceBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/factory/impl/Elasticsearch7WorkBuilderFactory.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/factory/impl/ElasticsearchWorkBuilderFactory.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/BulkWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/ClearScrollWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/CloseIndexWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/CountWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/CreateIndexWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/DeleteByQueryWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/DeleteWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/DropIndexWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/ExplainWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/FlushWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/GetIndexMetadataWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/IndexWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/MergeSegmentsWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/OpenIndexWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/PutIndexAliasesWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/PutIndexMappingWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/PutIndexSettingsWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/RefreshWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/ScrollWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/SearchWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/WaitForIndexStatusWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexingPlan.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexingPlanWorkSet.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/AbstractNonBulkableElasticsearchWork.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/AbstractNonBulkableWork.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/AbstractSingleDocumentElasticsearchWork.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/AbstractSingleDocumentWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/BulkWork.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/BulkableElasticsearchWork.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/BulkableWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ClearScrollWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/CloseIndexWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/CountWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/CreateIndexWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/DeleteByQueryWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/DeleteWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/DropIndexWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ElasticsearchWorkAggregator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ExplainWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/FlushWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ForceMergeWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/GetIndexMetadataWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/IndexWork.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/NonBulkableElasticsearchWork.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/NonBulkableWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/OpenIndexWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/PutIndexAliasesWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/PutIndexSettingsWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/PutIndexTypeMappingWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/RefreshWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ScrollWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/SearchWork.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/SingleDocumentElasticsearchWork.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/SingleDocumentWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/WaitForIndexStatusWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/result/impl/BulkResultItemExtractor.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkBulkerTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkSequenceBuilderTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessorTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessorTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexingPlanWorkSetTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/work/impl/BulkWorkTest.java
Log Message:
-----------
HSEARCH-3872 Remove an unnecessary "Elasticsearch" component in the class name of Elasticsearch works
Commit: a062bef7e3de32bd86e5960a43046680c8007b7b
https://github.com/hibernate/hibernate-search/commit/a062bef7e3de32bd86e5...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/DeleteWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/IndexWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexingPlan.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexingPlanWorkSet.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/AbstractSingleDocumentWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/DeleteWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/IndexWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/SingleDocumentWork.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexingPlanWorkSetTest.java
Log Message:
-----------
HSEARCH-3872 Give a common return type to all works implementing SingleDocumentWriteWork
This will be useful when manipulating futures and single-document works
in the next commits.
Commit: 9cd4135b36bd04a0ff6d2d99c85e60a47cae25a0
https://github.com/hibernate/hibernate-search/commit/9cd4135b36bd04a0ff6d...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/logging/impl/Log.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkSequenceBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessor.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkSequenceBuilderTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessorTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessorTest.java
Log Message:
-----------
HSEARCH-3872 Remove the requirement for works within a write plan to be skipped when a previous work failed
Because:
1. It's not necessary. The only works added to a write plan are add,
update, delete, and we expect to be able to execute these works even
if a previous add/update/delete failed.
2. It won't be possible anymore once we organize work execution in
multiple queues sharded by ID, where we will lose the information
"this work belongs to the same write plan as this other work".
Commit: fb00b50300c07832a23277e42ed1a36d4c1120c3
https://github.com/hibernate/hibernate-search/commit/fb00b50300c07832a232...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSingleWorkSet.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestrator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestratorProvider.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexingPlan.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexingPlanExecution.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexingPlanWorkSet.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessorTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessorTest.java
A backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexingPlanExecutionTest.java
R backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexingPlanWorkSetTest.java
Log Message:
-----------
HSEARCH-3872 Remove the concept of "work set" from Elasticsearch work processors
Only ever process works one by one.
This is necessary if we want to have multiple work queues and threads
per index, sharded by document ID. In that case, works from a single
work plan may be executed in different threads, thus we can no longer
pass "work sets" to the processors.
We need something to be notified that all works have been executed, and
to act accordingly.
Commit: 3d562d20ce1f19cecfe3be261accd0f10c010668
https://github.com/hibernate/hibernate-search/commit/3d562d20ce1f19cecfe3...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkBulker.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkBulker.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkBulkerTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessorTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessorTest.java
Log Message:
-----------
HSEARCH-3872 Add works to the sequence automatically in ElasticsearchWorkBulker
In the past this was not possible and we had to expose
addWorksToSequence() in order for clients to add the works explicitly,
but with the removals of the past few commits, we can simplify that.
Commit: 9a982b0e59c7a63a68fb73d95da18b3a080d841e
https://github.com/hibernate/hibernate-search/commit/9a982b0e59c7a63a68fb...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkBulker.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkSequenceBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkSequenceBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/BulkWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/result/impl/BulkResult.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/result/impl/BulkResultItemExtractor.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkBulkerTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchDefaultWorkSequenceBuilderTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/work/impl/BulkWorkTest.java
Log Message:
-----------
HSEARCH-3872 Add bulk extraction through a single method call in ElasticsearchWorkSequenceBuilder
In the past this was not possible and we had to expose
an intermediary object to add extractions
(ElasticsearchWorkSequenceBuilder.BulkResultExtractionStep),
but with the removals of the past few commits, we can simplify that.
Commit: aa1c39fe5fcd9ff650c02f87dd2e34c5d20dfdaa
https://github.com/hibernate/hibernate-search/commit/aa1c39fe5fcd9ff650c0...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/AbstractElasticsearchWorkOrchestrator.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchedWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchingWorkOrchestrator.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSingleWorkSet.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestrator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestratorProvider.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkSet.java
Log Message:
-----------
HSEARCH-3872 Remove the concept of "work set" in the Elasticsearch backend
Work sets no longer make sense, at least during work orchestration,
since we submit works one by one without any information about the
relationship between works.
Commit: 0ef199359633b090287bb3e78158c183bb36ba6f
https://github.com/hibernate/hibernate-search/commit/0ef199359633b090287b...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/client/impl/ElasticsearchClientFactoryImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/client/impl/ElasticsearchClientImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/client/spi/ElasticsearchClientFactory.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/impl/ElasticsearchBackendFactory.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/impl/ElasticsearchBackendImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/impl/ElasticsearchLinkImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/IndexManagerBackendContext.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchingWorkOrchestrator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestratorProvider.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/resources/impl/BackendThreads.java
M integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/client/ElasticsearchClientFactoryImplIT.java
M integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/client/ElasticsearchContentLengthIT.java
M integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/testsupport/util/ElasticsearchClientSpy.java
M util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/rule/TestElasticsearchClient.java
Log Message:
-----------
HSEARCH-3872 Use a single thread pool for all Elasticsearch indexes
It may reduce performance when there are many indexes,
but it brings the number of threads to a more reasonable amount in that
case, and it'll allow us to introduce sharding so as to perform better
when a single index is getting hit by many write requests.
Commit: 7659094b0b737a71a3c6ea64d8cbdd2d24ec952d
https://github.com/hibernate/hibernate-search/commit/7659094b0b737a71a3c6...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterDelegatorImpl.java
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutor.java
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/SingletonTask.java
Log Message:
-----------
HSEARCH-3872 Do not block when waiting for work completion in SingletonTask/BatchingExecutor
So that the thread pool can be used for other tasks.
This is especially important for the Elasticsearch backend, where we
execute work asynchronously with a parallelism equal to the number of
connections, and have potentially much more connections available than
the number of threads in the pool.
Commit: 11a7019eabdd7f5617512fc838e1f327cf2fdc21
https://github.com/hibernate/hibernate-search/commit/11a7019eabdd7f561751...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexManagerImpl.java
Log Message:
-----------
HSEARCH-3872 Execute mass indexing works in the serial orchestrator in the Elasticsearch backend
Because we need to preserve the order of these works relative to
indexing plan works, as much as possible.
This may decrease performance of mass indexing on Elasticsearch, but
we'll bring it back up by sharding work queues for indexing in the
next commits.
Commit: f150c2ee1c317b32f2535c4f4036be18a8816780
https://github.com/hibernate/hibernate-search/commit/f150c2ee1c317b32f253...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/impl/ElasticsearchBackendImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexManagerImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/IndexManagerBackendContext.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/AbstractElasticsearchWorkOrchestrator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchedWork.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchedWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchingWorkOrchestrator.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkOrchestrator.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessor.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkOrchestrator.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessor.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSimpleWorkOrchestrator.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestrator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestratorImplementor.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestratorProvider.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/schema/management/impl/ElasticsearchIndexSchemaManager.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/schema/management/impl/ElasticsearchSchemaAccessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexer.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexingPlan.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexingPlanExecution.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexWorkspace.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/WorkExecutionBackendContext.java
A backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchedWorkProcessorTest.java
R backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessorTest.java
R backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessorTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexingPlanExecutionTest.java
Log Message:
-----------
HSEARCH-3872 Do not batch Elasticsearch works when executing them in parallel
No need for a batching orchestrator, as we don't ever bulk these works
and we always expect the user to wait on the works to be finished before
stopping the application.
Commit: 78c90a2894e3db61fffb258b2a9f3fd6f8407f77
https://github.com/hibernate/hibernate-search/commit/78c90a2894e3db61fffb...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchedWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchedWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchingWorkOrchestrator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkOrchestrator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/DeleteWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/IndexWorkBuilder.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexer.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexingPlan.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexingPlanExecution.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/AbstractNonBulkableWork.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/AbstractSingleDocumentIndexingWork.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/AbstractSingleDocumentWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/DeleteWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ElasticsearchWork.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/ElasticsearchWorkAggregator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/IndexWork.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/SingleDocumentIndexingWork.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/SingleDocumentWork.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchedWorkProcessorTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexIndexingPlanExecutionTest.java
Log Message:
-----------
HSEARCH-3872 Expect all Elasticsearch batched works to be bulkable
This simplifies work execution as we no longer need the visitor pattern
that allowed us to detect whether a work was bulkable or not.
Commit: e281b7796479d574a8c0e272be45d8bef037445a
https://github.com/hibernate/hibernate-search/commit/e281b7796479d574a8c0...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/impl/ElasticsearchBackendImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexManagerImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/AbstractElasticsearchWorkOrchestrator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchingWorkOrchestrator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSimpleWorkOrchestrator.java
R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestratorImplementor.java
Log Message:
-----------
HSEARCH-3872 Remove some orchestrator interfaces in the Elasticsearch backend
This abstraction is not necessary and just makes everything more complex.
Commit: bc52fa73e7c71588871f1551efa7e12d0627cd86
https://github.com/hibernate/hibernate-search/commit/bc52fa73e7c71588871f...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchedWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchingWorkOrchestrator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkOrchestrator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/AbstractSingleDocumentIndexingWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/DeleteWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/IndexWork.java
A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/IndexingWork.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/SingleDocumentIndexingWork.java
Log Message:
-----------
HSEARCH-3872 Execute indexing works in parallel in the Elasticsearch backend
We use a hash of the document identifier to route works to a specific
queue, ensuring that works pertaining to the same document will be
executed in the same queue.
Commit: 581d00bb881288ca72e893c0b898226bdc9f08be
https://github.com/hibernate/hibernate-search/commit/581d00bb881288ca72e8...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/client/impl/ElasticsearchClientFactoryImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/client/spi/ElasticsearchClientFactory.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/impl/ElasticsearchLinkImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/resources/impl/BackendThreads.java
M integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/client/ElasticsearchClientFactoryImplIT.java
M integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/client/ElasticsearchContentLengthIT.java
M integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/testsupport/util/ElasticsearchClientSpy.java
M util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/rule/TestElasticsearchClient.java
Log Message:
-----------
HSEARCH-3872 Use clearer thread names in the Elasticsearch backend
Commit: 853b435538fda3c790bd29b04ebb1d3f9be2a108
https://github.com/hibernate/hibernate-search/commit/853b435538fda3c790bd...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchingWorkOrchestrator.java
Log Message:
-----------
HSEARCH-3872 Reduce the default max bulk size to 100
There seems to be a limit of around 250MB for all requests executing at
a given time, and Elasticsearch just rejects requests past that point.
With a parallelism of 10 and a max bulk size of 250, we can reach a
total of 2500 documents being indexed in parallel, which is apparently
enough to go over the 250MB limit in some tests with big documents
(around 100KB each, I suppose).
For the record, the test that highlighted the problem was
org.hibernate.search.integrationtest.backend.tck.search.query.SearchQueryTimeoutIT.
Commit: ab906fcd3b1a5c4b93c61ea8d9bf33daf149bba8
https://github.com/hibernate/hibernate-search/commit/ab906fcd3b1a5c4b93c6...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutor.java
Log Message:
-----------
HSEARCH-3872 Log work processing in BatchingExecutor at debug level
Commit: 744734561e47019d3483acec9517dc54461c090a
https://github.com/hibernate/hibernate-search/commit/744734561e47019d3483...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M integrationtest/performance/backend/elasticsearch/src/main/resources/log4j.properties
Log Message:
-----------
HSEARCH-3872 Enable some logging in performance tests
Compare: https://github.com/hibernate/hibernate-search/compare/c1ddf64a7d26...7447...
4 years, 10 months
[hibernate/hibernate-search] 2ba8a6: HSEARCH-3822 Remove an unused log message
by Yoann Rodière
Branch: refs/heads/master
Home: https://github.com/hibernate/hibernate-search
Commit: 2ba8a67d8369fa2e6ba2c5de9f162bf69743048b
https://github.com/hibernate/hibernate-search/commit/2ba8a67d8369fa2e6ba2...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/logging/impl/Log.java
Log Message:
-----------
HSEARCH-3822 Remove an unused log message
Commit: edd6ef34b2abc2359d585fb62a91cb9555e44eb4
https://github.com/hibernate/hibernate-search/commit/edd6ef34b2abc2359d58...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexManagerImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexer.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/WorkExecutionBackendContext.java
M engine/src/main/java/org/hibernate/search/engine/backend/index/spi/IndexManagerImplementor.java
M engine/src/main/java/org/hibernate/search/engine/backend/session/spi/DetachedBackendSessionContext.java
M engine/src/main/java/org/hibernate/search/engine/mapper/mapping/impl/MappedIndexManagerImpl.java
M engine/src/main/java/org/hibernate/search/engine/mapper/mapping/spi/MappedIndexManager.java
M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java
M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/HibernateOrmMassIndexingMappingContext.java
M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/IdentifierConsumerDocumentProducer.java
M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java
M mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoIndexedTypeManager.java
M mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoMappingDelegateImpl.java
M mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/mapping/spi/AbstractPojoMappingImplementor.java
M mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/mapping/spi/PojoMappingDelegate.java
M mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/session/spi/AbstractPojoSearchSession.java
M mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/session/spi/PojoSearchSessionMappingContext.java
M mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoIndexerImpl.java
M mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkIndexedTypeContext.java
M util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexIndexer.java
M util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexManager.java
M util/internal/integrationtest/mapper/stub/src/main/java/org/hibernate/search/util/impl/integrationtest/mapper/stub/StubMappingIndexManager.java
Log Message:
-----------
HSEARCH-3822 Remove the commit strategy from PojoIndexer/IndexIndexer
We always use DocumentCommitStrategy.NONE, so there's no point in
exposing a parameter.
Commit: 4f056e83445c9cd2fd4058450919ceceae6b5469
https://github.com/hibernate/hibernate-search/commit/4f056e83445c9cd2fd40...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/logging/impl/Log.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IndexAccessor.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/HibernateSearchConcurrentMergeScheduler.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterDelegatorImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessor.java
M backend/lucene/src/test/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessorTest.java
M documentation/src/main/asciidoc/configuration.asciidoc
M documentation/src/test/java/org/hibernate/search/documentation/reporting/failurehandler/MyFailureHandler.java
M engine/src/main/java/org/hibernate/search/engine/reporting/FailureHandler.java
R engine/src/main/java/org/hibernate/search/engine/reporting/IndexFailureContext.java
M engine/src/main/java/org/hibernate/search/engine/reporting/impl/FailSafeFailureHandlerWrapper.java
M engine/src/main/java/org/hibernate/search/engine/reporting/impl/LogFailureHandler.java
M engine/src/test/java/org/hibernate/search/engine/reporting/impl/FailSafeFailureHandlerWrapperTest.java
M integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/massindexing/MassIndexingFailureCustomBackgroundFailureHandlerIT.java
M util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubFailureHandler.java
Log Message:
-----------
HSEARCH-3822 Do not track uncommitted works in LuceneWriteWorkProcessor
It's costly and very complex to implement if we start accepting concurrent
commits of the index writer, like we will soon.
One consequence is that we no longer report the exact list of uncommitted
works upon low-level write failure.
This should not be a problem in general as that kind of failure is
unlikely to be recovered from anyway.
Note that we didn't use to report uncommitted works upon low-level write
failure in Search 5: this was added in Search 6.
Commit: b673027d5cdba59f717f8381c2164edcaafeaaeb
https://github.com/hibernate/hibernate-search/commit/b673027d5cdba59f717f...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterDelegatorImpl.java
Log Message:
-----------
HSEARCH-3822 Avoid double commits when IndexWriterDelegator.commitOrDelay is called concurrently
It wasn't necessary until now, but it will be once we allow commits from
multiple threads.
Commit: aa8104f66871fbd41b0c2b71f9c8247a63ebc247
https://github.com/hibernate/hibernate-search/commit/aa8104f66871fbd41b0c...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexingPlan.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexingPlanWriteWorkSet.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractLuceneSingleDocumentWriteWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneAddEntryWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneDeleteEntryWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneSingleDocumentWriteWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneUpdateEntryWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactory.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactoryImpl.java
M backend/lucene/src/test/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexingPlanWriteWorkSetTest.java
Log Message:
-----------
HSEARCH-3822 Give a common return type to all works implementing LuceneSingleDocumentWriteWork
This will be useful when manipulating futures and single-document works
in the next commits.
Commit: 00a5f9a0df19cc9841cc52f6ccf969c457d19275
https://github.com/hibernate/hibernate-search/commit/00a5f9a0df19cc9841cc...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IndexAccessor.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IndexAccessorImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterDelegator.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterDelegatorImpl.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneManagementWorkSet.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneSchemaManagementWorkSet.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkOrchestrator.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessor.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/schema/management/impl/LuceneIndexSchemaManager.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkspace.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneCreateIndexIfMissingWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneDropIndexIfExistingWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneFlushWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneIndexManagementWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneMergeSegmentsWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneNoOpWriteWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneRefreshWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneSchemaManagementWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneValidateIndexExistsWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactory.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactoryImpl.java
Log Message:
-----------
HSEARCH-3822 More clearly separate index management operations (commit, refresh, merge, ...) from actual writes
This will be necessary in the next commits when we move the
reponsibility of performing commit/refresh out of the work processor.
Commit: 81b140cc3f8e7e7492712faba189a85d6fcaf0ac
https://github.com/hibernate/hibernate-search/commit/81b140cc3f8e7e749271...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/ShardHolder.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneBatchingWriteWorkOrchestrator.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneSingleWriteWorkSet.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkOrchestrator.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessor.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexer.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexingPlan.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexingPlanExecution.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkspace.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexingPlanWriteWorkSet.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/WorkExecutionIndexManagerContext.java
M backend/lucene/src/test/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessorTest.java
A backend/lucene/src/test/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexingPlanExecutionTest.java
R backend/lucene/src/test/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexingPlanWriteWorkSetTest.java
Log Message:
-----------
HSEARCH-3822 Move the responsibility of forced commit/refresh from LuceneWriteWorkProcessor to LuceneIndexIndexingPlan
This is necessary if we want to have multiple work queues and threads
per index, sharded by document ID. In that case, works from a single
work plan may be executed in different threads, thus we can no longer
expect commits and refresh to be executed "just after the works".
We need something to be notified that all works have been executed, and
to act accordingly.
Commit: 742e24a5a6feebeafa46c97eccd6fecd62374553
https://github.com/hibernate/hibernate-search/commit/742e24a5a6feebeafa46...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkExecutionContextImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkOrchestrator.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessor.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkspace.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneCreateIndexIfMissingWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneDeleteEntriesByQueryWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneDropIndexIfExistingWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneFlushWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneIndexManagementWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneIndexManagementWorkExecutionContext.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneMergeSegmentsWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneRefreshWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneValidateIndexExistsWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactory.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactoryImpl.java
Log Message:
-----------
HSEARCH-3822 Turn Lucene's purge works into an index management work
In practice it doesn't change anything right now, it will just make
changes easier when we start introducing multiple queues for writes,
since there's no single identifier we could extract from a purge work
to assign it to a specific queue.
Commit: 6eb800394cbe0fc07779cc0572ed5455f02d4be8
https://github.com/hibernate/hibernate-search/commit/6eb800394cbe0fc07779...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneManagementWorkSet.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestrator.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestratorImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneSingleWriteWorkSet.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkExecutionContextImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkOrchestrator.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessor.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/WriteWorkExecutionContextImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/schema/management/impl/LuceneIndexSchemaManager.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexingPlan.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexingPlanExecution.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkspace.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractLuceneSingleDocumentWriteWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractLuceneWriteWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractSingleDocumentWriteWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractWriteWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AddEntryWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/CountWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/CreateIndexIfMissingWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/DeleteEntriesByQueryWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/DeleteEntryWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/DropIndexIfExistingWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/ExplainWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/FlushWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/IndexManagementWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/IndexManagementWorkExecutionContext.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneAddEntryWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneCountWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneCreateIndexIfMissingWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneDeleteEntriesByQueryWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneDeleteEntryWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneDropIndexIfExistingWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneExplainWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneFlushWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneIndexManagementWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneIndexManagementWorkExecutionContext.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneMergeSegmentsWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneReadWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneReadWorkExecutionContext.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneRefreshWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneSearchWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneSingleDocumentWriteWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneUpdateEntryWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneValidateIndexExistsWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactory.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactoryImpl.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWriteWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWriteWorkExecutionContext.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/MergeSegmentsWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/ReadWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/ReadWorkExecutionContext.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/RefreshWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/SearchWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/SingleDocumentWriteWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/UpdateEntryWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/ValidateIndexExistsWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/WriteWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/WriteWorkExecutionContext.java
M backend/lucene/src/test/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessorTest.java
M backend/lucene/src/test/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexingPlanExecutionTest.java
Log Message:
-----------
HSEARCH-3822 Remove an unnecessary "Lucene" component in the class name of Lucene works
Commit: fd0c819be3dcc1dcbb272ea984c4ee0ee7a0a658
https://github.com/hibernate/hibernate-search/commit/fd0c819be3dcc1dcbb27...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutor.java
Log Message:
-----------
HSEARCH-3822 Fix invalid javadoc in BatchingExecutor
Commit: e59a53c4f6604d4649e9ba2978ba382e6e7dd7f5
https://github.com/hibernate/hibernate-search/commit/e59a53c4f6604d4649e9...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchingWorkOrchestrator.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkSet.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneBatchingWriteWorkOrchestrator.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneManagementBatchedWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneManagementWorkSet.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestratorImpl.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneSingleWriteWorkSet.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteBatchedWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkOrchestrator.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessor.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkSet.java
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/AbstractWorkOrchestrator.java
A engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchedWork.java
A engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchedWorkProcessor.java
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutor.java
M engine/src/main/java/org/hibernate/search/engine/logging/impl/Log.java
M engine/src/test/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutorTest.java
M integrationtest/performance/backend/base/src/main/java/org/hibernate/search/integrationtest/performance/backend/base/AbstractOnTheFlyIndexingBenchmarks.java
Log Message:
-----------
HSEARCH-3822 Remove the concept of "work set" in the engine and Lucene backend
Work sets no longer make sense, at least during work orchestration,
since we submit works one by one without any information about the
relationship between works.
The "BatchedWork" is what replaces the concept of "work set". A "batched
work" is just a single work, not multiple works like the "work set", but
similarly to the work set it is responsible for submitting the underlying
work to the work processor and forwarding the execution result to the
submitter.
Commit: 878822569ad6d5ecc8c198ec57f2f93d6bac3dcc
https://github.com/hibernate/hibernate-search/commit/878822569ad6d5ecc8c1...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutor.java
A engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/SingletonTask.java
M engine/src/test/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutorTest.java
Log Message:
-----------
HSEARCH-3822 Move the code responsible for ensuring a task is never run concurrently to a dedicated class
We need it for BatchingExecutor, but we'll need it for other purposes
soon.
Commit: 2c5202728f998268bb2ab30114472fdd9d5ddf67
https://github.com/hibernate/hibernate-search/commit/2c5202728f998268bb2a...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
A backend/lucene/src/test/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IndexAccessorTest.java
Log Message:
-----------
HSEARCH-3822 Add a few basic tests for IndexAccessor
Commit: 74ea3e86528ca192a58c3f50212ab6086da8a239
https://github.com/hibernate/hibernate-search/commit/74ea3e86528ca192a58c...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/logging/impl/Log.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IndexAccessor.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IndexAccessorImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterDelegatorImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterProvider.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessor.java
M backend/lucene/src/test/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IndexAccessorTest.java
M backend/lucene/src/test/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessorTest.java
Log Message:
-----------
HSEARCH-3822 Move the code reporting background failures from LuceneWriteWorkProcessor to IndexAccessorImpl
We're going to have to call this code from within IndexAccessorImpl in
the next commits.
Commit: 78f6c01510dc3a3cc49c77abdecd6cfd75bc5e0f
https://github.com/hibernate/hibernate-search/commit/78f6c01510dc3a3cc49c...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IndexAccessorImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/impl/IndexReaderProvider.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/impl/NearRealTimeIndexReaderProvider.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterDelegatorImpl.java
M backend/lucene/src/test/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IndexAccessorTest.java
Log Message:
-----------
HSEARCH-3822 Move exception handling for commit etc. from IndexAccessorImpl to IndexWriterDelegatorImpl
... so that we can benefit from this handling when performing commits in
the background (see next commits).
Commit: d1c05dd0a0ee929f0576c5237bedc3b02fd66ec2
https://github.com/hibernate/hibernate-search/commit/d1c05dd0a0ee929f0576...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessor.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessor.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchParallelWorkProcessorTest.java
M backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchSerialWorkProcessorTest.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/DebugIOStrategy.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IndexAccessor.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IndexAccessorImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/NearRealTimeIOStrategy.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterDelegatorImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterProvider.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessor.java
M backend/lucene/src/test/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IndexAccessorTest.java
M backend/lucene/src/test/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessorTest.java
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchedWorkProcessor.java
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutor.java
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/SingletonTask.java
M engine/src/test/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutorTest.java
Log Message:
-----------
HSEARCH-3822 Move the responsibility of delaying commits from BatchingExecutor to IndexWriterDelegatorImpl
1. We only use this feature in the Lucene backend, so it's better to put
the code there.
2. We need to remove this feature from BatchingExecutor in order to
allow multiple queues in there.
Commit: 7133a6f3e9f808e925c54cbc9a91a7f154c41d9c
https://github.com/hibernate/hibernate-search/commit/7133a6f3e9f808e925c5...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterDelegatorImpl.java
Log Message:
-----------
HSEARCH-3822 Add a lock to Lucene commits
... to avoid problems when closing the directory (e.g. to drop the
index) while a delayed commit is executing. Lucene throws an exception
when one tries to close an index writer as a commit is in progress,
so we need our own synchronization to make sure we're not committing
when we close the index writer.
Note the performance impact should be minimal as there is already a lock
on commit in the Lucene index writer.
Commit: 4c59cd84ab63d8924a57178934a246389fbd1b58
https://github.com/hibernate/hibernate-search/commit/4c59cd84ab63d8924a57...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/client/impl/ElasticsearchClientImpl.java
M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchBatchingWorkOrchestrator.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/impl/LuceneBackendFactory.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/impl/LuceneBackendImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/ShardHolder.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/DebugIOStrategy.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/IOStrategy.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/index/impl/NearRealTimeIOStrategy.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterDelegatorImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/writer/impl/IndexWriterProvider.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneBatchingWriteWorkOrchestrator.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/resources/impl/BackendThreads.java
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutor.java
M engine/src/main/java/org/hibernate/search/engine/backend/spi/BackendStartContext.java
M engine/src/main/java/org/hibernate/search/engine/common/impl/BackendNonStartedState.java
M engine/src/main/java/org/hibernate/search/engine/common/impl/BackendStartContextImpl.java
M engine/src/main/java/org/hibernate/search/engine/common/impl/SearchIntegrationPartialBuildStateImpl.java
M engine/src/main/java/org/hibernate/search/engine/environment/thread/impl/ThreadPoolProviderImpl.java
M engine/src/main/java/org/hibernate/search/engine/environment/thread/spi/ThreadPoolProvider.java
M engine/src/test/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutorTest.java
Log Message:
-----------
HSEARCH-3822 Use a single thread pool for Lucene indexes
It may reduce performance when there are many indexes,
but it brings the number of threads to a more reasonable amount in that
case, and it'll allow us to introduce sharding so as to perform better
when a single index is getting hit by many write requests.
Commit: 6895078dc562aaed26998330c0858caee576d1fe
https://github.com/hibernate/hibernate-search/commit/6895078dc562aaed2699...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/impl/LuceneBackendImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/Shard.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneBatchingWriteWorkOrchestrator.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestrator.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestratorImpl.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestratorImplementor.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkOrchestrator.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkOrchestratorImpl.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkOrchestratorImplementor.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/WriteWorkExecutionContextImpl.java
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/AbstractWorkOrchestrator.java
Log Message:
-----------
HSEARCH-3822 Remove some orchestrator interfaces in the Lucene backend
This abstraction is not necessary and just makes everything more complex.
Commit: 503e9ed7c0c3ddb9b315956372699e221d977705
https://github.com/hibernate/hibernate-search/commit/503e9ed7c0c3ddb9b315...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/impl/LuceneBackendImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/Shard.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/ShardHolder.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/IndexAccessorWorkExecutionContext.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneBatchedWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneBatchedWorkProcessor.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneManagementBatchedWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneParallelWorkOrchestrator.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneParallelWorkOrchestratorImpl.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestrator.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestratorImpl.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneSerialWorkOrchestrator.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneSerialWorkOrchestratorImpl.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneSyncWorkOrchestrator.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneSyncWorkOrchestratorImpl.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteBatchedWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkOrchestrator.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkOrchestratorImpl.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessor.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/WriteWorkExecutionContextImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/schema/management/impl/LuceneIndexSchemaManager.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/schema/management/impl/SchemaManagementIndexManagerContext.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryBuilder.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexer.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexingPlan.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexingPlanExecution.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkspace.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/WorkExecutionIndexManagerContext.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractIndexingWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractSingleDocumentIndexingWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractSingleDocumentWriteWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractWriteWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AddEntryWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/DeleteEntryWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/IndexingWork.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/IndexingWorkExecutionContext.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactory.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactoryImpl.java
A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/SingleDocumentIndexingWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/SingleDocumentWriteWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/UpdateEntryWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/WriteWork.java
R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/WriteWorkExecutionContext.java
A backend/lucene/src/test/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneBatchedWorkProcessorTest.java
R backend/lucene/src/test/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessorTest.java
M backend/lucene/src/test/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexingPlanExecutionTest.java
Log Message:
-----------
HSEARCH-3822 Do not batch Lucene index management works and execute them in parallel
We do not need to execute these works one after the other, as the client
is responsible for ordering them, and there is no benefit to be gained
from batching them since the only one that triggers a commit (purge)
forces the commit anyway.
Commit: 2e7d24b609b87b2e89f892c286f4d0040993b978
https://github.com/hibernate/hibernate-search/commit/2e7d24b609b87b2e89f8...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/HashShardingStrategy.java
A util/common/src/main/java/org/hibernate/search/util/common/data/impl/SimpleHashFunction.java
Log Message:
-----------
HSEARCH-3822 Move the simple hash function used in HashShardingStrategy to a util class
Commit: ecda0fcf286c8c6bcbfbd8d54556be0acd0b108b
https://github.com/hibernate/hibernate-search/commit/ecda0fcf286c8c6bcbfb...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneBatchedWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneSerialWorkOrchestrator.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneSerialWorkOrchestratorImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexer.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexIndexingPlan.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractSingleDocumentIndexingWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AddEntryWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/DeleteEntryWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/IndexingWork.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactory.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactoryImpl.java
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/UpdateEntryWork.java
Log Message:
-----------
HSEARCH-3822 Execute indexing works in parallel in the Lucene backend
We use a hash of the document identifier to route works to a specific
queue, ensuring that works pertaining to the same document will be
executed in the same queue.
Commit: b37dcf0620e81a7efe3cf636eb0ada73a5259b58
https://github.com/hibernate/hibernate-search/commit/b37dcf0620e81a7efe3c...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutor.java
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/SingletonTask.java
Log Message:
-----------
HSEARCH-3822 Add toString() implementations to BatchingExecutor and SingletonTask
For ease of debugging.
Commit: a2b9908fdf39cff80f696edd9e6bf617ed8ad9e9
https://github.com/hibernate/hibernate-search/commit/a2b9908fdf39cff80f69...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/resources/impl/BackendThreads.java
Log Message:
-----------
HSEARCH-3822 Use clearer thread names in the Lucene backend
Commit: f7760e776ac35d0ba314d2400d39dfe04cebfd03
https://github.com/hibernate/hibernate-search/commit/f7760e776ac35d0ba314...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java
Log Message:
-----------
HSEARCH-3822 Use a predictable order in SortDslIT#lucene
Since we now push indexing works to multiple queues, the relative order
of documents with different IDs within the index can no longer be
assumed to be the order these works were submitted.
Commit: c0f510ca1260cd4352a94cad88f75f42e6585e07
https://github.com/hibernate/hibernate-search/commit/c0f510ca1260cd4352a9...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneSerialWorkOrchestrator.java
Log Message:
-----------
HSEARCH-3822 Sonar: dead code
Commit: c1ddf64a7d26e925a73872219f9fadd08b9006bc
https://github.com/hibernate/hibernate-search/commit/c1ddf64a7d26e925a738...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-30 (Mon, 30 Mar 2020)
Changed paths:
M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutor.java
Log Message:
-----------
HSEARCH-3822 Make a logger static
Compare: https://github.com/hibernate/hibernate-search/compare/6444f66633be...c1dd...
4 years, 10 months
[hibernate/hibernate-validator] 1f4008: HV-1756 Fix variable names in translations
by Yoann Rodière
Branch: refs/heads/6.0
Home: https://github.com/hibernate/hibernate-validator
Commit: 1f4008200df5b8eb9ab653ff8755542421e05809
https://github.com/hibernate/hibernate-validator/commit/1f4008200df5b8eb9...
Author: Guillaume Smet <guillaume.smet(a)gmail.com>
Date: 2020-03-27 (Fri, 27 Mar 2020)
Changed paths:
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_es.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_ko.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_mn_MN.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_tr.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_uk.properties
Log Message:
-----------
HV-1756 Fix variable names in translations
Commit: 45e53d1fbc4e3d3598449001512e98dd42130b47
https://github.com/hibernate/hibernate-validator/commit/45e53d1fbc4e3d359...
Author: Guillaume Smet <guillaume.smet(a)gmail.com>
Date: 2020-03-27 (Fri, 27 Mar 2020)
Changed paths:
A engine/src/test/java/org/hibernate/validator/test/internal/constraintvalidators/MessagePropertiesTest.java
Log Message:
-----------
HV-1756 Add a test validating all the messages are properly interpolated
Commit: 935283a2c4bf2ab3dc91b5ffb3165e0309f457a5
https://github.com/hibernate/hibernate-validator/commit/935283a2c4bf2ab3d...
Author: Guillaume Smet <guillaume.smet(a)gmail.com>
Date: 2020-03-27 (Fri, 27 Mar 2020)
Changed paths:
M engine/src/test/java/org/hibernate/validator/ValidationMessages.java
M engine/src/test/resources/log4j.properties
Log Message:
-----------
HV-1756 Be less verbose in test logging
Commit: b0b6e2da3c484cff6711e856dcdc34450223ad39
https://github.com/hibernate/hibernate-validator/commit/b0b6e2da3c484cff6...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-27 (Fri, 27 Mar 2020)
Changed paths:
M engine/src/main/resources/org/hibernate/validator/ValidationMessages.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_es.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_fa.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_fr.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_ko.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_nl.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_pt_BR.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_ru.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_sk.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_uk.properties
M engine/src/main/resources/org/hibernate/validator/ValidationMessages_zh_CN.properties
Log Message:
-----------
HV-1758 Remove extra $ characters in built-in contraint messages
"{modType}" is evaluated to "MOD10" for example, so with the extra $ we
were getting "$MOD10" in interpolated messages, instead of just "MOD10".
Commit: ab6370f39d6ba730187052e4dc264bf47982e719
https://github.com/hibernate/hibernate-validator/commit/ab6370f39d6ba7301...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-27 (Fri, 27 Mar 2020)
Changed paths:
M engine/src/test/java/org/hibernate/validator/test/internal/constraintvalidators/MessagePropertiesTest.java
Log Message:
-----------
HV-1758 Check for un-interpolated dollar signs in MessagePropertiesTest
Commit: 645977a4aa875b36cf4816191e6ada8e76b84ce7
https://github.com/hibernate/hibernate-validator/commit/645977a4aa875b36c...
Author: Guillaume Smet <guillaume.smet(a)gmail.com>
Date: 2020-03-27 (Fri, 27 Mar 2020)
Changed paths:
M engine/src/main/java/org/hibernate/validator/HibernateValidatorConfiguration.java
M engine/src/main/java/org/hibernate/validator/internal/engine/ConfigurationImpl.java
M engine/src/main/java/org/hibernate/validator/internal/engine/ValidatorFactoryImpl.java
M engine/src/main/java/org/hibernate/validator/internal/metadata/BeanMetaDataManager.java
A engine/src/main/java/org/hibernate/validator/internal/metadata/DefaultBeanMetaDataClassNormalizer.java
A engine/src/main/java/org/hibernate/validator/metadata/BeanMetaDataClassNormalizer.java
A engine/src/test/java/org/hibernate/validator/test/internal/engine/ValidatorFactoryBeanMetadataClassNormalizerTest.java
M engine/src/test/java/org/hibernate/validator/test/internal/engine/path/PathImplTest.java
M engine/src/test/java/org/hibernate/validator/test/internal/metadata/BeanMetaDataManagerTest.java
M engine/src/test/java/org/hibernate/validator/test/internal/metadata/aggregated/ExecutableMetaDataTest.java
M engine/src/test/java/org/hibernate/validator/test/internal/metadata/aggregated/ParameterMetaDataTest.java
M engine/src/test/java/org/hibernate/validator/test/internal/metadata/aggregated/PropertyMetaDataTest.java
Log Message:
-----------
HV-1755 Backport BeanMetaDataClassNormalizer
Co-authored-by: Yoann Rodière <yoann(a)hibernate.org>
Commit: 24897f31894d884f1f55668d1c313f2881ff1314
https://github.com/hibernate/hibernate-validator/commit/24897f31894d884f1...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-27 (Fri, 27 Mar 2020)
Changed paths:
M cdi/src/main/java/org/hibernate/validator/cdi/internal/ValidatorFactoryBean.java
A cdi/src/main/java/org/hibernate/validator/cdi/spi/BeanNames.java
Log Message:
-----------
HV-1755 Allow bean metadata class normalizers to be provided to the CDI extension
Commit: d0b73e115dabb6df9c8466ed225b63532e9a5447
https://github.com/hibernate/hibernate-validator/commit/d0b73e115dabb6df9...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2020-03-27 (Fri, 27 Mar 2020)
Changed paths:
M cdi/src/main/java/org/hibernate/validator/cdi/internal/ValidatorFactoryBean.java
A cdi/src/test/java/org/hibernate/validator/test/cdi/internal/beanmetadataclassnormalizer/CustomProxy.java
A cdi/src/test/java/org/hibernate/validator/test/cdi/internal/beanmetadataclassnormalizer/CustomProxyBeanMetaDataClassNormalizer.java
A cdi/src/test/java/org/hibernate/validator/test/cdi/internal/beanmetadataclassnormalizer/CustomProxyBeanMetadataClassNormalizerCdiExtension.java
A cdi/src/test/java/org/hibernate/validator/test/cdi/internal/beanmetadataclassnormalizer/ExtensionProvidedBeanMetadataClassNormalizerTest.java
Log Message:
-----------
HV-1755 Test bean metadata class normalizers provided to the CDI extension
Compare: https://github.com/hibernate/hibernate-validator/compare/77df11af1534...d...
4 years, 10 months