US12541316B2ActiveUtilityA1

Dynamic block write cache pass-through mode

72
Assignee: MICROSOFT TECHNOLOGY LICENSING LLCPriority: Nov 13, 2023Filed: Mar 4, 2024Granted: Feb 3, 2026
Est. expiryNov 13, 2043(~17.3 yrs left)· nominal 20-yr term from priority
G06F 2009/45583G06F 2009/45579G06F 12/0888G06F 12/0802G06F 9/45558G06F 3/0683G06F 3/0656G06F 3/0604G06F 3/065G06F 11/1471G06F 2212/1032G06F 2212/1048G06F 2212/152G06F 2212/154G06F 2212/313G06F 2212/311G06F 12/0813G06F 2212/502G06F 2212/286G06F 3/067G06F 12/0868
72
PatentIndex Score
0
Cited by
89
References
20
Claims

Abstract

Methods and systems for transitioning write input/output (I/O) requests from a write-caching mode to a pass-through mode. The method includes determining when a condition has been met for transitioning the write I/O requests and de-staging one or more logs from a write cache to a backing store, where each log corresponds to a pending write I/O operation by a consumer. The method further includes determining when no log remains in the write cache for de-staging to the backing store and initiating the pass-through mode by routing new write I/O requests directly to the backing store instead of the write cache.

Claims

exact text as granted — not AI-modified
What is claimed: 
     
         1 . A method implemented in a computer system that includes a processor system, comprising:
 determining that a condition has been met for transitioning write input/output (I/O) requests for a consumer from a write-caching mode to a pass-through mode;   de-staging one or more logs for the consumer from a write cache to a backing store, each log corresponding to a pending write I/O operation by the consumer;   determining that no log for the consumer remains in the write cache for de-staging to the backing store; and   initiating the pass-through mode after determining that no log for the consumer remains in the write cache for de-staging to the backing store, including routing a new write I/O request to the backing store rather than routing the new write I/O request to the write cache.   
     
     
         2 . The method of  claim 1 , wherein,
 the consumer is a virtual machine (VM) or a container executing in the computer system; and   de-staging the one or more logs for the consumer to the backing store comprises de-staging the one or more logs to a virtual disk corresponding to the VM or the container.   
     
     
         3 . The method of  claim 1 , wherein the condition for transitioning write I/O requests for the consumer is met when,
 a user request has been identified,   a migration of the consumer has been identified,   an I/O error count for the consumer has reached a first threshold, or   an I/O error rate for the consumer has reached a second threshold.   
     
     
         4 . The method of  claim 3 , wherein,
 the condition for transitioning write I/O requests for the consumer is met when the I/O error count for the consumer has reached the first threshold or the I/O error rate for the consumer has reached the second threshold; and   the I/O error count for the consumer or the I/O error rate for the consumer is calculated over a sliding time window.   
     
     
         5 . The method of  claim 1 , wherein de-staging the one or more logs for the consumer from the write cache to the backing store comprises de-staging the one or more logs from a replica set that is associated with the consumer. 
     
     
         6 . The method of  claim 1 , wherein de-staging the one or more logs for the consumer from the write cache to the backing store comprises de-staging a log from each of a plurality of replica sets in a replica list that is associated with the consumer. 
     
     
         7 . The method of  claim 1 , wherein,
 the new write I/O request is a first new write I/O request; and   the method further comprises:
 routing a second new write I/O request to the write cache after determining that the condition has been met, but prior to determining that no log for the consumer remains in the write cache for de-staging to the backing store. 
   
     
     
         8 . The method of  claim 7 , wherein de-staging the one or more logs for the consumer from the write cache to the backing store comprises introducing latency into the second new write I/O request. 
     
     
         9 . The method of  claim 8 , wherein a magnitude of the latency is based on a rate of de-staging the one or more logs for the consumer from the write cache to the backing store. 
     
     
         10 . The method of  claim 8 , wherein a magnitude of the latency is based on a rate of write I/O requests received after identifying the condition for transitioning write I/O requests for the consumer. 
     
     
         11 . The method of  claim 1 , wherein,
 the new write I/O request is a first new write I/O request; and   the method further comprises:
 determining that write I/O requests for the consumer are to be transitioned from the pass-through mode to the write-caching mode after initiating the pass-through mode; and 
 initiating the write-caching mode, including routing a second new write I/O request to the write cache. 
   
     
     
         12 . A computer system, comprising:
 a processor system; and   a computer storage medium that stores computer-executable instructions that are executable by the processor system to at least:
 determine that a condition has been met for transitioning write input/output (I/O) requests for a consumer from a write-caching mode to a pass-through mode; 
 de-stage one or more logs for the consumer from a write cache to a backing store, each log corresponding to a pending write I/O operation by the consumer; 
 route a first new write I/O request to the write cache after determining that the condition has been met; 
 determine that no log for the consumer remains in the write cache for de-staging to the backing store; and 
 initiate the pass-through mode after determining that no log for the consumer remains in the write cache for de-staging to the backing store, including routing a second new write I/O request to the backing store rather than routing the second new write I/O request to the write cache. 
   
     
     
         13 . The computer system of  claim 12 , wherein,
 the consumer is a virtual machine (VM) or a container executing in the computer system; and   de-staging the one or more logs for the consumer to the backing store comprises de-staging the one or more logs to a virtual disk corresponding to the VM or the container.   
     
     
         14 . The computer system of  claim 12 , wherein the condition for transitioning write I/O requests for the consumer is met when,
 a user request has been identified,   a migration of the consumer has been identified,   an I/O error count for the consumer has reached a first threshold, or   an I/O error rate for the consumer has reached a second threshold.   
     
     
         15 . The computer system of  claim 12 , wherein de-staging the one or more logs for the consumer from the write cache to the backing store comprises de-staging the one or more logs from a replica set that is associated with the consumer. 
     
     
         16 . The computer system of  claim 12 , wherein de-staging the one or more logs for the consumer from the write cache to the backing store comprises de-staging a log from each of a plurality of replica sets in a replica list that is associated with the consumer. 
     
     
         17 . The computer system of  claim 12 , wherein de-staging the one or more logs for the consumer from the write cache to the backing store comprises introducing latency into the first new write I/O request. 
     
     
         18 . The computer system of  claim 17 , wherein a magnitude of the latency is based on a rate of de-staging the one or more logs for the consumer from the write cache to the backing store. 
     
     
         19 . The computer system of  claim 17 , wherein a magnitude of the latency is based on a rate of write I/O requests received after identifying the condition for transitioning write I/O requests for the consumer. 
     
     
         20 . A computer storage medium that stores computer-executable instructions that are executable by a processor system to at least:
 determine that a condition has been met for transitioning write input/output (I/O) requests for a consumer from a write-caching mode to a pass-through mode;   de-stage one or more logs for the consumer from a write cache to a backing store, each log corresponding to a pending write I/O operation by the consumer;   route a first new write I/O request to the write cache after determining that the condition has been met, including introducing latency into the first new write I/O request based on,
 a first rate of de-staging the one or more logs for the consumer from the write cache to the backing store, or 
 a second rate of write I/O requests received after identifying the condition for transitioning write I/O requests for the consumer; 
   determine that no log for the consumer remains in the write cache for de-staging to the backing store; and   initiate the pass-through mode after determining that no log for the consumer remains in the write cache for de-staging to the backing store, including routing a second new write I/O request to the backing store rather than routing the second new write I/O request to the write cache.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.