Utilization of memory storage
First Claim
1. 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, andstoring the selected sub-portion into the first storage sub-segment.
10 Assignments
0 Petitions
Accused Products
Abstract
A file storage system can include a file manager that adaptively partitions memory to accommodate the storage of fragmented data information. The fragments, potentially of varying size, can be stored in a volume of memory that is partitioned to include a group of storage segments. In the event that a particular fragment is not sized to efficiently fit in a free storage segment, the segment can be further subdivided to accommodate a fragment. In this way, a segment allotted for storage of data information can be adaptively subdivided into a smaller group of storage sub-segments. These sub-segments and yet potentially smaller storage partitions of the sub-segments can then be used to store additional fragments of a related stream of data. Based on this technique, portions of a logical stream of data information can be stored in the segments that vary in size. Meta data associated with the stored fragments can be used to facilitate reconstruction of a file or data stream.
-
Citations
20 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of storing data information, the method comprising:
-
receiving, in a computer system, first 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 first 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 of the volume 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 first data information to be stored in the volume is larger than a storage capacity of the first storage sub-segment;
selecting a first sub-portion of the second sized portion, the first sub-portion equal in size to the storage capacity of the first storage sub-segment, andstoring the first sub-portion in the first storage sub-segment. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method comprising:
-
receiving, in a computer system, 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 in the first storage sub-segment.
-
Specification