A collection may be co-located with another collection during collection creation time by specifying a
'withCollection' parameter. It can also be co-located afterwards by using the modify collection API.
The co-location guarantee is enforced regardless of future cluster operations whether they are invoked
manually via the Collection API or automatically by the Autoscaling framework.
Squashed commit of the following:
commit 3827703b38c598f1247c90ab57d3d640ab3a9e21
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Sat Jul 28 11:54:10 2018 +0530
SOLR-11990: Added change log entry
commit 7977222e07ba47274062cb8d8a69e7956d644000
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Sat Jul 28 11:52:17 2018 +0530
SOLR-11990: Added change log entry
commit 1857075fdb9d535b6149ad4369fed8b64b0c01f6
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Sat Jul 28 11:49:51 2018 +0530
SOLR-11990: Added note about co-location guarantees being one way only
commit 8557cbc8a511f21d1fcad99e11ea9d2104d0bef4
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Sat Jul 28 10:43:37 2018 +0530
SOLR-11990: Remove unused import
commit 864b013fd744edca9b6b84a8a7573fab3c5310d5
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Sat Jul 28 10:21:59 2018 +0530
SOLR-11990: Fixing compilation issues after merging master
commit dd840a2f7e765ee96c899d4d9ea89b6b67c5ae62
Merge: bb4ffb3 828d281
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Sat Jul 28 10:03:50 2018 +0530
Merge branch 'master' into jira/solr-11990
# Conflicts:
# solr/solr-ref-guide/src/collections-api.adoc
# solr/solrj/src/java/org/apache/solr/client/solrj/cloud/autoscaling/Clause.java
# solr/solrj/src/java/org/apache/solr/client/solrj/cloud/autoscaling/Suggestion.java
commit bb4ffb32c4960a2809ac8927e214e1e012204a73
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Fri Jul 27 14:09:44 2018 +0530
SOLR-11990: Ensure that the suggestion are validated by the policy engine otherwise move to the next candidate replica or the next candidate node
commit a97d45b22f9c232e939f979502c761001be9ae24
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Fri Jul 27 13:22:10 2018 +0530
SOLR-11990: Autoscaling suggestions for withCollection violations should prefer moving replicas before adding replicas
commit 7b5a84338dfe7335599a5e96aff2d26cb4eeaac6
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Fri Jul 27 12:22:45 2018 +0530
SOLR-11990: Fix statement about the behavior of the modify collection API when modifying the withCollection parameter
commit 63aec4fe0de7025c16b6ebc47dad1004531ecee1
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Thu Jul 26 07:29:07 2018 +0530
SOLR-11990: Added new page to the reference guide describing how to colocate collections together including guarantees and limitations
commit 6bfcd0786bb30353de9c26a01ec97ce3191b58f8
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Wed Jul 25 21:42:25 2018 +0530
SOLR-11990: Added another test which creates two collections which are colocated with two different collections and ensures that create collection and add replica operations work correctly
commit 4cead778f0044b6fb4012b085abf7b60350f495b
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Wed Jul 25 21:07:47 2018 +0530
SOLR-11990: Stop or start jettys in test setup to ensure that we always have exactly 2 replicas running before a test starts
commit 70dbfd042c2164fcd76d406eeab1518e4d3147fb
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Wed Jul 25 19:19:07 2018 +0530
SOLR-11990: Added description of the new withCollection parameter in the reference guide
commit 9d8260852b9d667d4d8e026432fd7727b7789393
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Wed Jul 25 19:16:46 2018 +0530
SOLR-11990: Reset count down latch during test setup
commit ae508165571b1afde54337859b8d5fdbb1d67312
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Wed Jul 25 15:43:54 2018 +0530
SOLR-11990: Add support for withCollection in simulated create collection API
commit 84f026b8c4cc25edb548430b8f5ad09d2486b3b5
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Tue Jul 24 17:21:33 2018 +0530
SOLR-11990: Ported the refactoring made in CreateCollectionCmd to the simulated version so that simulation tests are able to create collections correctly
commit defe111c9d31c8e4f0f00b4f2f3c875f5b2fa602
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Tue Jul 24 16:17:52 2018 +0530
SOLR-11990: Add missing javadoc for return statement
commit 8e47d5bc4545548c5441909c3fcc1a7901b38185
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Tue Jul 24 16:11:45 2018 +0530
SOLR-11990: Replace usage of forbidden Charsets with StandardCharsets class
commit 2d1b9eb25ea96a3a42c000ae654400ed44c17554
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Tue Jul 24 16:07:36 2018 +0530
SOLR-11990: Extract ConditionType to an interface VarType along with a WithCollectionVarType implementation
commit 1de2a4f52a59afca28de75bfa5156a3d6567a4f5
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Tue Jul 24 12:53:26 2018 +0530
SOLR-11990: Pass strict-ness parameter to the ConditionType so that WITH_COLLECTION can choose not to project add replica in strict mode.
This ensures that add replica or move replica suggesters always choose nodes that already have withCollection replicas first unless there are violations in doing so. Only if the first pass fails to find a suitable replica, do we go to the other nodes in the cluster. This also removes the need for the majority of changes in AddReplicaSuggester and so they've been reverted.
commit 0d616ed9e9bad791548c87086cba7760d724350d
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Tue Jul 24 11:36:34 2018 +0530
SOLR-11990: Minor changes to formatting and code comments
commit 1228538f934f35f15797d89c2c66f2deb9cddd8c
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Mon Jul 23 14:26:19 2018 +0530
SOLR-11990: Added a test which simulates a lost node and asserts that move replica suggester moves the replica on the lost node to a node already having the withCollection present
commit 582f1fd98de93ab73c74a1f623749dd031beb381
Author: Noble Paul <noble@apache.org>
Date: Mon Jul 23 18:35:22 2018 +1000
SOLR-11990: NPE removing unnecessary System.out.println
commit 501bc6c1d066321b344bbb8b1de3c2ead52f8c49
Author: Noble Paul <noble@apache.org>
Date: Mon Jul 23 18:31:07 2018 +1000
SOLR-11990: NPE during class init
commit acbf4a69321e16cff11cc7cf0a1f076fd9ac0037
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Mon Jul 23 13:55:30 2018 +0530
SOLR-11990: Added asserts on the nodes that should be selected by the add replica suggester
commit 4824933fd6eb7d1773acbff1a1a0c5e670226e0b
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Fri Jul 20 14:30:52 2018 +0530
SOLR-11990: Added WITH_COLLECTION to global tags. Fixed implementation of addViolatingReplicas and getSuggestions in the clause impl. Added more asserts in testWithCollectionSuggestions.
commit dbadb33211c190026e08d8e3ea587b6f8df8720b
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Fri Jul 20 13:44:36 2018 +0530
SOLR-11990: Added support for comparing violations, generating suggestions and adding violating replicas
commit ada1f17d5c93a4186260473e4822d2bee1da0e16
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Wed Jul 18 19:14:56 2018 +0530
SOLR-11990: Fix mock node state provider in TestPolicy to use the right cluster state. Added nocommits to ensure that we return the right suggestions for this feature.
commit ef2d61812e0d96eb2275b3411906d9de57ab835e
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Wed Jul 18 18:39:51 2018 +0530
SOLR-11990: Add missing node in nodeValues configuration
commit 34841fc01fea4a9f1e6a9f64050e576f2247a72b
Author: Shalin Shekhar Mangar <shalin@apache.org>
Date: Wed Jul 18 16:32:57 2018 +0530
SOLR-11990: Make it possible to co-locate replicas of multiple collections together in a node
In case a scorer would return information about a block that doesn't contain
any matches, BlockMaxConjunctionScorer could use invalid score bounds. This
would never occur when building a conjunction of term queries but possibly when
building a conjunction of phrase queries for instance.
Today if soft deletes are used we expose a union of hard and soft deletes
via LeafReader#getLiveDocs. Yet, if a users wants to take advantage of
searching also soft-deleted documents the only option today is to search
all documents even though some of them are hard deleted. The recommendation
is to not mix those but in exceptional cases ie. when a document hits a
non-aborting exception during indexing the document is marked as hard
deleted which is the correct action. In order to filter those out having
access to the hard live docs on the segment reader level allows to filter out
these documents.
Today IW#SegmentInfos is package-private and can be accessed directly.
Unlike the production code which accesses the SegmentInfo with IW lock,
tests can access it without holding IW lock. This causes these tests
sometimes fail because they are checking an inconsistent view of
SegmentInfos due to a concurrent modification.
This commit makes SegmentInfos private in IndexWriter and ensures that
we snapshot SegmentInfos in our tests.