I think i underatand a bit better now. The tree is storing metadata for potentially multiple upstream groups per generation. It seems like a reasonable implementation given the expected short duration of threads referencing data from older generations (hence a shallow tree) and the fact there is only one read from the tree per request. Anyway.. i asked the question so i'll fill in what i find out. I may well have missed something.. any help appreciated.