@Override
    public CasResult maxColumnValue(TableName tableName, CheckAndMax checkAndMax) {
        if (nativeAsync) {
            CompletableFuture<CasResult> future = this.asyncTemplate.maxColumnValue(tableName, checkAndMax);
            CasResult result = future.join();
            logger.debug("maxColumnValue result:{}", result);
            return result;
        } else {


            CasResult result = this.execute(tableName, new TableCallback<CasResult>() {
                @Override
                public CasResult doInTable(Table table) throws Throwable {
                    CheckAndMutate checkAndMutate = CheckAndMax.initialMax(checkAndMax);
                    CheckAndMutateResult result = table.checkAndMutate(checkAndMutate);
                    if (result.isSuccess()) {
                        return CasResult.INITIAL_UPDATE;
                    }
                    CheckAndMutate cas = CheckAndMax.casMax(checkAndMutate);
                    CheckAndMutateResult maxResult = table.checkAndMutate(cas);
                    return CasResult.casResult(maxResult);
                }
            });
            logger.debug("maxColumnValue result:{}", result);
            return result;
        }
    }
@author emeroad
@author HyunGil Jeong
@author minwoo.jung
@author Taejin Koo
commons-hbase/src/main/java/com/navercorp/pinpoint/common/hbase/HbaseTemplate.java