Method, system and storage medium for mitigating input / output conflict delay
By setting up multiple transaction processing instances and repositories in the custodial storage system, the tail latency problem in the custodial storage service is solved, and efficient processing of read and write transactions and improving service quality is achieved.
Patent Information
- Application Number
- CN202110815849.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-07-19
- Publication Date
- 2025-05-06
- Estimated Expiration
- 2041-07-19
AI Technical Summary
The hosted storage service inevitably has response time differences when processing read and write transactions, resulting in tail delay and affecting service quality.
By setting the first and second transaction processing instances in the storage device custodial storage of the storage system, and rejecting or inserting persistent storage transactions into write streams of different repositories, the balance of write transactions and the optimization of read transactions are achieved.
It effectively alleviates I/O conflict delays, improves the performance and service quality of the storage system, and ensures the acceptable level expected by customers.
Smart Images

Figure CN113535090B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a method, system and storage medium for mitigating input / output conflict delay. Background Art
[0002] Data storage is increasingly entering the field of cloud computing. Hosting file systems on networked distributed servers greatly improves the availability and reliability of remotely stored files, and enables data workloads to be served by the same distributed computing resources, which can be expanded to meet the needs of large-scale computing applications and engineering. Therefore, it is hoped that hosted storage services can access and respond to the massive data storage needs of many client devices at the same time.
[0003] However, the response times of read and write transactions handled by a managed storage service inevitably vary to some extent because transactions are distributed across many storage devices, resulting in many differences in the possible paths to service a single transaction. Although the system architecture can be designed to optimize the average latency of servicing transactions, a small number of transactions will eventually be served with higher than average latency, which occurs at unpredictable times. Such events of higher than average latency are often referred to as tail latency. Tail latency often occurs in bursts of activity and manifests itself as periods of reduced or unresponsive service that may be short in duration but noticeable to end users.
[0004] In order to maintain the quality of storage services at a standard acceptable to paying customers, it is necessary to enable the storage system to overcome the tail latency phenomenon so that the observable quality of service is always maintained at an acceptable level that meets customer expectations. At the same time, it should be understood that the latency between deployed computing systems cannot be completely eliminated. Therefore, it is further desired to manage latency in computing systems so that the mitigation of latency is focused on optimizing the realization of customer expectations. Summary of the invention
[0005] According to one embodiment, a method is provided, which includes: refusing to insert a first persistent storage transaction into a write stream of a first repository of the storage device hosting storage through a first transaction processing instance of the storage device of the storage system; and inserting the first persistent storage transaction into the write stream of a second repository of the storage device through a second transaction processing instance of the storage device.
[0006] According to another embodiment, a system is provided, comprising: one or more processors; and a memory communicatively coupled to the one or more processors, the memory storing computer executable modules capable of being executed by the one or more processors, the computer executable modules performing associated operations when executed by the one or more processors, the computer executable modules comprising: a first processing instance module configured to deny inserting a first persistent storage transaction into a write stream of a first repository of a storage device hosting storage of a storage system; and a second processing instance module configured to insert the first persistent storage transaction into a write stream of a second repository of the storage device.
[0007] According to another embodiment, a computer-readable storage medium is provided, which stores computer-readable instructions capable of being executed by one or more processors, and when the instructions are executed by the one or more processors, the one or more processors perform operations, the operations including: a first transaction processing instance of a storage device of a storage system hosting storage refuses to insert a first persistent storage transaction into a write stream of a first repository of the storage device of the hosting storage; and a second transaction processing instance of the storage device inserts the first persistent storage transaction into the write stream of a second repository of the storage device. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The detailed description is set forth with reference to the accompanying drawings. In the drawings, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears. The use of the same reference numbers in different drawings indicates similar or identical items or features.
[0009] Figure 1 An architectural diagram of a storage system according to an exemplary embodiment of the present disclosure is shown.
[0010] Figure 2 A logical diagram showing how a storage logging engine organizes storage devices hosting storage into repositories.
[0011] Figure 3 A write transaction balancing method according to an exemplary embodiment of the present disclosure is shown.
[0012] Figure 4 A selective block copy method according to an exemplary embodiment of the present disclosure is shown.
[0013] Figure 5 An exemplary storage system for implementing the processes and methods described herein for mitigating I / O conflict delays is shown.
[0014] Figure 6 An example server node is shown for implementing the processes and methods described herein for mitigating I / O conflict delays. DETAILED DESCRIPTION
[0015] The systems and methods discussed herein are directed to implementing a data storage system, and more specifically, a storage logging engine of a storage system, wherein storage devices are logically organized into independent device libraries, and the storage logging engine provides services for write transactions and read transactions between different device libraries, thereby mitigating input / output conflict delays that may result in degraded service quality.
[0016] Figure 1 An architectural diagram of a storage system 100 according to an exemplary embodiment of the present disclosure is shown. The storage system 100 may be a cloud storage system that may provide a collection of servers hosting storage resources to provide distributed storage, improved availability of physical or virtual storage resources, and such benefits.
[0017] The storage system 100 may be implemented on a cloud network 102 of physical or virtual server nodes (wherein any unspecified server node may be referred to as server node 104) connected via physical or virtual network connections. In addition, the cloud network 102 may terminate at a physical or virtual edge node (wherein any unspecified edge node may be referred to as edge node 106) located at the physical and / or logical edge of the cloud network 102. The edge node 106 may be connected to any number of end devices (wherein any unspecified end device may be referred to as end device 108).
[0018] The storage recording engine 110 may be implemented in some instances of the cloud network 102. Each instance of the storage recording engine 110 may be configured to communicate with any number of terminal devices 108 via a network connection according to a file system communication protocol (e.g., a network file system communication protocol), a data query protocol, etc., thereby implementing one or more application programming interfaces ("APIs") that provide file operation calls. The file system communication protocol as described herein may implement an API, such as a portable operating system interface ("POSIX"), a file system in user space ("FUSE"), a network file system ("NFS"), a representation state transfer ("REST") API, etc., which is suitable for the terminal device 108 to represent file operations with different parameters. The data query protocol as described herein may implement an API, such as a structured query language ("SQL") API, which is suitable for the terminal device 108 to represent data storage queries with different parameters.
[0019] In either case, the storage recording engine 110 is configured to communicate with any number of terminal devices 108 via a communication protocol that implements file and / or data operation calls on persistent storage, including one or more of each type of operation conceptualized in the art as "CRUD": one or more create operations, one or more read operations, one or more update operations, and one or more delete operations, each of which acts on files and / or data on persistent storage, but is not limited to such. For simplicity, a set of such operations implemented by the storage recording engine 110 may be referred to as a "persistent storage transaction."
[0020] The instance of the storage recording engine 110 may be further configured to perform persistent storage transactions by performing file and / or data operations on the collective hosted storage 112 of the server nodes 104 of the cloud network 102. The file and / or data operations may include logical file or data operations, such as creating a file and / or data storage entry, deleting a file and / or data storage entry, reading a file and / or data storage entry, writing a file and / or data storage entry, renaming a file and / or data storage entry, moving a file and / or data storage entry from one location to another, and the like. The storage recording engine 110 may perform such file and / or data operations by calling an API of a storage device driver (e.g., an NVM Express ("NVMe") driver) of the hosted storage 112 in the event that the hosted storage 112 includes at least some non-volatile memory ("NVM"). However, the storage recording engine 110 may also perform all file system and / or data storage management system functions required to support such operations, and may also be configured to perform such file operations, so that no calls to other software layers such as other file systems or database management systems, storage device drivers, etc. are required.
[0021] Physical and / or virtual storage devices (“hosted storage 112”) may be hosted on server nodes 104 of the cloud network 102. Data may be stored as logical blocks of predetermined size, which may each be individually referred to as a “chunk”. The hosted storage 112 may be implemented as a physical and / or virtual storage device that implements read and write operations, data structures, storage device layouts, etc. In general, the hosted storage 112 across the server nodes 104 of the storage system 100 may be referred to as “cloud storage”, and any number of such storage devices may be virtualized into one storage device to perform persistent storage transactions from one or more terminal devices 108.
[0022] The hosted storage 112 may include various forms of computer-readable storage media, which may include volatile memory (e.g., random access memory ("RAM")) and / or non-volatile memory (e.g., read-only memory ("ROM"), flash memory, etc.). The computer-readable storage media may also include additional removable storage and / or non-removable storage, including but not limited to flash memory, magnetic storage, optical storage, and / or tape storage, which may provide non-volatile storage of computer-readable instructions, data structures, program modules, etc.
[0023] Non-transient computer-readable storage media are examples of computer-readable media. Computer-readable media include at least two types of computer-readable media, namely computer-readable storage media and communication media. Computer-readable storage media include volatile and non-volatile, removable and non-removable media implemented in any process or technology for storing information such as computer-readable instructions, data structures, program modules or other data. Computer-readable storage media include, but are not limited to, phase change memory ("PRAM"), static random access memory ("SRAM"), dynamic random access memory ("DRAM"), other types of random access memory ("RAM"), read-only memory ("ROM"), electrically erasable programmable read-only memory ("EEPROM"), flash memory or other storage technology, compact disk read-only memory ("CD-ROM"), digital versatile disk ("DVD") or other optical storage, cassettes, tapes, disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, communication media can embody computer-readable instructions, data structures, program modules or other data in a modulated data signal (e.g., a carrier wave) or other transmission mechanism. As defined herein, computer readable storage media do not include communications media.
[0024] It should be understood that the storage device can be implemented to allow write operations according to different data structures, disk layouts, and logic. For example, the storage device can be implemented to store sequential data structures that allow write operations in an append-only manner, although such data structures can eventually be erased to reclaim space. Alternatively, the storage device can be implemented to store data structures that are mutable at any time, such as tracks and sectors on a disk. In addition, the storage device can implement additional storage layout controls, such as a zone name space ("ZNS"). In any case, a block-based basic data structure can be written to the storage device, and it should be understood that although a freely mutable data structure is conventionally implemented, a disk can also implement a sequential data structure that is written in an append-only manner. According to an exemplary embodiment of the present disclosure, the hosted storage 112 can include at least some physical and / or virtual storage devices that are at least partially implemented using flash memory, such as a solid-state drive ("SSD"). However, the hosted storage 112 can include any combination of disks, flash memory, etc., on which write operations are implemented to write sequential data structures in an append-only manner, regardless of whether additional storage layout controls such as ZNS are implemented. The exemplary embodiments of the present invention described below may be understood to be implemented and performed substantially similarly, regardless of the nature of the underlying storage device.
[0025] The storage record engine 110 can configure the hosted storage 112 that collectively constitutes the cloud storage of the storage system 100, as described above, to store files and / or data storage items in some basic data structure, which also stores metadata describing the layout and location of each stored file and / or data storage item. Such metadata can configure the storage record engine 110 to map logical files and / or data items to various locations of the cloud storage on one or more devices across the hosted storage 112, as specified by the terminal device 108, and the data of the logical files and / or data items is stored at the corresponding locations.
[0026] The basic data structures as described herein may include superblocks and chunks. Although "superblock" may have a specific meaning in the context of file systems and data storage, for the purposes of the exemplary embodiments of the present disclosure, a superblock should be understood as a sequence of storage blocks implemented as a storage device, the sequence of storage blocks being pre-pended and appended with attached superblock metadata, and the entire sequence of the sequence of storage blocks and superblock metadata having a fixed length. The storage logging engine 110 may be implemented to write data in parallel in a staggered manner in multiple superblocks, and each write to each single superblock is performed sequentially along the continuous storage blocks of the superblock. According to an exemplary embodiment of the present disclosure, the storage logging engine 110 may configure the storage device hosting the storage 112 to store multiple superblocks, wherein at any given time, a subset of these superblocks is opened for writing, and the rest are sealed. Therefore, each superblock may include multiple storage blocks that contain gigabytes of storage space on the storage device hosting the storage 112. It should be understood that there is no limit to how many Super Blocks a storage device can store, and the number of Super Blocks stored on any given storage device can vary greatly depending on the storage capacity and the Super Block size. According to an exemplary embodiment of the present disclosure, the storage device hosting the storage 112 can store any number of Super Blocks from a few hundred to tens of thousands, and it should be understood that such Super Block counts are merely to illustrate possible differences in order of magnitude and do not limit the exemplary embodiments of the present invention.
[0027] When any storage blocks of a superblock are not written, the storage logging engine 110 can continue to write to the superblock. Continuing to write to the superblock will eventually cause all storage blocks of the superblock to be completely written. Subsequently, before the superblock is marked as deleted, the storage logging engine 110 can no longer write to the superblock, so all storage blocks of the superblock can be marked as invalid and can be recycled for further writing.
[0028] Furthermore, while "block" may have a specific meaning in the context of file systems and data storage, for purposes of the exemplary embodiments of the present disclosure, a block should be understood as a unit of storage written to the managed storage 112 and organized in sub-units called block segments. Each block segment may be written to a storage block of a superblock. Although each block segment of a block according to an exemplary embodiment of the present disclosure should be traversed in a logically contiguous manner, the block segments are not necessarily contiguous within any one superblock, and the block segments of the same block may be written to any number of superblocks of the same managed storage 112.
[0029] According to an exemplary embodiment of the present disclosure, the block metadata may include separate block metadata and block segment index mappings, describing blocks and block segments composed of some records, respectively. These group block metadata logically map files and / or data storage items (which the terminal device 108 can specify through persistent storage transactions implemented by the storage record engine 110) to physical addresses of records, which logically constitute groups of blocks, which in turn constitute those files and / or data storage items. In addition, the block metadata may include a priority flag that indicates that a particular block and / or block segment is prioritized. Such priority flags are subsequently introduced with reference to exemplary embodiments of the present disclosure.
[0030] Through the implementation of the storage system 100 as described above, a persistent storage transaction may originate from a terminal device 108, which may communicate with a storage recording engine 110 via a network connection as described above, so that the storage recording engine 110 executes the persistent storage transaction. The execution of a persistent storage transaction may include the storage recording engine 110 writing records constituting one or more block segments; writing a block segment index map that maps records to block segments; writing single block metadata that maps one or more block segments to one or more blocks; and writing super block metadata that maps one or more block segments to one or more super blocks.
[0031] Because the storage system 100 according to an exemplary embodiment of the present disclosure may be implemented on a cloud network 102 to service multiple end devices 108, many concurrent read and write transactions may occur when servicing calls from the end devices 108. Therefore, in the event that the storage logging engine 110 simultaneously assigns one or more read transactions and one or more write transactions to the same storage device, the single storage device may incur abnormal delays (hereinafter referred to as "input / output ('I / O') conflict delays") when executing the read transactions and / or write transactions, compared to the average delay of such storage device servicing calls as part of the storage system 100, particularly the delay of servicing read calls (hereinafter referred to as "average read latency").
[0032] Compared to average read latency (which may last for hundreds of microseconds), instances of I / O conflict latency may last for milliseconds, resulting in significant degradation in the performance of the storage system 100 due to the perceived latency of servicing transactions, including from the perspective of a user of the end device 108. Due to the largely passive nature of read transactions by users of the end device 108, the user may be more acutely aware of read latency during the execution of operations at the end device 108 that result in read calls to the storage system 100 than during the execution of operations at the end device 108 that result in write calls to the storage system 100. Therefore, I / O conflict latency that exceeds the average read latency may affect the user's perception of quality of service ("QoS"). To achieve a perception of stable QoS, it is generally desirable that the average latency be shorter than the p95 or p99 latency: that is, latency that is longer in duration than the 95th or 99th percentile of all observed latencies, which may be classified as tail latency.
[0033] Moreover, I / O contention delays may exacerbate performance degradation that may be perceived by a user of the terminal device 108, particularly when compounded with other forms of abnormal delays that exceed average performance delays, such as network delays in communications between the storage recording engine 110 and the terminal device 108, or processing delays in one or more processors of the computing system 100 executing computer executable instructions that constitute the storage recording engine 110.
[0034] It is known to those skilled in the art that I / O conflict delays can be mitigated by replicating copies of data stored in the managed storage 112 of the storage system so that read transactions and write transactions for the same data can be serviced by different storage devices that each store a copy of the same data. However, such solutions cannot scale to arbitrarily large storage loads or arbitrarily large numbers of users because the size of the replicas would increase arbitrarily to mitigate conflict delays caused by storing more data, and an arbitrarily large number of replicas would need to be created to mitigate conflict delays caused by more concurrent users. Therefore, replication cannot be used as a general solution to resolve all I / O conflict delays.
[0035] Therefore, an exemplary embodiment of the present invention provides a selective read conflict delay mitigation method, wherein a storage recording engine is configured to organize storage devices hosting storage into storage repositories, each storage device including a first storage repository and a second storage repository, and each of the dual-mode storage repositories is switchably configured to serve read transactions or write transactions. Each storage device is also configured to reversely switch (converse switch) the two storage repositories in lockstep: that is, the activation mode of the first storage repository is switched to the first mode to stop serving write transactions, while the activation mode of the second storage repository is switched to the second mode to resume serving write transactions, and the activation mode of the second storage repository is switched to the first mode to stop serving write transactions, while the activation mode of the first storage repository is switched to the second mode to resume serving write transactions. This lockstep reverse switching can effectively balance read transactions and write transactions between different storage repositories, avoid conflicts between read transactions and write transactions on the same storage device, and mitigate I / O conflict delays, thereby minimizing the perception of QoS reduction by users of terminal devices served by the storage system.
[0036] To achieve this, according to an exemplary embodiment of the present disclosure, each storage device is configured to run a first transaction processing instance and a second transaction processing instance simultaneously. The first transaction processing instance may be configured to receive transactions to be serviced by a first repository of the storage device according to an activation mode of the first repository. The second transaction processing instance may be configured to receive transactions to be serviced by a second repository of the storage device according to an activation mode of the second repository. According to the lock-step reverse switching implemented by the storage device, the respective activation modes of the first repository and the second repository should be different modes at the same time.
[0037] Each of the first and second storage banks includes a storage device controller that may include an electronic processor and an integrated circuit that communicatively couples a storage medium of the storage device to an input / output interface of the storage device. The storage capacity of the storage device in either storage bank is subsequently referred to as the "storage bank storage capacity."
[0038] Figure 2 A logical diagram of a storage logging engine interfacing with multiple storage devices hosting storage is shown, each storage device being organized into a repository.
[0039] As described above, the storage recording engine 110 receives persistent storage transactions and services these transactions by mapping them to block metadata, and then interfaces with storage device drivers of certain storage devices hosting storage 112 to perform transactions based on the mapping of block metadata to physical addresses on the storage devices. Persistent storage transactions can originate from the terminal device 108, that is, workloads from the terminal device 108 that need to store data at the storage system 100 and perform file and / or data operation calls as described above. Alternatively, persistent storage transactions can originate from the storage recording engine 110 itself, that is, the storage recording engine 110 can modify the open and seal state of a super block, modify the open and seal state of a block, etc.
[0040] The storage device driver may interface with multiple storage devices in turn, and may convert persistent storage transactions to be processed by any one or more storage devices. The transaction processing instance running on the storage device may execute the persistent storage transaction by inserting each persistent storage transaction into one of multiple write streams of the storage repository of the storage device. Specifically, in the persistent storage transaction, a read or write transaction may be processed by the first transaction processing instance 202, and a read or write transaction may be processed by the second transaction processing instance 204. The first transaction processing instance 202 may be configured to have access to the write stream of the first storage repository of the storage device, and the second transaction processing instance 204 may be configured to have access to the write stream of the second storage repository of the storage device.
[0041] The write streams of the storage device may include, for example, a record write stream 206, where the storage logging engine 110 may insert the writes of the record; a garbage collection ("GC") write stream 208, where the storage logging engine 110 may insert the writes of the record generated by the GC processing of the storage logging engine 110; and a metadata write stream 210, where the storage logging engine 110 may insert writes to the transaction log and checkpoint writes. It should be understood that the managed storage 112 according to an exemplary embodiment of the present disclosure may include multiple separate storage devices, and each separate storage device may have each of the above-mentioned several write streams. These write streams may be accessed by calling the API of any number of instances of the storage device driver 216 of each storage device.
[0042] Therefore, the first transaction processing instance 202 can insert the write transaction into any one of the record write stream 206, GC write stream 208, or metadata write stream 210 (depending on the nature of the write transaction) of the first storage repository of the single storage device, so that the single storage device executes the write transaction. However, the first transaction processing instance 202 cannot insert the write transaction into any write stream of the second storage repository.
[0043] In addition, the second transaction processing instance 202 can insert the write transaction into any one of the record write stream 206, GC write stream 208, or metadata write stream 210 (depending on the nature of the write transaction) of the second storage repository of the single storage device, so that the single storage device executes the write transaction. However, the second transaction processing instance 202 cannot insert the write transaction into any write stream of the first storage repository.
[0044] In addition, the first transaction processing instance 202 can be configured to forward the read transaction to the first storage repository, and the second transaction processing instance 204 can be configured to forward the read transaction to the second storage repository. The read transaction can be executed by the storage device according to the implementation of the storage device known to those skilled in the art, and the read transaction is not inserted into the write stream. The details of the read transaction execution do not need to be further elaborated here.
[0045] Under the cloud storage recording engine 110, Figure 2 Two storage devices are shown for illustration purposes, each storage device including a first storage repository and a second storage repository 214, the second storage repository 214 including a number of storage devices.
[0046] Each storage device is configured to switch the activation mode of the first storage bank 212 and the activation mode of the second storage bank 214 in opposite directions in lockstep. In other words, each storage device switches the two activation modes simultaneously. In addition, each switching makes the two activation modes opposite to each other, so that the activation mode of the first storage bank 212 is set to the first mode and the activation mode of the second storage bank 214 is set to the second mode, or so that the activation mode of the first storage bank 212 is set to the second mode and the activation mode of the second storage bank 214 is set to the first mode.
[0047] Both the first transaction processing instance 202 and the second transaction processing instance 204 are configured to stop inserting writes into the write stream of the storage device of the respective storage library when the activation mode of their respective storage libraries is set to the first mode, and to continue inserting write operations into the write stream of the storage device of the corresponding library when the activation mode is set to the second mode. Therefore, the first mode causes the storage library of the storage device to stop servicing write transactions, while the second mode causes the storage library of the storage device to resume servicing write transactions; both modes have no restrictions on read transactions. Figure 2 As shown, it can be seen that the storage repository that does not serve write transactions is shown with a dotted line, and at the first storage device, the first storage repository 212 serves the write transactions, while at the second storage device (which should not be understood as being synchronized with the first storage device in any way), the second storage repository 214 is serving the write transactions.
[0048] Regardless of which storage repository of the storage device is servicing the write transaction, the read transaction can only be serviced by those specific storage devices storing the data requested to be read. Therefore, the lock-step reverse switching implemented by the storage recording engine 110 as described above avoids conflicts between read and write transactions at one storage repository (if not necessary at another storage repository) while the storage repository sets its activation mode to the first mode. Therefore, for read transactions executed at at least one storage repository of the storage device, I / O conflict delays are mitigated, and for at least some read transactions serviced by the storage system 100, the perception of QoS degradation is minimized.
[0049] Based on the above architecture of the storage system implementing the storage recording engine, the exemplary embodiments of the present disclosure further implement a write transaction balancing method; and a selective block replication method. Each of these methods will be described below.
[0050] According to the above exemplary embodiment of the storage system implementing the storage recording engine, it is not desirable to exclusively serve write transactions at any one storage repository; if all write transactions are served in one storage repository, then more and more read transactions will be directed to that storage repository, and this inconsistency between writes and reads will lead to a weakening of I / O conflict delay mitigation, and ultimately cannot be effectively mitigated. Therefore, exemplary embodiments of the present disclosure provide a balance of write transactions between storage repositories.
[0051] Figure 3 A write transaction balancing method 300 is shown according to an exemplary embodiment of the present disclosure.
[0052] At step 302, a storage logging engine of a storage system receives a persistent storage transaction that causes a write to hosted storage of the storage system and forwards the persistent storage transaction to a storage device driver of one or more storage devices of the hosted storage.
[0053] As described above, the persistent storage transaction may originate from the terminal device 108, that is, the workload from the terminal device 108 needs to store data at the storage system 100 and perform the file and / or data operation calls described above. Alternatively, the persistent storage transaction may originate from the storage recording engine 110 itself, that is, the storage recording engine 110 may modify the open and sealed state of the super block, modify the open and sealed state of the block, etc.
[0054] At step 304 , the first transaction processing instance of the storage device refuses to insert the transaction into the write stream of the first storage repository of the storage device.
[0055] At step 306 , the second transaction processing instance of the storage device inserts the transaction into the write stream of the second storage repository of the storage device.
[0056] It should be understood that currently, the first storage repository has an activation mode set to the first mode, such that the first storage repository has stopped servicing write transactions. Conversely, in lockstep, the second storage repository has an activation mode set to the second mode, such that the second storage repository is continuously servicing write transactions. Therefore, the first transaction processing instance cannot insert transactions into the write stream of the first storage repository of the storage device, while the second transaction processing instance can insert transactions into the write stream of the second storage repository of the storage device.
[0057] In step 308, the storage device detects a switching trigger condition.
[0058] The storage device can detect various switching trigger conditions so that lock-step reverse switching can occur in different situations to best alleviate I / O conflict delays.
[0059] According to an exemplary embodiment of the present disclosure, the switching trigger condition may be that the difference between the consumption storage capacity of the second storage library and the consumption storage capacity of the first storage library exceeds a difference threshold. The difference threshold may be a value expressed in any appropriate data storage unit. Alternatively, the switching trigger condition may be that the difference between the total cumulative data of the write transactions served by the second storage library of the storage device and the total cumulative data of the write transactions served by the first storage library of the storage device exceeds the difference threshold. The difference threshold may be a value expressed in any appropriate data storage unit. As described above, the difference in write transactions of a storage library also results in a difference in read transactions, so in the event of an increase in the difference, it is desirable to perform a lock-step reverse switch before the difference grows too large (indicated by the size of the difference threshold).
[0060] For the second repository, the consumed repository storage capacity may increase (due to servicing write transactions, which fills up the storage) or decrease (due to deleting data structures to reclaim storage); for the first repository, the consumed storage capacity may only decrease (because it does not support write transactions). Therefore, over time, the probability of the difference exceeding the difference threshold increases. Therefore, the difference threshold enables the lock-step reverse switching to occur periodically so that I / O conflict latency mitigation can remain effective for both repositories.
[0061] In addition, according to an exemplary embodiment of the present disclosure, the switching trigger condition may be that the difference between the total accumulated write data of the write transactions served by the first storage library of the storage device and the total accumulated write data of the write transactions served by the second storage library of the storage device is lower than the parity threshold. Alternatively, the switching trigger condition may be that the difference between the consumption library storage capacity of the first storage library and the consumption library storage capacity of the second storage library falls below the parity threshold. If there is a difference between the total accumulated write data or the consumed capacity of the two storage libraries, and the difference is getting smaller and smaller, it is expected that one storage library is allowed to serve the write transaction before the switch until the two storage libraries reach approximate parity in terms of the total accumulated write data or the consumed capacity. Since approximate parity has been achieved in terms of the accumulated data written and / or the consumed capacity before the switch, there will be no difference in the subsequent write transactions, so the same switching trigger condition is unlikely to be triggered twice in a row (on the contrary, a different switching trigger condition may be triggered the next time).
[0062] In addition, according to an exemplary embodiment of the present disclosure, in the process of balancing the total cumulative write data of the write transactions served, the peer threshold does not need to make the two storage repositories reach exact parity, but can make the two storage repositories reach substantial parity with a slight imbalance. In addition, the peer threshold based on the total cumulative data of writes can be set based on the difference between the consumed library storage capacity, or the peer threshold based on the consumed library storage capacity can be set based on the difference between the total cumulative data of writes. For example, for a storage repository with a lower total cumulative write data of the write transactions served, the peer threshold based on the consumed library storage can be set to 51% to 49% (for substantial parity with a slight imbalance, rather than 50% to 50% accurate parity). When the peer threshold is unbalanced with one storage repository in this way, the storage repository with the unbalanced peer threshold will receive slightly more write transactions, which in turn can reduce the difference between the total cumulative write data of the write transactions served between the two storage repositories.
[0063] In addition, according to an exemplary embodiment of the present disclosure, the switching trigger condition can be the passage of a fixed duration of a timer. This can ensure that switching can be performed at specific time intervals even if the above two conditions are not triggered. In addition, if the difference threshold is significantly large (indicating a substantial imbalance between the two storage repositories) when the switching is performed, or if the peer threshold is significantly large (again indicating a substantial imbalance between the two storage repositories) after the switching is performed, the storage device can shorten the duration of the timer to force more frequent switching.
[0064] In step 310 , the storage device performs a lock-step reverse switching on the first storage bank and the second storage bank.
[0065] At step 312 , the second transaction processing instance of the storage device refuses to insert the transaction into the write stream of the second storage repository of the storage device.
[0066] At step 314 , the first transaction processing instance of the storage device inserts the transaction into the write stream of the first storage repository of the storage device.
[0067] After the lock-step reverse switch, it can be seen that the second storage library now stops servicing write transactions, and the first storage library now services write transactions. Subsequently, any number of the same or different switch trigger conditions may occur any number of times, resulting in further lock-step reverse switches in each instance. Over time, the repetition of such switches can prevent the accumulation of writes and the resulting reads in one storage library from exceeding the accumulation of the other storage library, thereby alleviating I / O conflict delays, thereby minimizing the perception of QoS degradation by users of end devices served by the storage system.
[0068] According to the above exemplary embodiment of the storage system implementing the storage recording engine, although the I / O conflict delay can be alleviated to some extent by using duplicate data copies, it is not desirable to duplicate copies of all data due to the extremely high storage cost as described above. Therefore, the exemplary embodiment of the present invention provides selectively replicating data between storage repositories.
[0069] Figure 4 A selective block copy method 400 according to an exemplary embodiment of the present disclosure is shown.
[0070] At step 402, a storage logging engine of a storage system receives a persistent storage transaction that causes a read from hosted storage of the storage system and forwards the persistent storage transaction to a storage device driver of one or more storage devices of the hosted storage.
[0071] As described above, the persistent storage transaction may originate from the terminal device 108, that is, the workload from the terminal device 108 needs to store data in the storage system 100 and perform the above-mentioned file and / or data operation calls. Alternatively, the persistent storage transaction may originate from the storage recording engine 110 itself.
[0072] At step 404, the storage device driver sends the transaction to a first storage repository of the storage device.
[0073] At step 406 , the storage logging engine determines based on the block metadata that data returned from the first storage repository of the storage device in response to the transaction is prioritized.
[0074] According to an exemplary embodiment of the present disclosure, a priority flag included in the block metadata stored by the storage recording engine may indicate that one or more blocks or block segments constituting the returned data are prioritized. The priority flag may be set, for example, by a terminal device workload initiated by a persistent storage transaction. For example, a user's operation on a terminal device may specify that data written in a particular write operation has a higher priority than other data; this may result in the workload instructing the storage recording engine to mark the blocks and / or block segments constituting the written data as priorities in the block metadata.
[0075] Prioritization of data may allow data sets to be designated as prioritized to mitigate I / O conflict delays. In this manner, the storage system 100 may provide improved QoS for specific users that generate workloads that output large amounts of critical data (e.g., data used in time-sensitive or real-time computing applications) by consistently mitigating I / O conflict delays for read accesses to entire critical data sets.
[0076] At step 408 , the second transaction processing instance of the storage device inserts a write transaction into the write stream of the second storage repository of the storage device, the write transaction causing the second storage repository of the storage device to copy the prioritized data returned from the first storage repository of the storage device.
[0077] After certain blocks and / or block segments of the storage data are marked as prioritized and requested by the read transaction, the storage device continues to copy the prioritized data from the first storage repository to the second storage repository. In other words, since the second storage repository is continuing to perform the write transaction, the second storage repository sets its activation mode to the second mode, and the first storage repository sets its activation mode to the first mode. Therefore, step 408 results in the prioritized data having an additional copy written to the second storage repository of the storage device, which is in the process of servicing the write transaction.
[0078] Furthermore, replication of the prioritized data increases the reliability of the prioritized data by providing a backup of the prioritized data; even if one copy of the prioritized data suffers data loss, another copy of the prioritized data may remain available, thereby supporting recovery.
[0079] Since the prioritized data is now stored in both storage repositories, the prioritized data can always be read from the storage repositories that do not support write transactions, regardless of how many lock-step reverse switches may occur. Therefore, according to an exemplary embodiment of the present disclosure, after the prioritized data is successfully replicated as a result of completion of step 408, I / O conflict delays are mitigated on an ongoing basis, thereby minimizing the perception of QoS degradation of the prioritized data by users of the terminal devices served by the storage system.
[0080] At step 410, the storage logging engine detects a duplicate storage reclamation condition.
[0081] It is not always necessary to store the replicated copies of the prioritized data indefinitely. For example, as described above, the replicated copies are only needed when the prioritized data is actively read. Therefore, in the event that the read transaction is no longer actively requesting the prioritized and replicated data, the storage logging engine can be configured to cause one or more storage devices to discard the prioritized and replicated data.
[0082] The storage logging engine 110 can implement detection of a replicated storage reclamation condition. According to an exemplary embodiment of the present disclosure, the replicated storage reclamation condition can be the difference between the average read transaction request rate of data on the managed storage of the storage system and the read transaction request rate of the replicated copies of the data exceeding the inactivity threshold on any storage repository. As described above, inactivity in the read transactions of the storage repository results in the occupation of storage space with minimal benefit, so the storage space occupied by the replicated copies of the data needs to be reclaimed.
[0083] In step 412, one of the first transaction processing instance and the second transaction processing instance of the storage device inserts a write transaction into the GC write stream of one of the first repository and the second repository of the storage device, wherein the write transaction causes the storage device of the second repository to mark the replica copy of the prioritized data for deletion during a subsequent running iteration of the garbage collection process of the storage recording engine 110.
[0084] It should be noted that storage may be reclaimed outside of the above GC process. Although the GC process described herein may only reclaim storage occupied by duplicate copies of data, it should be understood that other storage reclamation processes may reclaim storage occupied by both the original prioritized data and duplicate copies of the prioritized data.
[0085] For purposes of understanding this step, it may be assumed that the storage device of step 412 is the same storage device as the storage device of steps 406 and 408, although in many cases during normal operation of the storage system, for the same storage device, steps 406 and 408 need not follow step 412. In fact, step 412 need not be coupled to steps 406 and 408, and may occur at any time or frequency relative to steps 406 and 408, and may increase the frequency of performing steps 406 and 408.
[0086] Figure 5 An example storage system 500 is shown for implementing the above-described processes and methods for mitigating I / O conflict delays.
[0087] The techniques and mechanisms described herein may be implemented by multiple instances of system 500, as well as any other computing devices, systems, and / or environments. System 500 may be one or more computing systems of a cloud computing system that provides physical or virtual computing and storage resources known to those skilled in the art. Figure 5 The system 500 shown in is only an example of a system and is not intended to impose any limitation on the scope of use or functionality of any computing device used to perform the above-described processing and / or processes. Other known computing devices, systems, environments, and / or configurations that may be suitable for use with the described embodiments include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, game consoles, programmable consumer electronic devices, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, implementations using field programmable gate arrays ("FPGAs") and application-specific integrated circuits ("ASICs"), and the like.
[0088] System 500 may include one or more processors 502 and system memory 504, which are communicatively coupled to processor 502. Processor 502 and system memory 504 may be physical, virtual and / or distributed. Processor 502 may execute one or more modules and / or processes to enable processor 502 to perform various functions. In an embodiment, processor 502 may include a central processing unit ("CPU"), a graphics processing unit ("GPU"), both a CPU and a GPU, or other processing units or components known in the art. In addition, each of processors 502 may have its own local memory, which may also store program modules, program data and / or one or more operating systems.
[0089] System memory 504 may be volatile (e.g., RAM), non-volatile (e.g., ROM), flash memory, a micro hard drive, a memory card, etc., or some combination thereof, depending on the exact configuration and type of system 500. System memory 504 may include one or more computer executable modules 506 that may be executed by processor 502.
[0090] Module 506 may include, but is not limited to, a block API and scheduler module 508 , a transaction receiving module 510 , a trigger condition detection module 512 , and a reclaim condition detection module 514 .
[0091] The block API and scheduler module 508 may be configured to map persistent storage transactions to block metadata, as described above with reference to Figure 2 described.
[0092] The transaction receiving module 510 may be configured to receive persistent storage transactions that cause writes or reads to the managed storage, as described above with reference to Figure 3 and Figure 4 described.
[0093] The trigger condition detection module 512 can be configured to detect a switching trigger condition, as described above with reference to Figure 3 described.
[0094] As mentioned above Figure 4 As described above, the reclaim condition detection module 514 may be configured to detect a duplicate storage reclaim condition.
[0095] The system 500 may also include an input / output (I / O) interface 540 and a communication module 550, allowing the system 500 to communicate with the network (as described above with reference to FIG. Figure 1 The cloud network described above communicates with other systems and devices. The network may include the Internet, wired media (e.g., a wired network or a direct wired connection) and wireless media (e.g., acoustic, radio frequency ("RF"), infrared and other wireless media).
[0096] Figure 6 An example server node 600 is shown for implementing the above-described processes and methods for mitigating I / O conflict delays.
[0097] The techniques and mechanisms described herein may be implemented by multiple instances of system 600, as well as any other computing devices, systems, and / or environments. System 600 may be one or more computing systems of a cloud computing system that provides physical or virtual computing and storage resources known to those skilled in the art. Figure 6 The system 600 shown in is only an example of a system and is not intended to impose any limitation on the scope of use or functionality of any computing device used to perform the above-mentioned processing and / or processes. Other known computing devices, systems, environments and / or configurations that may be suitable for use with the described embodiments include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, game consoles, programmable consumer electronic devices, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, implementations using field programmable gate arrays ("FPGAs") and application-specific integrated circuits ("ASICs"), etc.
[0098] System 600 may include one or more processors 602 and system memory 604, which are communicatively coupled to processor 602. Processor 602 and system memory 604 may be physical, virtual and / or distributed. Processor 602 may execute one or more modules and / or processes to enable processor 602 to perform various functions. In an embodiment, processor 602 may include a central processing unit ("CPU"), a graphics processing unit ("GPU"), both a CPU and a GPU, or other processing units or components known in the art. In addition, each of processors 602 may have its own local memory, which may also store program modules, program data and / or one or more operating systems.
[0099] System memory 604 may be volatile (e.g., RAM), non-volatile (e.g., ROM, flash memory, micro hard drive, memory card, etc.), or some combination thereof, depending on the exact configuration and type of system 600. System memory 604 may include one or more computer executable modules 606 that may be executed by processor 602.
[0100] The module 606 may include, but is not limited to, a first processing instance module 608 , a second processing instance module 610 , and a reverse switching module 612 .
[0101] As mentioned above Figure 2 As described above, the first processing instance module 608 may be configured to insert a write transaction into a write stream of a storage device of the first storage repository, and forward a read transaction to the storage device of the first storage repository.
[0102] As mentioned above Figure 2 As described above, the second processing instance module 610 may be configured to insert a write transaction into a write stream of a storage device of the second storage repository, and forward a read transaction to the storage device of the second storage repository.
[0103] The reverse switching module 612 may be configured to reversely switch the activation mode of the first storage bank and the activation mode of the second storage bank in lockstep, as described above with reference to FIG. Figure 2 described.
[0104] The system 600 may also include an input / output (I / O) interface 640 and a communication module 650, which allows the system 600 to communicate with the system via a network (as described above with reference to FIG. Figure 1 The cloud network described above communicates with other systems and devices. The network may include the Internet, wired media (e.g., a wired network or a direct wired connection) and wireless media (e.g., acoustic, radio frequency ("RF"), infrared and other wireless media).
[0105] Some or all of the operations of the above methods may be performed by executing computer-readable instructions stored on a computer-readable storage medium, as described below. The term "computer-readable instructions" used in the specification and claims includes routines, applications, application modules, program modules, programs, components, data structures, algorithms, etc. Computer-readable instructions can be implemented on a variety of system configurations, including single-processor or multi-processor systems, minicomputers, mainframe computers, personal computers, handheld computing devices, microprocessor-based programmable consumer electronic devices, combinations thereof, etc.
[0106] Computer-readable storage media may include volatile memory (e.g., random access memory ("RAM")) and / or non-volatile memory (e.g., read-only memory ("ROM"), flash memory, etc.). Computer-readable storage media may also include additional removable and / or non-removable memory, including but not limited to flash memory, magnetic storage, optical storage, and / or tape storage, which may provide non-volatile storage of computer-readable instructions, data structures, program modules, etc.
[0107] Non-transient computer-readable storage media are examples of computer-readable media. Computer-readable media include at least two types of computer-readable media, namely computer-readable storage media and communication media. Computer-readable storage media include volatile and non-volatile, removable and non-removable media implemented in any process or technology for storing information such as computer-readable instructions, data structures, program modules or other data. Computer-readable storage media include, but are not limited to, phase change memory ("PRAM"), static random access memory ("SRAM"), dynamic random access memory ("DRAM"), other types of random access memory ("RAM"), read-only memory ("ROM"), electrically erasable programmable read-only memory ("EEPROM"), flash memory or other storage technology, compact disk read-only memory ("CD-ROM"), digital versatile disk ("DVD") or other optical storage, cassettes, tapes, disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, communication media can embody computer-readable instructions, data structures, program modules or other data in a modulated data signal (e.g., a carrier wave) or other transmission mechanism. As defined herein, computer readable storage media do not include communications media.
[0108] The computer readable instructions stored on one or more non-transitory computer readable storage media, when executed by one or more processors, may perform the above-referenced Figures 1 to 4The operations described. Generally, computer-readable instructions include routines, programs, objects, components, data structures, etc. that perform specific functions or implement specific abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and / or in parallel to implement the described process.
[0109] Through the above technical solution, the present disclosure provides a storage recording engine for a storage system. The storage recording engine logically organizes the storage devices of the storage system into independent device libraries. The storage recording engine balances the services for write transactions and the services for read transactions between different device libraries, reducing input / output conflict delays that may cause service quality degradation. In addition, the storage recording engine is configured to mark certain data as prioritized in the block metadata, so that users of the storage service can obtain consistent relief from conflict delays for read access to the entire critical data set. In addition, since the inactivity of read transactions in the storage repository results in minimal benefit from occupying storage space, the storage occupied by the replicated copies of the data can be reclaimed after the period of read inactivity.
[0110] Instance Entry
[0111] A. A method comprises: refusing, by a first transaction processing instance of a storage device of a storage system hosting storage, to insert a first persistent storage transaction into a write stream of a first repository of the storage device of the storage device hosting storage; and inserting, by a second transaction processing instance of the storage device, the first persistent storage transaction into a write stream of a second repository of the storage device.
[0112] B. The method according to paragraph A further includes detecting a switching trigger condition by the storage device.
[0113] C. The method according to paragraph B, wherein the switching trigger condition includes that the difference between the library storage capacity of the second library and the library storage capacity of the first library exceeds a difference threshold.
[0114] D. A method according to paragraph B, wherein the switching trigger condition includes a difference between a total write transaction served by the first repository of the storage device and a total write transaction served by the second repository of the storage device being lower than a peer threshold.
[0115] E. The method of paragraph B, wherein the switching trigger condition includes the expiration of a fixed duration of a timer.
[0116] F. The method according to paragraph B also includes the storage device performing lock-step reverse switching on the first storage library and the second storage library.
[0117] G. The method according to paragraph F also includes: refusing to insert the second persistent storage transaction into the write stream of the second repository of the storage device through the second transaction processing instance of the storage device; and inserting the second persistent storage transaction into the write stream of the first repository of the storage device through the first transaction processing instance of the storage device.
[0118] H. A system comprises: one or more processors; and a memory communicatively coupled to the one or more processors, the memory storing computer executable modules executable by the one or more processors, the computer executable modules performing associated operations when executed by the one or more processors, the computer executable modules comprising: a first processing instance module configured to deny inserting a first persistent storage transaction into a write stream of a first repository of a storage device hosting storage of a storage system; and a second processing instance module configured to insert the first persistent storage transaction into a write stream of a second repository of the storage device.
[0119] I. The system according to paragraph H further includes: a trigger condition detection module configured to detect a switch trigger condition.
[0120] J. The system according to paragraph I, wherein the switching trigger condition includes a difference between the library storage capacity of the second library and the library storage capacity of the first library exceeding a difference threshold.
[0121] K. A system according to paragraph I, wherein the switching trigger condition includes a difference between total write transactions served by the first repository of the storage device and total write transactions served by the second repository of the storage device being lower than a peer threshold.
[0122] L. A system according to paragraph I, wherein the switching trigger condition includes the expiration of a fixed duration of a timer.
[0123] M. The system according to paragraph I further includes: a reverse switching module configured to perform lock-step reverse switching on the first storage memory and the second storage memory.
[0124] N. A system according to paragraph M, wherein the second processing instance module is further configured to: refuse to insert a second persistent storage transaction into a write stream of the second repository of the storage device; and insert the second persistent storage transaction into the write stream of the first repository of the storage device.
[0125] O. A computer-readable storage medium storing computer-readable instructions capable of being executed by one or more processors, wherein the instructions, when executed by the one or more processors, cause the one or more processors to perform operations, the operations comprising: refusing, by a first transaction processing instance of a storage device of a storage system hosting storage, to insert a first persistent storage transaction into a write stream of a first repository of the storage device of the hosting storage; and inserting, by a second transaction processing instance of the storage device, the first persistent storage transaction into a write stream of a second repository of the storage device.
[0126] P. The computer-readable storage medium according to paragraph O further includes detecting a switching trigger condition by the storage device.
[0127] Q. The computer-readable storage medium of paragraph P, wherein the switching trigger condition includes a difference between a library storage capacity of the second library and a library storage capacity of the first library exceeding a difference threshold.
[0128] R. A computer-readable storage medium according to paragraph P, wherein the switching trigger condition includes a difference between total write transactions served by the first repository of the storage device and total write transactions served by the second repository of the storage device being lower than a peer threshold.
[0129] S. The computer-readable storage medium of paragraph P, wherein the switching trigger condition comprises a fixed duration of a timer expiring.
[0130] T. The computer-readable storage medium according to paragraph P, further comprising the storage device performing lock-step reverse switching on the first storage library and the second storage library.
[0131] U. The computer-readable storage medium according to paragraph T further includes: refusing to insert a second persistent storage transaction into a write stream of the second repository of the storage device through the second transaction processing instance of the storage device; and inserting the second persistent storage transaction into the write stream of the first repository of the storage device through the first transaction processing instance of the storage device.
[0132] Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claims.
Claims
1. A method for mitigating input / output conflict delay, the method being applied in a storage device, the storage device being configured to simultaneously run a first transaction processing instance and a second transaction processing instance, comprising: If a switching trigger condition is detected in the first operating mode, switching to the second operating mode; If a switching trigger condition is detected in the second operating mode, switching to the first operating mode; wherein the switching trigger condition is repeated to balance the write transactions and read transactions between the first storage library in the storage device and the second storage library in the storage device; wherein, The first operation mode includes: the first transaction processing instance refuses to insert the first persistent storage transaction into the write stream of the first repository, so that the first repository stops writing transactions; and the second transaction processing instance inserts the first persistent storage transaction into the write stream of the second repository, so that the second repository resumes writing transactions; The second operation mode includes: the second transaction processing instance refuses to insert the second persistent storage transaction into the write stream of the second repository, so that the second repository stops writing transactions; and the first transaction processing instance inserts the second persistent storage transaction into the write stream of the first repository, so that the first repository resumes writing transactions; The second transaction processing instance inserts the write transaction into the write stream of the second repository, and the write transaction causes the second repository to copy the prioritized data returned from the first repository; after one or more blocks and / or block segments of the storage data are marked as prioritized and requested by the read transaction, the storage device copies the prioritized data from the first repository to the second repository.
2. The method according to claim 1, wherein: The switching triggering condition includes a difference between a library storage capacity of the second storage library and a library storage capacity of the first storage library exceeding a difference threshold.
3. The method according to claim 1, wherein: The switching trigger condition includes a difference between total write transactions serviced by the first repository of the storage device and total write transactions serviced by the second repository of the storage device being below a peer threshold.
4. The method according to claim 1, wherein: The switching triggering condition includes the expiration of a fixed duration of a timer.
5. The method according to claim 1, further comprising: The storage device performs lock-step reverse switching on the first storage memory bank and the second storage memory bank.
6. A system for mitigating input / output conflict delay, applied in a storage device, wherein the storage device is configured to run a first transaction processing instance and a second transaction processing instance simultaneously, the system comprising: one or more processors; as well as A memory, communicatively coupled to the one or more processors, the memory storing computer executable modules executable by the one or more processors, the computer executable modules performing associated operations when executed by the one or more processors, the computer executable modules comprising: A first switching module is used to: if a repeated switching trigger condition is detected in the first operating mode, switch to the second operating mode; A second switching module is used to: switch to the first operating mode if a switching trigger condition is detected in the second operating mode; the switching trigger condition repeatedly occurs to balance the write transactions and read transactions between the first storage library in the storage device and the second storage library in the storage device; The first operation mode includes: the first transaction processing instance refuses to insert the first persistent storage transaction into the write stream of the first repository, so that the first repository stops writing transactions; and the second transaction processing instance inserts the first persistent storage transaction into the write stream of the second repository, so that the second repository resumes writing transactions; The second operation mode includes: the second transaction processing instance refuses to insert the second persistent storage transaction into the write stream of the second repository, so that the second repository stops writing transactions; and the first transaction processing instance inserts the second persistent storage transaction into the write stream of the first repository, so that the first repository resumes writing transactions; The second transaction processing instance inserts the write transaction into the write stream of the second repository, and the write transaction causes the second repository to copy the prioritized data returned from the first repository; after one or more blocks and / or block segments of the storage data are marked as prioritized and requested by the read transaction, the storage device copies the prioritized data from the first repository to the second repository.
7. The system according to claim 6, wherein: The switching triggering condition includes a difference between a library storage capacity of the second storage library and a library storage capacity of the first storage library exceeding a difference threshold.
8. The system according to claim 6, wherein: The switching trigger condition includes a difference between total write transactions serviced by the first repository of the storage device and total write transactions serviced by the second repository of the storage device being below a peer threshold.
9. The system according to claim 6, wherein: The switching triggering condition includes the expiration of a fixed duration of a timer.
10. A computer-readable storage medium for mitigating input / output conflict delays, storing computer-readable instructions executable by one or more processors, wherein when the instructions are executed by the one or more processors, the one or more processors perform the operations of the method of any one of claims 1 to 5.
Citation Information
Patent Citations
Reduction of NVM access conflicts of IO command
CN107885456A