[go: up one dir, main page]

CN108984132A - A kind of I O scheduling method and device based on persistence memory file system - Google Patents

A kind of I O scheduling method and device based on persistence memory file system Download PDF

Info

Publication number
CN108984132A
CN108984132A CN201810974379.4A CN201810974379A CN108984132A CN 108984132 A CN108984132 A CN 108984132A CN 201810974379 A CN201810974379 A CN 201810974379A CN 108984132 A CN108984132 A CN 108984132A
Authority
CN
China
Prior art keywords
queue
request
similar operation
scheduling
operation queue
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.)
Pending
Application number
CN201810974379.4A
Other languages
Chinese (zh)
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201810974379.4A priority Critical patent/CN108984132A/en
Publication of CN108984132A publication Critical patent/CN108984132A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The application discloses a kind of I O scheduling method and device based on persistence memory file system, this method comprises: after receiving at least one I/O Request, first the I/O Request is inserted into discrete operations queue, judge whether the I/O Request and the IO subqueue in similar operations queue are related again, wherein, discrete operations queue and similar operations queue such as belong at the queue to be processed, if the I/O Request is related to the IO subqueue in similar operations queue, then as in subqueue insertion similar operations queue, and then it can be according to the similar operations queue of lookup, execute I O scheduling, then, further according to the discrete operations queue of lookup, execute I O scheduling.It can be seen that, the application is after receiving I/O Request, I O scheduling is no longer carried out immediately, but it is inserted into similar queue after being integrated associated I/O Request as subqueue, and then by searching for similar operations queue, then I O scheduling is executed, to realize intelligent load I O scheduling, reduce network communication number, improves performance.

Description

一种基于持久性内存文件系统的IO调度方法及装置An IO scheduling method and device based on a persistent memory file system

技术领域technical field

本申请涉及数据存储技术领域,具体涉及一种基于持久性内存文件系统的IO调度方法及装置。The present application relates to the technical field of data storage, in particular to an IO scheduling method and device based on a persistent memory file system.

背景技术Background technique

随着当今社会科技的发展,处理器和存储器之间性能差距越来越大,特别是处理器和外存之间的巨大差距使得IO瓶颈问题日益突出。With the development of science and technology in today's society, the performance gap between the processor and the memory is getting bigger and bigger, especially the huge gap between the processor and the external memory makes the IO bottleneck problem increasingly prominent.

目前缓解IO瓶颈的方式是在内存中设置磁盘文件cache,从而减少访问外存的次数。但随着大数据时代的到来,数据爆炸式的增长对内存容量的需求越来越大,传统的通过增加cache容量带来的效益反而会减少,而且在内外存之间频繁交换数据会产生较大的开销,基于此,新型非易失性存储介质逐渐出现在人们的视野中,它可字节寻址和非易失的特性使得数据在内存级就可以持久化存储,并且其存储速度快、存储数据不易丢失,从而可将新型非易失性存储介质作为内存,形成持久化内存文件系统,取代传统的内外存并存的方式,将其作为唯一的存储介质实现持久化数据存储。The current way to alleviate the IO bottleneck is to set up a disk file cache in memory, thereby reducing the number of accesses to external memory. However, with the advent of the era of big data, the demand for memory capacity due to the explosive growth of data is increasing, and the benefits brought by traditional methods of increasing cache capacity will be reduced, and frequent data exchange between internal and external memory will cause relatively large Based on this, new types of non-volatile storage media are gradually appearing in people's field of vision. Its byte-addressable and non-volatile characteristics enable data to be stored persistently at the memory level, and its storage speed is fast , Stored data is not easy to lose, so that new non-volatile storage media can be used as memory to form a persistent memory file system, replacing the traditional way of coexistence of internal and external memory, and using it as the only storage medium to achieve persistent data storage.

因此,如何利用更先进的IO调度方法取代传统的调度方式,实现基于持久性内存文件系统的智能IO调度,从而有效缓解IO瓶颈,已成为亟待解决的问题。Therefore, how to use a more advanced IO scheduling method to replace the traditional scheduling method to realize intelligent IO scheduling based on the persistent memory file system, so as to effectively alleviate the IO bottleneck, has become an urgent problem to be solved.

发明内容Contents of the invention

为解决上述问题,本申请提供了一种基于持久性内存文件系统的IO调度方法及装置,具体技术方案如下:In order to solve the above problems, the application provides an IO scheduling method and device based on a persistent memory file system. The specific technical solutions are as follows:

第一方面,本申请提供了一种基于持久性内存文件系统的IO调度方法,所述方法包括:In a first aspect, the present application provides an IO scheduling method based on a persistent memory file system, the method comprising:

接收至少一个IO请求;Receive at least one IO request;

将所述IO请求插入离散操作队列后,判断所述IO请求与相似操作队列中的IO子队列是否相关,所述离散操作队列和所述相似操作队列属于等待处理队列;After the IO request is inserted into the discrete operation queue, it is judged whether the IO request is related to the IO sub-queue in the similar operation queue, and the discrete operation queue and the similar operation queue belong to the waiting processing queue;

如果是,则将所述IO请求作为子队列插入所述相似操作队列中;If so, inserting the IO request as a subqueue into the similar operation queue;

根据查找的所述相似操作队列,执行IO调度;Execute IO scheduling according to the searched similar operation queue;

根据查找的所述离散队操作列,执行IO调度。Perform IO scheduling according to the discrete queue operation column found.

在一种可选的实现方式中,所述方法还包括:In an optional implementation, the method also includes:

预先设置等待处理队列,所述等待处理队列包含相似操作队列和离散操作队列;Presetting the waiting processing queue, the waiting processing queue includes a similar operation queue and a discrete operation queue;

其中,所述相似操作队列是由IO子队列组成,所述离散操作队列是IO请求组成。Wherein, the similar operation queue is composed of IO subqueues, and the discrete operation queue is composed of IO requests.

在一种可选的实现方式中,所述根据查找的所述相似操作队列,执行IO调度,包括:In an optional implementation manner, the performing IO scheduling according to the searched similar operation queue includes:

查找所述等待处理队列中的相似操作队列;Find similar operation queues in the waiting processing queue;

