Search in sources :

Example 6 with DAGRequest

use of com.pingcap.tidb.tipb.DAGRequest in project client-java by tikv.

the class RegionStoreClient method coprocessStreaming.

// TODO: wait for future fix
// coprocessStreaming doesn't handle split error
// future work should handle it and do the resolve
// locks correspondingly
public Iterator<SelectResponse> coprocessStreaming(DAGRequest req, List<Coprocessor.KeyRange> ranges, long startTs) {
    boolean forWrite = false;
    Supplier<Coprocessor.Request> reqToSend = () -> Coprocessor.Request.newBuilder().setContext(makeContext(getResolvedLocks(startTs), this.storeType, SlowLogEmptyImpl.INSTANCE)).setTp(REQ_TYPE_DAG.getValue()).setData(req.toByteString()).addAllRanges(ranges).build();
    KVErrorHandler<StreamingResponse> handler = new KVErrorHandler<>(regionManager, this, lockResolverClient, // TODO: handle all errors in streaming response
    StreamingResponse::getFirstRegionError, resp -> null, resolveLockResult -> addResolvedLocks(startTs, resolveLockResult.getResolvedLocks()), startTs, forWrite);
    StreamingResponse responseIterator = this.callServerStreamingWithRetry(ConcreteBackOffer.newCopNextMaxBackOff(pdClient.getClusterId()), TikvGrpc.getCoprocessorStreamMethod(), reqToSend, handler);
    return doCoprocessor(responseIterator);
}
Also used : StreamingResponse(org.tikv.common.streaming.StreamingResponse) RawScanRequest(org.tikv.kvproto.Kvrpcpb.RawScanRequest) RawBatchGetRequest(org.tikv.kvproto.Kvrpcpb.RawBatchGetRequest) RawDeleteRangeRequest(org.tikv.kvproto.Kvrpcpb.RawDeleteRangeRequest) RawBatchDeleteRequest(org.tikv.kvproto.Kvrpcpb.RawBatchDeleteRequest) DAGRequest(com.pingcap.tidb.tipb.DAGRequest) SplitRegionRequest(org.tikv.kvproto.Kvrpcpb.SplitRegionRequest) RawPutRequest(org.tikv.kvproto.Kvrpcpb.RawPutRequest) ScanRequest(org.tikv.kvproto.Kvrpcpb.ScanRequest) RawGetKeyTTLRequest(org.tikv.kvproto.Kvrpcpb.RawGetKeyTTLRequest) RawDeleteRequest(org.tikv.kvproto.Kvrpcpb.RawDeleteRequest) GetRequest(org.tikv.kvproto.Kvrpcpb.GetRequest) TxnHeartBeatRequest(org.tikv.kvproto.Kvrpcpb.TxnHeartBeatRequest) RawGetRequest(org.tikv.kvproto.Kvrpcpb.RawGetRequest) RawCASRequest(org.tikv.kvproto.Kvrpcpb.RawCASRequest) PrewriteRequest(org.tikv.kvproto.Kvrpcpb.PrewriteRequest) CommitRequest(org.tikv.kvproto.Kvrpcpb.CommitRequest) BatchGetRequest(org.tikv.kvproto.Kvrpcpb.BatchGetRequest) RawBatchPutRequest(org.tikv.kvproto.Kvrpcpb.RawBatchPutRequest) KVErrorHandler(org.tikv.common.operation.KVErrorHandler)

Aggregations

DAGRequest (com.pingcap.tidb.tipb.DAGRequest)6 HashMap (java.util.HashMap)3 ImmutableList (com.google.common.collect.ImmutableList)2 ByteString (com.google.protobuf.ByteString)2 Chunk (com.pingcap.tidb.tipb.Chunk)2 SelectResponse (com.pingcap.tidb.tipb.SelectResponse)2 Server (io.grpc.Server)2 ServerBuilder (io.grpc.ServerBuilder)2 Status (io.grpc.Status)2 IOException (java.io.IOException)2 ServerSocket (java.net.ServerSocket)2 List (java.util.List)2 Map (java.util.Map)2 Objects (java.util.Objects)2 SortedMap (java.util.SortedMap)2 TreeMap (java.util.TreeMap)2 Collectors (java.util.stream.Collectors)2 Coprocessor (org.tikv.kvproto.Coprocessor)2 Errorpb (org.tikv.kvproto.Errorpb)2 ColumnInfo (com.pingcap.tidb.tipb.ColumnInfo)1