public @Override int bucket(Node node, int depth) { NodeId nodeId = computeId(node); TreeId bucketId = computeBucketId(nodeId, depth); int leafBucket = bucketId.leafBucket(); return leafBucket; }
/** * Parent becomes child */ private void setParent(DAG child, DAG parent) { // find deepest 1-bucket child while (child.numBuckets() == 1) { child = getOrCreateDAG(child.bucketList().get(0)); } // replace contents of parent with the contents of child parent.init(child); if (LOG.isDebugEnabled()) { LOG.debug("{} collapsed to {}", child.getId(), parent.getId()); } // System.err.println(child.getId() + " collapsed to " + parent.getId()); List<TreeId> buckets = parent.bucketList(); parent.clearBuckets(); for (TreeId id : buckets) { DAG deepChild = getOrCreateDAG(id); TreeId newChildId = parent.getId().newChild(id.leafBucket()); DAG newChild = getOrCreateDAG(newChildId); parent.addBucket(newChildId); setParent(deepChild, newChild); } }
/** * Parent becomes child */ private void setParent(DAG child, DAG parent) { // find deepest 1-bucket child while (child.numBuckets() == 1) { child = getOrCreateDAG(child.bucketList().get(0)); } // replace contents of parent with the contents of child parent.init(child); if (LOG.isDebugEnabled()) { LOG.debug("{} collapsed to {}", child.getId(), parent.getId()); } // System.err.println(child.getId() + " collapsed to " + parent.getId()); List<TreeId> buckets = parent.bucketList(); parent.clearBuckets(); for (TreeId id : buckets) { DAG deepChild = getOrCreateDAG(id); TreeId newChildId = parent.getId().newChild(id.leafBucket()); DAG newChild = getOrCreateDAG(newChildId); parent.addBucket(newChildId); setParent(deepChild, newChild); } }
if (overflown) { int unpromotableBucketIndex = unpromotableBucketIndex(); if (targetId.leafBucket() != unpromotableBucketIndex) { targetId = targetId.newChild(unpromotableBucketIndex);
if (overflown) { int unpromotableBucketIndex = unpromotableBucketIndex(); if (targetId.leafBucket() != unpromotableBucketIndex) { targetId = targetId.newChild(unpromotableBucketIndex);