Commit Graph

2637 Commits

Author SHA1 Message Date
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
Noble Paul 052efd62ae Revert "refactor method names"
This reverts commit e826b1f344.

accidental commite reverted
2020-10-22 15:25:31 +11:00
Noble Paul e826b1f344 refactor method names 2020-10-22 12:35:47 +11:00
Noble Paul 321b4fa0de
SOLR-14930: Deprecate rulebased replica placement strategy (remove in 9.0) (#1980) 2020-10-15 19:53:43 +11:00
Andrzej Bialecki 2a3da99e2d SOLR-14914: Add option to disable metrics collection. 2020-10-15 10:14:16 +02:00
Noble Paul 2f651b156c SOLR-14654: remove all references of runtime lib 2020-10-14 11:13:38 +11:00
Houston Putman bcd9cbec95
SOLR-14907: Support single file upload/overwrite in configSet API (#1977) 2020-10-13 16:51:21 -04:00
David Smiley ab83b3b7c3
SOLR-14917: Move DOMUtil and PropertiesUtil to SolrJ (#1953) 2020-10-10 08:52:10 -04:00
Andrzej Bialecki 969f9c1899 SOLR-14691: Fix a minor back-compat formatting issue. 2020-10-07 20:46:13 +02:00
Andrzej Bialecki 43b1a2fdc7 SOLR-14691: Metrics reporting should avoid creating objects. 2020-10-07 17:52:55 +02:00
Timothy Potter e879a52291
SOLR-14659: Remove restlet as dependency for the ManagedResource API (#1938)
Co-authored-by: noblepaul <noble.paul@gmail.com>
2020-10-04 11:21:49 -06:00
Erick Erickson f6c4f8a755 SOLR-14910: Use in-line tags for logger declarations in Gradle ValidateLogCalls that are non-standard, change //logok to //nowarn 2020-10-03 09:47:37 -04:00
Tomas Fernandez Lobbe 8f2f80bbb3 SOLR-14663: Copy ConfigSet root data from base ConfigSet when using CREATE command 2020-10-01 14:13:40 -07:00
Atri Sharma 4105414c90
SOLR-13528: Implement API Based Config For Rate Limiters (#1906)
This commit moves Rate Limiter configurations from web.xml to a new command based approach using clusterprops.json
2020-09-28 14:57:06 +05:30