It was pretty easy to get duplicates into the same node. The existing check
was far too shallow.  We now look through the existing ids to see if this is
a new id. Can't do a binary search since the id order has to be preserved. Opted
to track ids in a set. This increases the memory requirement, but since insert
holds a write lock on the root, it didn't seem right to scan the structure.