You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2017/08/08 12:44:34 UTC
[47/50] [abbrv] lucene-solr:jira/solr-11165: Merge branch 'master'
into feature/autoscaling
Merge branch 'master' into feature/autoscaling
# Conflicts:
# solr/CHANGES.txt
# solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java
# solr/core/src/test/org/apache/solr/cloud/SharedFSAutoReplicaFailoverTest.java
# solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java
# solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/1f6a9455
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/1f6a9455
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/1f6a9455
Branch: refs/heads/jira/solr-11165
Commit: 1f6a94551f01ef6cd7dcb8678ada73d5cc9e5877
Parents: d468313 a4db6ce
Author: Shalin Shekhar Mangar <sh...@apache.org>
Authored: Tue Aug 8 17:15:46 2017 +0530
Committer: Shalin Shekhar Mangar <sh...@apache.org>
Committed: Tue Aug 8 17:15:46 2017 +0530
----------------------------------------------------------------------
build.xml | 4 +-
lucene/CHANGES.txt | 15 +-
.../lucene/analysis/icu/ICUFoldingFilter.java | 2 +
.../segmentation/CompositeBreakIterator.java | 4 +-
.../segmentation/DefaultICUTokenizerConfig.java | 4 +
.../icu/segmentation/ICUTokenizerFactory.java | 3 +-
.../index/DocumentsWriterPerThreadPool.java | 2 -
.../apache/lucene/index/TieredMergePolicy.java | 11 +-
.../lucene/util/automaton/Operations.java | 27 +-
.../apache/lucene/util/automaton/RegExp.java | 22 +-
.../java/org/apache/lucene/util/fst/FST.java | 2 +-
.../lucene/util/automaton/TestOperations.java | 26 +-
.../lucene/util/automaton/TestRegExp.java | 25 +-
lucene/ivy-versions.properties | 5 +-
.../document/LatLonPointDistanceQuery.java | 234 +++--
.../lucene/search/TestLatLonPointQueries.java | 37 +-
.../lucene/spatial3d/geom/GeoAreaShape.java | 39 +
.../apache/lucene/spatial3d/geom/GeoBBox.java | 2 +-
.../lucene/spatial3d/geom/GeoBaseAreaShape.java | 125 +++
.../lucene/spatial3d/geom/GeoBaseBBox.java | 38 +-
.../geom/GeoBaseCompositeAreaShape.java | 135 +++
.../geom/GeoBaseCompositeMembershipShape.java | 53 ++
.../spatial3d/geom/GeoBaseCompositeShape.java | 121 +++
.../spatial3d/geom/GeoBaseDistanceShape.java | 2 +-
.../lucene/spatial3d/geom/GeoBasePolygon.java | 2 +-
.../spatial3d/geom/GeoComplexPolygon.java | 47 +-
.../spatial3d/geom/GeoCompositeAreaShape.java | 38 +
.../geom/GeoCompositeMembershipShape.java | 88 +-
.../spatial3d/geom/GeoCompositePolygon.java | 11 +-
.../spatial3d/geom/GeoConcavePolygon.java | 21 +
.../lucene/spatial3d/geom/GeoConvexPolygon.java | 21 +
.../geom/GeoDegenerateHorizontalLine.java | 7 +-
.../geom/GeoDegenerateLatitudeZone.java | 7 +-
.../geom/GeoDegenerateLongitudeSlice.java | 7 +-
.../spatial3d/geom/GeoDegeneratePoint.java | 5 +
.../geom/GeoDegenerateVerticalLine.java | 7 +-
.../lucene/spatial3d/geom/GeoDistanceShape.java | 2 +-
.../lucene/spatial3d/geom/GeoLatitudeZone.java | 46 +-
.../spatial3d/geom/GeoLongitudeSlice.java | 33 +-
.../spatial3d/geom/GeoNorthLatitudeZone.java | 38 +-
.../spatial3d/geom/GeoNorthRectangle.java | 45 +-
.../lucene/spatial3d/geom/GeoPolygon.java | 2 +-
.../lucene/spatial3d/geom/GeoRectangle.java | 45 +-
.../spatial3d/geom/GeoSouthLatitudeZone.java | 37 +-
.../spatial3d/geom/GeoSouthRectangle.java | 43 +-
.../spatial3d/geom/GeoStandardCircle.java | 8 +
.../lucene/spatial3d/geom/GeoStandardPath.java | 37 +
.../geom/GeoWideDegenerateHorizontalLine.java | 9 +-
.../spatial3d/geom/GeoWideLongitudeSlice.java | 32 +-
.../spatial3d/geom/GeoWideNorthRectangle.java | 48 +-
.../lucene/spatial3d/geom/GeoWideRectangle.java | 46 +-
.../spatial3d/geom/GeoWideSouthRectangle.java | 44 +-
.../apache/lucene/spatial3d/geom/GeoWorld.java | 5 +
.../CompositeGeoPolygonRelationshipsTest.java | 842 +++++++++++++++++
.../apache/lucene/spatial3d/geom/Geo3DUtil.java | 285 ++++++
.../lucene/spatial3d/geom/GeoPolygonTest.java | 8 +-
.../spatial3d/geom/RandomGeoShapeGenerator.java | 944 +++++++++++++++++++
.../geom/RandomGeoShapeRelationshipTest.java | 257 +++++
.../geom/SimpleGeoPolygonRelationshipsTest.java | 837 ++++++++++++++++
.../analyzing/AnalyzingSuggesterTest.java | 11 +-
solr/CHANGES.txt | 95 +-
solr/bin/solr | 2 +-
.../function/field/DateMultiTrieField.java | 2 +
.../function/field/DoubleMultiTrieField.java | 2 +
.../function/field/FloatMultiTrieField.java | 2 +
.../function/field/IntMultiTrieField.java | 2 +
.../function/field/LongMultiTrieField.java | 2 +
.../apache/solr/ltr/norm/MinMaxNormalizer.java | 4 +-
.../solr/ltr/norm/StandardNormalizer.java | 4 +-
.../solr/ltr/norm/TestMinMaxNormalizer.java | 17 +-
.../solr/ltr/norm/TestStandardNormalizer.java | 17 +-
.../store/rest/TestModelManagerPersistence.java | 81 +-
solr/core/ivy.xml | 2 +
.../src/java/org/apache/solr/cloud/Assign.java | 30 +-
.../java/org/apache/solr/cloud/CloudUtil.java | 7 +-
.../apache/solr/cloud/CreateCollectionCmd.java | 2 +-
.../org/apache/solr/cloud/DeleteShardCmd.java | 14 +-
.../org/apache/solr/cloud/ElectionContext.java | 22 +-
.../java/org/apache/solr/cloud/Overseer.java | 2 +-
.../cloud/OverseerCollectionMessageHandler.java | 7 +-
.../org/apache/solr/cloud/RecoveryStrategy.java | 4 +-
.../org/apache/solr/cloud/ZkController.java | 75 +-
.../cloud/autoscaling/AutoScalingHandler.java | 5 +
.../org/apache/solr/core/CoreContainer.java | 24 +-
.../java/org/apache/solr/core/NodeConfig.java | 18 +-
.../org/apache/solr/core/SolrXmlConfig.java | 3 +
.../handler/AnalysisRequestHandlerBase.java | 11 +-
.../apache/solr/handler/CdcrRequestHandler.java | 4 +-
.../apache/solr/handler/SolrConfigHandler.java | 6 +-
.../org/apache/solr/handler/StreamHandler.java | 7 +-
.../solr/handler/admin/CollectionsHandler.java | 6 +-
.../solr/handler/admin/HealthCheckHandler.java | 110 +++
.../handler/admin/SolrInfoMBeanHandler.java | 14 +-
.../handler/component/HttpShardHandler.java | 2 +-
.../handler/component/RealTimeGetComponent.java | 8 +-
.../handler/component/StatsValuesFactory.java | 2 +-
.../solr/handler/component/TermsComponent.java | 10 +
.../apache/solr/metrics/SolrMetricManager.java | 13 +-
.../org/apache/solr/request/NumericFacets.java | 2 +-
.../org/apache/solr/request/SimpleFacets.java | 21 +-
.../transform/ChildDocTransformerFactory.java | 11 +
.../apache/solr/schema/AbstractEnumField.java | 311 ++++++
.../apache/solr/schema/DoublePointField.java | 4 +-
.../java/org/apache/solr/schema/EnumField.java | 311 +-----
.../org/apache/solr/schema/EnumFieldType.java | 213 +++++
.../apache/solr/schema/ExternalFileField.java | 6 +
.../java/org/apache/solr/schema/FieldType.java | 11 +-
.../org/apache/solr/schema/FloatPointField.java | 4 +-
.../apache/solr/schema/ManagedIndexSchema.java | 6 +-
.../apache/solr/schema/NumericFieldType.java | 149 ++-
.../org/apache/solr/schema/TrieDateField.java | 2 +
.../org/apache/solr/schema/TrieDoubleField.java | 2 +
.../java/org/apache/solr/schema/TrieField.java | 3 +
.../org/apache/solr/schema/TrieFloatField.java | 2 +
.../org/apache/solr/schema/TrieIntField.java | 2 +
.../org/apache/solr/schema/TrieLongField.java | 2 +
.../solr/search/GraphTermsQParserPlugin.java | 464 +++++++++
.../apache/solr/search/JoinQParserPlugin.java | 30 +
.../apache/solr/search/SolrDocumentFetcher.java | 15 +-
.../org/apache/solr/search/facet/UniqueAgg.java | 82 +-
.../solr/search/function/OrdFieldSource.java | 5 +
.../search/function/ReverseOrdFieldSource.java | 5 +
.../solr/search/join/GraphPointsCollector.java | 122 +++
.../org/apache/solr/search/join/GraphQuery.java | 102 +-
.../solr/search/join/GraphQueryParser.java | 1 +
.../solr/search/join/GraphTermsCollector.java | 205 ++--
.../search/join/ScoreJoinQParserPlugin.java | 2 +-
.../org/apache/solr/servlet/HttpSolrCall.java | 3 +-
.../org/apache/solr/servlet/ResponseUtils.java | 8 +-
.../solr/update/DirectUpdateHandler2.java | 1 +
.../processor/AtomicUpdateProcessorFactory.java | 4 +-
.../processor/DistributedUpdateProcessor.java | 10 +-
.../DocExpirationUpdateProcessorFactory.java | 2 +-
.../processor/UUIDUpdateProcessorFactory.java | 37 +-
.../processor/UpdateRequestProcessorChain.java | 1 +
.../java/org/apache/solr/util/LongIterator.java | 34 +
.../src/java/org/apache/solr/util/LongSet.java | 137 +++
.../src/java/org/apache/solr/util/SolrCLI.java | 6 +-
.../org/apache/solr/util/TestInjection.java | 36 +
.../org/apache/solr/util/hll/BitVector.java | 2 +
.../src/java/org/apache/solr/util/hll/HLL.java | 1 +
.../org/apache/solr/util/hll/LongIterator.java | 34 -
.../solr/collection1/conf/bad-schema-eff.xml | 44 +
.../solr/collection1/conf/bad-schema-enums.xml | 34 +
.../solr/collection1/conf/enumsConfig.xml | 19 +
.../solr/collection1/conf/schema-enums.xml | 8 +-
.../conf/schema-non-stored-docvalues.xml | 2 +-
.../solr/collection1/conf/schema-sorts.xml | 21 +-
.../test-files/solr/collection1/conf/schema.xml | 4 +-
.../solr/collection1/conf/schema11.xml | 22 +-
.../solr/collection1/conf/schema_latest.xml | 17 +
.../configsets/_default/conf/managed-schema | 103 +-
.../org/apache/solr/TestDistributedSearch.java | 2 +-
.../core/src/test/org/apache/solr/TestJoin.java | 13 +-
.../core/src/test/org/apache/solr/TestTrie.java | 2 +
.../solr/cloud/BasicDistributedZkTest.java | 7 +-
.../solr/cloud/ChaosMonkeyShardSplitTest.java | 2 +-
.../org/apache/solr/cloud/ClusterStateTest.java | 4 +-
.../solr/cloud/ClusterStateUpdateTest.java | 4 +-
.../CollectionsAPIAsyncDistributedZkTest.java | 4 +-
.../org/apache/solr/cloud/ForceLeaderTest.java | 20 +-
.../solr/cloud/HealthCheckHandlerTest.java | 89 ++
.../apache/solr/cloud/HttpPartitionTest.java | 10 +-
.../org/apache/solr/cloud/OverseerTest.java | 44 +-
.../solr/cloud/ReplicaPropertiesBase.java | 6 +-
.../org/apache/solr/cloud/ShardSplitTest.java | 14 +-
.../org/apache/solr/cloud/SliceStateTest.java | 2 +-
.../apache/solr/cloud/SolrCLIZkUtilsTest.java | 76 +-
.../solr/cloud/TestCloudDeleteByQuery.java | 2 +-
.../solr/cloud/TestCloudSearcherWarming.java | 359 +++++++
.../apache/solr/cloud/TestCollectionAPI.java | 6 +-
.../TestLeaderElectionWithEmptyReplica.java | 2 +-
.../TestLeaderInitiatedRecoveryThread.java | 6 +-
.../cloud/TestRandomRequestDistribution.java | 2 +-
.../solr/cloud/TestReplicaProperties.java | 2 +-
.../solr/cloud/TestShortCircuitedRequests.java | 2 +-
.../cloud/TestTolerantUpdateProcessorCloud.java | 4 +-
.../solr/cloud/UnloadDistributedZkTest.java | 4 +-
.../autoscaling/AutoScalingHandlerTest.java | 7 +-
.../apache/solr/cloud/hdfs/StressHdfsTest.java | 7 +-
.../apache/solr/core/TestJmxIntegration.java | 3 +-
.../DocumentAnalysisRequestHandlerTest.java | 37 +-
.../FieldAnalysisRequestHandlerTest.java | 28 +-
.../org/apache/solr/handler/TestSQLHandler.java | 4 -
.../solr/handler/admin/MBeansHandlerTest.java | 24 +
.../DistributedTermsComponentTest.java | 2 +-
.../handler/component/TermsComponentTest.java | 30 +-
.../solr/metrics/SolrMetricManagerTest.java | 1 -
.../metrics/SolrMetricsIntegrationTest.java | 24 +
.../reporters/solr/SolrCloudReportersTest.java | 1 -
.../org/apache/solr/request/TestFaceting.java | 24 +-
.../transform/TestChildDocTransformer.java | 33 +
.../org/apache/solr/schema/DocValuesTest.java | 4 +-
.../org/apache/solr/schema/EnumFieldTest.java | 437 ++++++++-
.../solr/schema/ExternalFileFieldSortTest.java | 21 +-
.../apache/solr/schema/TestCloudSchemaless.java | 2 +-
.../org/apache/solr/schema/TestPointFields.java | 139 ++-
.../solr/schema/TestUseDocValuesAsStored.java | 2 +-
.../TrieIntPrefixActsAsRangeQueryFieldType.java | 4 +-
.../apache/solr/schema/WrappedTrieIntField.java | 2 +
.../apache/solr/search/QueryEqualityTest.java | 2 +-
.../search/TestGraphTermsQParserPlugin.java | 2 -
.../org/apache/solr/search/TestRangeQuery.java | 305 +++++-
.../org/apache/solr/search/TestTrieFacet.java | 1 +
.../solr/search/facet/TestJsonFacets.java | 6 +-
.../solr/search/function/TestFunctionQuery.java | 24 +-
.../apache/solr/search/join/GraphQueryTest.java | 40 +-
.../AtomicUpdateProcessorFactoryTest.java | 14 +-
.../UUIDUpdateProcessorFallbackTest.java | 101 +-
.../org/apache/solr/util/hll/BitVectorTest.java | 1 +
.../org/apache/solr/util/hll/FullHLLTest.java | 1 +
.../example-DIH/solr/db/conf/managed-schema | 116 +--
.../example-DIH/solr/mail/conf/managed-schema | 107 +--
.../example-DIH/solr/solr/conf/managed-schema | 128 +--
solr/example/files/conf/managed-schema | 58 +-
solr/licenses/avatica-core-1.10.0.jar.sha1 | 1 +
solr/licenses/avatica-core-1.9.0.jar.sha1 | 1 -
solr/licenses/calcite-core-1.11.0.jar.sha1 | 1 -
solr/licenses/calcite-core-1.13.0.jar.sha1 | 1 +
solr/licenses/calcite-linq4j-1.11.0.jar.sha1 | 1 -
solr/licenses/calcite-linq4j-1.13.0.jar.sha1 | 1 +
solr/licenses/commons-lang3-3.6.jar.sha1 | 1 +
solr/licenses/commons-lang3-LICENSE-ASL.txt | 202 ++++
solr/licenses/commons-lang3-NOTICE.txt | 8 +
.../configsets/_default/conf/managed-schema | 103 +-
.../conf/managed-schema | 107 +--
solr/solr-ref-guide/src/_layouts/page.html | 2 +
solr/solr-ref-guide/src/collections-api.adoc | 26 +-
.../src/cross-data-center-replication-cdcr.adoc | 7 +-
solr/solr-ref-guide/src/css/comments.css | 4 -
solr/solr-ref-guide/src/documents-screen.adoc | 14 +-
solr/solr-ref-guide/src/docvalues.adoc | 2 +-
.../field-type-definitions-and-properties.adoc | 2 +-
.../src/field-types-included-with-solr.adoc | 3 +-
.../documents-screen/documents_add_screen.png | Bin 58783 -> 181627 bytes
.../shards-and-indexing-data-in-solrcloud.adoc | 64 +-
.../src/solr-control-script-reference.adoc | 2 +-
.../src/solrcloud-autoscaling-api.adoc | 326 +++++++
.../src/solrcloud-autoscaling-overview.adoc | 59 ++
...olrcloud-autoscaling-policy-preferences.adoc | 209 ++++
.../src/solrcloud-autoscaling.adoc | 31 +
solr/solr-ref-guide/src/solrcloud.adoc | 3 +-
.../src/the-extended-dismax-query-parser.adoc | 2 +-
.../src/the-standard-query-parser.adoc | 2 +-
.../src/update-request-processors.adoc | 10 +
.../src/working-with-enum-fields.adoc | 20 +-
.../apache/solr/client/solrj/SolrRequest.java | 4 +
.../solr/client/solrj/impl/CloudSolrClient.java | 8 +-
.../solr/client/solrj/impl/HttpSolrClient.java | 3 +-
.../solr/client/solrj/io/eval/AscEvaluator.java | 80 ++
.../io/eval/CumulativeProbabilityEvaluator.java | 67 --
.../io/eval/EmpiricalDistributionEvaluator.java | 54 +-
.../solrj/io/eval/HistogramEvaluator.java | 6 +-
.../io/eval/KolmogorovSmirnovEvaluator.java | 102 ++
.../io/eval/NormalDistributionEvaluator.java | 69 ++
.../solrj/io/eval/RegressionEvaluator.java | 1 +
.../client/solrj/io/eval/SampleEvaluator.java | 74 ++
.../io/eval/UniformDistributionEvaluator.java | 69 ++
.../solr/client/solrj/io/stream/GetStream.java | 8 +-
.../solrj/request/HealthCheckRequest.java | 61 ++
.../solr/client/solrj/request/V2Request.java | 18 +-
.../solrj/response/HealthCheckResponse.java | 39 +
.../apache/solr/common/cloud/ClusterState.java | 107 +--
.../solr/common/cloud/ClusterStateUtil.java | 2 +-
.../solr/common/cloud/ZkMaintenanceUtils.java | 6 +-
.../apache/solr/common/cloud/ZkStateReader.java | 14 +-
.../apache/solr/common/params/CommonParams.java | 7 +
.../solr/client/solrj/SolrExampleTests.java | 20 +-
.../solrj/io/stream/StreamExpressionTest.java | 143 ++-
.../client/solrj/request/TestV2Request.java | 9 +
.../solr/BaseDistributedSearchTestCase.java | 8 +
.../java/org/apache/solr/SolrTestCaseJ4.java | 4 +-
.../solr/cloud/AbstractDistribZkTestBase.java | 15 +-
.../cloud/AbstractFullDistribZkTestBase.java | 26 +-
.../java/org/apache/solr/cloud/ChaosMonkey.java | 2 +-
275 files changed, 10364 insertions(+), 2533 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/CHANGES.txt
----------------------------------------------------------------------
diff --cc solr/CHANGES.txt
index cc759a9,3adc0a2..388d5dc
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@@ -52,26 -52,19 +52,30 @@@ Detailed Change Lis
Upgrade Notes
----------------------
-(No Notes)
+* 'autoAddReplicas' feature is ported to autoscaling framework. Existing users of this feature should not have
+ to change anything. Note these changes:
+ 1. Behaviour: Changing the autoAddReplicas property from disabled to enabled using MODIFYCOLLECTION API
+ no longer replaces down replicas for the collection immediately. Instead, replicas are only added
+ if a node containing them went down while autoAddReplicas was enabled. The params
+ autoReplicaFailoverBadNodeExpiration and autoReplicaFailoverWorkLoopDelay are no longer used.
- 2. Deprecations: Enabling/disabling autoAddReplicas cluster wide with the API will be deprecated; use
++ 2. Deprecations: Enabling/disabling autoAddReplicas cluster wide with the API will be deprecated; use
+ suspend/resume trigger APIs with name='.auto_add_replicas' instead.
New Features
----------------------
* SOLR-11019: Add addAll Stream Evaluator (Joel Bernstein)
+* SOLR-10996: Implement TriggerListener API (ab, shalin)
+
* SOLR-11046: Add residuals Stream Evaluator (Joel Bernstein)
+ * SOLR-10858: Make UUIDUpdateProcessorFactory as Runtime URP (Amit Sarkar, noble)
+
+ * SOLR-11126: Node level health check handler (Anshum Gupta)
+
+* SOLR-11031: Implement SystemLogListener for autoscaling (ab)
+
Bug Fixes
----------------------
@@@ -82,13 -75,14 +86,19 @@@
* SOLR-11012: Fix three (JavaBinCodec not being closed) Resource Leak warnings. (Christine Poerschke)
+* SOLR-11026: MoveReplicaSuggester must check if the target becomes more 'loaded' than the source
+ if an operation is performed (noble)
+
+* SOLR-10994: CREATE, CREATESHARD & ADDREPLICA to use policy framework & support replica types (noble)
+
* SOLR-11011: Assign.buildCoreName can lead to error in creating a new core when legacyCloud=false (Cao Manh Dat)
+ * SOLR-10944: Get expression fails to return EOF tuple (Susheel Kumar, Joel Bernstein)
+
+ * SOLR-6086: Replica is active during autowarming resulting in queries being sent to a replica that
+ may not have a registered searcher. This causes spikes in response times when adding a replica
+ in busy clusters. (Ludovic Boutros, Timothy Potter, shalin)
+
Optimizations
----------------------
@@@ -130,11 -122,11 +140,16 @@@ Other Change
* SOLR-11131: Document 'assert' as a command option in bin/solr, and bin/solr.cmd scripts.
(Jason Gerlowski via Anshum Gupta)
+ * SOLR-11140: Remove unused parameter in (private) SolrMetricManager.prepareCloudPlugins method.
+ (Omar Abdelnabi via Christine Poerschke)
+
+ * SOLR-11187: contrib/ltr TestModelManagerPersistence improvements. (Yuki Yano via Christine Poerschke)
+
+* SOLR-10397: Port 'autoAddReplicas' feature to the autoscaling framework and make it work with non-shared filesystems
+ (Cao Manh Dat, shalin)
+
+* SOLR-11157: remove-policy must fail if a policy to be deleted is used by a collection (noble)
+
================== 7.0.0 ==================
Versions of Major Components
@@@ -343,18 -332,20 +365,26 @@@ New Feature
This also solves issues SOLR-8495, SOLR-6966, and SOLR-7058
(janhoy, Steve Rowe, hossman, Alexandre Rafalovich, Shawn Heisey, Cao Manh Dat)
-* SOLR-10123: Upgraded the Analytics Component to version 2.0 which now supports distributed collections, expressions over
- multivalued fields, a new JSON request language, and more. DocValues are now required for any field used in the analytics
+* SOLR-10123: Upgraded the Analytics Component to version 2.0 which now supports distributed collections, expressions over
+ multivalued fields, a new JSON request language, and more. DocValues are now required for any field used in the analytics
expression whereas previously docValues was not required. Please see SOLR-10123 for details. (Houston Putman)
+* SOLR-10496: New ComputePlanAction for autoscaling which uses the policy framework to compute cluster
+ operations upon a trigger fire. (Noble Paul, shalin)
+
+* SOLR-10965: New ExecutePlanAction for autoscaling which executes the operations computed by ComputePlanAction
+ against the cluster. (shalin)
+
* SOLR-10282: bin/solr support for enabling Kerberos authentication (Ishan Chattopadhyaya, Jason Gerlowski)
+ * SOLR-11093: Add support for PointFields for {!graph} query. (yonik)
+
+ * SOLR-10845: Add support for PointFields to {!graphTerms} query that is internally
+ used by some graph traversal streaming expressions. (yonik)
+
+ * SOLR-10939: Add support for PointsFields to {!join} query. Joined fields should
+ also have docValues enabled. (yonik)
+
Bug Fixes
----------------------
* SOLR-9262: Connection and read timeouts are being ignored by UpdateShardHandler after SOLR-4509.
@@@ -431,6 -415,22 +461,22 @@@
* SOLR-11136: Fix solrj XMLResponseParser when nested docs transformer is used with indented XML (hossman)
+ * SOLR-11130: V2Request in SolrJ should return the correct collection name so that the request is forwarded to the
+ correct node (noble)
-
++
+ * SOLR-11151: SolrInfoMBeanHandler.getDiff() ADD case non-functional: NPE when a bean value goes from null -> non-null.
+ (Steve Rowe)
+
+ * SOLR-11154: Child documents' return fields now include useDocValuesAsStored fields (Mohammed Sheeri Shaketi Nauage via
+ Ishan Chattopadhyaya)
+
+ * SOLR-11163: Fix contrib/ltr Normalizer persistence after solr core reload or restart.
+ (Yuki Yano via Christine Poerschke)
+
+ * SOLR-11182: A split shard failure on IOException should be logged (Varun Thacker)
+
+ * SOLR-10353: TestSQLHandler reproducible failure: No match found for function signature min(<NUMERIC>) (Kevin Risden)
+
Optimizations
----------------------
@@@ -595,6 -596,44 +644,44 @@@ Other Change
* SOLR-10494: Make default response format JSON (wt=json), and also indent text responses formats
(indent=on) by default (Trey Grainger & Cassandra Targett via hossman)
+ * SOLR-10760: Remove trie field types and fields from example schemas. (Steve Rowe)
+
+ * SOLR-11056: Add random range query test that compares results across Trie*, *Point and DocValue-only fields
+ (Tomás Fernández Löbbe)
+
+ * SOLR-10926: Increase the odds of randomly choosing point fields in our SolrTestCaseJ4 numeric type randomization.
+ (hossman, Steve Rowe)
-
++
+ * SOLR-10846: ExternalFileField/FloatFieldSource should throw a clear exception on initialization with
+ a Points-based keyField, which is not supported. (hossman, Steve Rowe)
-
++
+ * SOLR-11155: /analysis/field and /analysis/document requests should support points fields.
+ (Jason Gerlowski, Steve Rowe)
-
++
+ * SOLR-10756: Undeprecate ZkStateReader.updateClusterState(), mark as @lucene.internal, and rename to
+ forciblyRefreshAllClusterStateSlow(). (hossman, shalin, Steve Rowe)
+
+ * SOLR-11036: Separately report disk space metrics for solr.data.home and core root directory. (ab)
+
+ * SOLR-10919: ord & rord functions give confusing errors with PointFields. (hossman, Steve Rowe)
+
+ * SOLR-10847: Provide a clear exception when attempting to use the terms component with points fields.
+ (hossman, Steve Rowe)
+
+ * SOLR-9321: Remove deprecated methods of ClusterState. (Jason Gerlowski, ishan, Cao Manh Dat)
+
+ * SOLR-10033: When attempting to facet with facet.mincount=0 over points fields, raise mincount to 1
+ and log a warning. (Steve Rowe)
+
+ * SOLR-11178: Change error handling in AutoScalingHandler to be consistent w/ other APIs (noble)
+
+ * SOLR-11023: Added EnumFieldType, a non-Trie-based version of EnumField, and deprecated EnumField
+ in favor of EnumFieldType. (hossman, Steve Rowe)
-
++
+ * SOLR-10803: Mark all Trie/LegacyNumeric based fields @deprecated in Solr7. (Steve Rowe)
+
+ * SOLR-10821: Ref guide documentation for Autoscaling (Noble Paul, Cassandra Targett, shalin)
+
================== 6.7.0 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/java/org/apache/solr/cloud/Assign.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/java/org/apache/solr/cloud/CreateCollectionCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/java/org/apache/solr/cloud/Overseer.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionMessageHandler.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/java/org/apache/solr/cloud/ZkController.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java
----------------------------------------------------------------------
diff --cc solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java
index b16e9b4,5ed5f8e..686a0e5
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java
@@@ -243,72 -165,56 +243,77 @@@ public class AutoScalingHandler extend
}
}
- private void handleSetClusterPolicy(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op) throws KeeperException, InterruptedException, IOException {
- List clusterPolicy = (List) op.getCommandData();
+ private AutoScalingConfig handleSetClusterPolicy(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op,
+ AutoScalingConfig currentConfig) throws KeeperException, InterruptedException, IOException {
+ List<Map<String, Object>> clusterPolicy = (List<Map<String, Object>>) op.getCommandData();
if (clusterPolicy == null || !(clusterPolicy instanceof List)) {
- op.addError("A list of cluster policies was not found");
- checkErr(op);
+ op.addError("set-cluster-policy expects an array of objects");
+ return currentConfig;
}
-
+ List<Clause> cp = null;
try {
- zkSetClusterPolicy(container.getZkController().getZkStateReader(), clusterPolicy);
+ cp = clusterPolicy.stream().map(Clause::new).collect(Collectors.toList());
} catch (Exception e) {
- log.warn("error persisting policies");
op.addError(e.getMessage());
- checkErr(op);
-
+ return currentConfig;
}
- rsp.getValues().add("result", "success");
+ Policy p = currentConfig.getPolicy().withClusterPolicy(cp);
+ currentConfig = currentConfig.withPolicy(p);
+ return currentConfig;
}
+ private void checkErr(CommandOperation op) {
+ if (!op.hasError()) return;
+ throw new ApiBag.ExceptionWithErrObject(SolrException.ErrorCode.BAD_REQUEST, "Error in command payload", CommandOperation.captureErrors(Collections.singletonList(op)));
+ }
+
- private void handleSetClusterPreferences(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op) throws KeeperException, InterruptedException, IOException {
- List preferences = (List) op.getCommandData();
+ private AutoScalingConfig handleSetClusterPreferences(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op,
+ AutoScalingConfig currentConfig) throws KeeperException, InterruptedException, IOException {
+ List<Map<String, Object>> preferences = (List<Map<String, Object>>) op.getCommandData();
if (preferences == null || !(preferences instanceof List)) {
op.addError("A list of cluster preferences not found");
- checkErr(op);
+ return currentConfig;
}
- zkSetPreferences(container.getZkController().getZkStateReader(), preferences);
- rsp.getValues().add("result", "success");
+ List<Preference> prefs = null;
+ try {
+ prefs = preferences.stream().map(Preference::new).collect(Collectors.toList());
+ } catch (Exception e) {
+ op.addError(e.getMessage());
+ return currentConfig;
+ }
+ Policy p = currentConfig.getPolicy().withClusterPreferences(prefs);
+ currentConfig = currentConfig.withPolicy(p);
+ return currentConfig;
}
- private void handleRemovePolicy(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op) throws KeeperException, InterruptedException, IOException {
- String policyName = (String) op.getCommandData();
+ private AutoScalingConfig handleRemovePolicy(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op,
+ AutoScalingConfig currentConfig) throws KeeperException, InterruptedException, IOException {
+ String policyName = (String) op.getVal("");
- if (op.hasError()) checkErr(op);
- Map<String, Object> autoScalingConf = zkReadAutoScalingConf(container.getZkController().getZkStateReader());
- Map<String, Object> policies = (Map<String, Object>) autoScalingConf.get("policies");
+ if (op.hasError()) return currentConfig;
+
+ Map<String, List<Clause>> policies = currentConfig.getPolicy().getPolicies();
if (policies == null || !policies.containsKey(policyName)) {
op.addError("No policy exists with name: " + policyName);
+ return currentConfig;
}
- checkErr(op);
- zkSetPolicies(container.getZkController().getZkStateReader(), policyName, null);
- rsp.getValues().add("result", "success");
+
+ container.getZkController().getZkStateReader().getClusterState().forEachCollection(coll -> {
+ if (policyName.equals(coll.getPolicyName()))
+ op.addError(StrUtils.formatString("policy : {0} is being used by collection {1}", policyName, coll.getName()));
+ });
+ if (op.hasError()) return currentConfig;
+ policies = new HashMap<>(policies);
+ policies.remove(policyName);
+ Policy p = currentConfig.getPolicy().withPolicies(policies);
+ currentConfig = currentConfig.withPolicy(p);
+ return currentConfig;
}
- private void handleSetPolicies(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op) throws KeeperException, InterruptedException, IOException {
- Map<String, Object> policies = op.getDataMap();
- for (Map.Entry<String, Object> policy : policies.entrySet()) {
+ private AutoScalingConfig handleSetPolicies(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op,
+ AutoScalingConfig currentConfig) throws KeeperException, InterruptedException, IOException {
+ Map<String, Object> policiesMap = op.getDataMap();
+ for (Map.Entry<String, Object> policy : policiesMap.entrySet()) {
String policyName = policy.getKey();
if (policyName == null || policyName.trim().length() == 0) {
op.addError("The policy name cannot be null or empty");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/java/org/apache/solr/core/CoreContainer.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/java/org/apache/solr/util/SolrCLI.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/test/org/apache/solr/cloud/ShardSplitTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java
----------------------------------------------------------------------
diff --cc solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java
index 49f9b11,02d7c1a..43526b8
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java
@@@ -498,9 -498,9 +498,8 @@@ public class HttpSolrClient extends Sol
throw new SolrServerException("Unsupported method: " + request.getMethod());
}
--
private static final List<String> errPath = Arrays.asList("metadata", "error-class");//Utils.getObjectByPath(err, false,"metadata/error-class")
-
+
protected NamedList<Object> executeMethod(HttpRequestBase method, final ResponseParser processor, final boolean isV2Api) throws SolrServerException {
method.addHeader("User-Agent", AGENT);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterStateUtil.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1f6a9455/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
----------------------------------------------------------------------