This is an automated email from the ASF dual-hosted git repository. hossman pushed a commit to branch jira/SOLR-6312 in repository https://gitbox.apache.org/repos/asf/solr.git
commit 029260f9888be3093797ba8adce0b3d091c718e4 Merge: 963f1ea3864 025c0305fa8 Author: Chris Hostetter <[email protected]> AuthorDate: Fri Jan 6 17:41:00 2023 -0700 Merge branch 'main' into jira/SOLR-6312 .github/workflows/bin-solr-test.yml | 7 + NOTICE.txt | 2 +- settings.gradle | 2 +- solr/CHANGES.txt | 52 +- solr/bin/solr | 204 +- solr/bin/solr.cmd | 5 + solr/bin/solr.in.cmd | 6 +- solr/bin/solr.in.sh | 4 + .../apache/solr/cloud/api/collections/Assign.java | 37 +- ...istributedCollectionConfigSetCommandRunner.java | 12 +- .../solr/cloud/api/collections/SplitShardCmd.java | 146 +- .../src/java/org/apache/solr/core/SolrCore.java | 8 +- .../apache/solr/handler/MoreLikeThisHandler.java | 2 +- .../solr/handler/admin/CollectionsHandler.java | 194 +- .../solr/handler/admin/RebalanceLeaders.java | 90 +- .../solr/handler/component/QueryComponent.java | 2 +- .../handler/component/RealTimeGetComponent.java | 4 +- .../java/org/apache/solr/search/QueryUtils.java | 8 +- .../apache/solr/search/SolrDocumentFetcher.java | 2 +- .../org/apache/solr/search/SolrIndexSearcher.java | 20 +- .../org/apache/solr/search/neural/KnnQParser.java | 33 +- .../apache/solr/update/StreamingSolrClients.java | 3 +- .../org/apache/solr/update/UpdateShardHandler.java | 10 +- .../src/java/org/apache/solr/util/SolrCLI.java | 27 +- .../collection1/conf/solrconfig-deeppaging.xml | 2 +- .../apache/solr/cloud/ReindexCollectionTest.java | 2 +- .../test/org/apache/solr/cloud/SplitShardTest.java | 194 +- .../solr/cloud/SystemCollectionCompatTest.java | 2 +- .../solr/cloud/api/collections/ShardSplitTest.java | 13 +- .../solr/handler/admin/TestCollectionAPIs.java | 15 +- .../org/apache/solr/search/LargeFieldTest.java | 10 +- .../apache/solr/search/TestMainQueryCaching.java | 50 +- .../apache/solr/search/neural/KnnQParserTest.java | 57 + solr/example/films/README.md | 87 +- solr/example/films/films.csv | 2202 +-- solr/example/films/films.json | 14202 ++++++++++++++++++- solr/example/films/films.xml | 11000 ++++++++++++++ solr/example/films/vectors/README.md | 47 + solr/example/films/vectors/create_dataset.py | 68 + solr/example/films/vectors/create_model.py | 110 + solr/example/films/vectors/films.py | 92 + solr/licenses/annotations-4.1.1.4.jar.sha1 | 1 + solr/licenses/annotations-api-6.0.53.jar.sha1 | 1 + solr/licenses/grpc-LICENSE-ASL.txt | 610 + .../{grpc-context-NOTICE.txt => grpc-NOTICE.txt} | 0 solr/licenses/grpc-api-1.50.2.jar.sha1 | 1 + solr/licenses/grpc-context-1.48.0.jar.sha1 | 1 - solr/licenses/grpc-context-1.50.2.jar.sha1 | 1 + solr/licenses/grpc-context-LICENSE-ASL.txt | 202 - solr/licenses/grpc-core-1.50.2.jar.sha1 | 1 + solr/licenses/grpc-netty-1.50.2.jar.sha1 | 1 + solr/licenses/grpc-protobuf-1.50.2.jar.sha1 | 1 + solr/licenses/grpc-protobuf-lite-1.50.2.jar.sha1 | 1 + solr/licenses/grpc-stub-1.50.2.jar.sha1 | 1 + solr/licenses/jaeger-core-1.8.1.jar.sha1 | 1 - solr/licenses/jaeger-core-NOTICE.txt | 0 solr/licenses/jaeger-thrift-1.8.1.jar.sha1 | 1 - solr/licenses/jaeger-thrift-LICENSE-ASL.txt | 201 - solr/licenses/jaeger-thrift-NOTICE.txt | 0 solr/licenses/libthrift-0.15.0.jar.sha1 | 1 - solr/licenses/libthrift-NOTICE.txt | 5 - .../netty-codec-http2-4.1.82.Final.jar.sha1 | 1 + .../netty-codec-socks-4.1.82.Final.jar.sha1 | 1 + .../netty-handler-proxy-4.1.82.Final.jar.sha1 | 1 + solr/licenses/okhttp-4.10.0.jar.sha1 | 1 + solr/licenses/okhttp-4.9.3.jar.sha1 | 1 - solr/licenses/okio-jvm-2.8.0.jar.sha1 | 1 - solr/licenses/okio-jvm-3.0.0.jar.sha1 | 1 + ...CENSE-ASL.txt => opentelemetry-LICENSE-ASL.txt} | 2 +- solr/licenses/opentelemetry-NOTICE.txt | 1 + solr/licenses/opentelemetry-api-1.21.0.jar.sha1 | 1 + .../opentelemetry-api-logs-1.21.0-alpha.jar.sha1 | 1 + .../licenses/opentelemetry-context-1.21.0.jar.sha1 | 1 + .../opentelemetry-exporter-common-1.21.0.jar.sha1 | 1 + .../opentelemetry-exporter-otlp-1.21.0.jar.sha1 | 1 + ...ntelemetry-exporter-otlp-common-1.21.0.jar.sha1 | 1 + ...elemetry-opentracing-shim-1.21.0-alpha.jar.sha1 | 1 + solr/licenses/opentelemetry-sdk-1.21.0.jar.sha1 | 1 + .../opentelemetry-sdk-common-1.21.0.jar.sha1 | 1 + ...k-extension-autoconfigure-1.21.0-alpha.jar.sha1 | 1 + ...sdk-extension-autoconfigure-spi-1.21.0.jar.sha1 | 1 + .../opentelemetry-sdk-logs-1.21.0-alpha.jar.sha1 | 1 + .../opentelemetry-sdk-metrics-1.21.0.jar.sha1 | 1 + .../opentelemetry-sdk-trace-1.21.0.jar.sha1 | 1 + .../opentelemetry-semconv-1.21.0-alpha.jar.sha1 | 1 + ...ft-LICENSE-ASL.txt => perfmark-LICENSE-ASL.txt} | 2 +- solr/licenses/perfmark-NOTICE.txt | 41 + solr/licenses/perfmark-api-0.25.0.jar.sha1 | 1 + solr/licenses/protobuf-java-3.21.12.jar.sha1 | 1 + solr/licenses/protobuf-java-3.21.8.jar.sha1 | 1 - solr/licenses/protobuf-java-util-3.21.12.jar.sha1 | 1 + solr/licenses/protobuf-java-util-3.21.4.jar.sha1 | 1 - .../org/apache/solr/handler/AnalyticsHandler.java | 2 +- .../solr/security/hadoop/KerberosTestServices.java | 8 +- .../test/org/apache/hadoop/util/PlatformName.java | 54 + solr/modules/jaegertracer-configurator/README.md | 46 - .../modules/jaegertracer-configurator/build.gradle | 38 - .../solr/jaeger/JaegerTracerConfigurator.java | 31 - .../apache/solr/jaeger/TestJaegerConfigurator.java | 67 - solr/modules/opentelemetry/README.md | 26 + solr/modules/opentelemetry/build.gradle | 53 + .../solr/opentelemetry/ClosableTracerShim.java | 85 + .../solr/opentelemetry/OtelTracerConfigurator.java | 138 + .../apache/solr/opentelemetry}/package-info.java | 4 +- .../src/java/overview.html | 11 +- .../src/test-files/log4j2.xml | 0 .../test-files/solr/collection1/conf/schema.xml | 0 .../solr/collection1/conf/solrconfig.xml | 0 .../src/test-files/solr/solr.xml | 2 +- .../opentelemetry/OtelTracerConfiguratorTest.java | 105 + solr/packaging/build.gradle | 7 +- solr/packaging/test/bats_helper.bash | 2 +- ...lr.bats_disabled => test_placement_plugin.bats} | 21 +- ...art_solr.bats_disabled => test_start_solr.bats} | 2 + solr/solr-ref-guide/antora.template.yml | 1 + solr/solr-ref-guide/antora.yml | 9 +- solr/solr-ref-guide/build.gradle | 1 + .../pages/package-manager-internals.adoc | 46 +- .../pages/replica-placement-plugins.adoc | 6 +- .../pages/cluster-node-management.adoc | 13 +- .../pages/distributed-tracing.adoc | 72 +- .../deployment-guide/pages/shard-management.adoc | 12 + .../modules/indexing-guide/pages/reindexing.adoc | 2 +- .../indexing-guide/pages/schemaless-mode.adoc | 8 +- .../query-guide/pages/dense-vector-search.adoc | 7 + .../pages/major-changes-in-solr-10.adoc | 7 +- .../pages/major-changes-in-solr-9.adoc | 5 + .../client/solrj/impl/CloudHttp2SolrClient.java | 42 + .../client/solrj/impl/CloudLegacySolrClient.java | 16 + .../solr/client/solrj/impl/CloudSolrClient.java | 20 +- .../impl/ConcurrentUpdateHttp2SolrClient.java | 20 + .../solrj/impl/ConcurrentUpdateSolrClient.java | 14 +- .../solrj/impl/DelegationTokenHttpSolrClient.java | 18 +- .../solr/client/solrj/impl/Http2SolrClient.java | 40 +- .../solr/client/solrj/impl/HttpSolrClient.java | 40 +- .../solr/client/solrj/impl/LBHttp2SolrClient.java | 83 +- .../solr/client/solrj/impl/LBHttpSolrClient.java | 54 +- .../solr/client/solrj/impl/LBSolrClient.java | 38 +- .../solr/client/solrj/impl/SolrClientBuilder.java | 7 +- .../solrj/request/CollectionAdminRequest.java | 11 +- .../apache/solr/client/solrj/util/Constants.java | 22 + .../solr/common/params/CommonAdminParams.java | 6 + .../solr/client/solrj/TestLBHttp2SolrClient.java | 31 +- .../solr/client/solrj/TestLBHttpSolrClient.java | 66 +- .../client/solrj/impl/BasicHttpSolrClientTest.java | 28 +- .../solrj/impl/CloudHttp2SolrClientTest.java | 11 +- .../solrj/impl/CloudSolrClientCacheTest.java | 2 +- .../client/solrj/impl/CloudSolrClientTest.java | 11 +- .../impl/ConcurrentUpdateHttp2SolrClientTest.java | 4 +- .../client/solrj/impl/Http2SolrClientTest.java | 53 +- .../client/solrj/impl/LBHttp2SolrClientTest.java | 53 +- .../src/java/org/apache/solr/SolrTestCaseJ4.java | 54 +- solr/webapp/web/js/angular/controllers/cloud.js | 2 +- versions.lock | 81 +- versions.props | 5 +- 155 files changed, 28983 insertions(+), 2877 deletions(-) diff --cc solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudLegacySolrClient.java index 1d817e109aa,983d959434c..eac2326a330 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudLegacySolrClient.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudLegacySolrClient.java @@@ -266,12 -271,21 +271,23 @@@ public class CloudLegacySolrClient exte return this; } + /** + * Sets the cache ttl for DocCollection Objects cached. + * + * @param seconds ttl value in seconds + */ + public Builder withCollectionCacheTtl(int seconds) { + assert seconds > 0; + this.timeToLiveSeconds = seconds; + return this; + } + /** - * Tells {@link Builder} that created clients should send updates only to shard leaders. + * Tells {@link Builder} that created clients should be configured such that {@link + * CloudSolrClient#isUpdatesToLeaders} returns <code>true</code>. * - * <p>WARNING: This method currently has no effect. See SOLR-6312 for more information. + * @see #sendUpdatesToAnyReplica + * @see CloudSolrClient#isUpdatesToLeaders */ public Builder sendUpdatesOnlyToShardLeaders() { shardLeadersOnly = true; diff --cc solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java index dc844ce627f,f994a216c6b..92409833464 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java @@@ -302,9 -302,8 +302,9 @@@ public class CloudHttp2SolrClientTest e // Test Multi-Threaded routed updates for UpdateRequest try (CloudSolrClient threadedClient = - new CloudSolrClientBuilder( + new RandomizingCloudSolrClientBuilder( Collections.singletonList(cluster.getZkServer().getZkAddress()), Optional.empty()) + .sendUpdatesOnlyToShardLeaders() .withParallelUpdates(true) .build()) { threadedClient.setDefaultCollection("routing_collection"); diff --cc solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientTest.java index 101b4787a05,61d2a60aaec..125c8a3580d --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientTest.java @@@ -303,9 -303,8 +303,9 @@@ public class CloudSolrClientTest extend // Test Multi-Threaded routed updates for UpdateRequest try (CloudSolrClient threadedClient = - new CloudSolrClientBuilder( + new RandomizingCloudSolrClientBuilder( Collections.singletonList(cluster.getZkServer().getZkAddress()), Optional.empty()) + .sendUpdatesOnlyToShardLeaders() .withParallelUpdates(true) .build()) { threadedClient.setDefaultCollection("routing_collection"); diff --cc solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java index 3c724202e1f,f05af27d6f7..6ae2eb76a2e --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java @@@ -2698,8 -2702,9 +2702,9 @@@ public abstract class SolrTestCaseJ4 ex .sendUpdatesOnlyToShardLeaders() .build(); } - return new CloudSolrClientBuilder(Collections.singletonList(zkHost), Optional.empty()) + return new RandomizingCloudSolrClientBuilder( + Collections.singletonList(zkHost), Optional.empty()) - .sendUpdatesToAllReplicasInShard() + .sendUpdatesToAnyReplica() .build(); } @@@ -2720,8 -2727,9 +2727,9 @@@ .withSocketTimeout(socketTimeoutMillis) .build(); } - return new CloudSolrClientBuilder(Collections.singletonList(zkHost), Optional.empty()) + return new RandomizingCloudSolrClientBuilder( + Collections.singletonList(zkHost), Optional.empty()) - .sendUpdatesToAllReplicasInShard() + .sendUpdatesToAnyReplica() .withSocketTimeout(socketTimeoutMillis) .build(); } @@@ -2743,8 -2752,9 +2752,9 @@@ .withSocketTimeout(socketTimeoutMillis) .build(); } - return new CloudSolrClientBuilder(Collections.singletonList(zkHost), Optional.empty()) + return new RandomizingCloudSolrClientBuilder( + Collections.singletonList(zkHost), Optional.empty()) - .sendUpdatesToAllReplicasInShard() + .sendUpdatesToAnyReplica() .withConnectionTimeout(connectionTimeoutMillis) .withSocketTimeout(socketTimeoutMillis) .build(); @@@ -2763,9 -2774,10 +2774,10 @@@ .sendUpdatesOnlyToShardLeaders() .build(); } - return new CloudSolrClientBuilder(Collections.singletonList(zkHost), Optional.empty()) + return new RandomizingCloudSolrClientBuilder( + Collections.singletonList(zkHost), Optional.empty()) .withHttpClient(httpClient) - .sendUpdatesToAllReplicasInShard() + .sendUpdatesToAnyReplica() .build(); } @@@ -2788,9 -2801,10 +2801,10 @@@ .withSocketTimeout(socketTimeoutMillis) .build(); } - return new CloudSolrClientBuilder(Collections.singletonList(zkHost), Optional.empty()) + return new RandomizingCloudSolrClientBuilder( + Collections.singletonList(zkHost), Optional.empty()) .withHttpClient(httpClient) - .sendUpdatesToAllReplicasInShard() + .sendUpdatesToAnyReplica() .withConnectionTimeout(connectionTimeoutMillis) .withSocketTimeout(socketTimeoutMillis) .build();
