@@ -163,19 +163,6 @@ Result prepareUpsert(ShardId shardId, UpdateRequest request, final GetResult get
163
163
return new Result (indexRequest , DocWriteResponse .Result .CREATED , null , null );
164
164
}
165
165
166
- /**
167
- * Calculate the version to use for the update request, using either the existing version if internal versioning is used, or the get
168
- * result document's version if the version type is "FORCE".
169
- */
170
- static long calculateUpdateVersion (UpdateRequest request , GetResult getResult ) {
171
- if (request .versionType () != VersionType .INTERNAL ) {
172
- assert request .versionType () == VersionType .FORCE ;
173
- return request .version (); // remember, match_any is excluded by the conflict test
174
- } else {
175
- return getResult .getVersion ();
176
- }
177
- }
178
-
179
166
/**
180
167
* Calculate a routing value to be used, either the included index request's routing, or retrieved document's routing when defined.
181
168
*/
@@ -195,7 +182,6 @@ static String calculateRouting(GetResult getResult, @Nullable IndexRequest updat
195
182
* containing a new {@code IndexRequest} to be executed on the primary and replicas.
196
183
*/
197
184
Result prepareUpdateIndexRequest (ShardId shardId , UpdateRequest request , GetResult getResult , boolean detectNoop ) {
198
- final long updateVersion = calculateUpdateVersion (request , getResult );
199
185
final IndexRequest currentRequest = request .doc ();
200
186
final String routing = calculateRouting (getResult , currentRequest );
201
187
final Tuple <XContentType , Map <String , Object >> sourceAndContent = XContentHelper .convertToMap (getResult .internalSourceRef (), true );
@@ -215,7 +201,8 @@ Result prepareUpdateIndexRequest(ShardId shardId, UpdateRequest request, GetResu
215
201
} else {
216
202
final IndexRequest finalIndexRequest = Requests .indexRequest (request .index ())
217
203
.type (request .type ()).id (request .id ()).routing (routing )
218
- .source (updatedSourceAsMap , updateSourceContentType ).version (updateVersion ).versionType (request .versionType ())
204
+ .source (updatedSourceAsMap , updateSourceContentType )
205
+ .setIfSeqNo (getResult .getSeqNo ()).setIfPrimaryTerm (getResult .getPrimaryTerm ())
219
206
.waitForActiveShards (request .waitForActiveShards ()).timeout (request .timeout ())
220
207
.setRefreshPolicy (request .getRefreshPolicy ());
221
208
return new Result (finalIndexRequest , DocWriteResponse .Result .UPDATED , updatedSourceAsMap , updateSourceContentType );
@@ -228,7 +215,6 @@ Result prepareUpdateIndexRequest(ShardId shardId, UpdateRequest request, GetResu
228
215
* primary and replicas.
229
216
*/
230
217
Result prepareUpdateScriptRequest (ShardId shardId , UpdateRequest request , GetResult getResult , LongSupplier nowInMillis ) {
231
- final long updateVersion = calculateUpdateVersion (request , getResult );
232
218
final IndexRequest currentRequest = request .doc ();
233
219
final String routing = calculateRouting (getResult , currentRequest );
234
220
final Tuple <XContentType , Map <String , Object >> sourceAndContent = XContentHelper .convertToMap (getResult .internalSourceRef (), true );
@@ -256,14 +242,16 @@ Result prepareUpdateScriptRequest(ShardId shardId, UpdateRequest request, GetRes
256
242
case INDEX :
257
243
final IndexRequest indexRequest = Requests .indexRequest (request .index ())
258
244
.type (request .type ()).id (request .id ()).routing (routing )
259
- .source (updatedSourceAsMap , updateSourceContentType ).version (updateVersion ).versionType (request .versionType ())
245
+ .source (updatedSourceAsMap , updateSourceContentType )
246
+ .setIfSeqNo (getResult .getSeqNo ()).setIfPrimaryTerm (getResult .getPrimaryTerm ())
260
247
.waitForActiveShards (request .waitForActiveShards ()).timeout (request .timeout ())
261
248
.setRefreshPolicy (request .getRefreshPolicy ());
262
249
return new Result (indexRequest , DocWriteResponse .Result .UPDATED , updatedSourceAsMap , updateSourceContentType );
263
250
case DELETE :
264
251
DeleteRequest deleteRequest = Requests .deleteRequest (request .index ())
265
252
.type (request .type ()).id (request .id ()).routing (routing )
266
- .version (updateVersion ).versionType (request .versionType ()).waitForActiveShards (request .waitForActiveShards ())
253
+ .setIfSeqNo (getResult .getSeqNo ()).setIfPrimaryTerm (getResult .getPrimaryTerm ())
254
+ .waitForActiveShards (request .waitForActiveShards ())
267
255
.timeout (request .timeout ()).setRefreshPolicy (request .getRefreshPolicy ());
268
256
return new Result (deleteRequest , DocWriteResponse .Result .DELETED , updatedSourceAsMap , updateSourceContentType );
269
257
default :
0 commit comments