When Cassandra is doing the data integrity check, it does a validation compaction, but what does this mean exactly? My understanding is that it creates a single SSTable that will be stored temporarily (until the repair finishes), and then it generates the Merkle trees from that single created SSTable. If any of the Merkle trees leafs fails validation, then the partitions used to create that leaf (from the SSTable created during the validation compaction) will be streamed to the other node. However, a friend told me that the Merkle trees are generated from each (previously existing) SSTable.
So, how many Merkle trees are generated, one or as many as SSTables?