Buddy system space allocation management
First Claim
1. A space management system for use in managing storage allocation for the storage of data values of a data type corresponding to large data objects (LOBs) stored in storage locations of a data base of a computer system having a central processor, a memory unit, and a storage subsystem containing a LOB data space in which the LOB data values are stored, the space management system comprising:
- a plurality of regular-tier allocation page data structures that indicate, for a predetermined number of LOB data space storage locations comprising a regular-tier buddy space, whether the storage locations are free or allocated such that each regular-tier allocation page identifies free regular-tier buddy spaces of the LOB data space in which to store the LOB data value and thereby control data access to the regular-tier buddy spaces;
a plurality of super-tier allocation page data structures of the LOB data space that indicate, for a predetermined number of regular-tier pages comprising a super-tier buddy space, whether the regular-tier pages are free or allocated, to identify one or more free super-tier buddy spaces in which to store the LOB data value, where the LOB data value has a size such that it cannot be stored in less than one super-tier buddy space, and thereby control data access to the super-tier buddy spaces, such that at least one super-tier allocation page identifies free super-tier buddy spaces over the entire LOB data space; and
a data manager controller that manages the regular-tier and the super-tier allocation pages by receiving requests from users of the computer system for access to LOB data values and allocating storage locations in the LOB data space identified by the super-tier allocation pages and regular-tier allocation pages, respectively, as free for the storage of LOB data values and freeing selected LOB data space storage locations that are no longer needed for the storage of LOB data values.
0 Assignments
0 Petitions
Accused Products
Abstract
A relational data base management system that stores and retrieves large data objects (LOBs) from data base storage includes a data manager that maintains LOB data space allocation according to the buddy system with two types of allocation pages, called regular buddy space (RBS) pages and super buddy space (SBS) pages. The RBS pages control buddy spaces comprising equal-size areas of the LOB data space in which LOB buddy segments are stored. The SBS pages control the RBS pages. The RBS pages include a pointer array that contains the forward-most location of where searching for a free storage space should begin and a counter array that indicates the number of free buddy segments in a buddy space for a particular buddy segment size. The SBS pages include analogous pointer and counter arrays that refer to the RBS pages and indicate the location and extent of free storage space, and also include a divided-space array and an SBS page directory.
-
Citations
34 Claims
-
1. A space management system for use in managing storage allocation for the storage of data values of a data type corresponding to large data objects (LOBs) stored in storage locations of a data base of a computer system having a central processor, a memory unit, and a storage subsystem containing a LOB data space in which the LOB data values are stored, the space management system comprising:
-
a plurality of regular-tier allocation page data structures that indicate, for a predetermined number of LOB data space storage locations comprising a regular-tier buddy space, whether the storage locations are free or allocated such that each regular-tier allocation page identifies free regular-tier buddy spaces of the LOB data space in which to store the LOB data value and thereby control data access to the regular-tier buddy spaces; a plurality of super-tier allocation page data structures of the LOB data space that indicate, for a predetermined number of regular-tier pages comprising a super-tier buddy space, whether the regular-tier pages are free or allocated, to identify one or more free super-tier buddy spaces in which to store the LOB data value, where the LOB data value has a size such that it cannot be stored in less than one super-tier buddy space, and thereby control data access to the super-tier buddy spaces, such that at least one super-tier allocation page identifies free super-tier buddy spaces over the entire LOB data space; and a data manager controller that manages the regular-tier and the super-tier allocation pages by receiving requests from users of the computer system for access to LOB data values and allocating storage locations in the LOB data space identified by the super-tier allocation pages and regular-tier allocation pages, respectively, as free for the storage of LOB data values and freeing selected LOB data space storage locations that are no longer needed for the storage of LOB data values. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of managing storage allocation for storage of data values in a data base wherein system users request access to data values of a data type corresponding to large data objects (LOBS) stored in storage locations of a LOB data space of a data base of a computer system having a central processor, a memory unit, and a storage subsystem containing the LOB data space so as to allocate free storage locations of the LOB data space for the storage of new LOB data values and to free selected storage locations that are no longer needed for the storage of past LOB data values, the method comprising the steps of:
-
receiving a user request for access to the LOB data space for storage of a LOB data value having a size comprising a predetermined number of storage locations necessary for storage of the LOB data value in the LOB data space; examining a super-tier allocation page data structure of the LOB data space with a data manager controller, wherein the super-tier allocation page indicates, for a higher-tier block of LOB data space storage locations comprising a predetermined number of storage locations, whether super-tier blocks over the entire LOB data space are free or allocated, to identify one or more free super-tier blocks in which to store the LOB data value where the LOB data value has a size such that it cannot be stored in less than one super-tier block; allocating the tree block of storage locations identified in the step of examining, using the data manager controller, for storage of the LOB data value where the LOB data value has a size such that it cannot be stored in less than one super-tier block; examining a regular-tier allocation page data structure of the LOB data space with the data manger controller, wherein the regular-tier allocation page data structure indicates, for a regular-tier of LOB data space storage locations comprising a predetermined number of storage locations, whether regular-tier blocks over a predetermined number of storage locations equal to a smallest super-tier block, are free or allocated, to identify one or more free regular-tier blocks in which to store the LOB data value; allocating the identified free regular-tier blocks for storage of the LOB data value if it was not allocated previously by the data manger controller; and updating data structures of the super-tier allocation pages and regular-tier allocation pages to indicate the identified storage locations as being allocated. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A computer system comprising:
-
a central processor unit; a memory unit; at least one storage device for the storage of data values of a data type corresponding to large data objects (LOBs), the storage device containing a LOB data space having LOB data values of a data base; a data base management system that permits a computer system user to generate requests for access to LOBs of a data base, the data base management system including; a plurality of regular-tier allocation page data structures that indicate, for a predetermined number of LOB data space storage locations comprising a regular-tier buddy space, whether the storage locations are free or allocated such that each regular-tier allocation page identifies free regular-tier buddy spaces of the LOB data space in which to store the LOB data value and thereby control data access to the regular-tier buddy spaces; a plurality of super-tier allocation page data structures of the LOB data space that indicate, for a predetermined number of regular-tier pages comprising a super-tier buddy space, whether the regular-tier pages are free or allocated, to identify one or more free super-tier buddy spaces in which to store the LOB data value, where the LOB data value has a size such that it cannot be stored in less than one super-tier buddy space, and thereby control data access to the super-tier buddy spaces, such that at least one super-tier allocation page identifies free super-tier buddy spaces over the entire LOB data space; and a data manager controller that manages the regular-tier and the super-tier allocation pages by receiving requests from users of the computer system for access to LOB data values and allocating storage locations in the LOB data space identified by the super-tier allocation pages and regular-tier allocation pages, respectively, as free for the storage of LOB data values and freeing selected LOB data space storage locations that are no longer needed for the storage of LOB data values. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A program storage device readable by a processor machine, tangibly embodying a program of instructions executable by the processor machine to perform method steps for managing storage allocation for storage of data values in a relational data base wherein system users request access to data values of a data type corresponding to large data objects (LOBs) stored in storage locations of a LOB data space of a relational data base of a computer system having a central processor, a memory unit, and a storage subsystem containing the LOB data space so as to allocate free storage locations of the LOB data space for the storage of new LOB data values and to free selected storage locations that are no longer needed for the storage of past LOB data values, the method steps performed by the processor machine comprising the steps of:
-
receiving a user request for access to the LOB data space for storage of a LOB data value having a size comprising a predetermined number of storage locations necessary for storage of the LOB data value in the LOB data space; examining a super-tier allocation page data structure of the LOB data space with a data manager controller, wherein the super-tier allocation page data structure indicates, for a higher-tier block of LOB data space storage locations comprising a predetermined number of storage locations, whether super-tier blocks over the entire LOB data space are free or allocated, to identify one or more free super-tier blocks in which to store the LOB data value where the LOB data value has a size such that it cannot be stored in less than one super-tier block; allocating the free block of storage locations identified in the step of examining, using the data manager controller, for storage of the LOB data value where the LOB data value has a size such that it cannot be stored in less than one super-tier block; examining a regular-tier allocation page data structure of the LOB data space with the data manager controller, wherein the regular-tier allocation page data structure indicates, for a regular-tier of LOB data space storage locations comprising a predetermined number of storage locations, whether regular-tier blocks over a predetermined number of storage locations equal to a smallest super-tier block, are free or allocated, to identify one or more free regular-tier blocks in which to store the LOB data value; allocating the identified free regular-tier blocks for storage of the LOB data value if it was not allocated previously by the data manager controller; and updating data structures of the super-tier allocation pages and regular-tier allocation pages to indicate the identified storage locations as being allocated. - View Dependent Claims (30, 31, 32, 33, 34)
-
Specification