Storage device caching update target data unit while entering down-time mode and operating method of the storage device
US-2024345740-A1 · Oct 17, 2024 · US
US9229864B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9229864-B1 |
| Application number | US-201313834385-A |
| Country | US |
| Kind code | B1 |
| Filing date | Mar 15, 2013 |
| Priority date | Mar 15, 2013 |
| Publication date | Jan 5, 2016 |
| Grant date | Jan 5, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Flushing cache memory of dirty metadata in a plurality of file systems without either letting the caches reach their maximum capacity, or using so much of the total system IO process bandwidth that host system IO process requests are unreasonably delayed, may include determining the length of an interval between sync operations for each individual one of the plurality of file system, and how to divide a system wide maximum sync process IO operation bandwidth fairly between various ones of the plurality of file systems. A computer dynamically measures overall system operation rates, and calculates an available portion of a current calculated sync operation bandwidth for each file system. The computer also measures file system operation rates and determines how long a time period should be between sync operations in each file system.
Opening claim text (preview).
What is claimed is: 1. A method for flushing dirty metadata memory buffers in a file system, comprising: performing a sync process periodically to transfer dirty metadata memory buffers in a cache memory to a persistent memory using IO operations by: identifying dirty metadata memory buffers in the cache memory; calculating an accumulation value indicative of whether there is a need to increase a number of concurrent IO operations for flushing dirty metadata memory buffers in a cache memory to a persistent memory by: dividing a current number of dirty metadata memory buffers in the file system by a flush rate; and dividing the result by T hw , to provide the accumulation value, where T hw is a time to reach a predetermined high water mark of a number of dirty metadata memory buffers in the file system; initiating a new IO operation to transfer a dirty metadata memory buffer to the persistent memory location if the accumulation value indicates there is a need for an increase in a number of current IO operations being used for flushing dirty metadata memory buffers; and refraining from initiating the new IO operation to thereby delay transferring the dirty metadata to the persistent memory location if the accumulation value indicates there is no need for an increase in the number of current IO operations being used for flushing dirty metadata memory buffers. 2. The method of claim 1 , wherein the identifying dirty metadata memory buffers in the cache memory further includes directly measuring the number of dirty metadata memory buffers in the cache memory of the file system. 3. The method of claim 1 , further including determining the flush rate of dirty metadata memory buffers in the file system by: determining a current active log size for the file system; determining a current storage system log size; and calculating the flush rate by dividing the current active log size by the current system log size, and multiplying the result by a global storage system flush rate. 4. The method of claim 1 , wherein calculating T hw includes: determining a current number of log holds used in the file system; determining a current log hold accumulation rate in the file system; selecting the predetermined high water mark to equal a maximum allowable number of dirty metadata buffers in a cache memory in the file system, and subtracting the current number of log holds used from the high water mark, and dividing by the current log hold accumulation rate to obtain the value T hw . 5. The method of claim 1 , wherein the file system is one of a plurality of file systems in a storage system, wherein T hw is determined by; calculating, in each individual one of the plurality of file systems, a value of a time T min to reach a predetermined high water mark in that individual one of the plurality of file systems; and setting the value of T hw for the storage system to be the minimum value of all of the individual file system minimum times T min . 6. The method of claim 5 , wherein determining T min for each individual one of the plurality of file systems further comprises: storing by a plurality of caches in each one of the plurality of file systems, each cache storing a current value for a different system parameter, each parameter having a maximum allowable value; determining a time until each cache must be flushed, including at least one of: calculating a block metadata (BMD) time, T BMD , by subtracting a measured number of log holds used from a predetermined BMD high water mark, and dividing the result by a measured accumulation rate for BDM; calculating a log size time, T log-size , by subtracting a measured active log size from a predetermined log size high water mark, and dividing the result by a measured accumulation rate of active log entries; calculating a log hold time, T log-hold , by subtracting a measured number of log holds used from a predetermined log hold high water mark, and dividing by a measured log hold accumulation rate; calculating an inode buffer time, Ti b , by subtracting a measured number of inode buffers used from a predetermined inode high water mark, and dividing by a measured inode buffer accumulation rate; setting T min for each individual one of the plurality of file systems to be equal to the minimum of T BDM , T log-size , T log-hold , and Ti b . 7. The method of claim 1 , wherein determining availability of an unused IO channel for flushing dirty metadata memory buffers in the cache memory further includes calculating at least one of a file system IO latency time, a size of an active file system log size, an amount of cache memory assigned to log hold events, and a total amount of cache memory currently used for different buffers types in the file system. 8. A system to flush dirty metadata memory buffers in a storage system comprising controller circuitry including communication circuitry enabling electrical signals to flow between at least one host system to at least one file system of the storage system via the controller circuitry, the controller circuitry constructed and arranged to: perform a sync process periodically to transfer dirty metadata memory buffers in a cache memory of the file system to a persistent memory using IO channel operations; identify dirty metadata memory buffers in the cache memory; calculate an accumulation value indicative of whether there is a need to increase a number of concurrent IO operations to flush dirty metadata memory buffers in a cache memory to a persistent memory, including: divide a current number of dirty metadata memory buffers in the file system by a flush rate; and divide the result by T hw , to provide the accumulation value, where T hw is a time to reach a predetermined high water mark of a number of dirty metadata memory buffers in the file system; and initiate a new IO operation to transfer a dirty metadata buffer to the persistent memory location if the accumulation value indicates there is a need for an increase in a number of current IO operations being used for flushing dirty metadata memory buffers; and refrain from initiating a new IO operation to thereby delay transfer of the dirty metadata to the persistent memory location if the accumulation value indicates there is no need for an increase in the number of current IO operations being used for flushing dirty metadata memory buffers. 9. The system of claim 8 , wherein the controller circuitry to identify dirty metadata memory buffers in the cache memory further includes a direct measurement of the number of dirty metadata memory buffers in the cache memory of the file system. 10. The system of claim 8 , wherein the flush rate of dirty metadata memory buffers in the file system is determined by: a current active log size measurement for the file system; a current storage system log size measurement; and divide the current active log size by the current system log size, and multiply the result by a global storage system flush rate. 11. The system of claim 8 , wherein the time T hw is determined by: a current number of log holds used in the file system measurement; a current log hold accumulation rate in the file system measurement; the predetermined high water mark selected to equal a maximum allowable number of dirty metadata buffers in a cache memory in the file system, and subtract the number of log holds used from the high water mark, and divide by the current log hold accumulation rate to obtain the value T hw . 12. The system of claim 8 , wherein the file system is one of a plurality of files systems in a storage system, wherein T hw is determined by; in each individual one of the pluralit
Data transfer between cache memory and other subsystems, e.g. storage devices or host systems · CPC title
with cache invalidating means (G06F12/0815 takes precedence) · CPC title
with main memory updating (G06F12/0806 takes precedence) · CPC title
Metadata, control data · CPC title
Latency reduction · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.