Patent ID: 7765378

Claim:
A method of utilizing storage, the method comprising: allocating, via a computer system, a portion of the storage for storage of data information; subsequent to receiving the data information for storage, recursively partitioning storage segments of the allocated portion of the storage on an as-needed basis into successively smaller groups of storage segments that vary in size to accommodate storage of corresponding smaller fragments of related data information; allocating at least part of the storage to store meta data information associated with the storage segments; and maintaining the meta data in the storage to track a logical stream of fragmented data information; wherein recursively partitioning the storage segments includes: receiving an amount of data information to be stored in a volume; partitioning the volume to include a group of storage segments including a first storage segment and a second storage segment, the first storage segment defined by a first range of contiguous physical addresses, the second storage segment defined by a second range of contiguous physical addresses; storing a first sized portion of the data information in the first storage segment; in response to detecting that a second sized portion of the data information to be stored in the volume is smaller than a storage capacity of the second storage segment, subdividing the second storage segment into multiple sub-segments including at least a first storage sub-segment and a second storage sub-segment; wherein subdividing the second storage segment into multiple sub-segments includes subdividing the second range of contiguous physical addresses into a first sub-range of contiguous physical addresses and a second sub-range of contiguous physical addresses, the first sub-range of contiguous physical addresses defining the first storage sub-segment of the second storage segment, the second sub-range of contiguous physical addresses defining the second storage sub-segment of the second storage segment; and in response to detecting that the second sized portion of the data information to be stored in the volume is larger than a storage capacity of the first storage sub-segment: selecting a sub-portion of the second sized portion of the data information, the selected sub-portion equal in size to the storage capacity of the first storage sub-segment, and storing the selected sub-portion into the first storage sub-segment.