Skip to content

Commit 010d1a8

Browse files
committed
Merge branch 'master' into hdfs2-only
2 parents 91dcc9e + 51f6519 commit 010d1a8

File tree

170 files changed

+1084
-1243
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

170 files changed

+1084
-1243
lines changed

buildSrc/version.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
elasticsearch = 3.0.0-SNAPSHOT
2-
lucene = 5.5.0-snapshot-1719088
2+
lucene = 5.5.0-snapshot-1721183
33

44
# optional dependencies
55
spatial4j = 0.5

core/src/main/java/org/elasticsearch/Version.java

+4
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,8 @@ public class Version {
279279
public static final Version V_2_1_2 = new Version(V_2_1_2_ID, true, org.apache.lucene.util.Version.LUCENE_5_3_1);
280280
public static final int V_2_2_0_ID = 2020099;
281281
public static final Version V_2_2_0 = new Version(V_2_2_0_ID, true, org.apache.lucene.util.Version.LUCENE_5_4_0);
282+
public static final int V_2_3_0_ID = 2030099;
283+
public static final Version V_2_3_0 = new Version(V_2_3_0_ID, true, org.apache.lucene.util.Version.LUCENE_5_4_0);
282284
public static final int V_3_0_0_ID = 3000099;
283285
public static final Version V_3_0_0 = new Version(V_3_0_0_ID, true, org.apache.lucene.util.Version.LUCENE_5_5_0);
284286
public static final Version CURRENT = V_3_0_0;
@@ -295,6 +297,8 @@ public static Version fromId(int id) {
295297
switch (id) {
296298
case V_3_0_0_ID:
297299
return V_3_0_0;
300+
case V_2_3_0_ID:
301+
return V_2_3_0;
298302
case V_2_2_0_ID:
299303
return V_2_2_0;
300304
case V_2_1_2_ID:

core/src/main/java/org/elasticsearch/action/DocumentRequest.java

+8
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,12 @@ public interface DocumentRequest<T> extends IndicesRequest {
6262
* @return the Routing
6363
*/
6464
String routing();
65+
66+
67+
/**
68+
* Get the parent for this request
69+
* @return the Parent
70+
*/
71+
String parent();
72+
6573
}

core/src/main/java/org/elasticsearch/action/bulk/TransportBulkAction.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ private void executeBulk(final BulkRequest bulkRequest, final long startTime, fi
239239
}
240240
} else {
241241
concreteIndices.resolveIfAbsent(req);
242-
req.routing(clusterState.metaData().resolveIndexRouting(req.routing(), req.index()));
242+
req.routing(clusterState.metaData().resolveIndexRouting(req.parent(), req.routing(), req.index()));
243243
}
244244
}
245245
}

core/src/main/java/org/elasticsearch/action/delete/DeleteRequest.java

