code: @SuppressWarnings("unchecked")
  	private Node<K, V> getNodeCache(final int nodeid) {
  		final boolean isLeaf = Node.isLeaf(nodeid);
  		boolean responseFromCache = true;
  		Node<K, V> node = (isLeaf ? dirtyLeafNodes : dirtyInternalNodes).get(nodeid);
  		if (node == null) {
  			node = (isLeaf ? cacheLeafNodes : cacheInternalNodes).get(nodeid);
  			if (node == null) {
  				if (log.isDebugEnabled())
  					log.debug("diskread node id=" + nodeid);
  				node = getNodeFromStore(nodeid);
  				responseFromCache = false;
  				(node.isLeaf() ? cacheLeafNodes : cacheInternalNodes).put(nodeid, node);
  			}
  		}
  		if (enableIOStats) {
  			if (responseFromCache) {
  				getIOStat(nodeid).incCacheRead();
  			}
  		}
  		return node;
  	}
docs: Get node from cache
  
  @param nodeid int with nodeid
  @return Node<K,V>