Search in sources :

Example 1 with PrewriteRequest

use of org.tikv.kvproto.Kvrpcpb.PrewriteRequest in project tispark by pingcap.

the class RegionStoreClient method prewrite.

/**
 * Prewrite batch keys
 *
 * @param skipConstraintCheck whether to skip constraint check
 */
public void prewrite(BackOffer bo, ByteString primaryLock, Iterable<Mutation> mutations, long startTs, long ttl, boolean skipConstraintCheck, boolean useAsyncCommit, Iterable<ByteString> secondaries) throws TiClientInternalException, KeyException, RegionException {
    boolean forWrite = true;
    while (true) {
        Supplier<PrewriteRequest> factory = () -> {
            PrewriteRequest.Builder builder = PrewriteRequest.newBuilder().setContext(region.getContext()).setStartVersion(startTs).setPrimaryLock(primaryLock).addAllMutations(mutations).setLockTtl(ttl).setSkipConstraintCheck(skipConstraintCheck).setTxnSize(16);
            if (getIsV4()) {
                builder.setMinCommitTs(startTs);
            }
            if (useAsyncCommit) {
                builder.setUseAsyncCommit(true);
                if (secondaries != null) {
                    builder.addAllSecondaries(secondaries);
                }
            }
            return builder.build();
        };
        KVErrorHandler<PrewriteResponse> handler = new KVErrorHandler<>(regionManager, this, lockResolverClient, resp -> resp.hasRegionError() ? resp.getRegionError() : null, resp -> null, resolveLockResult -> null, startTs, forWrite);
        PrewriteResponse resp = callWithRetry(bo, TikvGrpc.getKvPrewriteMethod(), factory, handler);
        if (isPrewriteSuccess(bo, resp, startTs)) {
            return;
        }
    }
}
Also used : PrewriteRequest(org.tikv.kvproto.Kvrpcpb.PrewriteRequest) PrewriteResponse(org.tikv.kvproto.Kvrpcpb.PrewriteResponse) KVErrorHandler(com.pingcap.tikv.operation.KVErrorHandler)

Example 2 with PrewriteRequest

use of org.tikv.kvproto.Kvrpcpb.PrewriteRequest in project client-java by tikv.

the class RegionStoreClient method prewrite.

/**
 * Prewrite batch keys
 *
 * @param skipConstraintCheck whether to skip constraint check
 */
public void prewrite(BackOffer bo, ByteString primaryLock, Iterable<Mutation> mutations, long startTs, long ttl, boolean skipConstraintCheck) throws TiClientInternalException, KeyException, RegionException {
    boolean forWrite = true;
    while (true) {
        Supplier<PrewriteRequest> factory = () -> getIsV4() ? PrewriteRequest.newBuilder().setContext(makeContext(storeType, bo.getSlowLog())).setStartVersion(startTs).setPrimaryLock(primaryLock).addAllMutations(mutations).setLockTtl(ttl).setSkipConstraintCheck(skipConstraintCheck).setMinCommitTs(startTs).setTxnSize(16).build() : PrewriteRequest.newBuilder().setContext(makeContext(storeType, bo.getSlowLog())).setStartVersion(startTs).setPrimaryLock(primaryLock).addAllMutations(mutations).setLockTtl(ttl).setSkipConstraintCheck(skipConstraintCheck).setTxnSize(16).build();
        KVErrorHandler<PrewriteResponse> handler = new KVErrorHandler<>(regionManager, this, lockResolverClient, resp -> resp.hasRegionError() ? resp.getRegionError() : null, resp -> null, resolveLockResult -> null, startTs, forWrite);
        PrewriteResponse resp = callWithRetry(bo, TikvGrpc.getKvPrewriteMethod(), factory, handler);
        if (isPrewriteSuccess(bo, resp, startTs)) {
            return;
        }
    }
}
Also used : PrewriteRequest(org.tikv.kvproto.Kvrpcpb.PrewriteRequest) PrewriteResponse(org.tikv.kvproto.Kvrpcpb.PrewriteResponse) KVErrorHandler(org.tikv.common.operation.KVErrorHandler)

Aggregations

PrewriteRequest (org.tikv.kvproto.Kvrpcpb.PrewriteRequest)2 PrewriteResponse (org.tikv.kvproto.Kvrpcpb.PrewriteResponse)2 KVErrorHandler (com.pingcap.tikv.operation.KVErrorHandler)1 KVErrorHandler (org.tikv.common.operation.KVErrorHandler)1