Commit Graph

2650 Commits

Author SHA1 Message Date
Tomas Fernandez Lobbe fe33a436a0
SOLR-15154: Let Http2SolrClient pass Basic Auth credentials to all requests (#2445)
Credentials can now be set explicitly at the client level, or can be read from System properties like in the previous version of the client when using PreemptiveBasicAuthClientBuilderFactory. Other implementations of HttpClientBuilderFactory can now also be used.
2021-03-05 10:51:22 -08:00
Noble Paul d1a5b9df02 refactor /cluster/aliases V2 API to use annotations 2021-02-23 13:03:38 +11:00
Eric Pugh 2f0d191452
SOLR-15162: Add some parameters to make MODIFYCOLLECTION v1 and v2 more similar. (#2402)
* expose readOnly parameter to v2 of modifycollection.


Co-authored-by: epugh@opensourceconnections.com <>
2021-02-20 10:49:09 -05:00
Tobias Kaessmann f142bf9c54
SOLR-15038: Add elevateOnlyDocsMatchingQuery and collectElevatedDocsWhenCollapsing parameters to query elevation.
Closes #2134
2021-02-17 10:54:17 +01:00
Chris Hostetter 1c7dac8307 SOLR-15150: New update.partial.requireInPlace=true option to prevent any partial document updates that can't be done In-Place 2021-02-16 15:05:17 -07:00
Eric Pugh e6d9eaaf00
SOLR-15121: Move XSLT (tr param) response writer and update request handler to scripting contrib (#2306)
* relocate xslt related classes into scripting contrib
* relocating files to scripting and seperating out unit tests
* relocate files under test-files/scripting/solr, similar to how we do it in other contribs.  deals with some issues in finding files
* Reformatting using the Google Java Format...
* use actual param name, not the variable to properly test api!
* Clean up references to paths, and deal with the mish mash of Xslt and XSLT in class names.
* Move XSLT processing out of XMLLoader
* Move TransformerProvider.Dedupe getTransformer logic.


Co-authored-by: epugh@opensourceconnections.com <>
Co-authored-by: David Smiley <dsmiley@apache.org>
2021-02-15 13:16:18 -05:00
Jason Gerlowski f993c392f1
SOLR-15101: Add list/delete APIs for incremental backups (#2336)
SOLR-13608 introduces a new "incremental" backup format, which allows
storage of multiple backup "points" in the same location. This
development introduces a need for APIs to manage these potentially
plural backups.

This commit introduces /admin/collections?action=LISTBACKUPS and
/admin/collections?action=DELETEBACKUP to handle these backups.
2021-02-15 07:04:05 -05:00
Timothy Potter 97763ad3ce
SOLR-15145: Additional fix for SolrJ back-compat (#2366) 2021-02-14 10:19:20 -07:00
Ilan Ginzburg 23755ddfdd
SOLR-14928: allow cluster state updates to be done in a distributed way and not through Overseer (#2364) 2021-02-13 02:42:18 +01:00
Joel Bernstein 4a42ecd936 SOLR-15132: Add temporal graph query to the nodes Streaming Expression 2021-02-12 15:19:05 -05:00
Ishan Chattopadhyaya 4b113067d8 SOLR-15138: Collection creation for PerReplicaStates does not scale to large collections as well as regular collections (#2318) 2021-02-13 01:10:35 +05:30
Ishan Chattopadhyaya 938039a688 SOLR-15136: Reduce excessive logging introduced with Per Replica States feature 2021-02-12 11:52:19 +05:30
Timothy Potter 8662121ca5
SOLR-15145: solr.storeBaseUrl feature flag introduced in 8.8.1 should default to false for 9.x 2021-02-11 12:50:29 -07:00
Joel Bernstein da8b8ecdb8 SOLR-15142: Allow the cat Streaming Expression to read gzip files 2021-02-08 15:07:39 -05:00
Jason Gerlowski e89fba6fe7
SOLR-15118: Convert /v2/collections APIs to annotations (#2281)
Solr supports two different ways to write v2 APIs: a JSON spec based
approach, and one based on annotated POJOs.  The POJO method is now
preferred.

This commit switches the /v2/collections APIs over to the
annotation-based approach.  Since V2RequestSupport only works with
jsonspec-based APIs, this commit also changes CollectionAdminRequest
to no longer implement that interface.
2021-02-08 10:11:58 -05:00
Jason Gerlowski 33d16b570c
SOLR-13608: Incremental backup file format (#2250)
This commit introduces a new way for Solr to do backups (with a new
underlying file structure).  This new "incremental" backup process
improves over the existing backup mechanism in several ways:

- multiple backups "points" can now be stored at a given backup
  location/name, allowing users to choose which point in time they want
  to restore
- subsequent backups skip over uploading files that were uploaded by
  previous backups, saving time and network time.
- files are checksumed as they're uploaded, ensuring that corrupted
  indices aren't persisted and accidentally restored later.

Incremental backups are now the default, and traditional backups
should now be considered 'deprecated' but can still be created by
passing an `incremental=false` parameter on backup requests.
2021-02-04 08:47:30 -05:00
Mike Drob 40c5d6b750
SOLR-14253 Avoid writes in ZKSR.waitForState (#2297) 2021-02-03 14:40:07 -06:00
Andrzej Bialecki d88264ba72 SOLR-14234: Unhelpful message in RemoteExecutionException. 2021-02-03 16:27:47 +01:00
Chris Hostetter 15aaec60d9 SOLR-14330: ExpandComponent now supports an expand.nullGroup=true option 2021-02-01 16:19:34 -07:00
Tim Owen 715caaae52
SOLR-15085 Prevent EmbeddedSolrServer calling shutdown on a CoreContainer that was passed to it 2021-01-29 11:15:22 -06:00
Mike Drob 0d4769e174
SOLR-15120 Reduce duplicated core creation work (#2266)
Use j.u.c collections instead of sync block
Rework how we load implicit handlers
Additional debug and trace logging for zookeeper comms
2021-01-29 10:20:16 -06:00
Mike Drob b335034615
Require Thread Names in Solr (#2264)
When we are creating a new thread we should give it a descriptive name and enforce this via ForbiddenAPIs. This doesn't apply to Runnable or Callable objects that we pass to an executor, since those should be getting named by the executor itself.

We don't require this in tests because the tests should be more self contained and there is less benefit in descriptive names. If somebody is already profiling a test, then they likely have the context to understand what the unnamed threads are doing, whereas a thread dump from a running Solr instance should have good thread names for everything. This is especially helpful when doing profiling, otherwise we end up with a bunch of Thread-# that are hard to tell apart and search on.
2021-01-28 15:04:15 -06:00
Mike Drob 9be71b3939
SOLR-15113 Do not attempt to start Solr server when embedded ZK fails (#2255) 2021-01-28 11:37:51 -06:00
Joel Bernstein acb98e549d SOLR-14672: Make timeouts configurable for the Streaming Expression SolrClientCache 2021-01-28 10:36:49 -05:00
Andrzej Bialecki 6e9185a33a SOLR-15055: Re-implement 'withCollection'. 2021-01-26 15:16:33 +01:00
Noble Paul 8505d4d416
SOLR-15052: Per-replica states for reducing overseer bottlenecks (trunk) (#2177) 2021-01-19 02:59:41 +11:00
Timothy Potter 6711eb7571
SOLR-15036: auto- select / rollup / sort / plist over facet expression when using a collection alias with multiple collections (#2132) 2021-01-11 10:34:28 -07:00
Jason Gerlowski 98c51ca34b
SOLR-15070: Remove HashMap usage in SuggestComponent rsp (#2183)
Prior to this commit, SuggestComponent used a HashMap as part of the
response it built on the server side.  This class is serialized/
deserialized differently depending on the SolrJ ResponseParser used:
a LinkedHashMap when javabin was used, and a SimpleOrderedMap when XML
was used.  This discrepancy led to ClassCastException's in downstream
SolrJ code.

This commit fixes the issue by changing SuggestComponent to avoid these
types that are serialized differently.  "suggest" response sections now
deserialize as a NamedList in SolrJ, and the SuggesterResponse POJO has
been updated accordingly.
2021-01-11 07:31:26 -05:00
David Smiley 4cb3ad4a1c
* SOLR-14923: Nested docs indexing perf & robustness (#2159)
* When the schema defines _root_, and you want to do atomic/partial updates...
** _root_ needn't be stored or have docValues any more
** _nest_path_ field isn't needed for this any more
** Simplified internal logic
* Allow (and recommend, eventually insist) that the _root_ field be passed for atomic/partial updates to child docs.
** In the absence of _root_, assume the _route_ param is equivalent to ameliorate back-compat scope.  This is a temporary hack; remove in SOLR-15064.
** One of the two is required; you'll get an exception if the assumption is false.  THIS IS A BACK-COMPAT CHANGE
* Ensure that the update log contains the _root_ field if it's defined in the schema; in some cases it wasn't.  It's important for robustness of atomic/partial updates to child docs.  Caveat: the buffer replay scenario is not tested with child docs.
* Limited the cases when a realtime searcher is re-opened.  It was being applied to any update that included child docs but now only some narrow subset: only for atomic/partial updates, and when the update log contains an in-place update for the same nest because it's complicated to resolve those log entries.
* Internal improvements to RealTimeGetComponent to aid clarity & robustness & probably performance...
** Use SolrDocumentFetcher.solrDoc(docID, ReturnFields) instead of more manual loading.  Will do more with this in another PR.
** Clarify when only root doc IDs are expected.
** Use Resolution enum more, add PARTIAL, remove DOC_WITH_CHILDREN; enhance docs.
** When have ReturnFields, a Set of "onlyTheseFields" becomes redundant.  Add a child doc resolution via a transformer when needed.
** Clarified where copy-field targets are removed
* NestPathField should default to single valued, instead of inheriting the schema default, which for ancient schemas was multi-valued.
* AddUpdateCommand.getLuceneDocument(s) methods are very internal; made package visible and refactored a bit for clarity
* DocumentBuilder: when in-place update, skip id and _root_ here, thus also simplifying further logic
* NestedShardedAtomicUpdateTest no longer extends AbstractFullDistribZkTestBase because it wasn't really leveraging the "control client" checking, and it added too much complexity to debug failures.
2021-01-07 23:23:20 -05:00
Timothy Potter 2fcaba1ce2
SOLR-15058: Enforce node_name contains colon and port and find first underscore after colon to parse context (#2178) 2021-01-05 12:00:14 -07:00
Andrzej Bialecki 2695624a9f SOLR-15019: Replica placement API needs a way to fetch existing replica metrics. 2021-01-04 15:24:25 +01:00
Tim Dillon 17adcc7aa4
SOLR-14034: remove deprecated min_rf references (#2152) 2020-12-31 15:59:48 +00:00
Mike Drob bf7b438f12
SOLR-15029 Trigger leader election on index writer tragedy
SOLR-13027 Use TestInjection so that we always have a Tragic Event

When we encounter a tragic error in the index writer, we can trigger a
leader election instead of queing up a delete and re-add of the node in
question. This should result in a more graceful transition, and the
previous leader will eventually be put into recovery by a new leader.

closes #2120
2020-12-15 15:54:40 -06:00
Noble Paul 94c69f4385
SOLR-14977: improved plugin configuration (#2099) 2020-12-15 14:18:09 +11:00
Noble Paul a95ce0d422
SOLR-14827: Refactor schema loading to not use XPath (#1963) 2020-12-11 15:27:47 +11:00
Timothy Potter 30e5e38336
SOLR-14987: Reuse HttpSolrClient per node vs. one per Solr core when using CloudSolrStream (#2067) 2020-12-07 09:03:03 -07:00
Andrzej Bialecki cced5078ea SOLR-15016: Replica placement plugins should use container plugins API / configs. 2020-12-06 14:51:10 +01:00
Chris Hostetter 2e6a02394e SOLR-14934: Refactored duplicate "Solr Home" logic into a single place to eliminate risk of tests using divergent values for a single solr node. 2020-12-02 10:24:36 -07:00
Ilan Ginzburg 3df72502cc
SOLR-15004: tests for the replica placement API + placement plugin fixes and light refactoring (#2110)
Co-authored-by: Andrzej Bialecki <ab@apache.org>
2020-12-01 20:07:08 +01:00
Timothy Potter a0492840ee
SOLR-12182: Don't persist base_url in ZK as the scheme is variable, compute from node_name instead (#2010) 2020-11-30 12:05:48 -07:00
Jan Høydahl 99c38eee49
SOLR-14851 Http2SolrClient doesn't handle keystore type (#2098)
Signed-off-by: Jan Høydahl <janhoy@apache.org>
Co-authored-by: Andras Salamon <andras.salamon@melda.info>
2020-11-27 16:11:29 +01:00
Erick Erickson 77a205387f SOLR-14993: Unable to download zookeeper files of 1byte in size 2020-11-22 09:23:44 -05:00
Christine Poerschke c4d4767bca SOLR-14035: Remove deprecated preferLocalShards=true support in favour of the shards.preference=replica.location:local alternative.
(Alex Bulygin via Christine Poerschke)
2020-11-19 17:57:47 +00:00
Noble Paul 73d5e7ae77
SOLR-14977 : ContainerPlugins should be configurable (#2065) 2020-11-17 00:19:50 +11:00
Bruno Roustant 67f9245ce3
SOLR-14975: Optimize CoreContainer.getAllCoreNames and getLoadedCoreNames.
Also optimize getCoreDescriptors.
2020-11-11 11:37:45 +01:00
Adrien Grand fd98f677b9 Remove unused imports. 2020-11-10 09:22:34 +01:00
Dawid Weiss 0f871b2c56
SOLR-14926: Modernize and clean up search results clustering contrib. 2020-11-03 09:31:53 +01:00
Michael Aleythe e7f0294d85 SOLR-14961 ZkMaintenanceUtils.clean doesn't remove zk nodes with same length
fixes #2042
2020-11-02 16:54:00 -06:00
Ilan Ginzburg b649f3f40d
SOLR-14964: remove Autoscaling related withCollection and COLOCATED_WITH (#2034)
Part of SOLR-14656 (remove Autoscalin)
2020-10-26 19:10:49 +01:00
Tomas Fernandez Lobbe 38f02869b4
Remove sleeps from SolrZkClientTest.testWrappingWatches (#1936)
Only sleep when tests are nightly
2020-10-26 10:11:11 -07:00