CN112000287A - 一种io请求处理装置、方法、设备及可读存储介质 - Google Patents

一种io请求处理装置、方法、设备及可读存储介质 Download PDF

Info

Publication number
CN112000287A
CN112000287A CN202010820337.2A CN202010820337A CN112000287A CN 112000287 A CN112000287 A CN 112000287A CN 202010820337 A CN202010820337 A CN 202010820337A CN 112000287 A CN112000287 A CN 112000287A
Authority
CN
China
Prior art keywords
data
layer
request
memory
cache layer
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.)
Granted
Application number
CN202010820337.2A
Other languages
English (en)
Other versions
CN112000287B (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 Inspur Data Technology Co Ltd
Original Assignee
Beijing Inspur Data 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 Beijing Inspur Data Technology Co Ltd filed Critical Beijing Inspur Data Technology Co Ltd
Priority to CN202010820337.2A priority Critical patent/CN112000287B/zh
Publication of CN112000287A publication Critical patent/CN112000287A/zh
Application granted granted Critical
Publication of CN112000287B publication Critical patent/CN112000287B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

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

Abstract

本发明公开了一种IO请求处理装置、方法、设备及可读存储介质,该装置包括:应用缓存层,用于获取应用程序的IO请求以及IO请求对应的IO数据;C库缓存层,用于从应用缓存层拷贝IO数据;NFS协议缓存层,用于为IO数据分配目标内存;文件系统抽象层,用于在文件系统中的目标内存中缓存IO数据;本地磁盘存储层,用于将IO数据写入磁盘。在该装置中,每一个缓存层,具有明确分工,能够在复杂IO业务场景下对内存分配/管理,数据一致性同步和缓存的处理机制简单,能够有效避免浪费分布式存储文件系统的资源,能够保障IP路径业务顺畅。

Description

一种IO请求处理装置、方法、设备及可读存储介质
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种IO请求处理装置、方法、设备及可读存储介质。
背景技术
在Linux文件系统中,为了提高文件系统的IO性能,Linux Kernel使用系统内存来分配缓冲区机制,用来缓存文件系统操作,数据文件和元数据信息,当Linux Kernel收到用户的读写请求时,Kernel进程通过缓存判定机制,首先会在缓存区查找是否有缓存数据,如果没有则通过Linux Kernel驱动程序从磁盘硬件设备中获取,如果有则直接返回。缓存机制的主要优点是减少用户操作文件IO的系统调用次数,降低CPU上下文切换和磁盘的访问频率。
目前,在分布式存储文件系统中,为了提高系统的IO性能,采用各种不同的机制实现IO缓存的分布式存储系统,通常情况下,使用缓存比优化文件存储算法有更好的效果。
NFS协议在分布式存储应用广泛,在C/S架构模型中,摆脱单机服务限制实现远程数据共享,NFS协议属于UNIX协议的表示层(presentation layer protocol),NFS协议其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及底层传送协议无关的存取远程文件的操作。NAS融合架构是NFS服务端收到请求后,在分布式存储集群中,首先通过NFS服务端协议处理,然后把相应的文件处理请求发给文件系统抽象层,该层也称之为分布式存储文件系统的client层,client层处理后,把处理结果返回给NFS客户端,完成NFS请求处理。从NFS客户端发起请求,到分布式存储集群client层对操作进行处理IO路径较长。当前技术中,每个IO操作环节有着密切关系,针对不同层次的缓存处理不明确,在复杂IO业务场景下对内存分配/缓存管理不足,数据一致性同步和缓存的处理机制复杂,这些因素会导致分布式存储文件系统资源浪费,对不同层次的IO内存分配和缓存管理不当会造成内存严重不足,严重时会导致系统宕机,整体IO路径业务卡死。
综上所述,如何有效地解决IO缓存等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种IO请求处理装置、方法、设备及可读存储介质,提出了五层缓存机制,且每一个缓存层,具有明确分工,能够在复杂IO业务场景下对内存分配/管理,数据一致性同步和缓存的处理机制简单,能够有效避免浪费分布式存储文件系统的资源,能够保障IP路径业务顺畅。
为解决上述技术问题,本发明提供如下技术方案:
一种IO请求处理装置,包括:
应用缓存层,用于获取应用程序的IO请求以及所述IO请求对应的IO数据;
C库缓存层,用于从所述应用缓存层拷贝所述IO数据;
NFS协议缓存层,用于为所述IO数据分配目标内存;
文件系统抽象层,用于在文件系统中的所述目标内存中缓存所述IO数据;
本地磁盘存储层,用于将所述IO数据写入磁盘。
优选地,所述本地磁盘存储层,具体用于判断所述IO数据是否为热数据,如果是,则将所述IO数据存入SSD中。
优选地,所述应用缓存层,具体用于通过动态内存分配函数为所述应用程序申请缓冲区,以便所述应用程序在所述缓冲区写入所述IO请求和所述IO数据。
优选地,所述C库缓存层,具体用于调用文件流函数和文件处理函数,得到所述IO数据。
优选地,所述C库缓存层,还用于在拷贝了所述IO数据的情况下,向所述应用程序反馈所述IO请求对应的应答消息。
优选地,所述文件系统抽象层,具体用于判断所述IO数据是否为脏数据,如果是,则执行延迟策略;如果否,则触发所述本地磁盘存储层。
优选地,所述NFS协议缓存层,具体用于确定所述IO数据所需内存,利用二叉树数据结构分配所述目标内存给所述IO数据;所述目标内存大于等于所述所需内存,且所述目标内存为所述所需内存最接近2的幂数值。
一种IO请求处理方法,包括:
利用应用缓存层,获取应用程序的IO请求以及所述IO请求对应的IO数据;
利用C库缓存层,从所述应用缓存层拷贝所述IO数据;
利用NFS协议缓存层,为所述IO数据分配目标内存;
利用文件系统抽象层,在文件系统中的所述目标内存中缓存所述IO数据;
利用本地磁盘存储层,将所述IO数据写入磁盘。
一种IO请求处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述IO请求处理方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述IO请求处理方法的步骤。
应用本发明实施例所提供的装置,应用缓存层,用于获取应用程序的IO请求以及IO请求对应的IO数据;C库缓存层,用于从应用缓存层拷贝IO数据;NFS协议缓存层,用于为IO数据分配目标内存;文件系统抽象层,用于在文件系统中的目标内存中缓存IO数据;本地磁盘存储层,用于将IO数据写入磁盘。
在本装置中提出五层缓存机制,来对IO数据进行处理。具体的,应用缓存层获取应用程序的IO请求和IO数据;C库缓存层可以从应用缓存层中拷贝IO数据,即把内核地址空间映射到用户空间,能够减少用户态和内核态频繁切换问题,能够提高IO性能;NFS协议缓存层实现内存分配;文件系统抽象层在文件系统中实现IO数据缓存;本地磁盘存储层实现最终的IO数据落盘处理(即持久化)。可见,在本装置中,每一个缓存层,具有明确分工,能够在复杂IO业务场景下对内存分配/管理,数据一致性同步和缓存的处理机制简单,能够有效避免浪费分布式存储文件系统的资源,能够保障IP路径业务顺畅。
相应地,本发明实施例还提供了与上述IO请求处理方法相对应的IO请求处理装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种IO请求处理装置的结构示意图;
图2为本发明实施例中一种基于网络文件系统协议的内存申请算法示意图;
图3为本发明实施例中一种IO请求处理方法的实施流程图;
图4为本发明实施例中一种IO请求处理设备的结构示意图;
图5为本发明实施例中一种IO请求处理设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例中一种IO请求处理装置的示意图;可见,在本装置中提出了包括:应用缓存层、C库缓存层、NFS协议缓存层、文件系统抽象层和本地磁盘存储层的五层缓存机制。IO请求依次被五层缓存机制进行处理,最终实现落盘。
IO请求处理装置中的各个缓存层具体如下:
应用缓存层101,用于获取应用程序的IO请求以及IO请求对应的IO数据。
应用缓存层获取应用程序的IO请求,以及IO请求对应的IO数据。其中,IO请求即数据的读请求或者写请求。
应用缓存层,具体用于通过动态内存分配函数为应用程序申请缓冲区,以便应用程序在缓冲区写入IO请求和IO数据。应用缓存层,首先通过malloc函数(动态内存分配函数,memory allocation函数)申请buffer缓冲区,采用动态分配堆内存机制为应用程序申请的缓存区域进行读写请求。其中,malloc函数可用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址。使用malloc函数,如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。
C库缓存层102,用于从应用缓存层拷贝IO数据。
C库缓存层从应用缓存层拷贝IO数据。即IO数据抵达C库缓存层。
具体的,C库缓存层,具体用于调用文件流函数和文件处理函数,得到IO数据。采用标准的stdio函数库的fread和fwrite函数,把IO数据从应用缓存层拷贝到C库缓存层;fread和fwrite调用后,数据处于C库缓存层中。其中,fread为计算机程序中从一个文件流中读数据,最多读取count个元素,每个元素size字节,如果调用成功返回实际读取到的元素个数,如果不成功返回0。Fwrite函数是C语言标准库中的一个文件处理函数,功能是向指定的文件中写入若干数据块,如成功执行则返回实际写入的数据块数目。该函数以二进制形式对文件进行操作,不局限于文本文件。
将IO数据拷贝至C库缓存层,此时,该数据没有落盘,即没有处理持久性存储介质当中。为了加快应用程序的处理效率,C库缓存层,还用于在拷贝了IO数据的情况下,向应用程序反馈IO请求对应的应答消息。如此,应用程序便可执行后续处理操作。而在应用程序通过fclose关闭文件时,可将IO数据下刷到磁盘当中。具体的,可依据Linux系统对IO数据进行写入磁盘,下刷IO数据落盘需要调用fsync函数进行处理。
NFS协议缓存层103,用于为IO数据分配目标内存。
NFS协议缓存层进行内存分配管理。
具体的,NFS协议服务程序在Linux用户态,可以灵活分配内存空间供NFS协议缓存层使用,具体的可设计内存管理模块,元数据缓存管理模块,数据缓存管理模块。特别的,在NAS融合架构中,分布式存储文件系统Client缓存层,设计文件系统抽象层模块,通过接口完成数据访问,访问后的对象会存储在元数据缓存管理模块和数据缓存管理模块。
其中,内存管理模块,用户态NFS协议服务端对接收到的请求,有工作线程池对请求进行处理,工作线程需要对NFS请求的处理响应结果进行缓存。
其中,NFS协议缓存层,通过内存分配算法,申请了较大范围内存块单元,用来缓存元数据,每个实例与之对应的是分布式文件缓存层的对象,属于一一映射关系,从分布式文件缓存层读取的数据信息即对象结构映射到内存当中。
实例和与之对应的分布式文件系统Client缓存层的对象,存放在hash表中进行映射关联,实例的元数据属性信息会在一定时间后过期,标记为过期的数据将会从缓存中清除,重新通过getattr请求获取更新缓存,属性过期时间可调。
根据数据访问模式,NFS协议缓存层针对数据IO请求,提出一种异步缓存策略,应用请求先将数据写入缓存,缓存会立即得到确认,如果数据为脏数据,然后通过异步的方式即延迟策略再将数据落盘,即刷缓存数据到磁盘,该策略能有效提高并发写请求的性能。
优选地,为了防止申请内存大小不一致导致出现内存碎片问题,可采用二叉树数据结构进行内存分配。即NFS协议缓存层,具体用于确定IO数据所需内存,利用二叉树数据结构分配目标内存给IO数据;目标内存大于等于所需内存,且目标内存为所需内存最接近2的幂数值。
具体的,采用二叉树数据结构进行内存的分配管理,二叉树可具体为完全平衡二叉树,根据树的节点标识内存使用的size大小,二叉树的层次来确定申请内存块的大小,如图2,图2为本发明实施例中一种基于网络文件系统协议的内存申请算法示意图。假设申请16个内存块单元空间的完全平衡二叉树,树的深度是5,Tree[0]节点管理size为16的大小,Tree[1]和Tree[2]管理size为8的节点,到Tree[30]节点管理size为1的大小。
通过算法分配内存时,遍历二叉树选择最适合的内存大小,分配机制是大于等于分配大小且最接近2的幂数值,如分配内存size为3,与3最接近的幂数值有2和4,但由于分配大小需大于所需大小,因此分配内存大小为4。2的2次方即为4,内存块为16大小的空间,需要折半切割两次,此时把二叉树的Tree[3]节点标记为已分配,以此类推,如果再分配大小为3的内存块,需要把二叉树Tree[4]节点标记为已分配,再分配size为6的大小,即实际分配大小为8,此时只能分配二叉树的Tree[2]节点,Tree[3]和Tree[4]节点已经分配,所以Tree[1]节点不能再进行分配。
文件系统抽象层104,用于在文件系统中的目标内存中缓存IO数据。
文件系统抽象层在文件系统中的目标内存中缓存IO数据。
具体的,为了能够有效提高并发写处理性能,文件系统抽象层,具体用于判断IO数据是否为脏数据,如果是,则执行延迟策略;如果否,则触发本地磁盘存储层。其中,延迟策略即等待脏数据更新。
本地磁盘存储层105,用于将IO数据写入磁盘。
本地磁盘存储层持久化IO数据。
优选地,为了提高热数据读写性能,本地磁盘采用SSD作为存储,根据IO局部性原理,将热点数据存放在SSD上,提高热点数据的读写性能。即,本地磁盘存储层,具体用于判断IO数据是否为热数据,如果是,则将IO数据存入SSD中。
应用本发明实施例所提供的装置,应用缓存层,用于获取应用程序的IO请求以及IO请求对应的IO数据;C库缓存层,用于从应用缓存层拷贝IO数据;NFS协议缓存层,用于为IO数据分配目标内存;文件系统抽象层,用于在文件系统中的目标内存中缓存IO数据;本地磁盘存储层,用于将IO数据写入磁盘。
在本装置中提出五层缓存机制,来对IO数据进行处理。具体的,应用缓存层获取应用程序的IO请求和IO数据;C库缓存层可以从应用缓存层中拷贝IO数据,即把内核地址空间映射到用户空间,能够减少用户态和内核态频繁切换问题,能够提高IO性能;NFS协议缓存层实现内存分配;文件系统抽象层在文件系统中实现IO数据缓存;本地磁盘存储层实现最终的IO数据落盘处理(即持久化)。可见,在本装置中,每一个缓存层,具有明确分工,能够在复杂IO业务场景下对内存分配/管理,数据一致性同步和缓存的处理机制简单,能够有效避免浪费分布式存储文件系统的资源,能够保障IP路径业务顺畅。
相应于上面的装置实施例,本发明实施例还提供了一种IO请求处理方法,下文描述的IO请求处理方法与上文描述的IO请求处理装置可相互对应参照。
请参考图3,图3为本发明实施例中一种IO请求处理方法的流程图,该方法利用五层缓存机制对应用程序的IO请求进行处理,具体处理步骤包括:
S101、利用应用缓存层,获取应用程序的IO请求以及IO请求对应的IO数据。
具体的,在应用缓存层,可通过动态内存分配函数为应用程序申请缓冲区,以便应用程序在缓冲区写入IO请求和IO数据。
S102、利用C库缓存层,从应用缓存层拷贝IO数据。
具体的,在C库缓存层,可调用文件流函数和文件处理函数,得到IO数据。
优选地,在C库缓存层,还可在拷贝了IO数据的情况下,向应用程序反馈IO请求对应的应答消息。以便提高应用程序的处理效率。
S103、利用NFS协议缓存层,为IO数据分配目标内存。
优选地,为了减少内存碎片,可利用二叉树数据结构进行内存分配,即确定IO数据所需内存,利用二叉树数据结构分配目标内存给IO数据;目标内存大于等于所需内存,且目标内存为所需内存最接近2的幂数值。
S104、利用文件系统抽象层,在文件系统中的目标内存中缓存IO数据。
具体的,文件系统抽象层,具体用于判断IO数据是否为脏数据,如果是,则执行延迟策略;如果否,则触发本地磁盘存储层。能够有效提高并发写处理性能。
S105、利用本地磁盘存储层,将IO数据写入磁盘。
优选地,为了提高热数据的IO性能,在本地磁盘存储层可判断IO数据是否为热数据,如果是,则将IO数据存入SSD中。
应用本发明实施例所提供的方法,应用缓存层,用于获取应用程序的IO请求以及IO请求对应的IO数据;C库缓存层,用于从应用缓存层拷贝IO数据;NFS协议缓存层,用于为IO数据分配目标内存;文件系统抽象层,用于在文件系统中的目标内存中缓存IO数据;本地磁盘存储层,用于将IO数据写入磁盘。
在本方法中提出五层缓存机制,来对IO数据进行处理。具体的,应用缓存层获取应用程序的IO请求和IO数据;C库缓存层可以从应用缓存层中拷贝IO数据,即把内核地址空间映射到用户空间,能够减少用户态和内核态频繁切换问题,能够提高IO性能;NFS协议缓存层实现内存分配;文件系统抽象层在文件系统中实现IO数据缓存;本地磁盘存储层实现最终的IO数据落盘处理(即持久化)。可见,在本方法中,每一个缓存层,具有明确分工,能够在复杂IO业务场景下对内存分配/管理,数据一致性同步和缓存的处理机制简单,能够有效避免浪费分布式存储文件系统的资源,能够保障IP路径业务顺畅。
相应于上面的方法实施例,本发明实施例还提供了一种IO请求处理设备,下文描述的一种IO请求处理设备与上文描述的一种IO请求处理方法可相互对应参照。
参见图4所示,该IO请求处理设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的IO请求处理方法的步骤。
具体的,请参考图5,图5为本实施例提供的一种IO请求处理设备的具体结构示意图,该IO请求处理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在IO请求处理设备301上执行存储器332中的一系列指令操作。
IO请求处理设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的IO请求处理方法中的步骤可以由IO请求处理设备的结构实现。
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种IO请求处理方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的IO请求处理方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

Claims (10)

1.一种IO请求处理装置,其特征在于,包括:
应用缓存层,用于获取应用程序的IO请求以及所述IO请求对应的IO数据;
C库缓存层,用于从所述应用缓存层拷贝所述IO数据;
NFS协议缓存层,用于为所述IO数据分配目标内存;
文件系统抽象层,用于在文件系统中的所述目标内存中缓存所述IO数据;
本地磁盘存储层,用于将所述IO数据写入磁盘。
2.根据权利要求1所述的IO请求处理装置,其特征在于,所述本地磁盘存储层,具体用于判断所述IO数据是否为热数据,如果是,则将所述IO数据存入SSD中。
3.根据权利要求1所述的IO请求处理装置,其特征在于,所述应用缓存层,具体用于通过动态内存分配函数为所述应用程序申请缓冲区,以便所述应用程序在所述缓冲区写入所述IO请求和所述IO数据。
4.根据权利要求1所述的IO请求处理装置,其特征在于,所述C库缓存层,具体用于调用文件流函数和文件处理函数,得到所述IO数据。
5.根据权利要求1所述的IO请求处理装置,其特征在于,所述C库缓存层,还用于在拷贝了所述IO数据的情况下,向所述应用程序反馈所述IO请求对应的应答消息。
6.根据权利要求1所述的IO请求处理装置,其特征在于,所述文件系统抽象层,具体用于判断所述IO数据是否为脏数据,如果是,则执行延迟策略;如果否,则触发所述本地磁盘存储层。
7.根据权利要求1至6任一项所述的IO请求处理装置,其特征在于,所述NFS协议缓存层,具体用于确定所述IO数据所需内存,利用二叉树数据结构分配所述目标内存给所述IO数据;所述目标内存大于等于所述所需内存,且所述目标内存为所述所需内存最接近2的幂数值。
8.一种IO请求处理方法,其特征在于,包括:
利用应用缓存层,获取应用程序的IO请求以及所述IO请求对应的IO数据;
利用C库缓存层,从所述应用缓存层拷贝所述IO数据;
利用NFS协议缓存层,为所述IO数据分配目标内存;
利用文件系统抽象层,在文件系统中的所述目标内存中缓存所述IO数据;
利用本地磁盘存储层,将所述IO数据写入磁盘。
9.一种IO请求处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求8所述IO请求处理方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求8所述IO请求处理方法的步骤。
CN202010820337.2A 2020-08-14 2020-08-14 一种io请求处理装置、方法、设备及可读存储介质 Active CN112000287B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010820337.2A CN112000287B (zh) 2020-08-14 2020-08-14 一种io请求处理装置、方法、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010820337.2A CN112000287B (zh) 2020-08-14 2020-08-14 一种io请求处理装置、方法、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN112000287A true CN112000287A (zh) 2020-11-27
CN112000287B CN112000287B (zh) 2022-06-17

Family

ID=73473737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010820337.2A Active CN112000287B (zh) 2020-08-14 2020-08-14 一种io请求处理装置、方法、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112000287B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112596908A (zh) * 2020-12-28 2021-04-02 中孚安全技术有限公司 一种基于完全二叉树的内存管理方法及系统
CN112948336A (zh) * 2021-03-30 2021-06-11 联想凌拓科技有限公司 数据加速方法及缓存单元、电子设备及存储介质
CN113064553A (zh) * 2021-04-02 2021-07-02 重庆紫光华山智安科技有限公司 数据存储方法、装置、设备及介质
CN113590309A (zh) * 2021-06-30 2021-11-02 郑州云海信息技术有限公司 一种数据处理方法、装置、设备及存储介质
CN114489519A (zh) * 2022-04-18 2022-05-13 创新科技术有限公司 一种io请求的处理方法、装置、设备及可读存储介质
CN116048425A (zh) * 2023-03-09 2023-05-02 浪潮电子信息产业股份有限公司 一种分层缓存方法、系统及相关组件

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101082927A (zh) * 2007-07-02 2007-12-05 浙江大学 一种基于ContextFS上下文文件系统的文件服务方法
CN104598166A (zh) * 2014-12-31 2015-05-06 曙光信息产业股份有限公司 系统管理方法和装置
CN105573673A (zh) * 2015-12-11 2016-05-11 芜湖乐锐思信息咨询有限公司 一种基于数据库的数据缓存系统
CN106156255A (zh) * 2015-04-28 2016-11-23 天脉聚源(北京)科技有限公司 一种数据缓存层实现方法及系统
CN106843770A (zh) * 2017-01-23 2017-06-13 北京思特奇信息技术股份有限公司 一种分布式文件系统中小文件数据存储、读取方法及装置
US20180232395A1 (en) * 2017-02-10 2018-08-16 DaStratum, Inc. Multi-tier cloud file system
CN109240617A (zh) * 2018-09-03 2019-01-18 郑州云海信息技术有限公司 分布式存储系统写请求处理方法、装置、设备及存储介质
CN110865989A (zh) * 2019-11-22 2020-03-06 浪潮电子信息产业股份有限公司 一种大规模计算集群的业务处理方法
CN111324573A (zh) * 2020-02-13 2020-06-23 苏州浪潮智能科技有限公司 一种网络文件系统状态管理方法与系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101082927A (zh) * 2007-07-02 2007-12-05 浙江大学 一种基于ContextFS上下文文件系统的文件服务方法
CN104598166A (zh) * 2014-12-31 2015-05-06 曙光信息产业股份有限公司 系统管理方法和装置
CN106156255A (zh) * 2015-04-28 2016-11-23 天脉聚源(北京)科技有限公司 一种数据缓存层实现方法及系统
CN105573673A (zh) * 2015-12-11 2016-05-11 芜湖乐锐思信息咨询有限公司 一种基于数据库的数据缓存系统
CN106843770A (zh) * 2017-01-23 2017-06-13 北京思特奇信息技术股份有限公司 一种分布式文件系统中小文件数据存储、读取方法及装置
US20180232395A1 (en) * 2017-02-10 2018-08-16 DaStratum, Inc. Multi-tier cloud file system
CN109240617A (zh) * 2018-09-03 2019-01-18 郑州云海信息技术有限公司 分布式存储系统写请求处理方法、装置、设备及存储介质
CN110865989A (zh) * 2019-11-22 2020-03-06 浪潮电子信息产业股份有限公司 一种大规模计算集群的业务处理方法
CN111324573A (zh) * 2020-02-13 2020-06-23 苏州浪潮智能科技有限公司 一种网络文件系统状态管理方法与系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QIAO KANG;SUNWOO LEE等: ""Improving MPI Collective I/O for High Volume Non-Contiguous Requests With Intra-Node Aggregation"", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 *
赵梦茹: ""移动终端Linux存储IO性能分析与优化"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112596908A (zh) * 2020-12-28 2021-04-02 中孚安全技术有限公司 一种基于完全二叉树的内存管理方法及系统
CN112948336A (zh) * 2021-03-30 2021-06-11 联想凌拓科技有限公司 数据加速方法及缓存单元、电子设备及存储介质
CN113064553A (zh) * 2021-04-02 2021-07-02 重庆紫光华山智安科技有限公司 数据存储方法、装置、设备及介质
CN113590309A (zh) * 2021-06-30 2021-11-02 郑州云海信息技术有限公司 一种数据处理方法、装置、设备及存储介质
CN113590309B (zh) * 2021-06-30 2024-01-23 郑州云海信息技术有限公司 一种数据处理方法、装置、设备及存储介质
CN114489519A (zh) * 2022-04-18 2022-05-13 创新科技术有限公司 一种io请求的处理方法、装置、设备及可读存储介质
CN116048425A (zh) * 2023-03-09 2023-05-02 浪潮电子信息产业股份有限公司 一种分层缓存方法、系统及相关组件

Also Published As

Publication number Publication date
CN112000287B (zh) 2022-06-17

Similar Documents

Publication Publication Date Title
CN112000287B (zh) 一种io请求处理装置、方法、设备及可读存储介质
US10437721B2 (en) Efficient garbage collection for a log-structured data store
US20190213085A1 (en) Implementing Fault Domain And Latency Requirements In A Virtualized Distributed Storage System
US10747673B2 (en) System and method for facilitating cluster-level cache and memory space
US20050234867A1 (en) Method and apparatus for managing file, computer product, and file system
US9886313B2 (en) NUMA-aware memory allocation
US10909072B2 (en) Key value store snapshot in a distributed memory object architecture
US10628235B2 (en) Accessing log files of a distributed computing system using a simulated file system
CN111078121A (zh) 一种分布式存储系统数据迁移方法、系统、及相关组件
CN114860163B (zh) 一种存储系统、内存管理方法和管理节点
WO2004066079A2 (en) Memory-resident database management system and implementation thereof
CN109933312B (zh) 一种有效降低容器化关系型数据库i/o消耗的方法
US10802972B2 (en) Distributed memory object apparatus and method enabling memory-speed data access for memory and storage semantics
US10620851B1 (en) Dynamic memory buffering using containers
RU2654144C1 (ru) Ведение журнала отката для секционированных наборов данных в памяти
CN110865989A (zh) 一种大规模计算集群的业务处理方法
US20190199794A1 (en) Efficient replication of changes to a byte-addressable persistent memory over a network
US20160050276A1 (en) Efficient storage of small random changes to data on disk
EP4163804A1 (en) Data management method and system for application, and computer device
CN109582658A (zh) 一种分布式文件系统实现数据一致性的方法及装置
CN112596762A (zh) 一种滚动升级方法及装置
CN115587118A (zh) 任务数据的维表关联处理方法及装置、电子设备
US20200042184A1 (en) Cost-Effective Deployments of a PMEM-Based DMO System
US10853314B1 (en) Overlay snaps
CN114785662B (zh) 一种存储管理方法、装置、设备及机器可读存储介质

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20231205

Address after: Room 1801, 18th Floor, Jiyun Investment Building, No. 278 Xinyi Road, Zhengdong New District, Zhengzhou City, Henan Province, 450018

Patentee after: Zhengzhou Inspur Data Technology Co.,Ltd.

Address before: 100085 5 / F, building C, No.2, Shangdi Information Road, Haidian District, Beijing

Patentee before: Beijing Inspur Data Technology Co.,Ltd.

TR01 Transfer of patent right