@Override
	public boolean isConsistent(String tableName, TaskMonitor monitor)
			throws IOException, CancelledException {
		boolean consistent = true;
		long lastMinKey = 0;
		long lastMaxKey = 0;
		for (int i = 0; i < keyCount; i++) {

			// Compare each key entry with the previous entries key-range
			long key = getKey(i);
			if (i != 0) {
				if (key <= lastMinKey) {
					consistent = false;
					logConsistencyError(tableName,
						"child[" + i + "].minKey <= child[" + (i - 1) + "].minKey", null);
					Msg.debug(this, "  child[" + i + "].minKey = 0x" + Long.toHexString(key) +
						" bufferID=" + getBufferId(i));
					Msg.debug(this, "  child[" + (i - 1) + "].minKey = 0x" +
						Long.toHexString(lastMinKey) + " bufferID=" + getBufferId(i - 1));
				}
				else if (key <= lastMaxKey) {
					consistent = false;
					logConsistencyError(tableName,
						"child[" + i + "].minKey <= child[" + (i - 1) + "].maxKey", null);
					Msg.debug(this, "  child[" + i + "].minKey = 0x" + Long.toHexString(key) +
						" bufferID=" + getBufferId(i));
					Msg.debug(this, "  child[" + (i - 1) + "].maxKey = 0x" +
						Long.toHexString(lastMaxKey) + " bufferID=" + getBufferId(i - 1));
				}
			}

			lastMinKey = key;

			LongKeyNode node = null;
			try {
				try {
					node = nodeMgr.getLongKeyNode(getBufferId(i));
					node.parent = this;
				}
				catch (IOException e) {
					logConsistencyError(tableName, "failed to fetch child node: " + e.getMessage(),
						e);
				}
				catch (RuntimeException e) {
					logConsistencyError(tableName, "failed to fetch child node: " + e.getMessage(),
						e);
				}

				if (node == null) {
					consistent = false;
					lastMaxKey = key; // for lack of a better solution
					continue; // skip child
				}

				lastMaxKey = node.getKey(node.getKeyCount() - 1);

				// Verify key matchup between parent and child
				long childKey0 = node.getKey(0);
				if (key != childKey0) {
					consistent = false;
					logConsistencyError(tableName,
						"parent key entry mismatch with child[" + i + "].minKey", null);
					Msg.debug(this, "  child[" + i + "].minKey = 0x" + Long.toHexString(childKey0) +
						" bufferID=" + getBufferId(i - 1));
					Msg.debug(this, "  parent key entry = 0x" + Long.toHexString(key));
				}

				consistent &= node.isConsistent(tableName, monitor);
				monitor.checkCancelled();
			}
			finally {
				if (node != null) {
					// Release nodes as we go - this is not the norm!
					nodeMgr.releaseReadOnlyNode(node.getBufferId());
				}
			}
		}
		monitor.checkCancelled();
		return consistent;
	}
Construct a new empty long-key interior node.
Node must be initialized with a minimum of two keys.
@param nodeMgr table node manager.
@throws IOException thrown if IO error occurs
Ghidra/Framework/DB/src/main/java/db/LongKeyInteriorNode.java