判断所述相似操作队列中是否包含有至少一个子对列包,所述子对列包是由至少两个相关的子队列组成;Judging whether the similar operation queue contains at least one sub-column packet, the sub-column packet is composed of at least two related sub-queues;

如果是,则根据所述相似操作队列中包含的子对列包,按包执行IO调度。If yes, perform IO scheduling by package according to the sub-pair packages contained in the similar operation queue.

在一种可选的实现方式中,如果所述IO请求与所述相似操作队列中的IO子队列无关,所述方法还包括:In an optional implementation manner, if the IO request is not related to the IO subqueue in the similar operation queue, the method further includes:

判断所述IO请求与所述离散操作队列中的其他IO请求是否相关;judging whether the IO request is related to other IO requests in the discrete operation queue;

如果是,则根据所述IO请求与所述离散操作队列中的其他相关的IO请求,新建一个IO子队列包插入所述相似操作队列中。If so, according to the IO request and other related IO requests in the discrete operation queue, create a new IO sub-queue packet and insert it into the similar operation queue.

在一种可选的实现方式中,所述内存为新型非易失性存储介质。In an optional implementation manner, the memory is a new type of non-volatile storage medium.

第二方面,本申请提供了一种基于持久性内存文件系统的IO调度装置,所述装置包括:In a second aspect, the present application provides an IO scheduling device based on a persistent memory file system, the device comprising:

接收单元,用于接收至少一个IO请求;a receiving unit, configured to receive at least one IO request;

第一判断单元,用于将所述IO请求插入离散操作队列后,判断所述IO请求与相似操作队列中的IO子队列是否相关,所述离散操作队列和所述相似操作队列属于等待处理队列;A first judging unit, configured to, after inserting the IO request into a discrete operation queue, judge whether the IO request is related to an IO subqueue in a similar operation queue, and the discrete operation queue and the similar operation queue belong to a waiting processing queue ;

插入单元,用于如果IO请求与相似操作队列中的IO子队列相关,则将所述IO请求作为子队列插入所述相似操作队列中;an insertion unit, configured to insert the IO request as a subqueue into the similar operation queue if the IO request is related to the IO subqueue in the similar operation queue;

第一调度单元,用于根据查找的所述相似操作队列,执行IO调度;A first scheduling unit, configured to perform IO scheduling according to the searched similar operation queue;

第二调度单元,用于根据查找的所述离散队操作列,执行IO调度。The second scheduling unit is configured to perform IO scheduling according to the searched discrete queue operation sequence.

在一种可选的实现方式中,所述装置还包括:In an optional implementation, the device further includes:

设置单元,用于预先设置等待处理队列,所述等待处理队列包含相似操作队列和离散操作队列;The setting unit is used to pre-set the waiting processing queue, and the waiting processing queue includes similar operation queues and discrete operation queues;

其中,所述相似操作队列是由IO子队列组成,所述离散操作队列是IO请求组成。Wherein, the similar operation queue is composed of IO subqueues, and the discrete operation queue is composed of IO requests.

在一种可选的实现方式中,所述第一调度单元包括:In an optional implementation manner, the first scheduling unit includes:

查找子单元,用于查找所述等待处理队列中的相似操作队列;A search subunit is used to search for similar operation queues in the queue waiting to be processed;

第一判断子单元,用于判断所述相似操作队列中是否包含有至少一个子对列包,所述子对列包是由至少两个相关的子队列组成;The first judging subunit is used to judge whether the similar operation queue contains at least one sub-column packet, and the sub-column packet is composed of at least two related sub-queues;

第一调度子单元,用于如果相似操作队列中是包含有至少一个子对列包,则根据所述相似操作队列中包含的子对列包,按包执行IO调度。The first scheduling subunit is configured to perform IO scheduling by package according to the sub-pair packets contained in the similar operation queue if the similar operation queue contains at least one sub-pair packet.

在一种可选的实现方式中,如果所述IO请求与所述相似操作队列中的IO子队列无关,所述装置还包括:In an optional implementation manner, if the IO request is not related to the IO subqueue in the similar operation queue, the device further includes:

第二判断单元,用于判断所述IO请求与所述离散操作队列中的其他IO请求是否相关;A second judging unit, configured to judge whether the IO request is related to other IO requests in the discrete operation queue;

新建单元,用于如果所述IO请求与所述离散操作队列中的其他IO请求是相关的,则根据所述IO请求与所述离散操作队列中的其他相关的IO请求,新建一个IO子队列包插入所述相似操作队列中。A new unit, configured to create an IO sub-queue according to the IO request and other related IO requests in the discrete operation queue if the IO request is related to other IO requests in the discrete operation queue The packet is inserted into the similar operation queue.

在一种可选的实现方式中,所述内存为新型非易失性存储介质。In an optional implementation manner, the memory is a new type of non-volatile storage medium.

在本申请提供的基于持久性内存文件系统的IO调度方法中,在接收到至少一个IO请求后,先将该IO请求插入到离散操作队列中,再判断该IO请求与相似操作队列中的IO子队列是否相关,其中,离散操作队列和相似操作队列均属于等待处理队列,若该IO请求与相似操作队列中的IO子队列相关,则将其作为子队列插入相似操作队列中,进而可根据查找的相似操作队列,执行IO调度,接着,再根据查找的离散操作队列,执行IO调度。可见,本申请在接收到IO请求后,不再立即进行IO调度,而是将相关联的IO请求进行整合后作为子队列插入到相似队列中,进而通过查找相似操作队列,再执行IO调度,从而实现了智能负载IO调度,减少了网络通信次数和器件擦写次数,降低了时延,也提高了性能。In the IO scheduling method based on the persistent memory file system provided by this application, after receiving at least one IO request, first insert the IO request into the discrete operation queue, and then judge whether the IO request is consistent with the IO in the similar operation queue. Whether the subqueues are related. Among them, the discrete operation queue and the similar operation queue belong to the waiting processing queue. If the IO request is related to the IO subqueue in the similar operation queue, it will be inserted into the similar operation queue as a subqueue, and then can be processed according to The searched similar operation queue performs IO scheduling, and then performs IO scheduling according to the searched discrete operation queue. It can be seen that after receiving the IO request, this application does not immediately perform IO scheduling, but integrates the associated IO requests and inserts them into similar queues as subqueues, and then performs IO scheduling by searching for similar operation queues. In this way, the intelligent load IO scheduling is realized, the number of network communication and the number of device erasing and writing are reduced, the delay is reduced, and the performance is also improved.

