Commit Graph

30032 Commits

Author SHA1 Message Date
Karl Wright d53de2a385 Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/lucene-solr 2018-04-26 02:59:23 -04:00
Karl Wright 15a6b586c7 LUCENE-8276: Restructure complex polygon class yet again to allow dual test points. 2018-04-26 02:59:09 -04:00
Mikhail Khludnev d4d21028e9 SOLR-12275: fix caching for \{!filters} and {{filters}} in \{!parent} and \{!child} 2018-04-26 09:40:35 +03:00
Joel Bernstein bea6f42105 SOLR-12273: Create Stream Evaluators for distance measures 2018-04-25 21:38:12 -04:00
Simon Willnauer aa341476fd LUCENE-8275: Push up #checkPendingDeletes to Directory
IndexWriter checks in it's ctor if the incoming directory is an
FSDirectory. If that is the case it ensures that the directory retries
deleting it's pending deletes and if there are pending deletes it will
fail creating the writer. Yet, this check didn't unwrap filter directories
or subclasses like FileSwitchDirectory such that in the case of MDW we
never checked for pending deletes.

There are also two places in FSDirectory that first removed the file
that was supposed to be created / renamed to from the pending deletes set
and then tried to clean up pending deletes which excluded the file. These
places now remove the file from the set after the pending deletes are checked.
2018-04-25 16:46:25 +02:00
Simon Willnauer fbeef2f726
LUCENE-8272: Share internal DV update code between binary and numeric
Today we duplicate a fair portion of the internal logic to
apply updates of binary and numeric doc values. This change refactors
this non-trivial code to share the same code path and only differ in
if we provide a binary or numeric instance. This also allows us to
iterator over the updates only once rather than twice once for numeric
and once for binary fields.

This change also subclass DocValuesIterator from DocValuesFieldUpdates.Iterator
which allows easier consumption down the road since it now shares most of it's
interface with DocIdSetIterator which is the main interface for this in Lucene.
2018-04-25 15:17:34 +02:00
Andrzej Bialecki 34170272e1 SOLR-12181: Reset simulator cache state when shard becomes inactive. 2018-04-25 12:24:52 +02:00
David Smiley 1370f6b520 SOLR-12261: Collection deletion's check for alias membership should
sync() aliases with ZK before throwing an error.
2018-04-24 23:25:11 -04:00
Joel Bernstein c5a1738151 SOLR-12266: Add discrete Fourier transform Stream Evaluators 2018-04-24 21:35:19 -04:00
Simon Willnauer ac027145fb [TEST] Set stop flag in the case of an exception 2018-04-24 17:57:33 +02:00
Simon Willnauer d32ce90924
LUCENE-8271: Remove IndexWriter from DWFlushQueue
This simplifies DocumentsWriterFlushQueue by moving all IW related
code out of it. The DWFQ now only contains logic for taking tickets
off the queue and applying it to a given consumer. The logic now
entirely resides in IW and has private visibility. Locking
also is more contained since IW knows exactly what is called and when.
2018-04-24 15:40:48 +02:00
Andrzej Bialecki d702dc6133 SOLR-11833: Clarify the meaning of "waitFor". Other minor edits. 2018-04-24 12:22:01 +02:00
Andrzej Bialecki 0d969ab85d SOLR-11833: Allow searchRate trigger to delete replicas. 2018-04-23 22:19:01 +02:00
David Smiley 1409ab8f84 SOLR-11914: Deprecated some SolrParams methods.
* toSolrParams(nl) moved to a NamedList method, which is more natural.
2018-04-23 13:26:49 -04:00
Alan Woodward e167e91247 LUCENE-8270: Remove MatchesIterator.term() 2018-04-23 16:51:17 +01:00
Simon Willnauer 6f0a884582
LUCENE-8269: Detach downstream classes from IndexWriter
IndexWriter today is shared with many classes like BufferedUpdateStream,
DocumentsWriter and DocumentsWriterPerThread. Some of them even acquire locks
on the writer instance or assert that the current thread doesn't hold a lock.
This makes it very difficult to have a manageable threading model.

