@Override
    public List<CheckAndMutateResult> checkAndMutate(TableName tableName, List<CheckAndMutate> checkAndMutates) {
        if (nativeAsync) {
            List<CompletableFuture<CheckAndMutateResult>> futures = asyncTemplate.checkAndMutate(tableName, checkAndMutates);

            return FutureUtils.allOf(futures);
        }
        return execute(tableName, new TableCallback<>() {
            @Override
            public List<CheckAndMutateResult> doInTable(Table table) throws Throwable {
                try {
                    return table.checkAndMutate(checkAndMutates);
                } catch (IOException e) {
                    return Collections.nCopies(checkAndMutates.size(), CHECK_AND_MUTATE_RESULT_FAILURE);
                }
            }
        });
    }
@author emeroad
@author HyunGil Jeong
@author minwoo.jung
@author Taejin Koo
commons-hbase/src/main/java/com/navercorp/pinpoint/common/hbase/HbaseTemplate.java