附图说明Description of drawings

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings that need to be used in the description of the embodiments will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments of the present application. For those skilled in the art, other drawings can also be obtained based on these drawings without any creative effort.

图1为本申请实施例提供的一种基于持久性内存文件系统的IO调度方法的流程图;FIG. 1 is a flow chart of an IO scheduling method based on a persistent memory file system provided in an embodiment of the present application;

图2为本申请实施例提供的根据查找的相似操作队列执行IO调度的流程图;FIG. 2 is a flow chart of performing IO scheduling according to the searched similar operation queue provided by the embodiment of the present application;

图3为本申请实施例提供的一种基于持久性内存文件系统的IO调度装置的结构示意图。FIG. 3 is a schematic structural diagram of an IO scheduling device based on a persistent memory file system provided by an embodiment of the present application.

具体实施方式Detailed ways

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。The technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only some of the embodiments of the present application, not all of them. Based on the embodiments in this application, all other embodiments obtained by persons of ordinary skill in the art without making creative efforts belong to the scope of protection of this application.

为了便于理解本申请提供的技术方案,下面先对本申请技术方案的研究背景进行简单说明。In order to facilitate the understanding of the technical solution provided by the present application, a brief description of the research background of the technical solution of the present application is given below.

众所周知,正如背景技术中的描述,目前随着科技的发展,处理器和存储器之间性能差距越来越大,特别是处理器和外存之间的巨大差距使得IO瓶颈问题日益突出,如果还是通过传统的在内存中设置磁盘文件cache来缓解IO瓶颈的方式,将无法满足数据爆炸式的增长对内存容量的需求,并且,随着工业技术的进步,新型非易失性存储介质逐渐出现在人们的视野中,它可字节寻址和非易失的特性使得数据在内存级就可以持久化存储。新型非易失存储器件的高密度、读写速度越来越接近传统的动态随机存取存储器(DynamicRandom Access Memory,简称DRAM)以及掉电数据不会丢失的特性使得人们将其作为内存的替代品甚至的下一代存储设备的首选。在此基础上,如何利用更先进的IO调度方法取代传统的调度方式,实现基于持久性内存文件系统的智能IO调度,从而协调中央处理器(Central Processing Unit,简称CPU)的计算开销以及新型非易失存储介质作为内存时的开销平衡,进而有效缓解IO瓶颈,已成为亟待解决的问题。As we all know, as described in the background technology, with the development of science and technology, the performance gap between the processor and the memory is getting bigger and bigger, especially the huge gap between the processor and the external memory makes the IO bottleneck problem increasingly prominent. If it is still The traditional method of setting disk file cache in memory to alleviate IO bottlenecks will not be able to meet the demand for memory capacity due to the explosive growth of data, and, with the advancement of industrial technology, new types of non-volatile storage media are gradually appearing in In people's view, its byte-addressable and non-volatile characteristics allow data to be stored persistently at the memory level. The high density, read and write speed of the new non-volatile memory device is getting closer to the traditional dynamic random access memory (Dynamic Random Access Memory, referred to as DRAM), and the characteristics that the data will not be lost when the power is turned off make people use it as a substitute for memory Even the first choice for next-generation storage devices. On this basis, how to replace the traditional scheduling method with a more advanced IO scheduling method to realize intelligent IO scheduling based on the persistent memory file system, so as to coordinate the computing overhead of the central processing unit (Central Processing Unit, referred to as CPU) and the new non- Balancing the overhead of volatile storage media as memory, and effectively alleviating IO bottlenecks, has become an urgent problem to be solved.

基于此,本申请提出了一种基于持久性内存文件系统的IO调度方法及装置,用于实现基于持久性内存文件系统的智能IO调度。Based on this, the present application proposes an IO scheduling method and device based on a persistent memory file system for realizing intelligent IO scheduling based on a persistent memory file system.

以下将结合附图对本申请实施例提供的基于持久性内存文件系统的IO调度方法进行详细说明。参见图1,其示出了本申请实施例提供的一种基于持久性内存文件系统的IO调度方法的流程图,本实施例可以包括以下步骤:The IO scheduling method based on the persistent memory file system provided by the embodiment of the present application will be described in detail below with reference to the accompanying drawings. Referring to FIG. 1, it shows a flowchart of a persistent memory file system-based IO scheduling method provided by an embodiment of the present application. This embodiment may include the following steps:

S101:接收至少一个IO请求。S101: Receive at least one IO request.

在本实施例中,随着人们越来越多的将新型非易失性存储介质作为内存,形成了持久化内存文件系统,为了协调CPU的计算开销以及新型非易失存储介质作为内存时的开销平衡,进而有效缓解IO瓶颈,在接收到至少一个IO请求后,可以通过后续步骤实现对接收的IO请求的智能调度。In this embodiment, as more and more people use new non-volatile storage media as memory, a persistent memory file system is formed. In order to coordinate the computing overhead of the CPU and the Overhead balance can effectively alleviate the IO bottleneck. After receiving at least one IO request, intelligent scheduling of the received IO requests can be realized through subsequent steps.

S102:将IO请求插入离散操作队列后,判断该IO请求与相似操作队列中的IO子队列是否相关,其中,离散操作队列和相似操作队列属于等待处理队列。S102: After inserting the IO request into the discrete operation queue, determine whether the IO request is related to the IO subqueue in the similar operation queue, wherein the discrete operation queue and the similar operation queue belong to the waiting processing queue.

在本实施例中,为了实现智能IO调度,一种可选的实现方式是,预先设置等待处理队列,该等待处理队列包含相似操作队列和离散操作队列,其中,相似操作队列是由IO子队列组成,离散操作队列是由IO请求组成。In this embodiment, in order to realize intelligent IO scheduling, an optional implementation method is to pre-set the waiting processing queue, which includes similar operation queues and discrete operation queues, wherein the similar operation queues are composed of IO sub-queues Composition, the discrete operation queue is composed of IO requests.

