private boolean processSplit(final Instruction instruction) {
        try {
            final Instruction.RangeSplit rangeSplit = instruction.getRangeSplit();
            if (rangeSplit == null) {
                return false;
            }
            final Long newRegionId = rangeSplit.getNewRegionId();
            if (newRegionId == null) {
                LOG.error("RangeSplit#newRegionId must not be null, {}.", instruction);
                return false;
            }
            final Region region = instruction.getRegion();
            final long regionId = region.getId();
            final RegionEngine engine = this.storeEngine.getRegionEngine(regionId);
            if (engine == null) {
                LOG.error("Could not found regionEngine, {}.", instruction);
                return false;
            }
            if (!region.equals(engine.getRegion())) {
                LOG.warn("Instruction [{}] is out of date.", instruction);
                return false;
            }
            final CompletableFuture<Status> future = new CompletableFuture<>();
            this.storeEngine.applySplit(regionId, newRegionId, new BaseKVStoreClosure() {

                @Override
                public void run(Status status) {
                    future.complete(status);
                }
            });
            final Status status = future.get(20, TimeUnit.SECONDS);
            final boolean ret = status.isOk();
            if (ret) {
                LOG.info("Range-split succeeded, instruction: {}.", instruction);
            } else {
                LOG.warn("Range-split failed: {}, instruction: {}.", status, instruction);
            }
            return ret;
        } catch (final Throwable t) {
            LOG.error("Caught an exception on #processSplit: {}.", StackTraceUtil.stackTrace(t));
            return false;
        }
    }
Processing the instructions from the placement driver server.

@author jiachun.fjc
jraft-rheakv/rheakv-core/src/main/java/com/alipay/sofa/jraft/rhea/client/pd/InstructionProcessor.java