This seems similar to the VP-Tree, which there was a post about a few days ago, except that VP-Trees use binary partitioning because they're measuring similarity in a continuous space, while these ones use discrete buckets because similarity is measured discretely.