CN109739570A - 一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质 - Google Patents
一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109739570A CN109739570A CN201811584187.9A CN201811584187A CN109739570A CN 109739570 A CN109739570 A CN 109739570A CN 201811584187 A CN201811584187 A CN 201811584187A CN 109739570 A CN109739570 A CN 109739570A
- Authority
- CN
- China
- Prior art keywords
- data
- matched
- server
- target data
- information
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提出一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质,服务器控制设备根据数据长度阈值建立缓存区,并将存储区中的数据读取并存储至缓存区,实现数据的预读功能。进而当服务器控制设备获取用于请求目标数据的数据请求时,判断目标数据的属性信息是否匹配缓存区中的待匹配数据。当目标数据命中缓存区中的待匹配数据,则服务器控制设备将待匹配数据作为目标数据,并发送给服务器,避免因数据请求消息接收后,才触发从存储区读取相应数据的操作。保证数据传输速率能够达到4MB/s,相较于现有技术的数据传输速率,有显著提高。从而提高了IFIST启动的效率。
Description
技术领域
本发明涉及服务器配置技术,具体而言,涉及一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质。
背景技术
目前,集成快速智能可扩展工具箱(Integrated Fast Intelligent ScalableToolkit,简称:IFIST)作为内嵌在服务器中的单机智能部署工具,其可以用于配置磁盘阵列(Redundant Arrays of Independent Drives,简称:RAID)、安装驱动、诊断以及提供客户安装操作系统等功能。以取代目前手动配置RAID,手动从CD或DVD中安装操作系统的方式。
该IFIST通常安装在服务器控制设备的存储模块上,例如SD卡。当主机需要使用IFIST的相应功能时,需要服务器控制设备向存储模块请求消息,从而读取该存储模块上相应的数据。
但是,由于目前IFIST的数据请求流程采用串行传输,降低IFIST功能启动的效率。
发明内容
本发明的目的在于提供一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质,用于提高IFIST服务启动的效率。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提出一种数据读取方法,所述方法应用于服务器控制设备,所述服务器控制设备与服务器通讯连接,所述服务器控制设备包含存储区和缓存区,所述方法包括:
根据数据长度阈值建立缓存区;其中,所述缓存区每个数据块的空间小于或等于所述数据长度阈值;
获取用于请求目标数据的数据请求,所述数据请求包含所述目标数据的属性信息;
判断所述目标数据的属性信息是否匹配所述缓存区中的待匹配数据;所述待匹配数据为从所述存储区预读至所述缓存区的数据;
若匹配,则将所述待匹配数据作为所述目标数据,并发送给服务器。
结合第一方面,在第一种可能的实现方式中,所述目标数据的属性信息为所述目标数据的长度信息和所述目标数据的地址信息;
所述判断所述目标数据的属性信息是否匹配所述缓存区中的待匹配数据的步骤包括:
判断所述目标数据的长度信息和所述目标数据的地址信息是否分别与所述待匹配数据的长度信息和所述待匹配数据的地址信息匹配。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
若所述判断所述目标数据的长度信息与所述待匹配数据的长度信息不匹配;或,所述目标数据的地址信息与所述待匹配数据的地址信息不匹配,则将所述数据长度阈值更新为所述目标数据的长度信息以对所述缓存区进行更新。
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,在所述判断所述目标数据的长度信息和所述目标数据的地址信息是否分别与所述待匹配数据的长度信息和所述待匹配数据的地址信息匹配的步骤之前,还包括:
判断所述目标数据的长度信息是否小于或等于所述数据长度阈值;
若小于或等于所述数据长度阈值,则执行所述判断所述目标数据的长度信息和所述目标数据的地址信息是否分别与所述待匹配数据的长度信息和所述待匹配数据的地址信息匹配的步骤。
结合第一方面,在第四种可能的实现方式中,所述根据数据长度阈值建立缓存区的步骤包括:
根据所述数据长度阈值获取所述缓存区的存储空间;
判断所述存储空间是否已满;
若未满,则读取所述存储区中的数据存储至所述存储空间;所述存储区中的数据的长度信息小于或等于所述数据长度阈值。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述存储空间的数据结构为循环队列;
所述判断所述缓存区的存储空间是否已满,包括:
判断所述循环队列是否已满;
若所述循环队列未满,所述读取所述存储区中的数据存储至所述存储空间的步骤包括:
读取所述存储区中的数据,存储至所述循环队列的尾部;位于所述循环队列头部的数据为所述待匹配数据。
结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中,在所述将所述待匹配数据作为所述目标数据,并发送给服务器之后,还包括:
当所述服务器完成基于所述目标数据的服务调用后,返回执行所述判断所述存储空间是否已满的步骤。
第二方面,本发明实施例提出一种服务器控制设备,包括:处理模块和收发模块;
所述处理模块,用于根据数据长度阈值建立缓存区;其中,所述缓存区每个数据块的空间小于或等于所述数据长度阈值;
所述收发模块,用于获取用于请求目标数据的数据请求,所述数据请求包含所述目标数据的属性信息;
所述处理模块,还用于判断所述目标数据的属性信息是否匹配所述缓存区中的待匹配数据;所述待匹配数据为从所述存储区预读至所述缓存区的数据;
所述收发模块,还用于若匹配,则将所述待匹配数据作为所述目标数据,并发送给服务器。
结合第二方面,在第一种可能的实现方式中,所述目标数据的属性信息为所述目标数据的长度信息和所述目标数据的地址信息;
所述处理模块,具体用于判断所述目标数据的长度信息和所述目标数据的地址信息是否分别与所述待匹配数据的长度信息和所述待匹配数据的地址信息匹配。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理模块,还用于若所述判断所述目标数据的长度信息与所述待匹配数据的长度信息不匹配;或,所述目标数据的地址信息与所述待匹配数据的地址信息不匹配,则将所述数据长度阈值更新为所述目标数据的长度信息以对所述缓存区进行更新。
结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述处理模块,还用于在判断所述目标数据的长度信息和所述目标数据的地址信息是否分别与所述待匹配数据的长度信息和所述待匹配数据的地址信息匹配之前,判断所述目标数据的长度信息是否小于或等于数据长度阈值;若小于或等于所述数据长度阈值,则判断所述目标数据的长度信息和所述目标数据的地址信息是否分别与所述待匹配数据的长度信息和所述待匹配数据的地址信息匹配。
结合第二方面,在第四种可能的实现方式中,所述处理模块,具体用于根据所述数据长度阈值获取所述缓存区的存储空间;判断所述存储空间是否已满;若未满,则读取所述存储区中的数据存储至所述存储空间;所述存储区中的数据的长度信息小于或等于所述数据长度阈值。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述存储空间的数据结构为循环队列;
所述处理模块,具体用于判断所述循环队列是否已满;若所述循环队列未满,所述读取所述存储区中的数据存储至所述存储空间的步骤包括:读取所述存储区中的数据,存储至所述循环队列的尾部;位于所述循环队列头部的数据为所述待匹配数据。
结合第二方面的第四种可能的实现方式,在第六种可能的实现方式中,所述处理模块,还用于当所述服务器完成基于所述目标数据的服务调用后,返回执行所述判断所述存储空间是否已满。
第三方面,本发明实施例提出一种服务器,包括服务器控制设备,所述服务器控制设备实现如第一方面或第一方面任意一种可能的实现方式所述的数据读取方法。
第四方面,本发明实施例提出一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第一方面任意一种可能的实现方式所述的数据读取方法。
本发明实施例提供的数据读取方法、服务器控制设备、服务器及计算机可读存储介质,服务器控制设备根据数据长度阈值建立缓存区,并将存储区中的数据读取并存储至缓存区,实现数据的预读功能。进而当服务器控制设备获取用于请求目标数据的数据请求时,判断目标数据的属性信息是否匹配缓存区中的待匹配数据。当目标数据命中缓存区中的待匹配数据,则服务器控制设备将待匹配数据作为目标数据,并发送给服务器,从而实现了IFIST启动相关数据读取的功能。通过在获得的数据请求之前,预先通过缓存区对IFIST启动所需的数据进行预读,避免因数据请求消息接收后,才触发从存储区读取相应数据的操作。保证数据传输速率能够达到4MB/s,相较于现有技术的数据传输速率,有显著提高。从而提高了IFIST启动的效率。
本发明实施例的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为现有技术的服务器与存储模块的交互流程示意图;
图2为现有技术的数据读取方法的流程示意图;
图3A为本发明实施例提供的一种服务器与服务器控制设备的部分结构示意图;
图3B为本发明实施例提供的另一种服务器与服务器控制设备的部分结构示意图;
图3C为本发明实施例提供的一种服务器的部分结构示意图;
图4为本发明实施例提供的一种数据读取方法的流程示意图;
图5为本发明实施例提供的另一种数据读取方法的流程示意图;
图6为本发明实施例提供的另一种数据读取方法的流程示意图;
图7为本发明实施例提供的另一种数据读取方法的流程示意图;
图8为本发明实施例提供的另一种数据读取方法的流程示意图;
图9为本发明实施例提供的一种循环队列数据存储格式的示意图;
图10为本发明实施例提供的另一种数据读取方法的流程示意图;
图11A为本发明实施例提供的一种循环队列的初始状态示意图;
图11B本发明实施例提供的一种循环队列的为空示意图;
图11C本发明实施例提供的一种循环队列的存储数据示意图;
图11D本发明实施例提供的一种循环队列的读取数据示意图;
图11E本发明实施例提供的一种循环队列的存满状态示意图;
图12为本发明实施例提供的一种服务器控制设备的结构示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
图1为现有技术的服务器与存储模块的交互流程示意图,参见图1,现有技术中,IFIST的启动流程:服务器侧发送数据请求,通过端口通道的层层传输和封装,最终生成具有目标数据的地址信息和长度信息的Req请求包。存储模块通过监听进程获取该Req请求包,从而读取存储于该存储模块上的目标数据,并将该目标数据封装在Res响应包中,再通过端口通道反馈给服务器该目标数据。其中,图1中端口可以但不限于USB、Mini-USB、Micro-USB、USB Type-C等制式的端口。
基于图1的交互流程,图2为现有技术的数据读取方法的流程示意图,参见图2,该方法由服务器控制设备上的处理器执行,而图1中的存储模块设置于该服务器控制设备上,该方法流程包括:
步骤100、等待端口发送的Req请求包。
具体的,在步骤100的过程中,进程会出现阻塞。
步骤101、判断是否接收到Req请求包。
若是,则执行步骤102;若否,则返回步骤100。
步骤102、拷贝Req请求包中的信息至Res响应包中。
步骤103、解析Req请求包,获得目标数据的地址信息和目标数据的长度信息。
步骤104、判断该长度信息是否超过最大长度阈值。
若否,则执行步骤105;若是,则执行步骤107。
步骤105、根据目标数据的地址信息和目标数据的长度信息,读取存储模块的目标数据至Res响应包中。
步骤106、发送包含目标数据的Res响应包。
具体的,步骤106执行完毕后,返回步骤100。
步骤107、配置长度不符指示于Res响应包的报文头,以通知服务器,本次目标数据的长度信息不符合;
步骤108、发送长度不符指示的Res响应包。
具体的,步骤107执行完毕后,返回步骤100。
参见图1和图2可知,现有技术在读取存储模块的目标数据以便实现IFIST启动的过程中,对于步骤105中读取存储模块的目标数据的操作,必须在接收到服务器的Req请求包之后才能触发。导致读取过程的时间需要10分钟左右,其数据传输速率通常为2.5MB/s,大大降低了IFIST启动的效率。
为了解决上述技术问题,本发明实施例提供一种数据读取方法、服务器控制设备及服务器。其通过服务器控制设备实现数据预读的机制,将服务器启动IFIST时可能需要的数据预先从存储区中读取出来,并存储在由内存或寄存器组构成的缓存区中,以使当服务器请求相应的目标数据时,直接通过读取缓存区中的目标数据作为响应。为了实现上述服务器控制设备的功能,下面给出一种可能的实现方式。具体的,图3A为本发明实施例提供的一种服务器与服务器控制设备的部分结构示意图,参见图3A,其中,该服务器至少包含:处理器10和通信端口11;
当处理器10需要调用IFIST服务时,可通过通信端口11,向服务器控制设备发送请求目标数据的数据请求。
相应地,参见图3A,服务器控制设备至少包含:处理器20、通信端口21、内存模块22和存储模块23;
其中,处理器20可以用于在调用IFIST服务,预先在内存模块22中构建缓存区,而存储模块23设置有存储区,用于存储IFIST服务相关的数据。进而处理器20能够对存储区中的数据进行预读,并存储至内存模块22中的缓存区。
当处理器20通过通信端口21获得服务器发送的数据请求后,会判断请求的目标数据是否命中该缓存区中的数据。若命中,则处理器20通过通信端口21将目标数据反馈给服务器。
具体的,该存储模块23可以为非易失性存储器(英语:non-volatile memory,简称:NVM),例如闪存(Nand Flash)、固态硬盘(Solid State Disk,简称:SSD)等,混合硬盘(hybrid harddrive,简称:HHD),传统硬盘(Hard Disk Drive,简称:HDD)。
在另一种可能的实现方式中,上述存储模块23可以为通过卡座连接的存储卡,该存储卡可以但不限于安全数码卡(Secure Digital,简称:SD)、高容量安全数码卡(SecureDigital High Capacity,简称:SDHC)、容量扩大化的安全存储卡(Secure DigitaleXtended Capacity,简称:SDXC)、Mini-SD、Micro-SD等存储卡。具体的,在图3A的基础上,图3B为本发明实施例提供的另一种服务器与服务器控制设备的部分结构示意图,参见图3B,以SD卡为例,该SD卡包括:接口230、接口驱动电路231、控制器232、寄存器组233和存储单元234;
其中,接口230与接口驱动电路231电连接;接口驱动电路231与控制器232电连接;控制器232分别与寄存器组233和存储单元234电连接;当SD卡插入到服务器控制设备对应的卡座24后,卡座24上的接口与SD卡的接口230建立信号连接。
该接口驱动电路231用于对接口230进行驱动,以实现该SD卡与外部设备的数据交互,例如与服务器的数据交互,与处理器20的数据交互等。
该控制器232,用于对寄存器组233件和存储单元234进行控制,对外部设备的请求进行响应,实现数据的读/写操作。
寄存器组233可以包含一个或多个寄存器及组合,例如,该寄存器可以包含OCR寄存器、CID寄存器、CSD寄存器、SCR寄存器、RCA寄存器、DSR寄存器等。
存储单元234,即作为该存储卡的数据存储单元,其可以为非易失性存储介质,例如,NAND闪存、NOR闪存等。
对于本发明实施例涉及的存储区和缓存区,在图3B给出的器件实现方式中,可以有多种不同的实现方式,一种可能的实现方式为:存储单元234用于设置存储区,而内存模块22用于设置缓存区。则在这种配置环境下,当SD卡插入卡座24后,处理器20可以通过与控制器232的控制信令交互,预读该存储单元234的数据,并存储至内存模块22上的缓存区。以实现本发明的数据预读机制。
另一种可能的实现方式为:存储单元234用于设置该存储区,寄存器组233用于设置该缓存区。则在这种配置环境下,当控制器232可以实现数据预读的功能,即将存储单元234中的数据预读至寄存器组233上的缓存区。进而当服务器的处理器10向服务器控制设备的处理器20发送数据请求后,该处理器20转发该数据请求至控制器232。控制器232通过判断目标数据是否命中寄存器组233,若命中,则将寄存器组232中的数据经处理器20发送至服务器。
当然,也可以将存储区和缓存区设置在寄存器组233的不同逻辑区块;或者,将存储区和缓存区设置在存储单元234的不同逻辑区块,此处不予限定。
对于另一种可能的实现方式,上述服务器与服务器控制设备的功能可以被集成在一个整体的设备上,具体的,图3C为本发明实施例提供的一种服务器的部分结构示意图,参见图3C,该服务器包括:处理器30、存储模块31和内存模块32。
其中,存储模块31用于设置存储区,内存模块32用于设置缓存区;
处理器30可以预先在内存模块32上设置缓存区,并将存储模块31中的数据预读出来,并存储至该缓存区上。当处理器30需要调用IFIST服务时,直接通过判断该目标数据是否命中缓存区中的数据,若命中,则直接通过调取缓存区中的数据,实现调用IFIST服务。
需要说明的是,上述图3A、图3B及图3C仅部分地示出了本发明实施例涉及的服务器与服务器控制设备中相关器件的结构,对于具体的连接形式、器件个数和类型,此处不予限定。并且,其还可以包含其他的器件,以更好地实现本发明的技术方案。例如,服务器控制设备还可以包括用于交互的I/O接口、输入设备以及输出设备等,例如,服务器控制设备为监控设备(Keyboard Video Mouse,简称KVM),用户可以利用监控设备的输入设备发起上述目标数据的数据请求,从而实现手动触发IFIST服务的功能。
基于上述服务器与服务器控制设备可能的实现方式,下面给出本发明实施例提供的数据读取方法的一种可能的实现方式,具体的,图4为本发明实施例提供的一种数据读取方法的流程示意图,参见图4,该方法流程包括:
步骤200、根据数据长度阈值建立缓存区。
可选地,缓存区可以包含多个逻辑区块,且每个逻辑区块的存储空间小于或等于数据长度阈值。例如,申请100项逻辑区块作为缓存区,其第一次预读的数据默认地址为0,数据读取长度可以预先配置默认值,例如122Kb或8Kb。具体的,每一项逻辑区块能够存储数据包头,其具备最大的数据读取长度,即数据长度阈值。该数据长度阈值通常会大于数据读取长度。例如数据读取长度为122Kb,则该数据长度阈值为130Kb,具体的设置基于场景需求进行配置,此处不予限定。
步骤201、获取用于请求目标数据的数据请求。
其中,数据请求包含目标数据的属性信息。具体的,该数据请求可以为服务器发送的数据请求,也可以是用户通过输入设备手动触发的数据请求。
步骤202、判断目标数据的属性信息是否匹配缓存区中的待匹配数据。
其中,待匹配数据为从存储区预读至缓存区的数据。
步骤203、若匹配,则将待匹配数据作为目标数据,并发送给服务器。
本发明实施例提供的数据读取方法,通过根据数据长度阈值建立缓存区,并将存储区中的数据读取并存储至缓存区,实现数据的预读功能。进而当获取用于请求目标数据的数据请求时,判断目标数据的属性信息是否匹配缓存区中的待匹配数据。当目标数据命中缓存区中的待匹配数据,则将待匹配数据作为目标数据,并发送给服务器,从而实现了IFIST启动相关数据读取的功能。通过在获得的数据请求之前,预先通过缓存区对IFIST启动所需的数据进行预读,避免因数据请求消息接收后,才触发从存储区读取相应数据的操作。保证数据传输速率能够达到4MB/s,相较于现有技术的数据传输速率,有显著提高。从而提高了IFIST启动的效率。
可选地,对于IFIST启动所需的目标数据,通常是用于实现配置RAID、安装驱动、诊断以及安装操作系统等功能。但是若IFIST系统更新后,所需目标数据的大小超过该范围,其仍然可以使用本发明实施例提供的数据读取方法,此处对于该数据大小不予限定。
可选地,目标数据的属性信息可以为目标数据的长度信息和目标数据的地址信息。基于目标数据的长度信息和目标数据的地址信息下面给出一种可能的实现方式,具体的,在图4的基础上,图5为本发明实施例提供的另一种数据读取方法的流程示意图,参见图5,步骤202包括:
步骤202-1、判断目标数据的长度信息和目标数据的地址信息是否分别与待匹配数据的长度信息和待匹配数据的地址信息匹配。
相应地,若两个判断条件都满足时,则执行步骤203;若两个满足条件中的任意一个不满足,则执行步骤202-2。
步骤202-2、将数据长度阈值更新为目标数据的长度信息以对缓存区进行更新。
具体的,对于缓存区的更新,即基于新的数据长度阈值执行步骤200。例如,原数据长度阈值为64Kb,目标数据的长度信息为122Kb,则经过202-2的步骤,将122Kb作为新的数据长度阈值建立缓存区。
可选地,为了提高数据读取的稳定性,一种可能的实现方式是,将目标数据的长度信息与上述数据长度阈值,判断基于当前的标数据的长度信息,能否从缓存区中正常的读取数据。具体的,在图5的基础上,图6为本发明实施例提供的另一种数据读取方法的流程示意图,在步骤202-1之前,还包括:
步骤202-0、判断目标数据的长度信息是否小于或等于数据长度阈值。
具体的,若目标数据的长度信息小于或等于数据长度阈值,则执行步骤202-1;若目标数据的长度信息大于数据长度阈值,则向服务器反馈读取失败的消息。
可选地,对于如何构建缓存区,下面给出一种可能的实现方式,具体的,在图4的基础上,图7为本发明实施例提供的另一种数据读取方法的流程示意图,参见图7,步骤200包括:
步骤200-1、根据数据长度阈值获取缓存区的存储空间。
具体的,例如,以申请100项逻辑区块作为缓存区为例,其第一次预读的数据默认地址为0,数据读取长度可以预先配置默认值,例如122Kb或8Kb。具体的,每一项逻辑区块能够存储数据包头,其具备最大的数据读取长度,即数据长度阈值。该数据长度阈值通常会大于数据读取长度。例如数据读取长度为122Kb,则该数据长度阈值为130Kb,具体的设置基于场景需求进行配置,此处不予限定。
步骤200-2、判断存储空间是否已满;
具体的,若未满,则执行步骤200-3;若已满则返回执行步骤200-2。
步骤200-3、读取存储区中的数据存储至存储空间。
具体的,存储区中的数据的长度信息小于或等于数据长度阈值。例如,数据长度阈值为130Kb,则从存储区读取的数据的长度信息应小于130Kb。
进一步地,为了提高数据预读的效率,存储空间的数据结构为循环队列。则基于循环队列,给出一种构建缓存区的可能的实现方式,具体的,在图7的基础上,图8为本发明实施例提供的另一种数据读取方法的流程示意图,参见图8,步骤200-2包括:
步骤200-2a、判断循环队列是否已满;
具体的,若未满,则执行步骤200-3a;若已满则返回执行步骤200-2a。
步骤200-3包括:
步骤200-3a、读取存储区中的数据,存储至循环队列的尾部。
具体的,位于循环队列头部的数据为待匹配数据。图9为本发明实施例提供的一种循环队列数据存储格式的示意图,参见图9,以某时刻缓存区的循环队列存放的数据举例,包含了地址、长度以及从存储区上读取的数据等信息。其中包含数据的数据信息、长度信息和地址信息。其中,逻辑区块地址(Logical Block Address,简称:LBA)用于标识每一项数据在缓存区的循环队列中的逻辑区块。“Dxfer_Len”表示:长度信息;“Data”:从存储区上读取具体数据;
继续以具有100项逻辑区块为例,假设,数据读取长度为122Kb或8Kb,且逻辑区块的采用512位组。则此时,对于逻辑区块1的数据,其lba:0x72e86。若其对应的数据读取长度为8Kb,即该逻辑区块1可以存储8Kb的数据。则下一个逻辑区块2的lba为当前逻辑区块1的lba+0x10。即满足逻辑区块2的lba与逻辑区块1之间具有8Kb的存储空间。进而,当逻辑区块2对应的数据读取长度为122Kb时,则逻辑区块3的lba为逻辑区块2的lba+0xF0。以此类推,对于数据读取长度为122Kb或8Kb情况,基于每项逻辑区块对应的数据读取长度,通过对前一项逻辑区块的lba添加对应的数值,从而保证下一项逻辑区块匹配对应的数据读取长度,从而实现对循环队列中每项逻辑区块的数据读取长度的配置。
需要说明的是,此处仅以512位组的逻辑区块,且配置两种数据读取长度进行说明。基于本发明实施例提供的技术方案,本领域技术人员可以在不进行创造性劳动的情况下,将该方案应用于其他存储机制中,例如1024位组或2048位组,一种或超过两种数据读取长度的逻辑区块组合也同样适用,此处不予限定。
本发明实施例的缓存区可以采用循环队列的数据结构,尾部插入数据,头部取出数据,简单高效,能够进一步提高数据预读效率,加快IFIST启动速度。下面基于循环队列,给出一种本发明技术方案的可能的实现方式,图10为本发明实施例提供的另一种数据读取方法的流程示意图,参见图10,该方法包括如下步骤:
步骤300-1、处于睡眠状态,等待数据读取机制被触发。
可选地,在服务器控制设备接收到服务器通过通信端口发送的数据请求之前,本发明实施例提供一种数据预读的机制,在该机制下,该步骤300-1之后执行步骤300-2;而当缓存区接收到服务器通过端口通道发送的Req请求包(即数据请求),且当满足该触发条件时,则执行步骤301。
步骤300-2、根据数据长度阈值获取循环队列的存储空间。
具体的,一种可能的实现方式为:在存储区中申请一定数量的存储空间作为该缓存区的存储空间。例如,申请100项逻辑区块作为循环队列的存储空间,其第一次预读的数据默认地址为0,数据读取长度可以预先配置默认值,例如122Kb或8Kb。具体的,每一项逻辑区块能够存储数据包头,其具备最大的数据读取长度,即数据长度阈值。该数据长度阈值通常会大于数据读取长度。例如数据读取长度为122Kb,则该数据长度阈值为130Kb,具体的设置基于场景需求进行配置,此处不予限定。
步骤300-3、判断缓存区的循环队列是否已满。
具体的,若未满则执行步骤300-3;若已满则返回步骤300-3。
步骤300-4、若未满,则读取存储区中的一项数据,并存储至循环队列的尾部,且循环队列的尾指针加1。
可见,步骤300-1至步骤300-4为图4中步骤200的数据预读的一种可能的实现方式。其可以采用多线程的方式实现数据的预读,从而提高数据读取的效率。
具体的,针对步骤300-4,一种可能的实现方式为:读取存储区中的一项数据的具体数据、长度信息和地址信息,并将存储区中的一项数据的具体数据、长度信息和地址信息存储至循环队列的尾部。
可选地,目标数据的属性信息,其一种可能的实现方式为包含目标数据的长度信息和目标数据的地址信息。即服务器为了启动IFIST服务所需的目标数据的所需信息。相应地,上文图6步骤202-0中涉及的读取条件,则可以为目标数据的长度信息满足小于或等于数据长度阈值。
需要说明的是,步骤300-1、步骤300-2、步骤300-3以及步骤300-4实现基于循环队列的数据预读功能,并且参见图10,由于本发明实施例中步骤300-1至步骤300-4的功能可以通过预读数据的相关线程实现,而步骤301至步骤308的功能可以通过数据匹配的相关线程实现。因此两种线程存在线程切换机制,即接收到服务器的数据请求时则执行从过预读数据的相关线程向数据匹配的相关线程的切换,参见图2中的Req请求包,则此时执行步骤300-1至步骤300-4的线程接收到切换信号,则退出上述步骤循环,进而执行步骤301。该步骤301对应图4中的步骤201。类似的,当步骤303-2、步骤304以及步骤306执行完毕时,则也可以从数据匹配的相关线程向预读数据的相关线程进行切换。当然,本发明实施例中的各个步骤还可以通过多个线程实现,达到对应的技术效果。
继续参见图10,当缓存区接收到数据请求时,则触发执行步骤301。当通过步骤301获取到目标数据的长度信息和目标数据的地址信息后,下面提供一种步骤302可能的实现方式为:
步骤302-1、判断目标数据的长度信息是否小于或等于数据长度阈值。
具体的,该步骤302-1对应图6中的步骤202-0,在初始化状态下,该数据长度阈值为一个配置值,例如122K;而当该进程执行过一次后。第n+1次读取目标数据时的数据长度阈值,为第n次读取目标数据时,该目标数据的数据长度。即本发明实施例的一种可能的实现方式中,该数据长度阈值在初始状态时为预置,在预读取过程中,通过上一次读取的目标数据的长度信息来进行更新。
当目标数据的长度信息小于或等于数据长度阈值时,即目标数据匹配缓存区的读取条件,则执行步骤302-2;或者,若目标数据的长度信息大于数据长度阈值时,读取不成功,则执行步骤304即反馈获取失败的消息至服务器,以便服务器重新发送新的数据请求消息。
步骤302-2、判断目标数据的长度信息和目标数据的地址信息是否分别与待匹配数据的长度信息和待匹配数据的地址信息匹配。
具体的,若命中,则执行步骤303-1;若未命中,则分别执行步骤305和步骤307;其中,待匹配数据为位于循环队列的队头的数据。
可选地,对于循环队列中数据存储的形式,为了避免在服务期控制设备与服务器进行交互时发生丢包;或者,当服务器升级时,交互端口发生变化。本发明实施例还提供一种循环队列的数据更新机制。具体的,结合图9和图10进行说明。首先,参见图9,每个逻辑区块除了存储数据的具体数据、长度信息和地址信息以外,还可以存储与封装Res响应包相关的封装信息,例如数据报头的标识信息、服务器目的地址信息、端口信息等。参见图10,当步骤302-2中确认目标数据与待匹配数据匹配时,则此时需要判断该待匹配数据的封装信息是否匹配,若不匹配,则需要读取存储区内该数据对应的封装信息,并对待匹配数据的封装信息进行更新。
可选地,对于封装信息的更新,下面给出两种可能的实现方式:
方式一:当需要读取存储区内该数据对应的封装信息时,读取该封装信息,并对循环队列中的待匹配数据的封装信息进行更新。
具体的,将该封装信息更新至待匹配数据对应的逻辑区块内。从而在后续进行Res响应包封装时,使用更新后的封装信息。
方式二:当需要读取存储区内该数据对应的封装信息时,首先读取待匹配数据进行Res响应包封装,并在封装时读取该封装信息,对Res响应包中原封装信息进行更新。
最终,基于上述两种可能的实现方式,在步骤303-2中对该待匹配数据进行封装生成Res响应包封装,从而保证包含该目标数据的Res响应包能够准确地传输至服务器。例如,在某时刻,服务器控制设备将数据报头的标识信息为“1”的Res响应包发送给服务器侧,但是由于发生了丢包,导致传输不成功。此时,服务器控制设备需要重新发送Res响应包以传输所需的目标数据。而再次发送的Res响应包其数据报头的标识信息为“2”;包含新的数据报头的标识信息的封装信息被存储在存储区内。此时,则通过将的封装信息更新,以使新的Res响应包其数据报头的标识信息为“2”,以保证Res响应包的正常传输。
需要说明的是,步骤302对应图4中的步骤202,步骤305实际触发对循环队列数据进行更新的功能;而步骤307,作为补充的功能,将目标数据与存储区中的数据进行匹配。从而保证在没有命中循环队列的待匹配数据时候,依然可以保证服务器获得启动IFIST所需的目标数据。另外,对于步骤305与步骤307的时序,可以是同时,也可以具备先后顺序的,此处不予限定。
继续参见图10,步骤303-1、读取位于循环队列头部的待匹配数据作为目标数据,且循环队列的头指针加1;
步骤303-2、将目标数据发送给服务器。
具体的,步骤303对应图4中的步骤203。该可以为图3A、图3B中的服务器,也可以为图3C中的处理器30。而目标数据需要通过封装以Res响应包的形式,经通信端口发送给该服务器。或者在图3C的场景中,经总线或其他端口发送至处理器30。
具体的,当步骤302-2判断该目标数据未命中待匹配数据时,则在步骤307中通过直接读取存储区中对应的数据,进而执行步骤303-2;此时,该目标数据实际上是通过存储区获得的匹配数据。并且,在步骤302-2判断该目标数据未命中待匹配数据时,则启动对缓存区更新的步骤。即下述步骤305与步骤306。
步骤305、将循环队列的头指针和循环队列的尾指针置0。
步骤306、将数据长度阈值更新为目标数据的长度信息。
具体的,基于步骤306更新的数据长度阈值,返回步骤300-2。从而实现根据当前的目标数据所需的长度信息,更新循环队列的功能。参见图9,继续以数据读取长度为122Kb或8Kb为例,参见上述步骤302-2,当目标数据与待匹配数据的不匹配时,则该目标数据没有命中当前循环队列中的数据。则此时分别执行步骤305和步骤307,对于步骤305来说,首先将循环队列头指针和尾指针置0。然后,在步骤306中,将数据长度阈值更新为目标数据的长度信息,即如果目标数据的长度信息为122Kb,可以配置其数据长度阈值为130Kb,则基于122Kb的长度,重新获取循环队列的存储空间,而由于本实例中数据长度信息在循环队列中为122Kb与8Kb交替进行,因此下一个逻辑区块对应的数据长度信息则应调整为8Kb,但是其数据长度阈值统一为130Kb。而对于其他情况例如,数据连续基于相同的数据长度信息进行读取,其数据长度阈值也是一样的。
反之,当目标数据与待匹配数据的匹配时,则直接将循环队列队头的待匹配数据发送给服务器。此时,说明循环队列中有新的逻辑区块可以被利用,这时根据原有目标数据的地址信息和长度信息继续从存储区中预读数据,并将数据读取到新的可用逻辑区块处,直到循环队列满为止。
可选地,在图4-图8以及图10的基础上,由于服务器请求的目标数据可能需要通过多个数据包进行传输,因此,服务器控制设备需要判断何时该服务调用结束。其可能实现的方式为:1、服务器在数据请求中携带了目标数据的总量信息,则服务器控制设备根据该总量信息,在最后一个目标数据发送完毕后,则确定服务器完成基于目标数据的服务调用;2、在服务器完成基于目标数据的服务调用后,反馈服务完成的消息给服务器控制设备。无论服务器控制设备采用上述那种方式,当确定服务器完成基于目标数据的服务调用后,则以图7或图8为例,则服务器控制设备返回步骤200-2或步骤200-2a。
进一步地,下面对于缓存区中的循环队列的实现方式进行说明,具体的,图11A为本发明实施例提供的一种循环队列的初始状态示意图,参见图11A,继续以申请100项逻辑区块为例,创建具有100项逻辑区块的循环队列,此时,头指针和尾指针的标识都为0。则说明该循环队列为空。
头指针和尾指针实际为两个整数变量,头指针用于指示循环队列的队头;尾指针用于指示循环队列的队尾。
并且,参见图11A,尾指针和头指针互相追赶着,该追赶过程就是队列添加数据和读出数据(删除)的过程。进而,当尾指针追到头指针时,则说明循环队列的存储的数据已满;反之,若头指针追到头指针说明循环队列的存储的数据为空。
进一步地,图11B本发明实施例提供的一种循环队列的为空示意图,参见图11B,其示出除了初始状态,循环队列为空的另一种情况,即在某一个时刻当执行了上述图10步骤303-1之后,其头指针的数值+1后,与尾指针的数值相等。例如,图11B中左侧为T1时刻,该循环队列的头指针和尾指针的位置,此时,该头指针的数值为3,尾指针的数值为4;当该头指针对应的逻辑区块中的数据作为待匹配数据在上述实施例的步骤203中与目标匹配成功时,则服务器控制设备将该数据读取出来,则此时头指针的数值+1,即在T2时刻,头指针与尾指针的数值相等均为4。此时说明该循环队列为空。
因此,对于循环队列为空的情况,其表达式可以为:0=tail(尾指针的数值)–head(头指针的数值)。
可选地,图11C本发明实施例提供的一种循环队列的存储数据示意图,参见图11C,对于本发明实施例的循环队列,当建立该循环队列后,参见上文步骤300-4,将从存储区读取的一项数据,存储至该循环队列的尾部,同时尾指针的数值+1。例如,图11C中,左侧循环队列的数据为空。当在循环队列的尾部存储一项数据后,该尾指针的数值+1,即图11C中右侧的循环队列。此时,循环队列非空。其表达式可以为:tail(尾指针的数值)=tail%100。
可选地,图11D本发明实施例提供的一种循环队列的读取数据示意图,参见图11D,对于本发明实施例的循环队列,当建立该循环队列后,参见上文步骤303-1,会从循环数列的队头对应的逻辑区块读取待匹配数据。此时,该头指针+1。例如,参见图11D,左侧循环队列,该头指针指向“1”的逻辑区块,当该逻辑区块的数据与目标数据匹配时,则被读取出来,并发送给服务器。该头指针的数值+1,即得到右侧的循环数列,此时头指针指向“2”的逻辑区块。此时,循环队列非满,其表达式为:head(头指针的数据)=head%100。
可选地,图11E本发明实施例提供的一种循环队列的存满状态示意图,参见图11E,当从存储区读取的一项数据,存储至该循环队列的尾部,且该尾部对应的尾指针的数值为“99”时,且该尾指针的数值(99)与头指针的数值(0)相邻时,则该循环队列的数据已存满。
需要说明的是,图11A至图11E,其所示出的本发明实施例提供的循环队列,其读取循环队列(出)与存储循环队列(入)的处理流程是可以彼此独立的。即读取该循环队列中的数据和将数据存储至该循环队列的功能有一个线程实现,从而提高数据入队列和出队列的效率。当然,也可以针对读取该循环队列中的数据的功能以及数据存储至该循环队列的功能分别由两个线程实现。
基于上述实施例,下面给出一种服务器控制设备的可能的实现方式,该服务器控制设备采用上述图3A、图3B或图3C的结构,执行图4至图8以及图10的各个步骤,以实现对应的技术效果。具体的,图12为本发明实施例提供的一种服务器控制设备的结构示意图,参见图12,该服务器控制设备包括:处理模块40和收发模块41;
处理模块40,用于根据数据长度阈值建立缓存区;其中,缓存区每个数据块的空间小于或等于数据长度阈值;
收发模块41,用于获取用于请求目标数据的数据请求,数据请求包含目标数据的属性信息;
处理模块40,还用于判断目标数据的属性信息是否匹配缓存区中的待匹配数据;待匹配数据为从存储区预读至缓存区的数据;
收发模块41,还用于若匹配,则将待匹配数据作为目标数据,并发送给服务器。
可选地,目标数据的属性信息为目标数据的长度信息和目标数据的地址信息;
处理模块40,具体用于判断目标数据的长度信息和目标数据的地址信息是否分别与待匹配数据的长度信息和待匹配数据的地址信息匹配。
可选地,处理模块40,还用于若判断目标数据的长度信息与待匹配数据的长度信息不匹配;或,目标数据的地址信息与待匹配数据的地址信息不匹配,则将数据长度阈值更新为目标数据的长度信息以对缓存区进行更新。
可选地,处理模块40,还用于在判断目标数据的长度信息和目标数据的地址信息是否分别与待匹配数据的长度信息和待匹配数据的地址信息匹配之前,判断目标数据的长度信息是否小于或等于数据长度阈值;若小于或等于数据长度阈值,则判断目标数据的长度信息和目标数据的地址信息是否分别与待匹配数据的长度信息和待匹配数据的地址信息匹配。
可选地,处理模块40,具体用于根据数据长度阈值获取缓存区的存储空间;判断存储空间是否已满;若未满,则读取存储区中的数据存储至存储空间;存储区中的数据的长度信息小于或等于数据长度阈值。
可选地,存储空间的数据结构为循环队列;则处理模块40,具体用于判断循环队列是否已满;若循环队列未满,读取存储区中的数据存储至存储空间的步骤包括:读取存储区中的数据,存储至循环队列的尾部;位于循环队列头部的数据为待匹配数据。
处理模块40,还用于当服务器完成基于目标数据的服务调用后,返回执行判断存储空间是否已满。
可选地,本发明实施例还提供一种服务器,其包含包括服务器控制设备,可以采用图3A、图3B以及图3C的结构,并执行上述图4至图8以及图10的所示的各个步骤,以实现对应的技术效果。需要说明的是,在服务器执行上述步骤时,当获取到目标数据后,其将数据传输给服务器的处理器,例如图3C中的处理器30。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现图4至图8以及图10的各个步骤,以实现相应地技术效果。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (10)
1.一种数据读取方法,其特征在于,所述方法应用于服务器控制设备,所述服务器控制设备与服务器通讯连接,所述服务器控制设备包含存储区和缓存区,所述方法包括:
根据数据长度阈值建立缓存区;其中,所述缓存区每个数据块的空间小于或等于所述数据长度阈值;
获取用于请求目标数据的数据请求,所述数据请求包含所述目标数据的属性信息;
判断所述目标数据的属性信息是否匹配所述缓存区中的待匹配数据;所述待匹配数据为从所述存储区预读至所述缓存区的数据;
若匹配,则将所述待匹配数据作为所述目标数据,并发送给服务器。
2.根据权利要求1所述的数据读取方法,其特征在于,所述目标数据的属性信息为所述目标数据的长度信息和所述目标数据的地址信息;
所述判断所述目标数据的属性信息是否匹配所述缓存区中的待匹配数据的步骤包括:
判断所述目标数据的长度信息和所述目标数据的地址信息是否分别与所述待匹配数据的长度信息和所述待匹配数据的地址信息匹配。
3.根据权利要求2所述的数据读取方法,其特征在于,所述方法还包括:
若所述判断所述目标数据的长度信息与所述待匹配数据的长度信息不匹配;或,所述目标数据的地址信息与所述待匹配数据的地址信息不匹配,则将所述数据长度阈值更新为所述目标数据的长度信息以对所述缓存区进行更新。
4.根据权利要求2所述的数据读取方法,其特征在于,在所述判断所述目标数据的长度信息和所述目标数据的地址信息是否分别与所述待匹配数据的长度信息和所述待匹配数据的地址信息匹配的步骤之前,还包括:
判断所述目标数据的长度信息是否小于或等于所述数据长度阈值;
若小于或等于所述数据长度阈值,则执行所述判断所述目标数据的长度信息和所述目标数据的地址信息是否分别与所述待匹配数据的长度信息和所述待匹配数据的地址信息匹配的步骤。
5.根据权利要求1所述的数据读取方法,其特征在于,所述根据数据长度阈值建立缓存区的步骤包括:
根据所述数据长度阈值获取所述缓存区的存储空间;
判断所述存储空间是否已满;
若未满,则读取所述存储区中的数据存储至所述存储空间;所述存储区中的数据的长度信息小于或等于所述数据长度阈值。
6.根据权利要求5所述的数据读取方法,其特征在于,所述存储空间的数据结构为循环队列;
所述判断所述缓存区的存储空间是否已满,包括:
判断所述循环队列是否已满;
若所述循环队列未满,所述读取所述存储区中的数据存储至所述存储空间的步骤包括:
读取所述存储区中的数据,存储至所述循环队列的尾部;位于所述循环队列头部的数据为所述待匹配数据。
7.根据权利要求5所述的数据读取方法,其特征在于,在所述将所述待匹配数据作为所述目标数据,并发送给服务器之后,还包括:
当所述服务器完成基于所述目标数据的服务调用后,返回执行所述判断所述存储空间是否已满的步骤。
8.一种服务器控制设备,其特征在于,包括:处理模块和收发模块;
所述处理模块,用于根据数据长度阈值建立缓存区;其中,所述缓存区每个数据块的空间小于或等于所述数据长度阈值;
所述收发模块,用于获取用于请求目标数据的数据请求,所述数据请求包含所述目标数据的属性信息;
所述处理模块,还用于判断所述目标数据的属性信息是否匹配所述缓存区中的待匹配数据;所述待匹配数据为从所述存储区预读至所述缓存区的数据;
所述收发模块,还用于若匹配,则将所述待匹配数据作为所述目标数据,并发送给服务器。
9.一种服务器,其特征在于,包括服务器控制设备,所述服务器控制设备实现如权利要求1-7中任一项所述的数据读取方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7中任一项所述的数据读取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811584187.9A CN109739570B (zh) | 2018-12-24 | 2018-12-24 | 一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811584187.9A CN109739570B (zh) | 2018-12-24 | 2018-12-24 | 一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739570A true CN109739570A (zh) | 2019-05-10 |
CN109739570B CN109739570B (zh) | 2022-04-08 |
Family
ID=66359681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811584187.9A Active CN109739570B (zh) | 2018-12-24 | 2018-12-24 | 一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739570B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559574A (zh) * | 2020-12-25 | 2021-03-26 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
TWI798935B (zh) * | 2021-11-15 | 2023-04-11 | 華碩電腦股份有限公司 | 電腦系統及其啟動方法 |
CN117032588A (zh) * | 2023-09-26 | 2023-11-10 | 苏州元脑智能科技有限公司 | 一种数据读取方法、装置及电子设备和存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090157923A1 (en) * | 2006-10-05 | 2009-06-18 | Computer Associates Think, Inc. | Method and System for Managing Performance Data |
CN102045258A (zh) * | 2010-12-22 | 2011-05-04 | 北京星网锐捷网络技术有限公司 | 数据缓存管理方法及装置 |
CN102870100A (zh) * | 2012-06-30 | 2013-01-09 | 华为技术有限公司 | 数据缓存装置、数据存储系统及方法 |
CN104503707A (zh) * | 2014-12-24 | 2015-04-08 | 华为技术有限公司 | 读取数据的方法以及装置 |
CN104683459A (zh) * | 2015-02-13 | 2015-06-03 | 华为技术有限公司 | 一种发送业务数据的方法和存储系统 |
US20160150003A1 (en) * | 2014-11-26 | 2016-05-26 | Vmware, Inc. | Workload selection and cache capacity planning for a virtual storage area network |
CN106330764A (zh) * | 2016-08-15 | 2017-01-11 | 北京蓝海讯通科技股份有限公司 | 管理数据缓冲的方法、应用及计算设备 |
CN106951190A (zh) * | 2017-03-21 | 2017-07-14 | 联想(北京)有限公司 | 数据存储及访问方法、节点和服务器集群 |
CN107045530A (zh) * | 2017-01-20 | 2017-08-15 | 华中科技大学 | 一种将对象存储系统实现为本地文件系统的方法 |
CN107317855A (zh) * | 2017-06-21 | 2017-11-03 | 努比亚技术有限公司 | 一种数据缓存方法、数据请求方法及服务器 |
CN107506154A (zh) * | 2017-09-26 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种元数据的读取方法、装置及计算机可读存储介质 |
CN107590278A (zh) * | 2017-09-28 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种基于ceph的文件预读方法及相关装置 |
CN108920387A (zh) * | 2018-06-06 | 2018-11-30 | 深圳忆联信息系统有限公司 | 降低读延迟的方法、装置、计算机设备及存储介质 |
-
2018
- 2018-12-24 CN CN201811584187.9A patent/CN109739570B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090157923A1 (en) * | 2006-10-05 | 2009-06-18 | Computer Associates Think, Inc. | Method and System for Managing Performance Data |
CN102045258A (zh) * | 2010-12-22 | 2011-05-04 | 北京星网锐捷网络技术有限公司 | 数据缓存管理方法及装置 |
CN102870100A (zh) * | 2012-06-30 | 2013-01-09 | 华为技术有限公司 | 数据缓存装置、数据存储系统及方法 |
US20160150003A1 (en) * | 2014-11-26 | 2016-05-26 | Vmware, Inc. | Workload selection and cache capacity planning for a virtual storage area network |
CN104503707A (zh) * | 2014-12-24 | 2015-04-08 | 华为技术有限公司 | 读取数据的方法以及装置 |
CN104683459A (zh) * | 2015-02-13 | 2015-06-03 | 华为技术有限公司 | 一种发送业务数据的方法和存储系统 |
CN106330764A (zh) * | 2016-08-15 | 2017-01-11 | 北京蓝海讯通科技股份有限公司 | 管理数据缓冲的方法、应用及计算设备 |
CN107045530A (zh) * | 2017-01-20 | 2017-08-15 | 华中科技大学 | 一种将对象存储系统实现为本地文件系统的方法 |
CN106951190A (zh) * | 2017-03-21 | 2017-07-14 | 联想(北京)有限公司 | 数据存储及访问方法、节点和服务器集群 |
CN107317855A (zh) * | 2017-06-21 | 2017-11-03 | 努比亚技术有限公司 | 一种数据缓存方法、数据请求方法及服务器 |
CN107506154A (zh) * | 2017-09-26 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种元数据的读取方法、装置及计算机可读存储介质 |
CN107590278A (zh) * | 2017-09-28 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种基于ceph的文件预读方法及相关装置 |
CN108920387A (zh) * | 2018-06-06 | 2018-11-30 | 深圳忆联信息系统有限公司 | 降低读延迟的方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
SAIMU MA 等: ""A log data transmission algorithm based on file splitting and cache matching"", 《2013 5TH IEEE INTERNATIONAL CONFERENCE ON BROADBAND NETWORK & MULTIMEDIA TECHNOLOGY》 * |
石刘 等: ""面向科学计算可视化的两级并行数据读取加速方法"", 《计算机研究与发展》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559574A (zh) * | 2020-12-25 | 2021-03-26 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN112559574B (zh) * | 2020-12-25 | 2023-10-13 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
TWI798935B (zh) * | 2021-11-15 | 2023-04-11 | 華碩電腦股份有限公司 | 電腦系統及其啟動方法 |
US11907729B2 (en) | 2021-11-15 | 2024-02-20 | Asustek Computer Inc | Computer system and booting method thereof |
CN117032588A (zh) * | 2023-09-26 | 2023-11-10 | 苏州元脑智能科技有限公司 | 一种数据读取方法、装置及电子设备和存储介质 |
CN117032588B (zh) * | 2023-09-26 | 2024-02-09 | 苏州元脑智能科技有限公司 | 一种数据读取方法、装置及电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109739570B (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240160584A1 (en) | System and method for facilitating dynamic command management in a network interface controller (nic) | |
CN109739570A (zh) | 一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质 | |
US6223305B1 (en) | Method and apparatus for resetting, enabling and freezing a communication device in a diagnostic process | |
US10757034B2 (en) | Queue flushing method and related device | |
US5907684A (en) | Independent channel coupled to be shared by multiple physical processing nodes with each node characterized as having its own memory, CPU and operating system image | |
CN101267361B (zh) | 一种基于零拷贝技术的高速网络数据包捕获方法 | |
CN110109872B (zh) | 一种遥感卫星异构数据统一存储管理装置 | |
EP3377965B1 (en) | Data processing method, device, and system | |
KR100997841B1 (ko) | 시스템 상호접속 버스 상에서의 지연 데이터 전송 추적 | |
US7809068B2 (en) | Integrated circuit capable of independently operating a plurality of communication channels | |
CN109302466A (zh) | 数据处理方法、相关设备及计算机存储介质 | |
CN108496161A (zh) | 数据缓存装置及控制方法、数据处理芯片、数据处理系统 | |
CN103399832B (zh) | 总线间的乱序返回数据的归序方法 | |
US9256521B1 (en) | Methods and apparatus for SAS controllers with link list based target queues | |
CN100469055C (zh) | 转发报文的处理方法及处理装置 | |
US7043603B2 (en) | Storage device control unit and method of controlling the same | |
US7584307B2 (en) | Direct memory access DMA with positional information and delay time | |
CN113572582B (zh) | 数据发送、重传控制方法及系统、存储介质及电子设备 | |
CN113986137A (zh) | 存储装置和存储系统 | |
CN106409337A (zh) | eMMC的控制方法及基于FPGA的eMMC控制器 | |
US11210393B2 (en) | Context data control | |
CN100549928C (zh) | 一种虚拟先入先出内存的实现方法和控制装置 | |
CN115374043A (zh) | 一种基于pcie的通讯协议数据交互方法 | |
CN116074247A (zh) | 硬件流表老化方法、软件流表老化方法、装置及电子设备 | |
US20180196750A1 (en) | Aggregating messages for reducing cache invalidation rate |
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 |