1. A system, comprising: a processor configured to: use a first tree data structure to track an allocation state for each block included in a first set of storage blocks; wherein upper level nodes in a given tree present the allocation state of connected lower level nodes in the given tree, such that each allocation state indicates whether any associated storage blocks are free; use a second tree data structure to track an allocation state for each block included in a second set of storage blocks; wherein the first tree data structure and the second tree data structure each have a number of leaf nodes corresponding to a maximum number of blocks that can be included in a superset of storage blocks, wherein the first set of storage blocks and second set of storage blocks are included in the superset of storage blocks; use an allocation bitmap associated with the superset of storage blocks to track allocation states of storage blocks in the superset; use a group mask to track which of the storage blocks in the superset is associated with the first set or the second set of storage blocks, wherein each leaf node of a specified tree is associated with a plurality of associated locations in the allocation bitmap and the group mask; and a memory coupled to the processor and configured to store said first and second tree data structures.