CN105487987B - A kind of concurrent sequence of processing reads the method and device of IO - Google Patents

A kind of concurrent sequence of processing reads the method and device of IO Download PDF

Info

Publication number
CN105487987B
CN105487987B CN201510816137.9A CN201510816137A CN105487987B CN 105487987 B CN105487987 B CN 105487987B CN 201510816137 A CN201510816137 A CN 201510816137A CN 105487987 B CN105487987 B CN 105487987B
Authority
CN
China
Prior art keywords
sequence
reads
read
reading
depth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510816137.9A
Other languages
Chinese (zh)
Other versions
CN105487987A (en
Inventor
林运生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN DATA FAULT TOLERANCE SYSTEM CO Ltd
Original Assignee
SHENZHEN DATA FAULT TOLERANCE SYSTEM CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENZHEN DATA FAULT TOLERANCE SYSTEM CO Ltd filed Critical SHENZHEN DATA FAULT TOLERANCE SYSTEM CO Ltd
Priority to CN201510816137.9A priority Critical patent/CN105487987B/en
Publication of CN105487987A publication Critical patent/CN105487987A/en
Application granted granted Critical
Publication of CN105487987B publication Critical patent/CN105487987B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

Abstract

The invention discloses the method and device that a kind of concurrent sequence of processing reads IO, this method includes:It receives adjustment sequence and reads the first of the IO instruction for pre-reading depth parameter, and it is configured according to described instruction, reception sequence reads the instruction of IO, and sequence reading IO is added to affiliated sequence and reads IO queues, judge whether the quantity that IO is sequentially read in queue is more than preset target quantity, if, then basis currently pre-reads state parameter, depth parameter is pre-read by dynamic adjustment second, IO is read adjusting sequence and pre-reads depth, the depth that pre-reads that IO is read according to the sequence after adjustment, calls rear end memory interface to read I/O data from storage array.For the present invention by adjusting the relevant parameter of IO is pre-read, dynamic adjustment pre-reads algorithm, improves the efficiency that the concurrent sequence of storage array processing reads IO.

Description

A kind of concurrent sequence of processing reads the method and device of IO
Technical field
The invention belongs to the method and devices that technical field of memory more particularly to a kind of concurrent sequence of processing read IO.
Background technology
With the development of big data, people are connected to more and more servers on the same storage array, and with The development of server, the same server also will appear the CPU of multinuclear, this occurs as soon as possible tens tunnels simultaneously even roads up to a hundred Sequence read the processing that IO (Input/Output) needs same storage array, this just needs the I O process algorithm of storage array Sequence that can be concurrent reads IO.And each sequence reads the trigger condition of IO, block size, the depth pre-read is all with specifically applying phase It closes, can the algorithm that pre-reads for how dynamically adjusting storage make it to keep up with the development of application, just be kept up with greatly at storage array Data develop the key factor in epoch.
In the prior art, it is optimized generally directed to specific application.But in this way for the user rs environment of more application scenarios For all some are inconvenient, such as need to analyze the application characteristic of client, and modify algorithm according to corresponding application, and compile Test etc., it is cumbersome.And the reading IO of single channel is usually only taken into account, concurrent multichannel sequence is handled there is no corresponding method Read IO.
Invention content
The present invention provides a kind of method and device for handling concurrent sequence and reading IO, can join by adjusting the related of IO is pre-read Number, dynamic adjustment pre-read algorithm, improve the efficiency that the concurrent sequence of storage array processing reads IO.
The method that the concurrent sequence of processing provided by the invention reads IO, including:
It receives adjustment sequence and reads the first of the IO instruction for pre-reading depth parameter, and carry out first according to described instruction and pre-read depth Spend parameter configuration;Reception sequence reads the instruction of IO, and sequence reading IO is added to affiliated sequence and reads IO queues;Judge team Whether the quantity that IO is sequentially read in row is more than preset target quantity;If so, according to currently state parameter is pre-read, adjusted by dynamic Whole second, which pre-reads depth parameter, reads IO to adjust sequence and pre-reads depth;The depth that pre-reads that IO is read according to the sequence after adjustment, is adjusted I/O data is read from storage array with rear end memory interface.
The concurrent sequence of processing provided by the invention reads the device of IO, including:
Receiving module reads the first of the IO instruction for pre-reading depth parameter for receiving adjustment sequence;Configuration module, for pressing First, which is carried out, according to described instruction pre-reads depth parameter configuration;The receiving module is additionally operable to the instruction that reception sequence reads IO;It is added Module reads IO queues for the sequence belonging to being added to sequence reading IO;Judgment module is sequentially read for judging in queue Whether the quantity of IO is more than preset target quantity;Module is adjusted, for if so, according to currently state parameter is pre-read, by dynamic State adjustment second, which pre-reads depth parameter, reads IO to adjust sequence and pre-reads depth;Read module, for according to the sequence after adjustment The depth that pre-reads for reading IO, calls rear end memory interface to read I/O data from storage array.
From the embodiments of the present invention it is found that the present invention reads IO by adjusting depth relevant parameter is pre-read, to adjust sequence Pre-read depth, improve efficiency and ability that concurrent processing multichannel sequence reads IO.
Description of the drawings
In order to more clearly explain the embodiment of the invention or the technical proposal in the existing technology, to embodiment or will show below There is attached drawing needed in technology description to be briefly described, it should be apparent that, the accompanying drawings in the following description is only this Some embodiments of invention without having to pay creative labor, may be used also for those of ordinary skill in the art With obtain other attached drawings according to these attached drawings.
Fig. 1 is the internal module structural schematic diagram for handling concurrent sequence in the embodiment of the present invention and reading IO;
Fig. 2 is the implementation process schematic diagram that the concurrent sequence of processing that first embodiment of the invention provides reads the method for IO;
Fig. 3 is the implementation process schematic diagram that the concurrent sequence of processing that second embodiment of the invention provides reads the method for IO;
Fig. 4 is the structural schematic diagram that the concurrent sequence of processing that third embodiment of the invention provides reads the device of IO;
Fig. 5 is the structural schematic diagram that the concurrent sequence of processing that fourth embodiment of the invention provides reads the device of IO.
Specific implementation mode
In order to make the invention's purpose, features and advantages of the invention more obvious and easy to understand, below in conjunction with the present invention Attached drawing in embodiment, technical scheme in the embodiment of the invention is clearly and completely described, it is clear that described reality It is only a part of the embodiment of the present invention to apply example, and not all embodiments.Based on the embodiments of the present invention, people in the art The every other embodiment that member is obtained without making creative work, shall fall within the protection scope of the present invention.
Referring to Fig. 1, in the embodiment of the present invention, executing the device internal structure for the method that the concurrent sequence of processing reads IO can wrap Include following software or hardware module:
It (can be magnetic to store front end 101, trigger module 102, pre- read through model 103, storage rear end 104 and storage array Disk array) 105.
Wherein, storage front end 101, is the sequence reading I/O command that receiving host is sent out and parsing wherein sequence reading IO is relevant Parameter.
Trigger module 102, for triggering the operation for pre-reading the reading data indicated with the sequence I/O command.
Pre- read through model 103, for the operation according to instruction execution pre-reads data, wherein built-in pre-read algorithm.
Rear end 104 is stored, for reading number from storage array 105 by the memory interface between storage array 105 According to.The memory interface not only provides the interface for reading IO, also provides the interface that IO pressure is read in inquiry rear end.
Storage array 105, for storing data.
Above each module can be independent or be integrated in the apparatus.
Referring to Fig. 2, the concurrent sequence of processing that Fig. 2, which is first embodiment of the invention, to be provided reads the implementation process of the method for IO Schematic diagram mainly includes the following steps that S201 to step S205:
S201, the first of the adjustment sequence reading IO instruction for pre-reading depth parameter is received, and matched according to instruction progress parameter It sets;
It can be that commissioning staff or user of service send out that adjustment sequence, which reads the first instruction for pre-reading depth parameter of IO, this refers to It enables and first pre-reads depth parameter for what adjustment sequence read IO, parameter configuration is carried out according to the instruction so that according to postponing Parameter is pre-read.
S202, reception sequence read the instruction of IO, and sequence reading IO is added to affiliated sequence and reads IO queues;
S203, judge whether the quantity that IO is sequentially read in queue is more than preset target quantity;
The quantity that IO is sequentially read in one queue is more than preset target quantity, is the trigger condition that triggering pre-reads thread.
S204, if so, according to currently state parameter is pre-read, it is suitable to adjust that depth parameter is pre-read by dynamic adjustment second Sequence reading IO's pre-reads depth;
If in the queue where sequence reading IO, whether the quantity that sequence reads IO is more than the preset target quantity, then triggers Thread is pre-read, adjustment pre-reads depth, specifically, according to currently state parameter is pre-read, depth ginseng is pre-read by dynamic adjustment second Number reads IO adjusting sequence and pre-reads depth.If currently pre-reading state parameter shows that pre-reading depth can also increase, and execute step Rapid 205 read data according to the new depth that pre-reads, if currently pre-reading state parameter shows that pre-reading depth has arrived the limit, is further added by Influence system overall operation situation, for example, influencing to execute the reaction speed that the sequence that host is sent out reads I/O instruction, then not to current The depth that pre-reads be adjusted.
S205, the depth that pre-reads that IO is read according to the sequence after adjustment, call rear end memory interface to be read from storage array I/O data.
The embodiment of the present invention, to adjust the depth that pre-reads that sequence reads IO, improves simultaneously by adjusting depth relevant parameter is pre-read Hair processing multichannel sequence reads the efficiency and ability of IO.
Referring to Fig. 3, the concurrent sequence of processing that Fig. 3, which is second embodiment of the invention, to be provided reads the implementation process of the method for IO Schematic diagram mainly includes the following steps that S301 to step S307:
S301, the first of the adjustment sequence reading IO instruction for pre-reading depth parameter is received, and matched according to instruction progress parameter It sets;
The sequence reads the first of IO and pre-reads depth parameter including at least a kind of following parameter:
Sequence read IO it is best pre-read length (perfect_pf_size), sleep pre-reads length (yield_pf_ Size length (normal_pf_size)), is normally pre-read, sequence reading IO threads allow to run quantity (pf_busy_thread) And sequence reads the number of bursts (triger) of IO.
Specifically, by adjusting it is best pre-read length, sleep pre-reads length and normal pre-read length and can directly adjust The whole depth pre-read.Allow to run that quantity is adjustable pre-reads thread while accessing rear module by adjusting IO threads are sequentially read Ability.By adjusting number of bursts while the destination number adjustment sequence reading IO for sequentially reading IO.
It is configured according to the parameter in the instruction so that pre- read through model is pre-read according to the parameter postponed.
S302, reception sequence read the instruction of IO, judge that the sequence reads whether IO is that new sequence reads IO;
The instruction that front end receiver reads IO to sequence is stored, IO relevant parameters in the instruction are parsed, calls PF_CACHEadd_ Fe functions are pre-read with triggering.
The legitimacy that the sequence reads IO is first checked for, that is, checks whether the initial address of sequence reading IO and length are legal, If legal, judge that the sequence reads whether IO is that new sequence reads IO.
The relevant information that sequence reads IO is stored in following array:
Pf_Result.CacheNstoreThreadData[PF_RESULT_NUM]
By following operation judges, whether it is new sequence IO, is new suitable if following condition is not met Sequence IO:
For (pf_rlt_index=0;pf_rlt_index<PF_RESULT_NUM;pf_rlt_index++)
{
if((Pf_Result.CacheNstoreThreadData[pf_rlt_index].io_start+
Pf_Result.CacheNstoreThreadData [pf_rlt_index] .io_len)==start)
{
... ... related pre- read operation ... ... ... ... ...
}
If so, thening follow the steps S303;If it is not, thening follow the steps 304.
S303, new sequence reading IO queues are created for sequence reading IO;
IO is read if it is new sequence, then creates a new queue for it, in the new queue of establishment, only this is suitable Sequence reads IO.
S304, its affiliated sequence reading IO queue is added in sequence reading IO;
IO is read if not new sequence, then is added into sequence reading IO queues belonging to it.
S305, judge whether the quantity that IO is sequentially read in queue is more than preset target quantity;
When this sequence, which reads IO, is added to affiliated sequence IO queues, Pf_ Nseq values in Result.CacheNstoreThreadData [pf_rlt_index] array correspondingly increase.
Judge whether the quantity that IO is sequentially read in queue is more than preset target quantity, if so, trigger condition establishment is pre-read, The trigger condition is:
if(Pf_Result.CacheNstoreThreadData[pf_rlt_index].nseq>Pf_ Result.triger)
S306, if so, according to currently state parameter is pre-read, it is suitable to adjust that depth parameter is pre-read by dynamic adjustment second Sequence reading IO's pre-reads depth;
When whether the quantity for sequentially reading IO in queue is more than preset target quantity, according to currently state parameter is pre-read, lead to It crosses dynamic adjustment and second pre-reads depth parameter, depth is pre-read adjust that sequence reads IO.Wherein, this currently pre-reads state parameter packet It includes:It is current to pre-read progress, pre-read number of threads, rear end storage pressure and free memory size.
Specifically, when the queue that a sequence reads IO is triggered for the first time, pre-reading depth can be adjustable plus one Value to ensure to pre-read the speed that can meet host IO.When the queue that a sequence reads IO is non-to be triggered for the first time, depth is pre-read Degree is mainly adjusted according to the parameter in CacheNstoreResult_tPf_Result.
The data structure of CacheNstoreResult_tPf_Result is as follows:
structCacheNstoreThread
{
int running;/ * pre-read thread whether run */
int nseq;IO number * of/* sequences/
int active;/ * whether state of activation */
CacheWord_tpf_start;/ * pre-read the address * of beginning/
CacheWord_tpf_len;The length * that/* needs are pre-read/
CacheWord_tpf_actual_len;The practical length * pre-read of/*/
CacheWord_tpf_end;/ * pre-read the address * of end/
CacheWord_tio_start;The address * that/* sequences IO starts/
CacheWord_tio_len;The length * of/* sequences IO/
K9timeval_tltime;The time * of/* sequences IO last time triggerings/
CacheWord_tstripe_size_blks;The stripe size * of the rear ends/*/
CacheWord_talign_perfect_pf_size;/ * be aligned with rear end it is best pre-read length */
s_crange_t*rng_v;The data structure * of/* storages rear end/
intpid;/ * pre-read thread pid */
K9semaphore_twakeup;The semaphore * of/* triggerings/
};
typedefstructCacheNstoreThread CacheNstoreThread_t;
structCacheNstoreResult
{
K9semaphore_tSemThread;The protection signal amount * of/* sequence IO threads/
K9timeval_texpire;The time-out time * of/* sequences IO/
inttriger;The triggering number * of/* sequences IO/
intpf_busy_thread;/ * sequence IO threads allow to run number */
intpf_debug;/ * pre-read the debugging switch * of algorithm/
CacheWord_tperfect_pf_size;/ * it is best pre-read length */
CacheWord_tyield_pf_size;/ * sleep pre-read length */
CacheWord_tnormal_pf_size;/ * normally pre-read length */
CacheNstoreThread_tCacheNstoreThreadData[PF_RESULT_NUM];/ * sequence IO teams Row */
};
Further, this second pre-read depth parameter include at least a kind of following parameter:
Sequence reads the address (pf_start) for pre-reading beginning of IO, the length (pf_len) pre-read, sequence IO is needed to start Address (io_start) and sequence IO length (io_len).This four parameters belong to CacheNstoreResult_ Parameter in tPf_Result.
S307, the depth that pre-reads that IO is read according to the sequence after adjustment, call rear end memory interface to be read from storage array I/O data.
The depth that pre-reads that IO is read according to the sequence after adjustment, calls rear end memory interface to read IO numbers from storage array According to.
Further, after reading I/O data, state parameter is currently pre-read according to this, that is, according to currently pre-reading progress, pre-read Number of threads, rear end storage pressure and free memory size, judge whether to continue to pre-read, if so, by adjusting this second Pre-read parameter, i.e. adjustment sequence reads the address for pre-reading beginning of IO, the address for needing the length pre-read, sequence IO to start and suitable One or more of parameters such as the length of sequence IO, optimal case are to adjust this four parameters simultaneously, and depth, root are pre-read with adjustment It is pre-read according to the depth that pre-reads after adjustment.
The embodiment of the present invention, to adjust the depth that pre-reads that sequence reads IO, improves simultaneously by adjusting depth relevant parameter is pre-read Hair processing multichannel sequence reads the efficiency and ability of IO.
Referring to Fig. 4, the concurrent sequence of processing that Fig. 4, which is third embodiment of the invention, to be provided reads the structural representation of the device of IO Figure, for convenience of description, illustrates only and the relevant part of the embodiment of the present invention.The exemplary devices of Fig. 4 can be 2 institute of earlier figures Show the executive agent of the method for the concurrent sequence reading IO of processing that embodiment provides.The concurrent sequence of the exemplary processing of Fig. 4 reads the dress of IO It sets, includes mainly:
Receiving module 401, configuration module 402 are added module 403, judgment module 404, adjustment module 405 and read mould Block 406.
Detailed description are as follows for above each function module:
Wherein, the first of the IO instruction for pre-reading depth parameter is read in receiving module 401 for receiving adjustment sequence;
Configuration module 402, for carrying out parameter configuration according to the instruction;
Receiving module 401 is additionally operable to the instruction that reception sequence reads IO;
Module 403 is added, IO queues are read for the sequence belonging to being added to sequence reading IO;
Judgment module 404, for judging whether the quantity for sequentially reading IO in queue is more than preset target quantity;
Module 405 is adjusted, for if so, according to currently state parameter is pre-read, depth to be pre-read by dynamic adjustment second Parameter reads IO to adjust sequence and pre-reads depth;
Read module 406, the depth that pre-reads for reading IO according to the sequence after adjustment, calls rear end memory interface from storage I/O data is read in array.
The details of the present embodiment not to the greatest extent, please refers to description of the earlier figures 1 to embodiment illustrated in fig. 3, details are not described herein again.
It should be noted that in the embodiment for the device that the concurrent sequence of the exemplary processing of figure 4 above reads IO, each function mould The division of block is merely illustrative of, can be as needed in practical application, such as the configuration requirement of corresponding hardware or software The convenient of realization considers, and above-mentioned function distribution is completed by different function modules, i.e., the concurrent sequence of processing is read to the dress of IO The internal structure set is divided into different function modules, to complete all or part of the functions described above.Moreover, actually answering In, the corresponding function module in the present embodiment can also be executed by corresponding hardware by corresponding hardware realization Corresponding software is completed;Each embodiment that this specification provides can all apply foregoing description principle.
The embodiment of the present invention, the embodiment of the present invention read the pre- of IO by adjusting depth relevant parameter is pre-read to adjust sequence Depth is read, efficiency and ability that concurrent processing multichannel sequence reads IO are improved.
Referring to Fig. 5, the concurrent sequence of processing that Fig. 5, which is fourth embodiment of the invention, to be provided reads the structural representation of the device of IO Figure, the device mainly includes:
Module 503, judgment module 504, adjustment module 505, read module is added in receiving module 501, configuration module 502 506 and creation module 507.
Detailed description are as follows for above each function module:
Wherein, the first of the IO instruction for pre-reading depth parameter is read in receiving module 501 for receiving adjustment sequence;
This first pre-read depth parameter include at least a kind of following parameter:
Sequence read IO it is best pre-read length, sleep pre-read length, normally pre-read length, sequence is read IO threads and is permitted Perhaps it runs quantity and sequence reads the number of bursts of IO.
Configuration module 502, for carrying out parameter configuration according to the instruction;
Receiving module 501 is additionally operable to the instruction that reception sequence reads IO;
Module 503 is added, IO queues are read for the sequence belonging to being added to sequence reading IO;
Judgment module 504, for judging whether the quantity for sequentially reading IO in queue is more than preset target quantity;
Module 505 is adjusted, for if so, according to currently state parameter is pre-read, depth to be pre-read by dynamic adjustment second Parameter reads IO to adjust sequence and pre-reads depth;
This currently pre-reads state parameter:It is current to pre-read progress, pre-read number of threads, rear end storage pressure and free time Memory size.
This second pre-read depth parameter include at least a kind of following parameter:
Sequence reads the address for pre-reading beginning of IO, the address for needing the length pre-read, sequence IO to start and sequence IO's Length.
Read module 506, the depth that pre-reads for reading IO according to the sequence after adjustment, calls rear end memory interface from storage I/O data is read in array.
Further, judgment module 504 are additionally operable to judge that the sequence reads whether IO is that new sequence reads IO;
The device can further include:
Creation module 507, if it is that new sequence reads IO to judge that the sequence reads IO for judgment module 504, for the sequence It reads IO and creates new sequence reading IO queues;
Module 503 is added, it, should if being additionally operable to judgment module 504 to judge that the sequence reads IO be not that new sequence reads IO Sequence reads IO and sequence reading IO queues belonging to it is added.
The details of the present embodiment not to the greatest extent, please refers to description of the earlier figures 1 to embodiment illustrated in fig. 4, details are not described herein again.
The embodiment of the present invention, the embodiment of the present invention read the pre- of IO by adjusting depth relevant parameter is pre-read to adjust sequence Depth is read, efficiency and ability that concurrent processing multichannel sequence reads IO are improved.
In several embodiments provided herein, it should be understood that disclosed device and method can pass through it Its mode is realized.For example, the apparatus embodiments described above are merely exemplary, for example, the division of the module, only Only a kind of division of logic function, formula that in actual implementation, there may be another division manner, such as multiple module or components can be tied Another system is closed or is desirably integrated into, or some features can be ignored or not executed.Another point, it is shown or discussed Mutual coupling, direct-coupling or communication connection can be the INDIRECT COUPLING or logical by some interfaces, device or module Letter connection can be electrical, machinery or other forms.
The module illustrated as separating component may or may not be physically separated, aobvious as module The component shown may or may not be physical module, you can be located at a place, or may be distributed over multiple On network module.Some or all of module therein can be selected according to the actual needs to realize the mesh of this embodiment scheme 's.
In addition, each function module in each embodiment of the present invention can be integrated in a processing module, it can also That modules physically exist alone, can also two or more modules be integrated in a module.Above-mentioned integrated mould The form that hardware had both may be used in block is realized, can also be realized in the form of software function module.
If the integrated module is realized in the form of software function module and sells or use as independent product When, it can be stored in a computer read/write memory medium.Based on this understanding, technical scheme of the present invention is substantially The all or part of the part that contributes to existing technology or the technical solution can be in the form of software products in other words It embodies, which is stored in a storage medium, including some instructions are used so that a computer Equipment (can be personal computer, server or the network equipment etc.) executes the complete of each embodiment the method for the present invention Portion or part steps.And storage medium above-mentioned includes:USB flash disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disc or CD etc. are various can store journey The medium of sequence code.
It should be noted that for each method embodiment above-mentioned, describe, therefore it is all expressed as a series of for simplicity Combination of actions, but those skilled in the art should understand that, the present invention is not limited by the described action sequence because According to the present invention, certain steps may be used other sequences or be carried out at the same time.Secondly, those skilled in the art should also know It knows, embodiment described in this description belongs to preferred embodiment, and involved action and module might not all be this hairs Necessary to bright.
In the above-described embodiments, it all emphasizes particularly on different fields to the description of each embodiment, there is no the portion being described in detail in some embodiment Point, it may refer to the associated description of other embodiments.
It is to a kind of description of the method and device of the concurrent sequence reading IO of processing provided by the present invention, for ability above The those skilled in the art in domain, the thought of embodiment, has change in specific embodiments and applications according to the present invention Place, to sum up, the content of the present specification should not be construed as limiting the invention.

Claims (10)

1. a kind of method that the concurrent sequence of processing reads IO, which is characterized in that the method includes:
It receives adjustment sequence and reads the first of the IO instruction for pre-reading depth parameter, and carry out first according to described instruction and pre-read depth ginseng Number configuration;
Reception sequence reads the instruction of IO, and sequence reading IO is added to affiliated sequence and reads IO queues;
Judge whether the quantity that IO is sequentially read in queue is more than preset target quantity;
If so, according to currently state parameter is pre-read, depth parameter is pre-read by dynamic adjustment second and reads IO's to adjust sequence Pre-read depth;
The depth that pre-reads that IO is read according to the sequence after adjustment, calls rear end memory interface to read I/O data from storage array.
2. according to the method described in claim 1, it is characterized in that, described first pre-reads depth parameter including at least following one kind Parameter:
Sequence read IO it is best pre-read length, sleep pre-reads length, normally pre-reads that length, sequence reads IO threads allows to transport Line number amount and sequence read the number of bursts of IO.
3. method according to claim 1 or 2, which is characterized in that described second pre-reads depth parameter including at least following A kind of parameter:
Sequence reads the address for pre-reading beginning of IO, needs the length of the length, the address that sequence IO starts and the sequence IO that pre-read.
4. according to the method described in claim 3, it is characterized in that, described current pre-read state parameter and include:It is current pre-read into It spends, pre-read number of threads, rear end storage pressure and free memory size.
5. according to the method described in claim 4, it is characterized in that, described be added to corresponding sequence reading IO teams by sequence reading IO Row include:
Judge that the sequence reads whether IO is that new sequence reads IO;
IO queues are read if so, reading IO for the sequence and creating new sequence, if it is not, then sequence reading IO is added belonging to it Sequence reads IO queues.
6. a kind of concurrent sequence of processing reads the device of IO, which is characterized in that described device includes:
Receiving module reads the first of the IO instruction for pre-reading depth parameter for receiving adjustment sequence;
Configuration module pre-reads depth parameter configuration for carrying out first according to described instruction;
The receiving module is additionally operable to the instruction that reception sequence reads IO;
Module is added, IO queues are read for the sequence belonging to being added to sequence reading IO;
Judgment module, for judging whether the quantity for sequentially reading IO in queue is more than preset target quantity;
Module is adjusted, for if so, according to currently state parameter is pre-read, depth parameter to be pre-read to adjust by dynamic adjustment second Whole sequence reading IO's pre-reads depth;
Read module, the depth that pre-reads for reading IO according to the sequence after adjustment, calls rear end memory interface from storage array Read I/O data.
7. device according to claim 6, which is characterized in that described first, which pre-reads depth parameter, includes at least following one kind Parameter:
Sequence read IO it is best pre-read length, sleep pre-reads length, normally pre-reads that length, sequence reads IO threads allows to transport Line number amount and sequence read the number of bursts of IO.
8. the device described according to claim 6 or 7, which is characterized in that described second pre-reads depth parameter including at least following A kind of parameter:
Sequence reads the address for pre-reading beginning of IO, needs the length of the length, the address that sequence IO starts and the sequence IO that pre-read.
9. device according to claim 8, which is characterized in that described current to pre-read state parameter and include:It is current pre-read into It spends, pre-read number of threads, rear end storage pressure and free memory size.
10. device according to claim 9, which is characterized in that
The judgment module is additionally operable to judge that the sequence reads whether IO is that new sequence reads IO;
Described device further includes:
Creation module is read if it is that new sequence reads IO to judge that the sequence reads IO for the judgment module for the sequence IO creates new sequence and reads IO queues;
The addition module, if being additionally operable to the judgment module to judge that the sequence reads IO be not that new sequence reads IO, by institute It states sequence reading IO and sequence reading IO queues belonging to its is added.
CN201510816137.9A 2015-11-20 2015-11-20 A kind of concurrent sequence of processing reads the method and device of IO Active CN105487987B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510816137.9A CN105487987B (en) 2015-11-20 2015-11-20 A kind of concurrent sequence of processing reads the method and device of IO

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510816137.9A CN105487987B (en) 2015-11-20 2015-11-20 A kind of concurrent sequence of processing reads the method and device of IO

Publications (2)

Publication Number Publication Date
CN105487987A CN105487987A (en) 2016-04-13
CN105487987B true CN105487987B (en) 2018-09-11

Family

ID=55674976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510816137.9A Active CN105487987B (en) 2015-11-20 2015-11-20 A kind of concurrent sequence of processing reads the method and device of IO

Country Status (1)

Country Link
CN (1) CN105487987B (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480150B (en) * 2016-06-07 2020-12-08 阿里巴巴集团控股有限公司 File loading method and device
CN106293917A (en) * 2016-08-09 2017-01-04 浪潮(北京)电子信息产业有限公司 The optimization method of a kind of I O scheduling cfq algorithm and system
CN106681661B (en) * 2016-12-23 2020-02-07 郑州云海信息技术有限公司 Read-write scheduling method and device in solid state disk
CN108762685B (en) * 2018-06-04 2021-06-22 平安科技(深圳)有限公司 IO hang-up recognition method and device, computer device and storage medium
CN109976679A (en) * 2019-04-11 2019-07-05 苏州浪潮智能科技有限公司 A kind of distributed type assemblies volume pre-head method, system, equipment and computer media
CN111930513B (en) * 2020-08-31 2023-02-28 Oppo(重庆)智能科技有限公司 File pre-reading adjusting method and device, electronic equipment and storage medium
CN112084121A (en) * 2020-09-11 2020-12-15 深圳佰维存储科技股份有限公司 Hard disk pre-reading method and device, computer readable storage medium and electronic equipment
CN115328564B (en) * 2022-10-17 2023-04-25 北京卡普拉科技有限公司 Asynchronous input/output thread processor resource allocation method and device

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04149720A (en) * 1990-10-15 1992-05-22 Shikoku Nippon Denki Software Kk Magnetic tape controller
CN1945551A (en) * 2006-11-03 2007-04-11 中兴通讯股份有限公司 Data pre-reader and its data reading method
CN101000589A (en) * 2006-12-22 2007-07-18 清华大学 Adaptive external storage IO performance optimization method
CN101788887A (en) * 2010-02-05 2010-07-28 浪潮(北京)电子信息产业有限公司 System and method of I/O cache stream based on database in disk array
CN102023931A (en) * 2010-12-17 2011-04-20 曙光信息产业(北京)有限公司 Self-adaption cache pre-fetching method
CN102073463A (en) * 2010-12-28 2011-05-25 创新科存储技术有限公司 Flow prediction method and device, and prereading control method and device
CN102567548A (en) * 2012-02-21 2012-07-11 上海交通大学 Streaming data pre-reading method for network file system
CN104156321A (en) * 2014-07-23 2014-11-19 华为技术有限公司 Data pre-fetching method and device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04149720A (en) * 1990-10-15 1992-05-22 Shikoku Nippon Denki Software Kk Magnetic tape controller
CN1945551A (en) * 2006-11-03 2007-04-11 中兴通讯股份有限公司 Data pre-reader and its data reading method
CN101000589A (en) * 2006-12-22 2007-07-18 清华大学 Adaptive external storage IO performance optimization method
CN101788887A (en) * 2010-02-05 2010-07-28 浪潮(北京)电子信息产业有限公司 System and method of I/O cache stream based on database in disk array
CN102023931A (en) * 2010-12-17 2011-04-20 曙光信息产业(北京)有限公司 Self-adaption cache pre-fetching method
CN102073463A (en) * 2010-12-28 2011-05-25 创新科存储技术有限公司 Flow prediction method and device, and prereading control method and device
CN102567548A (en) * 2012-02-21 2012-07-11 上海交通大学 Streaming data pre-reading method for network file system
CN104156321A (en) * 2014-07-23 2014-11-19 华为技术有限公司 Data pre-fetching method and device

Also Published As

Publication number Publication date
CN105487987A (en) 2016-04-13

Similar Documents

Publication Publication Date Title
CN105487987B (en) A kind of concurrent sequence of processing reads the method and device of IO
CN112286746B (en) Universal verification platform and method for AXI slave device interface
KR101719500B1 (en) Acceleration based on cached flows
CN105844146B (en) Method and device for protecting driver and electronic equipment
CN106571978B (en) Data packet capturing method and device
CN106648666A (en) User interface generating method and user interface generating system
CN107256180A (en) Data processing method, device and terminal
CN107247629A (en) Cloud computing system and cloud computing method and device for controlling server
CN104793996A (en) Task scheduling method and device of parallel computing equipment
CN107315586A (en) Using the methods, devices and systems of packing
CN110532294A (en) Ticket merging method, device, equipment and computer readable storage medium
CN107065616A (en) Inter-linked controlling method and device, computer-readable recording medium
CN107135189A (en) A kind of file transmitting method and physical machine
CN106169048B (en) File delet method, device and electronic equipment
CN105430028A (en) Service calling method, service providing method, and node
CN103299298A (en) Service processing method and system
CN106101184A (en) A kind of document down loading method and playback equipment
CN107222361A (en) Collecting method, system, computer equipment and medium
CN109933411B (en) System and method for modifying internal configuration of virtual machine on line
CN109951532B (en) DPDK-based automatic flow model conversion device
CN106411718A (en) Instant messaging application-based data synchronization method and device
CN109471679A (en) The method that a kind of pair of PCIE exchange chip configuration file is configured
CN108205503A (en) Hardware driving compatibility method and terminal
CN107704328A (en) Client accesses method, system, device and the storage medium of file system
CN115495406A (en) Message transmission method, device, equipment and storage medium based on PCIe

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant