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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing 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
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.
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)
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)
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 |
-
2015
- 2015-11-20 CN CN201510816137.9A patent/CN105487987B/en active Active
Patent Citations (8)
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 |