code: func (db *DB) deletableBlocks(blocks []*Block) map[ulid.ULID]*Block {
  	deletable := make(map[ulid.ULID]*Block)
  
  	// Sort the blocks by time - newest to oldest (largest to smallest timestamp).
  	// This ensures that the retentions will remove the oldest  blocks.
  	sort.Slice(blocks, func(i, j int) bool {
  		return blocks[i].Meta().MaxTime > blocks[j].Meta().MaxTime
  	})
  
  	for _, block := range blocks {
  		if block.Meta().Compaction.Deletable {
  			deletable[block.Meta().ULID] = block
  		}
  	}
  
  	for ulid, block := range db.beyondTimeRetention(blocks) {
  		deletable[ulid] = block
  	}
  
  	for ulid, block := range db.beyondSizeRetention(blocks) {
  		deletable[ulid] = block
  	}
  
  	return deletable
  }
docs: // deletableBlocks returns all blocks past retention policy.