Since there are no dependencies between any two snapshots in ABS, snapshots can be deleted at any time. Unlike traditional chained snapshots, ABS does not require data merging operations when deleting snapshots. It only needs to delete the snapshot's corresponding data block table in the Meta end and remove the reference to the data block.
Since snapshot and clone operations might reference the same data block, a data block can be shared by multiple volumes or snapshots. The Meta end tracks the reference count of each data block. After deleting a snapshot, its reference to the data block it belongs to will be released. When the reference count of a data block drops to 0, it indicates that this data block and its associated LExtent can be reallocated. Meta first reclaims the LExtent, then reclaims unreferenced PExtents, and subsequently sends PExtent reclamation commands to the corresponding Chunks to perform actual physical space reclamation. On the Chunk side, reclaiming a PExtent only requires adjusting its references to blocks. When a block is no longer referenced by any PExtent, the Block and its corresponding physical disk space are released.