This change separates out the IndexWriter from those classes and makes them all
independent of IW. IW now implements a new interface for DocumentsWriter to communicate
on failed or successful flushes and tragic events. This allows IW to make it's critical
methods private and execute all lock critical actions on it's private queue that ensures
that the IW lock is not held. Follow-up changes will try to detach more code like
publishing flushed segments to ensure we never call back into IW in an uncontrolled way.
2018-04-23 17:17:40 +02:00
Ignacio Vera e8c36f489e LUCENE-8266: Detect bogus tiles when creating a standard polygon and throw a TileException 2018-04-23 11:52:01 +02:00
Simon Willnauer 8975692953
LUCENE-8260: Extract ReaderPool from IndexWriter
ReaderPool plays a central role in the IndexWriter pooling NRT readers
and making sure we write buffered deletes and updates to disk. This class
used to be a non-static inner class accessing many aspects including locks
from the IndexWriter itself. This change moves the class outside of IW and
defines it's responsibility in a clear way with respect to locks etc. Now
IndexWriter doesn't need to share ReaderPool anymore and reacts on writes done
inside the pool by checkpointing internally. This also removes acquiring the IW
lock inside the reader pool which makes reasoning about concurrency difficult.

This change also add javadocs and dedicated tests for the ReaderPool class.
2018-04-23 10:29:10 +02:00
Simon Willnauer 4136fe0e65 SOLR-12250: Add missing assumeWorkingMockito call 2018-04-23 10:13:53 +02:00
Erick Erickson 84583d2563 SOLR-12253: Remove optimize button from the core admin page 2018-04-22 19:19:09 -07:00
Cao Manh Dat f8c210f148 SOLR-12250: NegativeArraySizeException on TransactionLog if previous document more than 1.9GB 2018-04-23 08:42:03 +07:00
Chris Hostetter 4e0e8e979b SOLR-9304: Fix Solr's HTTP handling to respect '-Dsolr.ssl.checkPeerName=false' aka SOLR_SSL_CHECK_PEER_NAME 2018-04-22 13:38:37 -07:00
David Smiley 8f296d0ccf SOLR-12256: AliasesManager.update() should call ZooKeeper.sync()
* SetAliasPropCmd now calls AliasesManager.update() first.
* SetAliasPropCmd now more efficiently updates multiple values.
* Tests: Commented out BadApple annotations on alias related stuff.
2018-04-20 16:22:16 -04:00
Steve Rowe 22c4b9c36f SOLR-4793: Document usage of ZooKeeper's jute.maxbuffer sysprop for increasing the file size limit above 1MB 2018-04-20 16:06:22 -04:00
Steve Rowe 76578cf17b SOLR-12163: Minor cleanups 2018-04-20 15:59:06 -04:00
Cassandra Targett b99e07c753 SOLR-11646: more v2 examples; redesign Implicit Handler page to add v2 api paths where they exist 2018-04-20 14:28:31 -05:00
Cassandra Targett d08e62d598 SOLR-11646: Add v2 APIs for Config API; change "ConfigSet" to "configset" in docs & specs to match community spelling 2018-04-20 14:28:31 -05:00
Joel Bernstein f0d1e11796 SOLR-12159: Add memset Stream Evaluator 2018-04-20 11:11:48 -04:00
Shalin Shekhar Mangar a4b335c942 SOLR-12252: Fix jira issue in CHANGES.txt 2018-04-20 20:10:40 +05:30
Shalin Shekhar Mangar 86b34fe0fd SOLR-11252: Fix minor compiler and intellij warnings in autoscaling policy framework 2018-04-20 20:08:37 +05:30
Dawid Weiss 4eead83a83 SOLR-11200: A new CMS config option 'ioThrottle' to manually enable/disable ConcurrentMergeSchedule.doAutoIOThrottle. (Amrit Sarkar, Nawab Zada Asad iqbal) 2018-04-20 11:34:04 +02:00
Dawid Weiss cf05e17adc Add suppresscodec to avoid OOM on nightly runs. 2018-04-20 11:32:38 +02:00
Karl Wright 48e071f350 Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/lucene-solr 2018-04-20 03:30:33 -04:00
Karl Wright 493bdec3a7 LUCENE-8258: A better fix to avoid out-of-world plane intersections for traversal planes. 2018-04-20 03:30:09 -04:00
Erick Erickson 5ef43e900f SOLR-12028: BadApple and AwaitsFix annotations usage 2018-04-19 13:14:12 -07:00
Steve Rowe 46037dc674 SOLR-6286: TestReplicationHandler.doTestReplicateAfterCoreReload(): stop checking for identical commits before/after master core reload; and make non-nightly mode test 10 docs instead of 0. 2018-04-19 14:49:10 -04:00
Cassandra Targett 42da6f795d SOLR-12163: Updated and expanded ZK ensemble docs 2018-04-19 09:50:09 -05:00
Cassandra Targett aab2c770c6 SOLR-11646: change tab-pane padding to align better under tabs 2018-04-19 08:53:24 -05:00
Karl Wright a033759f12 LUCENE-8258: Tighten rejection of travel planes that are too close to an edge. Note: this may cause failures in some cases; haven't seen it, but if that happens, the logic will need to change instead of just the cutoff. 2018-04-19 08:46:54 -04:00
noble 1c8ab330d6 SOLR-12142: EmbeddedSolrServer should use req.getContentWriter 2018-04-19 13:37:31 +10:00
Steve Rowe d09c76518a SOLR-12204: Upgrade commons-fileupload dependency to 1.3.3 to address CVE-2016-1000031 2018-04-18 19:28:55 -04:00
Steve Rowe 29cbd031c9 Add Log and Run URPs to example OpenNLP NER URP chain 2018-04-18 14:58:54 -04:00
Steve Rowe 79ed3bdf53 Explicitly call out the fact that schema api modification request bodies are in JSON format. 2018-04-18 14:58:54 -04:00
Simon Willnauer dd39128eae [TEST] Ensure IW doesn't autoflush since test relies on it producing a single segment 2018-04-18 17:46:45 +02:00
Mikhail Khludnev dbdedf3e3f SOLR-12155: making TestUnInvertedFieldException more thread-safe 2018-04-18 14:57:49 +03:00
Mikhail Khludnev 507c439558 SOLR-12187: fix precommit 2018-04-18 12:43:25 +03:00
Cao Manh Dat 1d2441441b SOLR-12187: ZkStateReader.Notification thread should only catch Exception 2018-04-18 08:40:06 +07:00
Dennis Gove 8c60be4489 SOLR-11924: Updates solr/CHANGES.txt for v7.4 2018-04-17 18:58:42 -04:00
Houston Putman ae0190b696 SOLR-11924: Added CloudCollectionsListener to watch the list of collections in a cloud. This closes #313 2018-04-17 18:57:04 -04:00
Simon Willnauer d904112428 LUCENE-8253: Don't create ReadersAndUpdates for foreign segments
IndexWriter#numDeletesToMerge was creating a ReadersAndUpdates
for all incoming SegmentCommitInfo even if that info wasn't private
to the IndexWriter. This is an illegal use of this API but since it's
transitively public via MergePolicy#findMerges we have to be conservative
with regestiering ReadersAndUpdates. In IndexWriter#numDeletesToMerge we
can only use existing ones. This means for soft-deletes we need to react
earlier in order to produce accurate numbers.

This change partially rolls back the changes in LUCENE-8253. Instead of
registering the readers once they are pulled via IndexWriter#numDeletesToMerge
we now check if segments are fully deleted on flush which is very unlikely and
can be done in a lazy fashion ie. it's only paying the extra cost of opening a
reader and checking all soft-deletes if soft deletes are used and present
in the flushed segment.

This has the side-effect that flushed segments that are 100% hard deleted are also
cleaned up right after they are flushed, previously these segments were sticking
around for a while until they got picked for a merge or received another delete.

This also closes LUCENE-8256
2018-04-17 16:26:52 +02:00