3793 Commits

Author SHA1 Message Date
Shay Banon
1f15c1e7de BytesReference usage to properly work when hasArray is not available
fix spelling in comment, + remove overcautious assert
2014-03-18 21:06:04 +01:00
Shay Banon
0f6c24d0c5 BytesReference usage to properly work when hasArray is not available
when a BytesReference doesn't have a backing array, properly handle the case in places where its applicable
closes #5455
2014-03-18 21:02:31 +01:00
Martijn van Groningen
7d3f49c43b [TEST] Added the option to specify on what ES version a node should run with. Useful for testing. 2014-03-18 21:36:46 +07:00
Alexander Reelsen
0ca7fddb66 Geo Point Fieldmapper: Allow distance for geohash precision
Even though mentioned differently in the docs, the geohash precision needed to
be an integer instead of a DistanceUnit.

Closes #5448
2014-03-18 14:09:57 +01:00
Shay Banon
0ef3b03be1 Move to use serial merge schedule by default
Today, we use ConcurrentMergeScheduler, and this can be painful since it is concurrent on a shard level, with a max of 3 threads doing concurrent merges. If there are several shards being indexed, then there will be a minor explosion of threads trying to do merges, all being throttled by our merge throttling.
Moving to serial merge scheduler will still maintain concurrency of merges across shards, as we have the merge thread pool that schedules those merges. It will just be a serial one on a specific shard.
Also, on serial merge scheduler, we now have a limit of how many merges it will do at one go, so it will let other shards get their fair chance of merging. We use the pending merges on IW to check if merges are needed or not for it.
Note, that if a merge is happening, it will not block due to a sync on the maybeMerge call at indexing (flush) time, since we wrap our merge scheduler with the EnabledMergeScheduler, where maybeMerge is not activated during indexing, only with explicit calls to IW#maybeMerge (see Merges).
closes #5447
2014-03-18 13:17:00 +01:00
Nik Everett
917c93d7ee Speed up phrase suggestion scoring
Two changes:
1.  In the StupidBackoffScorer only look for the trigram if there is a bigram.
2.  Cache the frequencies in WordScorer so we don't look them up again and
again and again.  This is implemented by wrapping the TermsEnum in a special
purpose wrapper that really only works in context of the WordScorer.

This provides a pretty substantial speedup when there are many candidates.

Closes #5395
2014-03-18 12:16:32 +01:00
Nik Everett
d88ac0a95a Make indexRandom handle many documents better
* Index one at a time only rarely if doing more then 300.
* When launching async actions, take some care to make sure you don't already
have more then 150 other async actions in flight.
* When indexing in bulk split into chunks of 1000 documents.
2014-03-18 12:16:32 +01:00
Martijn van Groningen
c501d9960a Made p/c override the clone() method. This is necessary since by default clone will make a shallow copy of the original object, while for p/c queries we need to make sure that the wrapped queries are also cloned. 2014-03-18 17:30:45 +07:00
Igor Motov
a1192044f2 Add ability to get snapshot status for running snapshots
Closes #4946
2014-03-17 20:13:49 -04:00
Bill Hwang
fe487373e6 Revert "Findbug warning supression"
This reverts commit 744eabad030f8f8c5705beeea7ab7eeb47f84969.
2014-03-17 13:55:39 -07:00
Bill Hwang
744eabad03 Findbug warning supression
Added logic to enable findbug warnings supression via annotations
2014-03-17 13:35:37 -07:00
David Pilato
8dfdc6f647 [TEST] pre check download service working
Seen during CI tests, it could appears that the download service is not available for any reason.

This fix in test will check before each test which requires an internet access (annotated with @Network) that the download service we are testing is still working.

It won't fail the test but will mark the test as `Ignored` in case of failure.
2014-03-17 21:31:17 +01:00
Simon Willnauer
b17e074f07 [TEST] Print tests.jvms and tests.client.ratio if set
We need to print options that can modify stream of events we need
to print it otherwise a seed might not reproduce the failure in
the tests.
2014-03-17 17:14:13 +01:00
uboness
35696aeb75 cleanup formatting in significant aggs package 2014-03-17 14:43:10 +01:00
Simon Willnauer
ff039019c5 [TEST] Use client node such that we always have to do a round-trip to do a fetch. 2014-03-17 13:55:37 +01:00
Boaz Leskes
2a31bd83ef [Tests] QuorumLocalGatewayTests - Set mini_master_nodes earlier to make sure it has effect. ClusterServiceTests - remove a thread.sleep in favor of awaitBusy 2014-03-17 11:01:43 +01:00
Boaz Leskes
fcfeab3a52 [Test] FullRollingRestartTests - correctly setting minimum_master_nodes
Also added a ElasticsearchIntegrationTest.setMinimumMasterNodes() helper function.
2014-03-17 10:37:56 +01:00
Boaz Leskes
6f0b15a27a [Test] IndexLifecycleActionTests - set minimum master node earlier to make sure it's in effect when needed. 2014-03-17 09:53:24 +01:00
Martijn van Groningen
9f52f755a3 [TEST] In PercolatorTests#testPercolateSorting_unsupportedField we need to be sure that the .percolator type exists 2014-03-17 10:50:57 +07:00
Martijn van Groningen
b2a3904819 [TEST] Make sure that the facet fields exist. 2014-03-17 10:21:44 +07:00
Simon Willnauer
ba8e34755f MulticastChannel returned wrong channel in shared mode
If the shared channel is used a wrong refrence was returned and
close calls couldn't find the listener since it go never registered
in that instance.
2014-03-16 18:19:21 +01:00
Simon Willnauer
43617cf5dc Count latch down if sendsPing throws exception
if the async sendPingsHandler throws an unexpected exception the
corresponding latch is never counted down. This might only happen
during node shutdown but can still cause starvation or test failures.
2014-03-16 16:08:36 +01:00
David Pilato
f54e9246c1 Add _cat/plugins endpoint
If we want to have a full picture of versions running in a cluster, we need to add a `_cat/plugins` endpoint.