在本实现方式中,为了实现基于语义分析的智能IO调度,以达到操作的聚合处理,首先在对IO请求指令处理之前,需要预先设置多个等待处理队列,其中,等待处理队列可以包括由IO子队列组成的相似操作队列以及由IO请求组成的离散操作队列,在初始情况下,相似操作队列为空,当通过步骤S201接收到至少一个IO请求后,可将其插入离散操作队列中,然后在基于语义分析,找出相关联的IO请求,进行聚合处理,以便在进行多线程操作时,可以将相似的IO操作请求,例如对同一个文件的操作、对同一个目录下的多个操作等聚合成一个大的I/O子队列包,插入相似操作队列,比如,假设接收到的三条IO请求分别为“读取A的前50个字节”、“读取A的后20个字节”以及“修改A中的第80个字节”,则从语义上分析可得出这三个IO操作请求是对同一文件的操作,是可以进行聚合处理的,即可以将三者聚合成一个大的I/O子队列包,插入到相似操作队列中。In this implementation, in order to realize intelligent IO scheduling based on semantic analysis to achieve aggregated processing of operations, first, before processing IO request instructions, it is necessary to pre-set multiple waiting processing queues, wherein the waiting processing queues may include IO A similar operation queue composed of subqueues and a discrete operation queue composed of IO requests. In the initial situation, the similar operation queue is empty. After receiving at least one IO request through step S201, it can be inserted into the discrete operation queue, and then Based on semantic analysis, find out the associated IO requests and perform aggregation processing so that similar IO operation requests can be combined during multi-threaded operations, such as operations on the same file, multiple operations on the same directory etc. Aggregate into a large I/O sub-queue package and insert into a similar operation queue. For example, suppose the three received IO requests are "read the first 50 bytes of A", "read the last 20 bytes of A section" and "modify the 80th byte in A", then from the semantic analysis, it can be concluded that these three IO operation requests are operations on the same file, and can be aggregated, that is, the three can be aggregated into A large I/O subqueue packet, inserted into a similar operation queue.

进而后续再通过步骤S201接收到IO请求后,可以判断该IO请求与相似操作队列中的IO子队列是否相关,具体的,可以通过现有的语义分析的方法,计算出该IO请求是是否和相似操作队列中每个IO子队列包中每个子队列有关联关系。如果有,这可继续执行步骤S103。Then, after the IO request is received in step S201, it can be judged whether the IO request is related to the IO sub-queue in the similar operation queue. Specifically, it can be calculated whether the IO request is related to the IO sub-queue in the similar operation queue. Each sub-queue in each IO sub-queue package in the similar operation queue has an association relationship. If so, proceed to step S103.

S103:如果是,则将IO请求作为子队列插入相似操作队列中。S103: If yes, insert the IO request into a similar operation queue as a subqueue.

在本实施例中,若通过步骤S102判断出接收到的IO请求与相似操作队列中的IO子队列是相关的,则可以将该IO请求作为子队列插入到相似操作队列中的相应的IO子队列包中。In this embodiment, if it is determined through step S102 that the received IO request is related to the IO subqueue in the similar operation queue, the IO request can be inserted as a subqueue into the corresponding IO subqueue in the similar operation queue. in the queue package.

举例说明:在上述示例的基础上,假设在相似操作队列中,存在由三条IO请求“读取A的前50个字节”、“读取A的后20个字节”以及“修改A中的第80个字节”组成一个I/O子队列包,此时,若通过步骤S102接收到一条IO请求为“读取A的第60至70个字节”,则通过语义分析,可以得出该IO请求与相似操作队列中的IO子队列“读取A的前50个字节”、“对去A的后20个字节”以及“修改A中的第80个字节”是相关的,进而可以将该IO请求作为子队列插入到相似操作队列中的上述IO子队列包中,使得该IO子队列包包含有四个I/O子队列(即,上述四条IO请求)。For example: Based on the above example, assume that in the similar operation queue, there are three IO requests "read the first 50 bytes of A", "read the last 20 bytes of A" and "modify the The 80th byte of A" constitutes an I/O sub-queue packet. At this time, if an IO request is received through step S102 as "reading the 60th to 70th byte of A", then through semantic analysis, it can be obtained The IO request is related to the IO subqueue in the similar operation queue "read the first 50 bytes of A", "remove the last 20 bytes of A" and "modify the 80th byte in A" Then, the IO request can be inserted as a subqueue into the above IO subqueue package in the similar operation queue, so that the IO subqueue package includes four I/O subqueues (that is, the above four IO requests).

需要说明的是,在本申请一些可能的实现方式中,如果在步骤S102中,判断出接收到的IO请求与相似操作队列中的IO子队列无关,则进一步,可以判断该IO请求与离散操作队列中的其他IO请求是否相关,如果相关,则可以根据IO请求与离散操作队列中的其他与其相关的IO请求,新建一个IO子队列包插入相似操作队列中。It should be noted that, in some possible implementations of the present application, if in step S102, it is judged that the received IO request has nothing to do with the IO subqueue in the similar operation queue, then further, it can be judged that the IO request is not related to the discrete operation Whether other IO requests in the queue are related, and if they are related, a new IO sub-queue packet can be created and inserted into the similar operation queue according to the IO request and other related IO requests in the discrete operation queue.

在本实现方式中,如果判断出接收到的IO请求与相似操作队列中的IO子队列无关,则不能将其直接作为子队列插入相似操作队列中,而是需要再判断该IO请求与离散操作队列中的其他IO请求是否相关,比如,同样可以通过语义分析的方式进行判断,例如,假设该IO请求与离散操作队列中的IO请求B在语义上是相关的,则可以将IO请求与IO请求B进行整合,构建一个IO子队列包,二者分别作为该包中的子队列,并将该IO子队列包插入相似操作队列中,以便利用后续步骤实现IO请求的调度。In this implementation, if it is judged that the received IO request has nothing to do with the IO sub-queue in the similar operation queue, it cannot be directly inserted into the similar operation queue as a sub-queue, but it needs to be further judged that the IO request is related to the discrete operation Whether other IO requests in the queue are related, for example, can also be judged by semantic analysis. For example, assuming that the IO request is semantically related to the IO request B in the discrete operation queue, the IO request can be compared with the IO Request B to integrate, build an IO sub-queue package, the two are respectively used as sub-queues in the package, and insert the IO sub-queue package into a similar operation queue, so as to use the subsequent steps to realize the scheduling of IO requests.

