private void verifyChangeLog(SchemaChangeLog schemaChangeLog, ChangeSet changeSet, int expectedOrder) {
        String changeSetId = changeSet.getId();
        String schemaChangeLogId = schemaChangeLog.getId();
        if (!changeSetId.equals(schemaChangeLogId)) {
            throw new IllegalArgumentException("Unexpected schema change log id, expected : " + changeSetId + " , was : " + schemaChangeLogId);
        }

        CheckSum actualCheckSum = schemaChangeLog.getCheckSum();
        CheckSum expectedCheckSum = CheckSum.compute(actualCheckSum.getVersion(), changeSet.getValue());
        if (!expectedCheckSum.equals(actualCheckSum)) {
            throw new IllegalArgumentException("Unexpected schema change log check sum for : " + schemaChangeLogId);
        }
        int actualOrder = schemaChangeLog.getExecOrder();
        if (expectedOrder != actualOrder) {
            throw new IllegalArgumentException("Unexpected schema change log execution order for " + schemaChangeLogId + ", expected : " + expectedOrder + ", was : " + actualOrder);
        }
    }
Returns a new list of {@link ChangeSet} that has not been executed as specified by {@code schemaChangeLogs}.

@param schemaChangeLogs logs of change sets already executed
@return a list of change sets not yet executed
@throws IllegalArgumentException if the current change sets are not valid for the specified{@code schemaChangeLogs}
hbase/hbase-schema/src/main/java/com/navercorp/pinpoint/hbase/schema/core/ChangeSetManager.java