SYSTEMS AND METHODS FOR MANAGING FILES ON A STORAGE DEVICE
First Claim
1. A data storage system, comprising:
- a first data storage region with an associated storage capacity, the first data storage region storing data associated with at least first and second namespaces, the first namespace having a first allocation of the storage capacity and the second namespace having a second allocation of the storage capacity;
a second data storage region storing metadata regarding files associated with the first and second namespaces, the metadata identifying the namespace and a block of the first data storage region associated with a particular file;
a controller communicatively coupled to the first data storage region and the second data storage region, the controller configured to;
receive a first request to store a first file associated with the first namespace in the first data storage region;
identify at least one free block of the first data storage region based on the metadata, the free block previously storing a second file associated with the second namespace;
storing the first file at the free block;
modify a ratio of the first allocation and the second allocation based on a size of the free block; and
modify the metadata to associate the free block with the first file and the second namespace.
3 Assignments
0 Petitions
Accused Products
Abstract
Described herein are techniques for the dynamic allocation of storage capacity between multiple namespaces associated with a storage system. Data from multiple namespaces is stored in a common pool of addresses of the storage system and data from each namespace is capable of being written to any free address of the storage system at any time. Metadata associated with each of the files stored in the storage system is maintained that tracks the particular storage address or addresses and namespace associated with the file. Storage capacity can be dynamically allocated between multiple namespaces by writing data to free blocks and updating the metadata accordingly.
-
Citations
22 Claims
-
1. A data storage system, comprising:
-
a first data storage region with an associated storage capacity, the first data storage region storing data associated with at least first and second namespaces, the first namespace having a first allocation of the storage capacity and the second namespace having a second allocation of the storage capacity; a second data storage region storing metadata regarding files associated with the first and second namespaces, the metadata identifying the namespace and a block of the first data storage region associated with a particular file; a controller communicatively coupled to the first data storage region and the second data storage region, the controller configured to; receive a first request to store a first file associated with the first namespace in the first data storage region; identify at least one free block of the first data storage region based on the metadata, the free block previously storing a second file associated with the second namespace; storing the first file at the free block; modify a ratio of the first allocation and the second allocation based on a size of the free block; and modify the metadata to associate the free block with the first file and the second namespace. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A data storage system comprising:
-
a first data storage region including a common pool of storage blocks associated with at least first and second namespaces; a second data storage region storing, a file allocation table including a plurality of records associated with files in the first and second namespaces, each record identifying a particular file stored in the first data storage region, at least one of the storage blocks associated with the particular file and one of the first and second namespaces associated with the particular file; and a controller communicatively coupled to the first data storage region and the second data storage region, the controller configured to; receive a first request to store a first file associated with the first namespace; store the first file at a first storage block; modify a first record in the file allocation table associated with, the first file, the first record referencing the first storage block and the first namespace; receive a second request to store a second file associated with the second namespace; store the second file at a second storage block; and modify a second record in the file allocation table associated with the second file, the second record referencing, the second storage block and the second namespace. - View Dependent Claims (8, 9)
-
-
10. A method of dynamically allocating storage between multiple namespaces, the method comprising:
-
storing data associated with at least first and second namespaces on a storage device, the storage device having an associated storage capacity, the first namespace having a first allocation of the storage capacity and the second namespace having a second allocation of the storage capacity; storing a file allocation table including information regarding files associated with the first and second namespaces, the information identifying the namespace and a block of the storage device associated with a particular file; receiving a first request to store a first file associated with the first namespace in the first data storage region; identifying at least one free first block of the first data storage region based on the information in the file allocation table, the first free block previously storing a second file associated with the second namespace; storing the first file at the first free block; modifying a ratio of the first allocation and the second allocation based on a size of the first free block; and modifying the information in the file allocation table to associate the first free block with the first file and the second namespace. - View Dependent Claims (12, 13, 14)
-
-
11. The method of clam 10, further comprising:
-
receiving a second request to store a third file associated with the second namespace in the first data storage region; identifying at least one second free block of the first data storage region based on the information in the file allocation table, the second free block being physically contiguous to the first free block; storing the third file at the second free block; and modifying the information in the file allocation table to associate the second free block with the third file and the second namespace.
-
-
15. A method of dynamically allocating storage between multiple namespaces, the method comprising:
-
storing first data associated with a first namespace in a block of a storage device; modifying a file allocation table in association with storing the first data, the file allocation table including information identifying that the block is associated with the first data and the first namespace; receiving a first instruction to delete the first data; modifying the file allocation table in association with deleting the first data; receiving a second instruction to store second data on the storage device, the second data associated with a second namespace; identifying that the block is free based on the file allocation table; storing the second data in the block; and modifying the file allocation table in association with storing the second data, the updated file allocation, table including information identifying that the block is associated with the second data and the second namespace. - View Dependent Claims (16, 17)
-
-
18. An entertainment device comprising:
-
a communication interface that receives presentation content from an external network; a first data storage region including a common pool of storage blocks associated with at least first and second namespaces, the first namespace being associated with user selected content and the second namespace being associated with system operator selected content; a second data storage region storing a file allocation table including a plurality of records associated with files in the first and second namespaces, each record identifying a particular file stored in the first data storage region, at least one of the storage blocks associated with the particular file and one of the first and second namespaces associated with the particular file; and a controller communicatively coupled to the communication interface, the first data storage region and the second data storage region, the controller configured to; receive a first request to store user selected content; store the user selected content at a first storage block; modify a first record in the file allocation table associated with the first selected content, the first record referencing the first storage block and the first namespace; receive a second request to store first system operator selected content received via the communication interface from the external network; store the first system operator selected content at a second storage block; modify a second record in the file allocation table associated with the user system operator selected content, the second record referencing the second storage block and the second namespace; and output for presentation at least one of the user selected content and the first system operator selected content. - View Dependent Claims (19, 20, 21, 22)
-
Specification