需要说明的是,若判断出该IO请求与离散操作队列中的其他IO请求也是不相关的,则将其保留在离散操作队列中,以便后续通过步骤S105进行调度。It should be noted that, if it is determined that the IO request is not related to other IO requests in the discrete operation queue, it will be kept in the discrete operation queue for subsequent scheduling through step S105.

S104:根据查找的相似操作队列,执行IO调度。S104: Execute IO scheduling according to the found similar operation queues.

在实际应用中,通过步骤S103将接收到的IO请求作为子队列插入相似操作队列后,可以在执行多线程操作时,通过查找所有相似操作队列,执行其中对应的IO调度。In practical applications, after the received IO request is inserted into the similar operation queue as a subqueue in step S103, the corresponding IO scheduling can be executed by searching all the similar operation queues when performing multi-threaded operations.

在本申请一些可能的实现方式中,如图2所示,本步骤S104具体可以包括步骤S201-S203:In some possible implementations of the present application, as shown in FIG. 2, this step S104 may specifically include steps S201-S203:

步骤S201:查找等待处理队列中的相似操作队列。Step S201: Search for similar operation queues in the queues waiting to be processed.

在本实现方式中,通过S103形成了相似操作队列中的所有IO子队列后,可以通过查找等待处理队列中的所有的相似操作队列,进行后续步骤S202。In this implementation, after all the IO sub-queues in the similar operation queue are formed through S103, the subsequent step S202 can be performed by searching all the similar operation queues in the waiting processing queue.

步骤S202:判断相似操作队列中是否包含有至少一个子队列包,其中,子队列包是由至少两个相关的子队列组成。Step S202: Determine whether the similar operation queue contains at least one sub-queue packet, wherein the sub-queue packet is composed of at least two related sub-queues.

通过步骤S201查找到等待处理队列中的所有的相似操作队列后,进一步可以判断出相似操作队列中是否包含有至少一个子队列包,如果包含,则可以继续执行步骤S203。After finding all the similar operation queues in the waiting processing queue through step S201, it can be further judged whether there is at least one sub-queue packet in the similar operation queue, and if so, step S203 can be continued.

步骤S203:如果是,则根据相似操作队列中包含的子队列包,按包执行IO调度。Step S203: If yes, perform IO scheduling by package according to the sub-queue packages contained in the similar operation queue.

在本实现方式中,如果通过步骤S202判断出相似操作队列中包含有至少一个子队列包,则可以将这些子队列包按包进行IO调度,比如,可以按包进行IO请求的发送等。例如,客户端在接收到多个IO请求后,可以通过上述步骤形成多个子队列包插入相似操作队列中,在将这些子队列包按包一次发送给服务器端,一次发送一个子队列包(其中包含多个IP请求),直至将相似操作队列中的所有子队列包均发送给服务器端,从而实现了智能负载IO调度,减少了网络通信次数和器件擦写次数,降低了时延,也提高了性能。同理,服务器端在接收到客户端发送的多个IO请求后,也可以通过上述步骤实现对IO请求的重新整合,在以新型非易失性存储介质作为内存的基础上,可以实现更快速度的集中处理,具体过程可参见上述步骤,本申请在此不再赘述。In this implementation, if it is determined in step S202 that the similar operation queue contains at least one sub-queue packet, IO scheduling can be performed on these sub-queue packets by packet, for example, IO requests can be sent by packet. For example, after receiving multiple IO requests, the client can form multiple sub-queue packets through the above steps and insert them into similar operation queues, and then send these sub-queue packets to the server at a time, sending one sub-queue packet at a time (where Including multiple IP requests), until all sub-queue packets in similar operation queues are sent to the server, thereby realizing intelligent load IO scheduling, reducing the number of network communications and device erasing times, reducing delays, and improving performance. Similarly, after receiving multiple IO requests sent by the client, the server can also reintegrate the IO requests through the above steps. On the basis of using a new type of non-volatile storage medium as the memory, faster The specific process can be referred to the above-mentioned steps, and the present application will not repeat them here.

S105:根据查找的离散操作队列,执行IO调度。S105: Execute IO scheduling according to the found discrete operation queue.

在本实施例中,若通过上述步骤实现对相似操作队列的智能IO调度后,仍存在与离散操作队列中的其他IO请求不相关的IO请求,则可以将其保留在离散操作队列中,进而可以通过查找离散操作队列,执行对这些IO请求的调度。In this embodiment, if there are still IO requests that are not related to other IO requests in the discrete operation queue after the intelligent IO scheduling of similar operation queues is implemented through the above steps, they can be retained in the discrete operation queue, and then Scheduling of these IO requests can be performed by looking up the discrete operation queue.

需要说明的是,在本申请一些可能的实现方式中,系统内存为新型非易失性存储介质。It should be noted that, in some possible implementation manners of the present application, the system memory is a new type of non-volatile storage medium.

具体来讲,新型非易失性存储介质可以为存储器内存(Storage Class Memory,简称SCM)、非易失存储器(NonVolatile Memory,简称NVM)中的至少一种。Specifically, the novel non-volatile storage medium may be at least one of a storage class memory (Storage Class Memory, SCM for short) and a non-volatile memory (NonVolatile Memory, NVM for short).

这样,在本申请提供的基于持久性内存文件系统的IO调度方法中,在接收到至少一个IO请求后,先将该IO请求插入到离散操作队列中,再判断该IO请求与相似操作队列中的IO子队列是否相关,其中,离散操作队列和相似操作队列均属于等待处理队列,若该IO请求与相似操作队列中的IO子队列相关,则将其作为子队列插入相似操作队列中,进而可根据查找的相似操作队列,执行IO调度,接着,再根据查找的离散操作队列,执行IO调度。可见,本申请在接收到IO请求后,不再立即进行IO调度,而是将相关联的IO请求进行整合后作为子队列插入到相似队列中,进而通过查找相似操作队列,再执行IO调度,从而实现了智能负载IO调度,减少了网络通信次数和器件擦写次数,降低了时延,也提高了性能。In this way, in the IO scheduling method based on the persistent memory file system provided by the present application, after receiving at least one IO request, the IO request is first inserted into the discrete operation queue, and then it is judged that the IO request is different from the similar operation queue. Whether the IO sub-queues are related. Among them, the discrete operation queue and the similar operation queue belong to the waiting processing queue. If the IO request is related to the IO sub-queue in the similar operation queue, it will be inserted into the similar operation queue as a sub-queue, and then IO scheduling can be performed according to the searched similar operation queues, and then IO scheduling can be performed according to the searched discrete operation queues. It can be seen that after receiving the IO request, this application does not immediately perform IO scheduling, but integrates the associated IO requests and inserts them into similar queues as subqueues, and then performs IO scheduling by searching for similar operation queues. In this way, the intelligent load IO scheduling is realized, the number of network communication and the number of device erasing and writing are reduced, the delay is reduced, and the performance is also improved.

