L0层对于不同snapshot的数据的compaction是如何处理?

若在L0中,一个sst文件中存在一个更老的snapshot的key的数据(或不同key的数据),但用户由于长事务一直在访问查询这些老的snapshot中的key,而其他sst文件中的更年轻的snapshot的同一条数据一直没有被访问,如果要进行compaction,是如何成立的呢?

https://github.com/facebook/rocksdb/wiki/Delete-Stale-Files#reference-counting
sst文件有引用计数,当计数减为0后compact的文件才能被删除