A small(?) problem has just occurred to me regarding making obsolete keys distinct from DK(0). Suppose that you have three node keys, A, B, C to two nodes. A=B according to DISCRIM but not B=C. Now delete both nodes. What does DISCRIM respond to "A=B and "B=C"? My assumption was that the key that remains after the deletion designates a node whose state is void. Still that node should not, I think, be confused with another node in the same state. In such a world DISCRIM would answer the question "A=B" independently of whether the nodes (or other object) has been deleted.
This requiremnt bolixes a simple scheme, which was never implemented, for recovering allocation counts upon exhaustion. Allocation counts would still be required for ex-nodes, keys to which still existed. In systems where keys to dead objects become DK(0), and with relatively fast disks, such as the 370, this recycling of allocation counts could be accomplished in a few seconds. I don't know what would be required in the new scheme.
I am reminded of the box of keys in my dresser drawer to objects I know not what.
Norman Hardy <http://www.mediacity.com/~norm>