Dynamic management of garbage collection and overprovisioning for host stream storage
First Claim
Patent Images
1. A method for managing data in a non-volatile memory system having a controller in communication with a plurality of sub-drives, the method comprising the controller:
- receiving host data writes of a plurality of data streams from a plurality of host sources at the memory system, wherein each of the plurality of data streams is associated with a respective tenant, each respective tenant corresponding to a host system of a different remotely located subscriber, wherein each tenant is associated with a minimum amount of overprovisioning;
for each of the plurality of data streams associated with the respective tenant, storing all received host writes associated with the respective tenant only in a respective one sub-drive of the plurality of sub-drives, the respective one sub-drive being only utilized for the respective tenant, wherein each of the plurality of data streams is separately identifiable based at least in part on identification information that is included with each stream write from the respective tenant;
measuring a host write workload of each of the plurality of sub-drives; and
altering an amount of overprovisioning of one of the plurality of sub-drives based on the minimum amount of overprovisioning associated with the respective tenant of the sub-drive and a change in the measured host write workload of another of the plurality of sub-drives.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and method is disclosed for managing data in a non-volatile memory. The system may include a non-volatile memory having multiple non-volatile memory sub-drives. A controller of the memory system is configured receive data streams from multiple different host systems and keep data for the separate streams in separate sub-drives. The method may include dynamically changing overprovisioning of the sub-drives in response to changes in relative workload measurements of data writes coming from the different host systems.
11 Citations
20 Claims
-
1. A method for managing data in a non-volatile memory system having a controller in communication with a plurality of sub-drives, the method comprising the controller:
-
receiving host data writes of a plurality of data streams from a plurality of host sources at the memory system, wherein each of the plurality of data streams is associated with a respective tenant, each respective tenant corresponding to a host system of a different remotely located subscriber, wherein each tenant is associated with a minimum amount of overprovisioning; for each of the plurality of data streams associated with the respective tenant, storing all received host writes associated with the respective tenant only in a respective one sub-drive of the plurality of sub-drives, the respective one sub-drive being only utilized for the respective tenant, wherein each of the plurality of data streams is separately identifiable based at least in part on identification information that is included with each stream write from the respective tenant; measuring a host write workload of each of the plurality of sub-drives; and altering an amount of overprovisioning of one of the plurality of sub-drives based on the minimum amount of overprovisioning associated with the respective tenant of the sub-drive and a change in the measured host write workload of another of the plurality of sub-drives. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-volatile memory system for managing data from a plurality of hosts, the system comprising:
-
a non-volatile memory having a plurality of sub-drives; and a controller in communication with the plurality of sub-drives, the controller configured to; receive host data writes of a plurality of data streams from the plurality of hosts, wherein each of the plurality of data streams is associated with a respective tenant, each respective tenant corresponding to a host system of a different remotely located subscriber, wherein each tenant is associated with a minimum amount of overprovisioning; maintain data from each of the plurality of data streams in a different respective separate sub-drive, the different respective separate sub-drive being only utilizable for the respective tenant, each of the plurality of data streams being separately identifiable based at least in part on identification information that is included with each stream write from the respective tenant; measure a host write workload of each of the plurality of sub-drives; determine a respective target overprovisioning level for each of the plurality of sub-drives based on a relative host write workload of each of the plurality of sub-drives; and adjust an overprovisioning of one of the plurality of sub-drives in accordance with the respective target overprovisioning level determined for the one of the plurality of sub-drives and the minimum amount of overprovisioning associated with the respective tenant of the sub-drive. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A non-volatile memory system for managing data from a plurality of hosts, the system comprising:
-
a non-volatile memory having a plurality of sub-drives; means for receiving host data writes of a plurality of different data streams from a plurality of host sources at the memory system and for storing all received host writes for each particular different data stream only in a respective one of the plurality of sub-drives, wherein each of the plurality of different data streams is associated with a respective tenant, each respective tenant corresponding to a host system of a different remotely located subscriber, the respective one of the plurality of sub-drives being only utilizable for the respective tenant, each of the plurality of different data streams being separately identifiable based at least in part on identification information that is included with each stream write from the respective tenant, wherein each tenant is associated with a minimum amount of overprovisioning; means for measuring a host write workload of each of the plurality of sub-drives; and means for altering an amount of overprovisioning of one of the plurality of sub-drives based on the minimum amount of overprovisioning associated with the respective tenant of the sub-drive and a change in the measured host write workload of another of the plurality of sub-drives. - View Dependent Claims (20)
-
Specification