Response could look like:

```sh
% curl es2:9200/_cat/plugins?v
node component                        version   type url                                   desc
es1  mapper-attachments               1.7.0       j                                        Adds the attachment type allowing to parse difference attachment formats
es1  lang-javascript                  1.4.0       j                                        JavaScript plugin allowing to add javascript scripting support
es1  analysis-smartcn                 1.9.0       j                                        Smart Chinese analysis support
es1  marvel                           1.1.0      j/s http://localhost:9200/_plugins/marvel Elasticsearch Management & Monitoring
es1  kopf                             0.5.3       s  http://localhost:9200/_plugins/kopf   kopf - simple web administration tool for ElasticSearch
es2  mapper-attachments               2.0.0.RC1   j                                        Adds the attachment type allowing to parse difference attachment formats
es2  lang-javascript                  2.0.0.RC1   j                                        JavaScript plugin allowing to add javascript scripting support
es2  analysis-smartcn                 2.0.0.RC1   j                                        Smart Chinese analysis support
```

Closes #4824.
2014-03-16 12:16:09 +01:00
Simon Willnauer
965b85a663 [TEST] add mapping to MoreLikeThisActionTests to make sure doc mapper exists on all shards / nodes 2014-03-16 07:29:24 +01:00
Boaz Leskes
7f49d027b9 [Tests] RecoveryWhileUnderLoadTests - made sure background indexing threads are closed on errors.
Fixed minor logging discrepancies introduced with randomized shard count.
Added logging to recoverWhileUnderLoadWithNodeShutdown
Added logging ElasticsearchIntegrationTest.allowNodes to indicate what nodes were excluded.
recoverWhileRelocating's shard setting were potentially ignored (depending on key order in hashmaps)
2014-03-15 23:06:36 +01:00
EvanYellow
43b5d91de2 BulkProcessor process every n+1 docs instead of n
When you set a BulkProcessor with a bulk actions size of 100, it executes the bulk after 101 documents.

```java
BulkProcessor.builder(client(), listener).setBulkActions(100).setConcurrentRequests(1).setName("foo").build();
```

Same for size. If you set the bulk size to 1024 bytes, it will actually execute the bulk after 1025 bytes.

This patch fix it.

Closes #4265.
2014-03-15 12:32:09 +01:00
Simon Willnauer
8bc73531c2 [TEST] Fix CircuitBreakerServiceTests from failing due to rounding errors 2014-03-14 23:19:23 +01:00
Bill Hwang
fd89c66668 Remove PMD clone warning
Removed PMD clone warning on class ElasticsearchMergePolicy
2014-03-14 13:40:57 -07:00
Simon Willnauer
b622fd18a2 Improve exception handling in HttpDownloadHelper 2014-03-14 21:11:40 +01:00
Simon Willnauer
d670575d74 [TEST] Reduce iterations in RandomAllocationDeciderTests 2014-03-14 20:39:07 +01:00
Simon Willnauer
b708ab3944 Add slop to prefix phrase query after parsing query string
This fixes a regression introduced by #5005 where the query slop
was simply ignored when a `match_phrase_prefix` type was set.

Closes #5437
2014-03-14 20:26:03 +01:00
Simon Willnauer
aa654a26c9 Improve resource handling in Parent/ChildQuery 2014-03-14 20:18:09 +01:00
Simon Willnauer
821173b5cf Enforce query instance checking before it wrapper as a filter
We have the default QueryWrapperFilter as well as our custom one while
our wrapper is explicitly marked as no_cache such that it will never
be included in a cache. This was not consistenly used and caused several
problems during tests where p/c related queries were used as filters
and ended up in the cache. This commit adds the QueryWrapperFilter
ctor to the forbidden APIs to enforce the query instance checks.
2014-03-14 20:18:01 +01:00
Adrien Grand
65d3b61b97 Add an option to force _optimize operations.
When forced, the index will be merged even if it contains a single segment with
no deletions.

