});
}
@Override
protected Future<Void> doBatchDelete( Transaction txn, Collection<Key> keys) {
DeleteRequest baseReq = new DeleteRequest();
if (txn != null) {
TransactionImpl.ensureTxnActive(txn);
baseReq.setTransaction(InternalTransactionV3.localTxnToRemoteTxn(txn));
}
boolean group = !baseReq.hasTransaction();
Iterator<DeleteRequest> batches = deleteBatcher.getBatches(keys, baseReq,
baseReq.getSerializedSize(), group);
List<Future<DeleteResponse>> futures = deleteBatcher.makeCalls(batches);
return registerInTransaction(txn, new MultiFuture<DeleteResponse, Void>(futures) {
@Override
public Void get() throws InterruptedException, ExecutionException {
for (Future<DeleteResponse> future : futures) {