基于以上基于持久性内存文件系统的IO调度方法,本申请还提供了一种基于持久性内存文件系统的IO调度装置,所述装置包括:Based on the above IO scheduling method based on the persistent memory file system, the present application also provides an IO scheduling device based on the persistent memory file system, the device comprising:

接收单元301,用于接收至少一个IO请求;a receiving unit 301, configured to receive at least one IO request;

第一判断单元302,用于将所述IO请求插入离散操作队列后,判断所述IO请求与相似操作队列中的IO子队列是否相关,所述离散操作队列和所述相似操作队列属于等待处理队列;The first judging unit 302 is configured to, after inserting the IO request into the discrete operation queue, judge whether the IO request is related to the IO sub-queue in the similar operation queue, and the discrete operation queue and the similar operation queue belong to waiting processing queue;

插入单元303,用于如果IO请求与相似操作队列中的IO子队列相关,则将所述IO请求作为子队列插入所述相似操作队列中;Inserting unit 303, configured to insert the IO request into the similar operation queue as a subqueue if the IO request is related to the IO subqueue in the similar operation queue;

第一调度单元304,用于根据查找的所述相似操作队列,执行IO调度;The first scheduling unit 304 is configured to perform IO scheduling according to the searched similar operation queue;

第二调度单元305,用于根据查找的所述离散队操作列,执行IO调度。The second scheduling unit 305 is configured to perform IO scheduling according to the searched discrete queue operation sequence.

可选地,所述装置还包括:Optionally, the device also includes:

设置单元,用于预先设置等待处理队列,所述等待处理队列包含相似操作队列和离散操作队列;The setting unit is used to pre-set the waiting processing queue, and the waiting processing queue includes similar operation queues and discrete operation queues;

其中,所述相似操作队列是由IO子队列组成,所述离散操作队列是IO请求组成。Wherein, the similar operation queue is composed of IO subqueues, and the discrete operation queue is composed of IO requests.

可选地,所述第一调度单元304包括:Optionally, the first scheduling unit 304 includes:

查找子单元,用于查找所述等待处理队列中的相似操作队列;A search subunit is used to search for similar operation queues in the queue waiting to be processed;

第一判断子单元,用于判断所述相似操作队列中是否包含有至少一个子对列包,所述子对列包是由至少两个相关的子队列组成;The first judging subunit is used to judge whether the similar operation queue contains at least one sub-column packet, and the sub-column packet is composed of at least two related sub-queues;

第一调度子单元,用于如果相似操作队列中是包含有至少一个子对列包,则根据所述相似操作队列中包含的子对列包,按包执行IO调度。The first scheduling subunit is configured to perform IO scheduling by package according to the sub-pair packets contained in the similar operation queue if the similar operation queue contains at least one sub-pair packet.

可选地,如果所述IO请求与所述相似操作队列中的IO子队列无关,所述装置还包括:Optionally, if the IO request is not related to the IO subqueue in the similar operation queue, the device further includes:

第二判断单元,用于判断所述IO请求与所述离散操作队列中的其他IO请求是否相关;A second judging unit, configured to judge whether the IO request is related to other IO requests in the discrete operation queue;

新建单元,用于如果所述IO请求与所述离散操作队列中的其他IO请求是相关的,则根据所述IO请求与所述离散操作队列中的其他相关的IO请求,新建一个IO子队列包插入所述相似操作队列中。A new unit, configured to create an IO sub-queue according to the IO request and other related IO requests in the discrete operation queue if the IO request is related to other IO requests in the discrete operation queue The packet is inserted into the similar operation queue.

可选地,所述内存为新型非易失性存储介质。Optionally, the memory is a new type of non-volatile storage medium.

这样,在本申请提供的基于持久性内存文件系统的IO调度装置中,在接收到至少一个IO请求后,先将该IO请求插入到离散操作队列中,再判断该IO请求与相似操作队列中的IO子队列是否相关,其中,离散操作队列和相似操作队列均属于等待处理队列,若该IO请求与相似操作队列中的IO子队列相关,则将其作为子队列插入相似操作队列中,进而可根据查找的相似操作队列,执行IO调度,接着,再根据查找的离散操作队列,执行IO调度。可见,本申请在接收到IO请求后,不再立即进行IO调度,而是将相关联的IO请求进行整合后作为子队列插入到相似队列中,进而通过查找相似操作队列,再执行IO调度,从而实现了智能负载IO调度,减少了网络通信次数和器件擦写次数,降低了时延,也提高了性能。In this way, in the IO scheduling device based on the persistent memory file system provided by the present application, after receiving at least one IO request, the IO request is first inserted into the discrete operation queue, and then it is judged that the IO request is consistent with the similar operation queue. Whether the IO subqueues of the similar operation queues are related. Among them, the discrete operation queue and the similar operation queue belong to the waiting processing queue. If the IO request is related to the IO subqueue in the similar operation queue, it will be inserted into the similar operation queue as a subqueue, and then IO scheduling can be performed according to the searched similar operation queues, and then IO scheduling can be performed according to the searched discrete operation queues. It can be seen that after receiving the IO request, this application does not immediately perform IO scheduling, but integrates the associated IO requests and inserts them into similar queues as subqueues, and then performs IO scheduling by searching for similar operation queues. In this way, the intelligent load IO scheduling is realized, the number of network communication and the number of device erasing and writing are reduced, the delay is reduced, and the performance is also improved.