+15-5
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ public class DeleteRequest extends ReplicationRequest<DeleteRequest> implements
5050
private String id;
5151
@Nullable
5252
private String routing;
53+
@Nullable
54+
private String parent;
5355
private boolean refresh;
5456
private long version = Versions.MATCH_ANY;
5557
private VersionType versionType = VersionType.INTERNAL;
@@ -94,6 +96,7 @@ public DeleteRequest(DeleteRequest request, ActionRequest originalRequest) {
9496
this.type = request.type();
9597
this.id = request.id();
9698
this.routing = request.routing();
99+
this.parent = request.parent();
97100
this.refresh = request.refresh();
98101
this.version = request.version();
99102
this.versionType = request.versionType();
@@ -155,13 +158,18 @@ public DeleteRequest id(String id) {
155158
}
156159

157160
/**
158-
* Sets the parent id of this document. Will simply set the routing to this value, as it is only
159-
* used for routing with delete requests.
161+
* @return The parent for this request.
162+
*/
163+
@Override
164+
public String parent() {
165+
return parent;
166+
}
167+
168+
/**
169+
* Sets the parent id of this document.
160170
*/
161171
public DeleteRequest parent(String parent) {
162-
if (routing == null) {
163-
routing = parent;
164-
}
172+
this.parent = parent;
165173
return this;
166174
}
167175

@@ -230,6 +238,7 @@ public void readFrom(StreamInput in) throws IOException {
230238
type = in.readString();
231239
id = in.readString();
232240
routing = in.readOptionalString();
241+
parent = in.readOptionalString();
233242
refresh = in.readBoolean();
234243
version = in.readLong();
235244
versionType = VersionType.fromValue(in.readByte());
@@ -241,6 +250,7 @@ public void writeTo(StreamOutput out) throws IOException {
241250
out.writeString(type);
242251
out.writeString(id);
243252
out.writeOptionalString(routing());
253+
out.writeOptionalString(parent());
244254
out.writeBoolean(refresh);
245255
out.writeLong(version);
246256
out.writeByte(versionType.getValue());

core/src/main/java/org/elasticsearch/action/delete/TransportDeleteAction.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public void onFailure(Throwable e) {
9595

9696
@Override
9797
protected void resolveRequest(final MetaData metaData, String concreteIndex, DeleteRequest request) {
98-
request.routing(metaData.resolveIndexRouting(request.routing(), request.index()));
98+
request.routing(metaData.resolveIndexRouting(request.parent(), request.routing(), request.index()));
9999
if (metaData.hasIndex(concreteIndex)) {
100100
// check if routing is required, if so, do a broadcast delete
101101
MappingMetaData mappingMd = metaData.index(concreteIndex).mappingOrDefault(request.type());

core/src/main/java/org/elasticsearch/action/get/GetRequest.java

+13-5
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public class GetRequest extends SingleShardRequest<GetRequest> implements Realti
4949
private String type;
5050
private String id;
5151
private String routing;
52+
private String parent;
5253
private String preference;
5354

5455
private String[] fields;
@@ -77,6 +78,7 @@ public GetRequest(GetRequest getRequest, ActionRequest originalRequest) {
7778
this.type = getRequest.type;
7879
this.id = getRequest.id;
7980
this.routing = getRequest.routing;
81+
this.parent = getRequest.parent;
8082
this.preference = getRequest.preference;
8183
this.fields = getRequest.fields;
8284
this.fetchSourceContext = getRequest.fetchSourceContext;
@@ -153,13 +155,17 @@ public GetRequest id(String id) {
153155
}
154156

155157
/**
156-
* Sets the parent id of this document. Will simply set the routing to this value, as it is only
157-
* used for routing with delete requests.
158+
* @return The parent for this request.
159+
*/
160+
public String parent() {
161+
return parent;
162+
}
163+
164+
/**
165+
* Sets the parent id of this document.
158166
*/
159167
public GetRequest parent(String parent) {
160-
if (routing == null) {
161-
routing = parent;
162-
}
168+
this.parent = parent;
163169
return this;
164170
}
165171

@@ -291,6 +297,7 @@ public void readFrom(StreamInput in) throws IOException {
291297
type = in.readString();
292298
id = in.readString();
293299
routing = in.readOptionalString();
300+
parent = in.readOptionalString();
294301
preference = in.readOptionalString();
295302
refresh = in.readBoolean();
296303
int size = in.readInt();
@@ -320,6 +327,7 @@ public void writeTo(StreamOutput out) throws IOException {
320327
out.writeString(type);
321328
out.writeString(id);
322329
out.writeOptionalString(routing);
330+
out.writeOptionalString(parent);
323331
out.writeOptionalString(preference);
324332

325333
out.writeBoolean(refresh);

core/src/main/java/org/elasticsearch/action/get/MultiGetRequest.java

+13-3
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public static class Item implements Streamable, IndicesRequest {
5757
private String type;
5858
private String id;
5959
private String routing;
60+
private String parent;
6061
private String[] fields;
6162
private long version = Versions.MATCH_ANY;
6263
private VersionType versionType = VersionType.INTERNAL;
@@ -124,12 +125,17 @@ public String routing() {
124125
}
125126

126127
public Item parent(String parent) {
127-
if (routing == null) {
128-
this.routing = parent;
129-
}
128+
this.parent = parent;
130129
return this;
131130
}
132131

132+
/**
133+
* @return The parent for this request.
134+
*/
135+
public String parent() {
136+
return parent;
137+
}
138+
133139
public Item fields(String... fields) {
134140
this.fields = fields;
135141
return this;
@@ -181,6 +187,7 @@ public void readFrom(StreamInput in) throws IOException {
181187
type = in.readOptionalString();
182188
id = in.readString();
183189
routing = in.readOptionalString();
190+
parent = in.readOptionalString();
184191
int size = in.readVInt();
185192
if (size > 0) {
186193
fields = new String[size];
@@ -200,6 +207,7 @@ public void writeTo(StreamOutput out) throws IOException {
200207
out.writeOptionalString(type);
201208
out.writeString(id);
202209
out.writeOptionalString(routing);
210+
out.writeOptionalString(parent);
203211
if (fields == null) {
204212
out.writeVInt(0);
205213
} else {
@@ -229,6 +237,7 @@ public boolean equals(Object o) {
229237
if (!id.equals(item.id)) return false;
230238
if (!index.equals(item.index)) return false;
231239
if (routing != null ? !routing.equals(item.routing) : item.routing != null) return false;
240+
if (parent != null ? !parent.equals(item.parent) : item.parent != null) return false;
232241
if (type != null ? !type.equals(item.type) : item.type != null) return false;
233242
if (versionType != item.versionType) return false;
234243

@@ -241,6 +250,7 @@ public int hashCode() {
241250
result = 31 * result + (type != null ? type.hashCode() : 0);
242251
result = 31 * result + id.hashCode();
243252
result = 31 * result + (routing != null ? routing.hashCode() : 0);
253+
result = 31 * result + (parent != null ? parent.hashCode() : 0);
244254
result = 31 * result + (fields != null ? Arrays.hashCode(fields) : 0);
245255
result = 31 * result + Long.hashCode(version);
246256
result = 31 * result + versionType.hashCode();

core/src/main/java/org/elasticsearch/action/get/TransportGetAction.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ protected void resolveRequest(ClusterState state, InternalRequest request) {
8282
request.request().preference(Preference.PRIMARY.type());
8383
}
8484
// update the routing (request#index here is possibly an alias)
85-
request.request().routing(state.metaData().resolveIndexRouting(request.request().routing(), request.request().index()));
85+
request.request().routing(state.metaData().resolveIndexRouting(request.request().parent(), request.request().routing(), request.request().index()));
8686
// Fail fast on the node that received the request.
8787
if (request.request().routing() == null && state.getMetaData().routingRequired(request.concreteIndex(), request.request().type())) {
8888
throw new RoutingMissingException(request.concreteIndex(), request.request().type(), request.request().id());

core/src/main/java/org/elasticsearch/action/get/TransportMultiGetAction.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ protected void doExecute(final MultiGetRequest request, final ActionListener<Mul
6868
responses.set(i, new MultiGetItemResponse(null, new MultiGetResponse.Failure(item.index(), item.type(), item.id(), new IndexNotFoundException(item.index()))));
6969
continue;
7070
}
71-
item.routing(clusterState.metaData().resolveIndexRouting(item.routing(), item.index()));
71+
item.routing(clusterState.metaData().resolveIndexRouting(item.parent(), item.routing(), item.index()));
7272
String concreteSingleIndex = indexNameExpressionResolver.concreteSingleIndex(clusterState, item);
7373
if (item.routing() == null && clusterState.getMetaData().routingRequired(concreteSingleIndex, item.type())) {
7474
responses.set(i, new MultiGetItemResponse(null, new MultiGetResponse.Failure(concreteSingleIndex, item.type(), item.id(),

core/src/main/java/org/elasticsearch/action/index/IndexRequest.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -312,14 +312,10 @@ public String routing() {
312312
}
313313

314314
/**
315-
* Sets the parent id of this document. If routing is not set, automatically set it as the
316-
* routing as well.
315+
* Sets the parent id of this document.
317316
*/
318317
public IndexRequest parent(String parent) {
319318
this.parent = parent;
320-
if (routing == null) {
321-
routing = parent;
322-
}
323319
return this;
324320
}
325321

@@ -601,7 +597,7 @@ private Version getVersion(MetaData metaData, String concreteIndex) {
601597

602598
public void process(MetaData metaData, @Nullable MappingMetaData mappingMd, boolean allowIdGeneration, String concreteIndex) {
603599
// resolve the routing if needed
604-
routing(metaData.resolveIndexRouting(routing, index));
600+
routing(metaData.resolveIndexRouting(parent, routing, index));
605601

606602
// resolve timestamp if provided externally
607603
if (timestamp != null) {

core/src/main/java/org/elasticsearch/action/support/single/shard/TransportSingleShardAction.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ public void handleResponse(final Response response) {
177177

178178
@Override
179179
public void handleException(TransportException exp) {
180-
perform(exp);
180+
listener.onFailure(exp);
181181
}
182182
});
183183
} else {

core/src/main/java/org/elasticsearch/action/termvectors/TermVectorsRequest.java

+15-5
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ public class TermVectorsRequest extends SingleShardRequest<TermVectorsRequest> i
6565

6666
private String routing;
6767

68+
private String parent;
69+
6870
private VersionType versionType = VersionType.INTERNAL;
6971

7072
private long version = Versions.MATCH_ANY;
@@ -162,6 +164,7 @@ public TermVectorsRequest(TermVectorsRequest other) {
162164
this.flagsEnum = other.getFlags().clone();
163165
this.preference = other.preference();
164166
this.routing = other.routing();
167+
this.parent = other.parent();
165168
if (other.selectedFields != null) {
166169
this.selectedFields = new HashSet<>(other.selectedFields);
167170
}
@@ -181,6 +184,7 @@ public TermVectorsRequest(MultiGetRequest.Item item) {
181184
this.type = item.type();
182185
this.selectedFields(item.fields());
183186
this.routing(item.routing());
187+
this.parent(item.parent());
184188
}
185189

186190
public EnumSet<Flag> getFlags() {
@@ -259,14 +263,16 @@ public TermVectorsRequest routing(String routing) {
259263
return this;
260264
}
261265

266+
@Override
267+
public String parent() {
268+
return parent;
269+
}
270+
262271
/**
263-
* Sets the parent id of this document. Will simply set the routing to this
264-
* value, as it is only used for routing with delete requests.
272+
* Sets the parent id of this document.
265273
*/
266274
public TermVectorsRequest parent(String parent) {
267-
if (routing == null) {
268-
routing = parent;
269-
}
275+
this.parent = parent;
270276
return this;
271277
}
272278

@@ -506,6 +512,7 @@ public void readFrom(StreamInput in) throws IOException {
506512
doc = in.readBytesReference();
507513
}
508514
routing = in.readOptionalString();
515+
parent = in.readOptionalString();
509516
preference = in.readOptionalString();
510517
long flags = in.readVLong();
511518

@@ -545,6 +552,7 @@ public void writeTo(StreamOutput out) throws IOException {
545552
out.writeBytesReference(doc);
546553
}
547554
out.writeOptionalString(routing);
555+
out.writeOptionalString(parent);
548556
out.writeOptionalString(preference);
549557
long longFlags = 0;
550558
for (Flag flag : flagsEnum) {
@@ -629,6 +637,8 @@ public static void parseRequest(TermVectorsRequest termVectorsRequest, XContentP
629637
termVectorsRequest.doc(jsonBuilder().copyCurrentStructure(parser));
630638
} else if ("_routing".equals(currentFieldName) || "routing".equals(currentFieldName)) {
631639
termVectorsRequest.routing = parser.text();
640+
} else if ("_parent".equals(currentFieldName) || "parent".equals(currentFieldName)) {
641+
termVectorsRequest.parent = parser.text();
632642
} else if ("_version".equals(currentFieldName) || "version".equals(currentFieldName)) {
633643
termVectorsRequest.version = parser.longValue();
634644
} else if ("_version_type".equals(currentFieldName) || "_versionType".equals(currentFieldName) || "version_type".equals(currentFieldName) || "versionType".equals(currentFieldName)) {

core/src/main/java/org/elasticsearch/action/termvectors/TransportMultiTermVectorsAction.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ protected void doExecute(final MultiTermVectorsRequest request, final ActionList
6666
for (int i = 0; i < request.requests.size(); i++) {
6767
TermVectorsRequest termVectorsRequest = request.requests.get(i);
6868
termVectorsRequest.startTime = System.currentTimeMillis();
69-
termVectorsRequest.routing(clusterState.metaData().resolveIndexRouting(termVectorsRequest.routing(), termVectorsRequest.index()));
69+
termVectorsRequest.routing(clusterState.metaData().resolveIndexRouting(termVectorsRequest.parent(), termVectorsRequest.routing(), termVectorsRequest.index()));
7070
if (!clusterState.metaData().hasConcreteIndex(termVectorsRequest.index())) {
7171
responses.set(i, new MultiTermVectorsItemResponse(null, new MultiTermVectorsResponse.Failure(termVectorsRequest.index(),
7272
termVectorsRequest.type(), termVectorsRequest.id(), new IndexNotFoundException(termVectorsRequest.index()))));
@@ -88,12 +88,12 @@ protected void doExecute(final MultiTermVectorsRequest request, final ActionList
8888
}
8989
shardRequest.add(i, termVectorsRequest);
9090
}
91-
91+
9292
if (shardRequests.size() == 0) {
9393
// only failures..
9494
listener.onResponse(new MultiTermVectorsResponse(responses.toArray(new MultiTermVectorsItemResponse[responses.length()])));
9595
}
96-
96+
9797
final AtomicInteger counter = new AtomicInteger(shardRequests.size());
9898
for (final MultiTermVectorsShardRequest shardRequest : shardRequests.values()) {
9999
shardAction.execute(shardRequest, new ActionListener<MultiTermVectorsShardResponse>() {

core/src/main/java/org/elasticsearch/action/termvectors/TransportTermVectorsAction.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ protected boolean resolveIndex(TermVectorsRequest request) {
7171

7272
@Override
7373
protected void resolveRequest(ClusterState state, InternalRequest request) {
74-
// update the routing (request#index here is possibly an alias)
75-
request.request().routing(state.metaData().resolveIndexRouting(request.request().routing(), request.request().index()));
74+
// update the routing (request#index here is possibly an alias or a parent)
75+
request.request().routing(state.metaData().resolveIndexRouting(request.request().parent(), request.request().routing(), request.request().index()));
7676
// Fail fast on the node that received the request.
7777
if (request.request().routing() == null && state.getMetaData().routingRequired(request.concreteIndex(), request.request().type())) {
7878
throw new RoutingMissingException(request.concreteIndex(), request.request().type(), request.request().id());

core/src/main/java/org/elasticsearch/action/update/TransportUpdateAction.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ protected boolean retryOnFailure(Throwable e) {
101101

102102
@Override
103103
protected boolean resolveRequest(ClusterState state, UpdateRequest request, ActionListener<UpdateResponse> listener) {
104-
request.routing((state.metaData().resolveIndexRouting(request.routing(), request.index())));
104+
request.routing((state.metaData().resolveIndexRouting(request.parent(), request.routing(), request.index())));
105105
// Fail fast on the node that received the request, rather than failing when translating on the index or delete request.
106106
if (request.routing() == null && state.getMetaData().routingRequired(request.concreteIndex(), request.type())) {
107107
throw new RoutingMissingException(request.concreteIndex(), request.type(), request.id());

0 commit comments

Comments
 (0)