[hibernate/hibernate-search] 8fab35: HSEARCH-2841 Move Elasticsearch query class and to...
by GitHub
Branch: refs/heads/master
Home: https://github.com/hibernate/hibernate-search
Commit: 8fab357e6265af53c4537a90ddadb84bb7159862
https://github.com/hibernate/hibernate-search/commit/8fab357e6265af53c453...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-09 (Wed, 09 Aug 2017)
Changed paths:
R elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchHSQueryImpl.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchJsonQueryDescriptor.java
R elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/EmptyDocumentExtractor.java
R elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/EmptySearchResult.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/ElasticsearchHSQueryImpl.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/EmptyDocumentExtractor.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/EmptySearchResult.java
Log Message:
-----------
HSEARCH-2841 Move Elasticsearch query class and tools to a specific package
Because it's starting to get crowded in the generic "impl" package, and
the next commits will add more.
Commit: 88267290fffeee145fdc73158745d1cc1e7d1642
https://github.com/hibernate/hibernate-search/commit/88267290fffeee145fdc...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-09 (Wed, 09 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/ElasticsearchHSQueryImpl.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/FailingOneWayFieldBridgeProjection.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/FieldProjection.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/JsonDrivenProjection.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/PrimitiveProjection.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/TwoWayFieldBridgeProjection.java
Log Message:
-----------
HSEARCH-2841 Move Elasticsearch Projection classes to their own file
Commit: 5d9e92644634104140a3e171f070f9e74b201b68
https://github.com/hibernate/hibernate-search/commit/5d9e92644634104140a3...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-09 (Wed, 09 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/ElasticsearchHSQueryImpl.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/QueryHitConverter.java
Log Message:
-----------
HSEARCH-2841 Move Elasticsearch query hit conversion code out of ElasticsearchHSQueryImpl
Commit: dc742da2a5767d8ce68d889a9fdd5c553ddc1bc1
https://github.com/hibernate/hibernate-search/commit/dc742da2a5767d8ce68d...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-09 (Wed, 09 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/ElasticsearchHSQueryImpl.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/IndexSearcher.java
Log Message:
-----------
HSEARCH-2841 Move the Elasticsearch IndexSearcher to a separate file
Commit: f5cc95b35f263b47b0f5ef126f1565153845872e
https://github.com/hibernate/hibernate-search/commit/f5cc95b35f263b47b0f5...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-09 (Wed, 09 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/ElasticsearchHSQueryImpl.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/query/impl/ElasticsearchScrollAPIDocumentExtractor.java
Log Message:
-----------
HSEARCH-2841 Move ElasticsearchScrollAPIDocumentExtractor to a separate file
Compare: https://github.com/hibernate/hibernate-search/compare/2ef8c2a4acbf...f5cc...
7 years, 5 months
[hibernate/hibernate-search] 8a08df: HSEARCH-2764 Allow null roots when simply getting ...
by GitHub
Branch: refs/heads/master
Home: https://github.com/hibernate/hibernate-search
Commit: 8a08df532c74171550264d2f1b016c7e4413051e
https://github.com/hibernate/hibernate-search/commit/8a08df532c7417155026...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/gson/impl/RootJsonAccessor.java
Log Message:
-----------
HSEARCH-2764 Allow null roots when simply getting a value from Json
We already return an Optional, so callers already have to deal with
missing values. Better return a missing value than throw an
AssertionFailure...
This will make error handling for bulk works easier, since we won't have
to care about null responses anymore (it may happen in unit tests when
mocks are incorrectly configured in particular).
Commit: 92e368081c02e4ceca7dc0b050b3e8040188f79e
https://github.com/hibernate/hibernate-search/commit/92e368081c02e4ceca7d...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/client/impl/DefaultElasticsearchClient.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/client/impl/ElasticsearchClient.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/dialect/impl/DefaultElasticsearchDialectFactory.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/logging/impl/Log.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/BulkWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/DefaultElasticsearchRequestSuccessAssessor.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/ES2DeleteByQueryWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/ElasticsearchRequestSuccessAssessor.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/SimpleElasticsearchWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/WaitForIndexStatusWork.java
M elasticsearch/src/test/java/org/hibernate/search/elasticsearch/test/DefaultElasticsearchClientFactoryTest.java
M elasticsearch/src/test/java/org/hibernate/search/elasticsearch/test/DefaultElasticsearchDialectFactoryTest.java
Log Message:
-----------
HSEARCH-2764 Only include request/response in ElasticsearchWork wrapping exceptions
This will make it much easier to handle exceptions in CompletableFutures
in the next commits.
Granted, this makes the exception traces longer, but to be fair it only
*adds* to the traces, so users won't have to scroll more unless they
want to know more.
Commit: ffa77a24b7f1bd8c259b68156438e23b6c8e5ef5
https://github.com/hibernate/hibernate-search/commit/ffa77a24b7f1bd8c259b...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/client/impl/DefaultElasticsearchClient.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/client/impl/DefaultElasticsearchClientFactory.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/client/impl/ElasticsearchClient.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/dialect/impl/DefaultElasticsearchDialectFactory.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/BulkWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/ES2DeleteByQueryWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/ES5DeleteByQueryWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/ES5FlushWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/ElasticsearchWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/IndexWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/SearchWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/SimpleElasticsearchWork.java
M elasticsearch/src/test/java/org/hibernate/search/elasticsearch/test/DefaultElasticsearchClientFactoryTest.java
M elasticsearch/src/test/java/org/hibernate/search/elasticsearch/test/DefaultElasticsearchDialectFactoryTest.java
M elasticsearch/src/test/java/org/hibernate/search/elasticsearch/test/ElasticsearchIndexWorkProcessorErrorHandlingTest.java
A engine/src/main/java/org/hibernate/search/util/impl/Futures.java
A engine/src/main/java/org/hibernate/search/util/impl/Throwables.java
M integrationtest/elasticsearch/src/test/java/org/hibernate/search/elasticsearch/test/ElasticsearchIndexStatusCheckIT.java
M integrationtest/elasticsearch/src/test/java/org/hibernate/search/elasticsearch/testutil/TestElasticsearchClient.java
M integrationtest/performance/engine-elasticsearch/src/main/java/org/hibernate/search/engineperformance/elasticsearch/stub/BlackholeElasticsearchClient.java
Log Message:
-----------
HSEARCH-2764 Use CompletableFuture in ElasticsearchWorks
This is the first step toward making asynchronous requests more
"reactive".
Commit: 0aa11d92d06b18810b669431a79f0411701dd904
https://github.com/hibernate/hibernate-search/commit/0aa11d92d06b18810b66...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/SequenceAbortedException.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/SequentialWorkExecutionContext.java
M engine/src/main/java/org/hibernate/search/util/impl/Futures.java
Log Message:
-----------
HSEARCH-2764 Use CompletableFuture for orchestration in ElasticsearchWorkProcessor
But still execute works sequentially for now.
Commit: 683fefe8fd36e0925984de72d922cabaa8433f5d
https://github.com/hibernate/hibernate-search/commit/683fefe8fd36e0925984...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/logging/impl/ElasticsearchJsonObjectFormatter.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/logging/impl/Log.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ContextualErrorHandler.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/DefaultContextualErrorHandler.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/DefaultElasticsearchWorkBulker.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/DefaultElasticsearchWorkSequenceBuilder.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkBulker.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkExecutor.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkSequenceBuilder.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/MutableElasticsearchWorkAggregator.java
R elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/SequenceAbortedException.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/SequentialWorkExecutionContext.java
R elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/BulkRequestFailedException.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/BulkResult.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/BulkResultItemExtractor.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/BulkWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/BulkableElasticsearchWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/DefaultElasticsearchRequestSuccessAssessor.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/DeleteWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/ES2DeleteByQueryWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/ElasticsearchRequestSuccessAssessor.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/ElasticsearchWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/ElasticsearchWorkExecutionContext.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/IndexWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/SimpleBulkableElasticsearchWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/SimpleElasticsearchWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/WaitForIndexStatusWork.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/work/impl/builder/BulkWorkBuilder.java
A elasticsearch/src/test/java/org/hibernate/search/elasticsearch/processor/impl/DefaultContextualErrorHandlerTest.java
A elasticsearch/src/test/java/org/hibernate/search/elasticsearch/processor/impl/DefaultElasticsearchWorkBulkerTest.java
A elasticsearch/src/test/java/org/hibernate/search/elasticsearch/processor/impl/DefaultElasticsearchWorkSequenceBuilderTest.java
R elasticsearch/src/test/java/org/hibernate/search/elasticsearch/test/ElasticsearchIndexWorkProcessorErrorHandlingTest.java
M engine/src/main/java/org/hibernate/search/exception/impl/ErrorContextBuilder.java
M engine/src/main/java/org/hibernate/search/util/impl/Futures.java
M engine/src/main/java/org/hibernate/search/util/impl/Throwables.java
A testing/src/main/java/org/hibernate/search/test/util/FutureAssert.java
Log Message:
-----------
HSEARCH-2764 Introduce ElasticsearchWorkBulker and ElasticsearchWorkSequenceBuilder
Those two classes encapsulate the logic of bulking and building a
sequence of works, making it easier to orchestrate works in many
different ways (see the following commits).
Also, compared the the previous way of executing works, this fixes the
following issues:
1. In async mode, a failure will now only affect the changeset of the
failing work, subsequent changesets will execute normally.
And (that's the hard part) bulks can still span multiple changesets:
each changeset will only be affected by failures from its own
bulked works.
2. The stack traces of failures in bulked works are now much more
similar to failures in non-bulked works.
3. That's just a side-effect, but bulked works can now return a result,
though for now the result is ignored. This mainly means that
if one day we need to inspect the result of bulked works
(for statistics, in particular), it will be that much easier.
4. We now have thorough unit tests for work bulking and sequencing.
Commit: 36e5b65713635112e86b83ab219b7b4dc4c7a27b
https://github.com/hibernate/hibernate-search/commit/36e5b65713635112e86b...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/BatchingSharedElasticsearchWorkOrchestrator.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkOrchestrator.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/FlushableElasticsearchWorkOrchestrator.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/SerialChangesetsElasticsearchWorkOrchestrator.java
A elasticsearch/src/test/java/org/hibernate/search/elasticsearch/processor/impl/SerialChangesetsElasticsearchWorkOrchestratorTest.java
M engine/src/main/java/org/hibernate/search/util/impl/Futures.java
Log Message:
-----------
HSEARCH-2764 Introduce ElasticsearchWorkOrchestrator to better manage inter-work dependency when running asynchronously
This will allow more flexibility in work orchestration in the following
commits.
Commit: 6714c133e3838a8b35930a9d90b211bb9d4a4657
https://github.com/hibernate/hibernate-search/commit/6714c133e3838a8b3593...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/BatchingSharedElasticsearchWorkOrchestrator.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
Log Message:
-----------
HSEARCH-2764 Avoid a very rare race condition in async work processing
If, between the end of the processing loop and the call to
processingScheduled.set( false ) at the end of processing, another
thread somehow managed to submit a changeset and call awaitCompletion(),
then this thread ended up not waiting for its changeset, but only for
the previous ones.
This commit fixes the issue by avoiding the use of multiple instances of
CountDownLatch, and instead relying on Phaser so that we can safely
change what waiting threads are waiting for (i.e. we can just say
"oh sorry, you were waiting for the previous runnable, but another one
needs to be ran before I let you go"). Also part of the solution is
systematically checking whether a new processing runnable must be
scheduled before arriving at the phaser.
Commit: 0625df3caedafaa71fb665664d9955f56d19fda5
https://github.com/hibernate/hibernate-search/commit/0625df3caedafaa71fb6...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/IsolatedSharedElasticsearchWorkOrchestrator.java
Log Message:
-----------
HSEARCH-2764 Use an orchestrator for synchronous safe processing
Commit: d5aa35fc12976e9e5f9e2016929b134463ea9780
https://github.com/hibernate/hibernate-search/commit/d5aa35fc12976e9e5f9e...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchIndexManager.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/BarrierElasticsearchWorkOrchestrator.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/BatchingSharedElasticsearchWorkOrchestrator.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ParallelChangesetsElasticsearchWorkOrchestrator.java
A elasticsearch/src/test/java/org/hibernate/search/elasticsearch/processor/impl/ParallelChangesetsElasticsearchWorkOrchestratorTest.java
Log Message:
-----------
HSEARCH-2764 Add a parallel orchestrator for streamed work
This could lead to better performance with large Elasticsearch
connection pools when works affect multiple indexes.
Commit: 9d46d3f8b8f803dd8502f44681e56ddf2d95d97c
https://github.com/hibernate/hibernate-search/commit/9d46d3f8b8f803dd8502...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/BufferingElasticsearchWorkExecutionContext.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/DefaultElasticsearchWorkSequenceBuilder.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/FlushableElasticsearchWorkExecutionContext.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ImmutableElasticsearchWorkExecutionContext.java
R elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ParallelWorkExecutionContext.java
R elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/SequentialWorkExecutionContext.java
M elasticsearch/src/test/java/org/hibernate/search/elasticsearch/processor/impl/DefaultElasticsearchWorkSequenceBuilderTest.java
Log Message:
-----------
HSEARCH-2764 Clarify the purpose of each ElasticsearchWorkExecutionContext impl
Commit: 5b37a84212ce6098783920f9162ea823c3f2f71b
https://github.com/hibernate/hibernate-search/commit/5b37a84212ce60987839...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
R elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/BufferingElasticsearchWorkExecutionContext.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/IndexMonitorBufferingElasticsearchWorkExecutionContext.java
A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/RefreshingElasticsearchWorkExecutionContext.java
Log Message:
-----------
HSEARCH-2764 Don't refresh indexes for streamed Elasticsearch works
Those works are executed out of order anyway, and the only way for
the client to be sure they've been executed is to perform a flush (which
is followed by a refresh), so there's no point trying to refresh for
every single work.
Commit: ee9e8d7bcbb74216bde5b521e9d7275cc944bbe7
https://github.com/hibernate/hibernate-search/commit/ee9e8d7bcbb74216bde5...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/DefaultElasticsearchWorkBulker.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
M elasticsearch/src/test/java/org/hibernate/search/elasticsearch/processor/impl/DefaultElasticsearchWorkBulkerTest.java
Log Message:
-----------
HSEARCH-2764 Set the minim bulk size to 1 for stream work orchestration
For stream works, we only submit single-work changesets, which means
the decision on whether to bulk the work or not will always happen
immediately after each work, when we only have one work to bulk.
Thus if we set the minimum to a value higher than 1, we would always
decide not to start a bulk (because there would always be only one
work to bulk), which would result in terrible performance.
Commit: fd9b94472a11fea7f432c1a25820978c88041c12
https://github.com/hibernate/hibernate-search/commit/fd9b94472a11fea7f432...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/BatchingSharedElasticsearchWorkOrchestrator.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
R elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/IsolatedSharedElasticsearchWorkOrchestrator.java
Log Message:
-----------
HSEARCH-2764 Allow synchronous works from different threads to be bulked together
We still don't fix the issue of works being executed out of order,
because that's not our concern in this commit.
Ultimately we may want to have one shared, serial orchestrator per index
manager.
Commit: 44699df02b898c79ac013debe488afa489a02851
https://github.com/hibernate/hibernate-search/commit/44699df02b898c79ac01...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchIndexManager.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/BarrierElasticsearchWorkOrchestrator.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
Log Message:
-----------
HSEARCH-2764 Make Elasticsearch non-stream orchestrators index-specific
The downside is we may not be able to bulk as much as we used to, but
there are a few advantages too:
1. We're finally able to force executing synchronous works in order
(by using one serial orchestrator per index). Note that this may impact
performance negatively, but at least we'll avoid some errors.
2. We can finally disable the 'refresh' in bulk API calls when
'refreshAfterWrite' is disabled for the index. Previously we couldn't,
because this parameter can take a different value for each index
manager.
Commit: 8ae9cf78b832132f32cb900beebafc907e457de6
https://github.com/hibernate/hibernate-search/commit/8ae9cf78b832132f32cb...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/BatchingSharedElasticsearchWorkOrchestrator.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
Log Message:
-----------
HSEARCH-2764 Limit the size of Elasticsearch work queues
If we don't, we run the risk of OutOfMemoryErrors when a huge stream
of works is pushed continuously to the index manager (for instance,
when mass indexing).
Commit: a15d34af1c765e52d0a206b78df8de5d0bde3ef3
https://github.com/hibernate/hibernate-search/commit/a15d34af1c765e52d0a2...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/BatchingSharedElasticsearchWorkOrchestrator.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
Log Message:
-----------
HSEARCH-2764 Remove the delay in BatchingSharedElasticsearchWorkOrchestrator
There's no need for such a delay:
* if works are submitted more slowly than they are processed, then
there's no need to try doing more bulking (especially if it means adding
an artificial delay)
* if works are submitted faster than they are processed, then the queue
should progressively fill up, we'll start doing bulking, and we'll end
up ignoring the delay anyway.
Commit: 1e8751abfa8b429edc83b6ed82df60a356d4d851
https://github.com/hibernate/hibernate-search/commit/1e8751abfa8b429edc83...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2017-08-03 (Thu, 03 Aug 2017)
Changed paths:
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchIndexManager.java
M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/processor/impl/ElasticsearchWorkProcessor.java
Log Message:
-----------
HSEARCH-2764 Remove the now useless "sync" parameter when creating non-stream orchestrators
Compare: https://github.com/hibernate/hibernate-search/compare/3a317f283575...1e87...
7 years, 5 months