Method for improving disk space allocation
First Claim
Patent Images
1. A method for allocating storage space comprising:
- maintaining a list of available run of blocks of persistent memory in a primary data structure;
categorizing said run of blocks in said primary data structure according to length;
maintaining a secondary data structure in communication with said primary data structure, wherein said secondary data structure includes a list of all active file system processes and blocks used by said processes;
categorizing said run of blocks in a secondary data structure according to page lengths of said run of blocks and active threads for each associated page;
coordinating allocation of said categorized run of blocks between said primary data structure, said secondary data structure, and a thread;
denying access of multiple requesting threads to a run of blocks based on a prior thread allocation; and
allocating a run of blocks to a requesting thread in response to availability of said run in said primary data structure and said secondary data structure.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for allocating blocks of disk in persistent storage to requesting threads. A primary data structure is provided for organizing and categorizing blocks of disk space. In addition, a secondary data structure is provided for maintaining a list of all active file system processes and blocks of disk space used by those processes. Blocks of disk space are assigned to pages. At such time as a thread may request allocation of disk space, both data structures are reviewed to determine if the requested disk space is available and to limit access of available disk space to a single page of memory to a single thread at any one time.
14 Citations
7 Claims
-
1. A method for allocating storage space comprising:
-
maintaining a list of available run of blocks of persistent memory in a primary data structure; categorizing said run of blocks in said primary data structure according to length; maintaining a secondary data structure in communication with said primary data structure, wherein said secondary data structure includes a list of all active file system processes and blocks used by said processes; categorizing said run of blocks in a secondary data structure according to page lengths of said run of blocks and active threads for each associated page; coordinating allocation of said categorized run of blocks between said primary data structure, said secondary data structure, and a thread; denying access of multiple requesting threads to a run of blocks based on a prior thread allocation; and allocating a run of blocks to a requesting thread in response to availability of said run in said primary data structure and said secondary data structure. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for allocating storage space comprising:
-
maintaining a list of available run runs of blocks of persistent memory in a primary data structure; categorizing said run of blocks in said primary data structure according to length;
coordinating allocation of said categorized run of blocks between said primary data structure and a thread;maintaining a secondary data structure in communication with said primary data structure, wherein said secondary data structure includes a list of all active file system processes and blocks used by said processes; denying access to said run of blocks from a requesting thread based upon a conflicting prior access to said blocks; and allocating said run of blocks to a requesting thread in response to availability of said run in said primary and secondary data structures.
-
Specification