13:00:39jcowanone idea is to keep object ids only for objects that have been moved, on the assumption that these are few: when you move an object, check if it has an ID, and if not, add one.
13:04:44moon-childhow do you generate object ids? Sicl hash is a random number; those could collide. You could use an incrementing counter, with a different offset for each thread, but then it wouldn't work as a hash
13:05:08moon-childI guess you could use a cheap perfect hash like xxhash and invert it for printing?
13:52:19jcowanYou can reduce the size of collisions to as small as you want. 128-bit UUIDs are generally considered to be strong enough: generate 1 billion per second for 100 years and your probability of collision rises to 50%, but really.