[hibernate-commits] [hibernate/hibernate-search] c8d899: HSEARCH-3084 Retrieve Elasticsearch metadata (mapp...

Yoann Rodière noreply at github.com
Thu Oct 3 02:40:45 EDT 2019


  Branch: refs/heads/master
  Home:   https://github.com/hibernate/hibernate-search
  Commit: c8d899ba9ceec45833dc5b24ca7ec612a1d80503
      https://github.com/hibernate/hibernate-search/commit/c8d899ba9ceec45833dc5b24ca7ec612a1d80503
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/admin/impl/ElasticsearchSchemaAccessor.java
    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/work/builder/factory/impl/Elasticsearch60WorkBuilderFactory.java
    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
    A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/GetIndexMetadataWorkBuilder.java
    R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/GetIndexSettingsWorkBuilder.java
    R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/builder/impl/GetIndexTypeMappingWorkBuilder.java
    A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/GetIndexMetadataWork.java
    R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/GetIndexSettingsWork.java
    R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/GetIndexTypeMappingWork.java

  Log Message:
  -----------
  HSEARCH-3084 Retrieve Elasticsearch metadata (mapping + settings) using a single REST API call


  Commit: b008542ab084e74846399454522d1003b9a05a5e
      https://github.com/hibernate/hibernate-search/commit/b008542ab084e74846399454522d1003b9a05a5e
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:
    M engine/src/main/java/org/hibernate/search/engine/reporting/impl/RootFailureCollector.java
    M engine/src/main/java/org/hibernate/search/engine/reporting/spi/ContextualFailureCollector.java
    M engine/src/main/java/org/hibernate/search/engine/reporting/spi/FailureCollector.java

  Log Message:
  -----------
  HSEARCH-3084 Make failure collectors thread-safe

Necessary because of ES schema validation in particular.


  Commit: 84f869684c0e07737503dc9de29f218bff4cae07
      https://github.com/hibernate/hibernate-search/commit/84f869684c0e07737503dc9de29f218bff4cae07
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/admin/impl/ElasticsearchIndexAdministrationClient.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/admin/impl/ElasticsearchSchemaAccessor.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/admin/impl/ElasticsearchSchemaCreator.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/admin/impl/ElasticsearchSchemaCreatorImpl.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/admin/impl/ElasticsearchSchemaDropper.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/admin/impl/ElasticsearchSchemaDropperImpl.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/admin/impl/ElasticsearchSchemaMigrator.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/admin/impl/ElasticsearchSchemaMigratorImpl.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/admin/impl/ElasticsearchSchemaValidator.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/admin/impl/ElasticsearchSchemaValidatorImpl.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/management/impl/ElasticsearchIndexLifecycleStrategy.java

  Log Message:
  -----------
  HSEARCH-3084 Make the Elasticsearch lifecycle management asynchronous


  Commit: fbfbdd00ddc1d4533a0489a87e9083c196cbcd04
      https://github.com/hibernate/hibernate-search/commit/fbfbdd00ddc1d4533a0489a87e9083c196cbcd04
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:
    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

  Log Message:
  -----------
  HSEARCH-3084 Delay shard starting until after all shards are created in Lucene index managers


  Commit: ad2f3e01d11c659c38129c5b2ae00b27f140945d
      https://github.com/hibernate/hibernate-search/commit/ad2f3e01d11c659c38129c5b2ae00b27f140945d
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  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/index/impl/Shard.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/impl/DirectoryCreationContextImpl.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/impl/FileSystemUtils.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/impl/LocalFileSystemDirectoryHolder.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/impl/LocalFileSystemDirectoryProvider.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/impl/LocalHeapDirectoryHolder.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/impl/LocalHeapDirectoryProvider.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/spi/DirectoryCreationContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/spi/DirectoryHolder.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/spi/DirectoryProvider.java
    R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/spi/SimpleDirectoryHolder.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/IndexWriterDelegatorImpl.java
    M integrationtest/backend/lucene/src/test/java/org/hibernate/search/integrationtest/backend/lucene/lowlevel/directory/CustomDirectoryIT.java

  Log Message:
  -----------
  HSEARCH-3084 Delay directory creation/initialization until shards are started in Lucene index managers


  Commit: 313c5acaba0a1a462e9e5ebb1b9f2885b2ebfa85
      https://github.com/hibernate/hibernate-search/commit/313c5acaba0a1a462e9e5ebb1b9f2885b2ebfa85
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:
    M util/common/src/main/java/org/hibernate/search/util/common/SearchException.java
    M util/common/src/main/java/org/hibernate/search/util/common/logging/impl/EventContextFormatter.java
    M util/common/src/main/java/org/hibernate/search/util/common/reporting/EventContext.java

  Log Message:
  -----------
  HSEARCH-3084 Do not display the "Context: " prefix when rendering EventContexts by default


  Commit: d60ba2c5f44c139d91cc784d0f70cf690659fb77
      https://github.com/hibernate/hibernate-search/commit/d60ba2c5f44c139d91cc784d0f70cf690659fb77
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  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/index/impl/Shard.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/work/execution/impl/WorkExecutionBackendContext.java

  Log Message:
  -----------
  HSEARCH-3084 Handle index names more consistently in Lucene index managers

Make sure to always include the shard ID, in particular.


  Commit: 62f3b2356e93f1fcdfc5b62a7e9f31d7a9492ba3
      https://github.com/hibernate/hibernate-search/commit/62f3b2356e93f1fcdfc5b62a7e9f31d7a9492ba3
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  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/index/impl/Shard.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/ShardingStrategyInitializationContextImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/WorkExecutionBackendContext.java

  Log Message:
  -----------
  HSEARCH-3084 Simplify Lucene write orchestrator creation

There's no reason to go through an interface exposed in a separate
package: the consumer and the implementation of the
createWriteOrchestrator() method are located in the same package.


  Commit: fcf3d5e4c349984c63ea64ee8d1b35132f06d784
      https://github.com/hibernate/hibernate-search/commit/fcf3d5e4c349984c63ea64ee8d1b35132f06d784
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  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/index/impl/LuceneIndexManagerImpl.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
    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/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/work/impl/LuceneEnsureIndexExistsWork.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-3084 Make the Lucene directory initialization asynchronous


  Commit: 5e5c318fe5444ee6d8a82ab687477c5e25b0a1e1
      https://github.com/hibernate/hibernate-search/commit/5e5c318fe5444ee6d8a82ab687477c5e25b0a1e1
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  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/LuceneIndexManagerImpl.java
    M engine/src/main/java/org/hibernate/search/engine/backend/index/spi/IndexManagerImplementor.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/IndexManagerPartialBuildState.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/SearchIntegrationPartialBuildStateImpl.java
    M util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexManager.java

  Log Message:
  -----------
  HSEARCH-3084 Start index managers in parallel


  Commit: c31a9eaf812c4190030389cc22862f5afbb4129e
      https://github.com/hibernate/hibernate-search/commit/c31a9eaf812c4190030389cc22862f5afbb4129e
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:
    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/orchestration/impl/LuceneBatchingWriteWorkOrchestrator.java
    M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutor.java

  Log Message:
  -----------
  HSEARCH-3084 Simplify BatchingExecutor

1. Get rid of the Phaser and use much simpler code.
2. Expose a CompletableFuture<?> to wait for full completion (will be
useful in the next commits).


  Commit: 3ccd52319ca6b7a6e8b715cfadc0df35708a52ef
      https://github.com/hibernate/hibernate-search/commit/3ccd52319ca6b7a6e8b715cfadc0df35708a52ef
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  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/ElasticsearchBatchingWorkOrchestrator.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestratorImplementor.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/orchestration/impl/ElasticsearchWorkOrchestratorProvider.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/LuceneIndexManagerImpl.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
    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/LuceneReadWorkOrchestratorImpl.java
    M 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/LuceneWriteWorkOrchestratorImplementor.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/orchestration/spi/AbstractWorkOrchestrator.java
    M engine/src/main/java/org/hibernate/search/engine/backend/spi/BackendImplementor.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/BackendPartialBuildState.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/IndexManagerBuildingStateHolder.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/IndexManagerPartialBuildState.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/SearchIntegrationImpl.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/SearchIntegrationPartialBuildStateImpl.java
    M engine/src/main/java/org/hibernate/search/engine/logging/impl/Log.java
    M integrationtest/mapper/pojo-base/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/lifecycle/CleanupIT.java
    M util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubBackend.java
    M util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexManager.java

  Log Message:
  -----------
  HSEARCH-3084 Pre-stop backends and index managers in parallel

Mainly, this means that on shutdown, we'll stop accepting works
for all backends/index managers immediately, and *then* we'll wait for
ongoing works to complete.

The improvement over the previous behavior will probably be negligible,
but what's more important is that the path towards an API for explicitly
starting/pre-stopping/stopping index managers is now clearer.


  Commit: d4c4505ccbf4173c29ed5f03b89d5962777c9fb7
      https://github.com/hibernate/hibernate-search/commit/d4c4505ccbf4173c29ed5f03b89d5962777c9fb7
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:
    M pom.xml
    M util/internal/test/pom.xml

  Log Message:
  -----------
  HSEARCH-3084 Add test dependency to awaitility for asynchronous testing


  Commit: 3e63ff142f1818daa6e5ff26c00bb204e726d838
      https://github.com/hibernate/hibernate-search/commit/3e63ff142f1818daa6e5ff26c00bb204e726d838
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:
    A engine/src/test/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutorTest.java

  Log Message:
  -----------
  HSEARCH-3084 Add basic unit tests for BatchingExecutor

It's not a lot, but it's better than nothing.


  Commit: 3b91ab8e81e3d3937beafd52dd035daad4452aa0
      https://github.com/hibernate/hibernate-search/commit/3b91ab8e81e3d3937beafd52dd035daad4452aa0
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:
    M engine/src/main/java/org/hibernate/search/engine/backend/orchestration/spi/BatchingExecutor.java

  Log Message:
  -----------
  HSEARCH-3084 Always execute all worksets in BatchingExecutor, even if a previous workset failed

The problem is unrelated to this PR, but was detected thanks to the tests
I added to make sure the new implementation works correctly.


Compare: https://github.com/hibernate/hibernate-search/compare/afc269f4276f...3b91ab8e81e3



More information about the hibernate-commits mailing list