8915 Commits

Author SHA1 Message Date
kel
1d4f70210f Calculate and cache result when advanceExact is called (#26920)
Cache final result instead of result of advanceExact.
Fix SortedNumericDoubleValues does not test MEDIAN mode
Replace deprecated random string generation method
2017-10-09 14:02:38 +02:00
Simon Willnauer
cdd7c1e6c2 Return List instead of an array from settings (#26903)
Today we return a `String[]` that requires copying values for every
access. Yet, we already store the setting as a list so we can also directly
return the unmodifiable list directly. This makes list / array access in settings
a much cheaper operation especially if lists are large.
2017-10-09 09:52:08 +02:00
Nhat
bf4c3642b2 remove _primary and _replica shard preferences (#26791)
The shard preference _primary, _replica and its variants were useful
for the asynchronous replication. However, with the current impl, they
are no longer useful and should be removed.

Closes #26335
2017-10-08 11:03:06 -04:00
kel
100e3c9a8a Remove UnsortedNumericDoubleValues (#26817)
Closes #24086
2017-10-06 16:31:50 +02:00
Thomas Kappler
16431a6601 Fix IndexOutOfBoundsException in histograms for NaN doubles (#26787) (#26856) 2017-10-06 16:27:01 +02:00
Jim Ferenczi
e8f72353d8 Fix search_after with geo distance sorting (#26891)
Support for search_after and geo distance sorting is broken when the optimized LatLonDocValuesField.distanceSort is used.
This commit fixes the parsing of the search_after value for this case.
2017-10-06 11:34:33 +02:00
Jason Tedor
470e5e7cfc Add additional low-level logging handler ()
* Add additional low-level logging handler

We have the trace handler which is useful for recording sent messages
but there are times where it would be useful to have more low-level
logging about the events occurring on a channel. This commit adds a
logging handler that can be enabled by setting a certain log level
(org.elasticsearch.transport.netty4.ESLoggingHandler) to trace that
provides trace logging on low-level channel events and includes some
information about the request/response read/write events on the channel
as well.

* Remove imports

* License header

* Remove redundant

* Add test

* More assertions
2017-10-05 12:10:58 -04:00
Simon Willnauer
8583727590 [TEST] add test to ensure legacy list syntax in yml works fine 2017-10-05 14:41:51 +02:00
Simon Willnauer
41925e1171 Bump BWC version for settings serialization to 6.1.0 2017-10-05 14:07:05 +02:00
Md. Abdulla-Al-Sun
a40c474e10
Added Bengali Analyzer to Elasticsearch with respect to the lucene update(PR#238) 2017-10-05 13:25:05 +02:00
kel
a978ddf37b Fix toString() in SnapshotStatus (#26852)
Closes #26851
2017-10-05 12:57:46 +02:00
Jim Ferenczi
24359c1a75 #26870 change bwc version for fuzzy_transpositions to 6.1 after backport 2017-10-05 11:28:59 +02:00
Martijn van Groningen
b863eaff4d
update lucene version after upgrading Lucene deps in 6.x branch too 2017-10-05 09:49:30 +02:00
Simon Willnauer
00dfdf50cf Represent lists as actual lists inside Settings (#26878)
Today we represent each value of a list setting with it's own dedicated key
that ends with the index of the value in the list. Aside of the obvious
weirdness this has several issues especially if lists are massive since it
causes massive runtime penalties when validating settings. Like a list of 100k
words will literally cause a create index call to timeout and in-turn massive
slowdown on all subsequent validations runs.

With this change we use a simple string list to represent the list. This change
also forbids to add a settings that ends with a .0 which was internally used to
detect a list setting.  Once this has been rolled out for an entire major
version all the internal .0 handling can be removed since all settings will be
converted.

Relates to #26723
2017-10-05 09:27:08 +02:00
Martijn van Groningen
dca787ed8a
upgrade to Lucene 7.1.0 snapshot version 2017-10-05 09:06:56 +02:00
Alexander Kazakov
9c95e91471 Expose fuzzy_transpositions parameter in fuzzy queries (#26870)
Add fuzzy_transpositions parameter to multi_match and query_string queries.
Add fuzzy_transpositions, fuzzy_prefix_length and fuzzy_max_expansions
parameters to simple_query_string query.
2017-10-05 09:01:09 +02:00
Jason Tedor
c5a0e77fc6 Remove unused local transport constant
Local transport was removed previously but a stale constant was left
behind. This commit removes this unused constant.
2017-10-04 22:26:29 -04:00
Luca Cavanna
9b9cb81c41 Fix serialization errors when cross cluster search goes to a single shard (#26881)
The single shard optimization that we have in our search api changes the type of response returned by the query transport action name based on the shard search request. if the request goes to one shard, we will do query and fetch at the same time, hence the response will be different. The proxying layer used in cross cluster search was not aware of this distinction, which causes serialization issues every time a cross cluster search request goes to a single shard and goes through a gateway node which has to forward the shard request to a data node. The coordinating node would then expect a QueryFetchSearchResult while the gateway would return a QuerySearchResult.

Closes #26833
2017-10-04 22:39:14 +02:00
Tim Brooks
ca35fcabd0 Do not set SO_LINGER to 0 when not shutting down (#26871)
This is a follow up to #26764. That commit set SO_LINGER to 0 in order
to fix a scenario where we were running out of resources during CI. We
are primarily interested in setting this to 0 when stopping the
tranport. Allowing TIMED_WAIT is standard for other failure scenarios
during normal operation.

Unfortunately this commit set SO_LINGER to 0 every time we close
NodeChannels. NodeChannels can be closed in case of an exception or
other failures (such as parsing a response). We want to only disable
linger when actually shutting down.
2017-10-04 10:27:26 -06:00
Simon Willnauer
d1533e2397 Remove Settings#getAsMap() (#26845)
Since `#getAsMap` exposes internal representation we are trying to remove it
step by step. This commit is cleaning up some xcontent writing as well as
usage in tests
2017-10-04 01:21:38 -06:00
David Roberts
2bdeee8840 Fix test bug from #26166 2017-10-03 15:55:37 +01:00
David Roberts
ea7be2d527 Adjust transport compatibility logic following backport of #26166 2017-10-03 14:16:31 +01:00
David Roberts
a292740b9e Add cgroup memory usage/limit to OS stats on Linux (#26166)
This change adds cgroup memory usage/limit to the OS stats section of
the node stats on Linux.  This information is useful because in Docker
containers the standard node stats report the host memory limit, not
taking account of extra restrictions that may have been applied to the
container.

The original idea was to store these values as Long, truncating any values
outside the range of long.  However, this meant that in the relatively common
case of no limit being applied, users would not see the same value in the OS
stats as they see by querying Linux directly.  So instead the values are stored
as String.  This change places a burden on consumers of the strings to
convert the strings to numbers and decide what to do about extremely large
values, but there will be very few consumers and they would need to have a
policy for dealing with "no limit" in any case.
2017-10-03 12:08:36 +01:00
Simon Willnauer
7b8d036ab5 Replace group map settings with affix setting (#26819)
We use group settings historically instead of using a prefix setting which is more restrictive and type safe. The majority of the usecases needs to access a key, value map based on the _leave node_ of the setting ie. the setting `index.tag.*` might be used to tag an index with `index.tag.test=42` and `index.tag.staging=12` which then would be turned into a `{"test": 42, "staging": 12}` map. The group settings would always use `Settings#getAsMap` which is loosing type information and uses internal representation of the settings. Using prefix settings allows now to access such a method type-safe and natively.
2017-09-30 14:27:21 +02:00
David Turner
8fe9a20982 Forbid negative values for index.unassigned.node_left.delayed_timeout (#26828)
Change delayed_timeout to be a positiveTimeSetting, and add note that this is a breaking change
2017-09-29 14:44:43 +01:00
David Turner
1715fd7036 Nitpicking typos in comments (#26831) 2017-09-29 11:37:05 +01:00
Boaz Leskes
eabd0d687e MetaData Builder doesn't properly prevent an alias with the same name as an index (#26804)
Elasticsearch doesn't allow having an index alias named with the same name as an existing index. We currently have logic that tries to prevents that in the `MetaData.Builder#build()` method. Sadly that logic is flawed. Depending on iteration order, we may allow the above to happen (if we encounter the alias before the index).

This commit fixes the above and improves the error message while at it.

Note that we have a lot of protections in place before we end up relying on the metadata builder (validating this when we process APIs). I takes quite an abuse of the cluster to get that far.
2017-09-29 11:06:58 +02:00
Tal Levy
ce8533e251 Add version 6.0.0-rc2 2017-09-28 11:07:35 -07:00
Jim Ferenczi
aade2f6d63 Change ParentFieldSubFetchPhase to create doc values iterator once per segment (#26815) 2017-09-28 16:24:05 +02:00
Jim Ferenczi
0acf74420c Change VersionFetchSubPhase to create doc values iterator once per segment (#26809) 2017-09-28 13:57:10 +02:00
Jim Ferenczi
f9f8856d89 Change ScriptFieldsFetchSubPhase to create search scripts once per segment (#26808)
Closes #26775
2017-09-28 12:23:53 +02:00
James Baiera
81d181394f Adding unreleased 5.6.3 version number to Version.java (#26794) 2017-09-26 17:49:22 -04:00
Armin Braun
af06231d4c #26701 Close TcpTransport on RST in some Spots to Prevent Leaking TIME_WAIT Sockets (#26764)
#26701 Added option to RST instead of FIN to TcpTransport#closeChannels
2017-09-26 19:58:11 +00:00
olcbean
6952f7b560 Validate top-level keys for create index request (#23755) (#23869)
This commit ensures create index requests do not ignore unknown keys passed to the request.

closes #23755
2017-09-26 09:49:20 -07:00
Alexander Kazakov
52887b1437 Throw exception if setting during dynamic settings update isn't recognized (#26569)
Closes #25607
2017-09-26 13:07:01 +02:00
Simon Willnauer
a506ba8602 Remove Settings,put(Map<String,String>) (#26785)
`Map<String,String>` is basically erasing the type while other methods on
the `Settings.Builder` are type safe and have corresponding `get` methods.
2017-09-26 12:15:20 +02:00
Jim Ferenczi
74473c1c3d Early termination with index sorting should not set terminated_early in the response (#26597)
Early termination with index sorting always return the best top N in the response but set the flag `terminated_early`
in the response. This can be confusing because we use the same flag for `terminate_after` which on the contrary returns partial results.
This change removes the flag when results are not partial (early termination due to index sorting) and keeps it only when `terminate_after` is used.

Closes #26408
2017-09-26 11:37:11 +02:00
Christoph Büscher
6189c54c84 Reject the index_options parameter for numeric fields (#26668)
Numeric fields no longer support the index_options parameter. This changes the parameter
to be rejected in numeric field types after it was deprecated in 6.0.

Closes #21475
2017-09-25 23:43:14 +02:00
Jason Tedor
530d80fdc1 Fix global checkpoint sync log message
The log message here is incorrect, a failure here is occuring on the
post-operation global checkpoint sync, not the background sync. This
commit fixes the log message.
2017-09-25 16:38:58 -04:00
Nik Everett
eb754a71be Fix update_by_query's default size parameter (#26784)
We were accidentally defaulting it to the scroll size.
Untwists some of the tricks that we play with parsing
so that the size is no longer scrambled.

Closes #26761
2017-09-25 16:25:27 -04:00
Jason Tedor
57aee93693 Add shard ID to failed global checkpoint messages
When a global checkpoint sync fails we should log the shard ID for the
shard the sync failed for. This commit causes this to be the case.
2017-09-25 14:32:55 -04:00
Boaz Leskes
ec0c621072 IndexShard.routingEntry should only be updated once all internal state is ready (#26776)
The routing entry is used by external components to check whether the shard is ready to perform as primary. Most notably, the peer recovery source handler delays recoveries until the shard routing entry says the shard is ready. 

When a shard is promoted to primary, we currently update the shard's routing entry before we finish all the work relating to the promotion. This can cause recoveries to fail later on because the `GlobalCheckpointTracker` isn't set (yet) to primary mode. 

This commit fixes this issue by updating the routing entry last.
2017-09-25 19:57:16 +02:00
Adrien Grand
579cca9adb Allow copying from a field to another field that belongs to the same nested object. (#26774)
The previous test was too strict and enforced that the target object was a
parent. It has been relaxed so that fields that belong to the same nested
object can copy to each other.

The commit also improves error handling in case of multi-fields. The current
validation works but may throw confusing error messages since it assumes that
only object fields may introduce dots in fields names while multi fields may
too.

Closes #26763
2017-09-25 18:33:26 +02:00
Christoph Büscher
3827918417 Add configurable maxTokenLength parameter to whitespace tokenizer (#26749)
Other tokenizers like the standard tokenizer allow overriding the default
maximum token length of 255 using the `"max_token_length` parameter. This change
enables using this parameter also with the whitespace tokenizer. The range that
is currently allowed is from 0 to StandardTokenizer.MAX_TOKEN_LENGTH_LIMIT,
which is 1024 * 1024 = 1048576 characters.

Closes #26643
2017-09-25 17:21:19 +02:00
Adrien Grand
324ee8cc96 Use the 6.6.1 Lucene version constant. (#26768)
It is only possible since we moved to Lucene 7.0.0 GA. Previous snapshots did
not know about it.
2017-09-25 17:06:16 +02:00
kel
8f5f63452a Fix typo in date format (#26503) 2017-09-25 17:01:39 +02:00
Simon Willnauer
aab4655e63 Unify Settings xcontent reading and writing (#26739)
This change adds a fromXContent method to Settings that allows to read
the xcontent that is produced by toXContent. It also replaces the entire settings
loader infrastructure and removes the structured map representation. Future PRs will
also tackle the `getAsMap` that exposes the internal represenation of settings for
better encapsulation.
2017-09-25 13:23:01 +02:00
Jason Tedor
d87ab67e44 Fix global checkpoint sync test
This commit fixes issues with the global checkpoint sync test. The test
was off in initializing the maximum sequence number on the primary
shard, and off setting the local knowledge on the primary of the global
checkpoint on the replica.
2017-09-22 17:12:32 -04:00
Jason Tedor
2e63a13c0a Upgrade to Log4j 2.9.1
This commit upgrades the Log4j dependency, picking up a fix for an issue
with handling stack traces on JDK 9.

Relates #26750
2017-09-22 11:57:06 -04:00
Yannick Welsch
df5c450e89 Add v6.1 BWC layer for adding wait_for_active_shards to index open command
This commit disables BWC tests while adding a v6.1 BWC layer for the PR #26682
2017-09-22 16:30:07 +02:00