需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。It should be noted that each embodiment in this specification is described in a progressive manner, each embodiment focuses on the differences from other embodiments, and the same and similar parts of each embodiment can be referred to each other. As for the system or device disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and for relevant details, please refer to the description of the method part.

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。It should also be noted that in this article, relational terms such as first and second etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply that these entities or operations Any such actual relationship or order exists between. Furthermore, the term "comprises", "comprises" or any other variation thereof is intended to cover a non-exclusive inclusion such that a process, method, article, or apparatus comprising a set of elements includes not only those elements, but also includes elements not expressly listed. other elements of or also include elements inherent in such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of additional identical elements in the process, method, article or apparatus comprising said element.

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。The steps of the methods or algorithms described in connection with the embodiments disclosed herein may be directly implemented by hardware, software modules executed by a processor, or a combination of both. Software modules can be placed in random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, removable disk, CD-ROM, or any other Any other known storage medium.

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。The above description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present application. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the application. Therefore, the present application will not be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims (10)

1.一种基于持久性内存文件系统的IO调度方法,其特征在于,所述方法包括:1. an IO scheduling method based on persistent memory file system, it is characterized in that, described method comprises: 接收至少一个IO请求;Receive at least one IO request; 将所述IO请求插入离散操作队列后,判断所述IO请求与相似操作队列中的IO子队列是否相关,所述离散操作队列和所述相似操作队列属于等待处理队列;After the IO request is inserted into the discrete operation queue, it is judged whether the IO request is related to the IO sub-queue in the similar operation queue, and the discrete operation queue and the similar operation queue belong to the waiting processing queue; 如果是,则将所述IO请求作为子队列插入所述相似操作队列中;If so, inserting the IO request as a subqueue into the similar operation queue; 根据查找的所述相似操作队列,执行IO调度;Execute IO scheduling according to the searched similar operation queue; 根据查找的所述离散队操作列,执行IO调度。Perform IO scheduling according to the discrete queue operation column found. 2.根据权利要求1所述的基于持久性内存文件系统的IO调度方法,其特征在于,所述方法还包括:2. The IO scheduling method based on the persistent memory file system according to claim 1, wherein the method further comprises: 预先设置等待处理队列,所述等待处理队列包含相似操作队列和离散操作队列;Presetting the waiting processing queue, the waiting processing queue includes a similar operation queue and a discrete operation queue; 其中,所述相似操作队列是由IO子队列组成,所述离散操作队列是IO请求组成。Wherein, the similar operation queue is composed of IO subqueues, and the discrete operation queue is composed of IO requests. 3.根据权利要求1或2所述的基于持久性内存文件系统的IO调度方法,其特征在于,所述根据查找的所述相似操作队列,执行IO调度,包括:3. The IO scheduling method based on the persistent memory file system according to claim 1 or 2, wherein the IO scheduling is performed according to the similar operation queue searched, comprising: 查找所述等待处理队列中的相似操作队列;Find similar operation queues in the waiting processing queue; 判断所述相似操作队列中是否包含有至少一个子对列包,所述子对列包是由至少两个相关的子队列组成;Judging whether the similar operation queue contains at least one sub-column packet, the sub-column packet is composed of at least two related sub-queues; 如果是,则根据所述相似操作队列中包含的子对列包,按包执行IO调度。If yes, perform IO scheduling by package according to the sub-pair packages contained in the similar operation queue. 4.根据权利要求1所述的基于持久性内存文件系统的IO调度方法,其特征在于,如果所述IO请求与所述相似操作队列中的IO子队列无关,所述方法还包括:4. The IO scheduling method based on the persistent memory file system according to claim 1, wherein if the IO request has nothing to do with the IO subqueue in the similar operation queue, the method further comprises: 判断所述IO请求与所述离散操作队列中的其他IO请求是否相关;judging whether the IO request is related to other IO requests in the discrete operation queue; 如果是,则根据所述IO请求与所述离散操作队列中的其他相关的IO请求,新建一个IO子队列包插入所述相似操作队列中。If so, according to the IO request and other related IO requests in the discrete operation queue, create a new IO sub-queue packet and insert it into the similar operation queue. 5.根据权利要求1所述的基于持久性内存文件系统的IO调度方法,其特征在于,所述内存为新型非易失性存储介质。5. The IO scheduling method based on a persistent memory file system according to claim 1, wherein the memory is a new type of non-volatile storage medium. 6.一种基于持久性内存文件系统的IO调度装置,其特征在于,所述装置包括:6. An IO scheduling device based on a persistent memory file system, characterized in that the device comprises: 接收单元,用于接收至少一个IO请求;a receiving unit, configured to receive at least one IO request; 第一判断单元,用于将所述IO请求插入离散操作队列后,判断所述IO请求与相似操作队列中的IO子队列是否相关,所述离散操作队列和所述相似操作队列属于等待处理队列;A first judging unit, configured to, after inserting the IO request into a discrete operation queue, judge whether the IO request is related to an IO subqueue in a similar operation queue, and the discrete operation queue and the similar operation queue belong to a waiting processing queue ; 插入单元,用于如果IO请求与相似操作队列中的IO子队列相关,则将所述IO请求作为子队列插入所述相似操作队列中;an insertion unit, configured to insert the IO request as a subqueue into the similar operation queue if the IO request is related to the IO subqueue in the similar operation queue; 第一调度单元,用于根据查找的所述相似操作队列,执行IO调度;A first scheduling unit, configured to perform IO scheduling according to the searched similar operation queue; 第二调度单元,用于根据查找的所述离散队操作列,执行IO调度。The second scheduling unit is configured to perform IO scheduling according to the searched discrete queue operation sequence. 7.根据权利要求6所述的装置,其特征在于,所述装置还包括:7. The device according to claim 6, further comprising: 设置单元,用于预先设置等待处理队列,所述等待处理队列包含相似操作队列和离散操作队列;The setting unit is used to pre-set the waiting processing queue, and the waiting processing queue includes similar operation queues and discrete operation queues; 其中,所述相似操作队列是由IO子队列组成,所述离散操作队列是IO请求组成。Wherein, the similar operation queue is composed of IO subqueues, and the discrete operation queue is composed of IO requests. 8.根据权利要求6或7所述的装置,其特征在于,所述第一调度单元包括:8. The device according to claim 6 or 7, wherein the first scheduling unit comprises: 查找子单元,用于查找所述等待处理队列中的相似操作队列;A search subunit, configured to search for similar operation queues in the queue waiting to be processed; 第一判断子单元,用于判断所述相似操作队列中是否包含有至少一个子对列包,所述子对列包是由至少两个相关的子队列组成;A first judging subunit, configured to judge whether at least one sub-column packet is included in the similar operation queue, and the sub-column packet is composed of at least two related sub-queues; 第一调度子单元,用于如果相似操作队列中是包含有至少一个子对列包,则根据所述相似操作队列中包含的子对列包,按包执行IO调度。The first scheduling subunit is configured to perform IO scheduling by package according to the sub-pair packets contained in the similar operation queue if the similar operation queue contains at least one sub-pair packet. 9.根据权利要求6所述的装置,其特征在于,如果所述IO请求与所述相似操作队列中的IO子队列无关,所述装置还包括:9. The device according to claim 6, wherein if the IO request has nothing to do with the IO sub-queue in the similar operation queue, the device further comprises: 第二判断单元,用于判断所述IO请求与所述离散操作队列中的其他IO请求是否相关;a second judging unit, configured to judge whether the IO request is related to other IO requests in the discrete operation queue; 新建单元,用于如果所述IO请求与所述离散操作队列中的其他IO请求是相关的,则根据所述IO请求与所述离散操作队列中的其他相关的IO请求,新建一个IO子队列包插入所述相似操作队列中。A new unit, configured to create a new IO sub-queue according to the IO request and other related IO requests in the discrete operation queue if the IO request is related to other IO requests in the discrete operation queue The packet is inserted into the similar operation queue. 10.根据权利要求6所述的装置,其特征在于,所述内存为新型非易失性存储介质。10. The device according to claim 6, wherein the memory is a new type of non-volatile storage medium.
CN201810974379.4A 2018-08-24 2018-08-24 A kind of I O scheduling method and device based on persistence memory file system Pending CN108984132A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810974379.4A CN108984132A (en) 2018-08-24 2018-08-24 A kind of I O scheduling method and device based on persistence memory file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810974379.4A CN108984132A (en) 2018-08-24 2018-08-24 A kind of I O scheduling method and device based on persistence memory file system