Close #5243
2014-03-14 18:21:56 +01:00
markharwood
b6dc7cecd5 Tidy significant terms warnings from Jenkins 2014-03-14 17:03:14 +00:00
Martijn van Groningen
d73172c844 Also wrap p/c queries in CustomQueryWrappingFilter in the fquery qparser, because they otherwise p/c queries may work incorrectly. 2014-03-14 22:54:58 +07:00
Holger Hoffstätte
7b26e1fbf8 equals()/hashCode() & tests for ByteArrays to avoid materializing a
full byte[].

Fixes #5435
2014-03-14 16:32:03 +01:00
David Pilato
84b5b45644 Support externalValue() in mappers
Some mappers do not support externalValue() to be set. So plugin developers can't use it while building their own mappers.

Support added in this PR for:

* `BinaryFieldMapper`
* `BooleanFieldMapper`
* `GeoPointFieldMapper`
* `GeoShapeFieldMapper`

Closes #4986.
Relative to #4154.
2014-03-14 16:26:39 +01:00
Martijn van Groningen
6f80b7737a [TEST] Made sure that the parent exists (foo is the parent type and not parent) 2014-03-14 22:19:26 +07:00
Martijn van Groningen
7869562930 [TEST] Make sure that "assertNoFailures(searchResponse);" is used instead of "assertThat(searchResponse.getFailedShards(), equalTo(0));" to see what is failing.
Removed redundant "assertThat(searchResponse.getFailedShards(), equalTo(0));" checks
2014-03-14 22:13:18 +07:00
Shay Banon
3755f8e4df Allow to share multicast socket within jvm
Due to bugs in jvm (specifically OSX), running zen discovery tests causes for "socket close" failure on receive on multicast socket, and under some jvm versions, even crashes. This happens because of the creation of multiple multicast sockets within the same VM. In practice, in our tests, we use the same settings, so we can share the same multicast socket across multiple channels.
This change creates an abstraction called MulticastChannel, that can be shared, with ref counting. Today, the shared option is only enabled under OSX.
closes #5410
2014-03-14 14:58:05 +01:00
Adrien Grand
b7de1becf4 Allow scripts to return more than 4 values in aggregations.
A missing call to ArrayUtil.grow prevented the array that stores the values
from growing in case the number of values returned by the script was higher
than the original size of the array.

Close #5414
2014-03-14 13:53:53 +01:00
David Pilato
2aaf81f8ef [TEST] pre check download service working
Seen during CI tests, it could appears that the download service is not available for any reason.

This fix in test will check before each test which requires an internet access (annotated with @Network) that the download service we are testing is still working.

It won't fail the test but will mark the test as `Ignored` in case of failure.
2014-03-14 13:22:38 +01:00
javanna
d80dd00424 upgrade randomized-testing to 2.1.1
Note that the standard `atLeast` implementation has now Integer.MAX_VALUE as upper bound, thus it behaves differently from what we expect in our tests, as we never expect the upper bound to be that high.
Added our own `atLeast` to `AbstractRandomizedTest` so that it has the expected behaviour with a reasonable upper bound.
See https://github.com/carrotsearch/randomizedtesting/issues/131
2014-03-14 11:47:00 +01:00
markharwood
767bef0596 Significant_terms aggregation identifies terms that are significant rather than merely popular in a set.
Significance is related to the changes in document frequency observed between everyday use in the corpus and
frequency observed in the result set. The asciidocs include extensive details on the applications of this feature.

Closes #5146
2014-03-14 10:34:24 +00:00
Martijn van Groningen
6f8f773f8c Disabled query size estimation in percolator, because this is too expensive cpu wise.
Lucene's RamUsageEstimator.sizeOf(Object) is to expensive.
Query size estimation will be enabled when a cheaper way of query size estimation can be found.

Closes #5372
Relates to #5339
2014-03-14 15:29:24 +07:00
Adrien Grand
a895349be5 [Test] Strengthen SimpleIndicesWarmerTests.testEagerLoading. 2014-03-14 09:26:56 +01:00
Martijn van Groningen
73383e2014 The p/c queries must always be wrapped in a CustomQueryWrappingFilter in fquery parser.
Also made assertions more descriptive when failing.
2014-03-14 14:12:05 +07:00
Martijn van Groningen
bdfb59aa00 [TESTS] Specify unicast hosts and transport port range specifically 2014-03-14 10:51:34 +07:00
Igor Motov
e029258fcf Add retry mechanism to get snapshot method
During snapshot finalization the snapshot file is getting overwritten. If we try to read the snapshot file at this moment we can get back an empty or incomplete snapshot. This change adds a retry mechanism in case of such failure.
2014-03-13 17:54:49 -04:00