Publications (1)

Publication Number Publication Date
CN108984132A true CN108984132A (en) 2018-12-11

Family

ID=64546716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810974379.4A Pending CN108984132A (en) 2018-08-24 2018-08-24 A kind of I O scheduling method and device based on persistence memory file system

Country Status (1)

Country Link
CN (1) CN108984132A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112989232A (en) * 2019-12-17 2021-06-18 北京搜狗科技发展有限公司 Search result ordering method and device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104346285A (en) * 2013-08-06 2015-02-11 华为技术有限公司 Memory access processing method, device and system
CN104424105A (en) * 2013-08-26 2015-03-18 华为技术有限公司 Memory data reading and writing processing method and device
US20150081839A1 (en) * 2008-06-18 2015-03-19 Amazon Technologies, Inc. Fast sequential message store
EP2955660A1 (en) * 2014-06-12 2015-12-16 Nagravision S.A. System and method for secure loading data in a cache memory
CN106909522A (en) * 2015-12-22 2017-06-30 中国电信股份有限公司 The delay control method of GPU write request data, device and cloud computing system
US20180060235A1 (en) * 2016-08-30 2018-03-01 Intel Corporation Non-volatile memory compression devices and associated methods and systems
CN107943413A (en) * 2017-10-12 2018-04-20 记忆科技(深圳)有限公司 A kind of method of solid state hard disc lifting reading performance

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150081839A1 (en) * 2008-06-18 2015-03-19 Amazon Technologies, Inc. Fast sequential message store
CN104346285A (en) * 2013-08-06 2015-02-11 华为技术有限公司 Memory access processing method, device and system
CN104424105A (en) * 2013-08-26 2015-03-18 华为技术有限公司 Memory data reading and writing processing method and device
EP2955660A1 (en) * 2014-06-12 2015-12-16 Nagravision S.A. System and method for secure loading data in a cache memory
CN106909522A (en) * 2015-12-22 2017-06-30 中国电信股份有限公司 The delay control method of GPU write request data, device and cloud computing system
US20180060235A1 (en) * 2016-08-30 2018-03-01 Intel Corporation Non-volatile memory compression devices and associated methods and systems
CN107943413A (en) * 2017-10-12 2018-04-20 记忆科技(深圳)有限公司 A kind of method of solid state hard disc lifting reading performance

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
鄢磊: ""持久性内存文件系统优化研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112989232A (en) * 2019-12-17 2021-06-18 北京搜狗科技发展有限公司 Search result ordering method and device

Similar Documents

Publication Publication Date Title
US11561912B2 (en) Host controller interface using multiple circular queue, and operating method thereof
US20230205604A1 (en) Technologies for providing efficient migration of services at a cloud edge
US10083131B2 (en) Generating and/or employing a descriptor associated with a memory translation table
CN100590609C (en) A Dynamic Memory Management Method Based on Discontinuous Pages
WO2016011811A1 (en) Memory management method and apparatus, and storage medium
US7668841B2 (en) Virtual write buffers for accelerated memory and storage access
WO2016187974A1 (en) Storage space management method and apparatus
US12375390B2 (en) Memory pooled time sensitive networking based architectures
CN102223681B (en) IOT system and cache control method therein
CN108763103A (en) A kind of EMS memory management process, device, system and computer readable storage medium
WO2016078313A1 (en) Data writing method and device
CN110109873B (en) File management method for message queue
CN111984425B (en) Memory management method, device and equipment for operating system
US7568082B2 (en) Memory controller and method for writing to a memory
CN105389264A (en) Method and system for garbage collection in storage system
CN106325758A (en) Method and device for queue storage space management
CN116822657B (en) Method and device for accelerating model training, storage medium and electronic equipment
CN106599091A (en) Storage and indexing method of RDF graph structures stored based on key values
CN115203251A (en) A local database query method based on shared memory
CN114490039A (en) Network card flow secondary allocation method, system, equipment and medium for CPU load balance
CN105516023A (en) Message forwarding method and apparatus
CN115858184A (en) A kind of RDMA memory management method, device, equipment and medium
CN108984132A (en) A kind of I O scheduling method and device based on persistence memory file system
CN115129728A (en) A method and device for document verification
CN101848150A (en) Method and device for maintaining count value of multicast counter

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181211