CN113343045A - 一种数据缓存方法及网络设备 - Google Patents
一种数据缓存方法及网络设备 Download PDFInfo
- Publication number
- CN113343045A CN113343045A CN202110860484.7A CN202110860484A CN113343045A CN 113343045 A CN113343045 A CN 113343045A CN 202110860484 A CN202110860484 A CN 202110860484A CN 113343045 A CN113343045 A CN 113343045A
- Authority
- CN
- China
- Prior art keywords
- linked list
- address
- consumption
- data
- idle
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据缓存方法及网络设备,涉及数据缓存技术领域,本发明的主要目的在于将缓存地址空间以数据长度进行动态划分,提高数据处理的吞吐性能。本发明主要的技术方案为:获取目标数据的长度信息;从空闲链表中获取与所述长度信息对应的空闲链表地址,每个空闲链表地址管理至少两个缓存地址;将所述目标数据存储至空闲链表地址管理的缓存地址中,并将所述空闲链表地址从所述空闲链表中转移至消费链表,确定存储所述目标数据的消费链表首地址;在读取所述目标数据时,根据所述长度信息与消费链表首地址读取对应缓存地址中的数据,并将对应的消费链表地址从所述消费链表中转移至空闲链表。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据缓存方法及网络设备。
背景技术
随着信息技术的日益发展,对数据处理的吞吐性能尤其是报文吞吐性能的要求也日益提高。在数据报文的收发及数据处理过程中,必不可少的要利用缓存即内存块来存储和传递数据。因此,缓存中地址空间的利用效率对数据处理的吞吐性能有着重要影响。
而对缓存的有效管理可以有效提高数据处理的吞吐性能,目前,对缓存地址空间进行管理的主要方式是将缓存地址空间划分为多个独立的子空间,每个子空间都可以用于存储一条报文数据。由于不同功能数据对应的报文数据不同,且多数功能数据的报文为巨帧数据,为了能够完整存储这些报文数据,一般子空间所占用的地址空间都较大。而这种子空间在存储短报文数据时,将会浪费大量的缓存地址空间,降低缓存地址空间的利用率。
发明内容
鉴于上述问题,本发明提出了一种数据缓存方法及网络设备,主要目的在于将缓存地址空间以数据长度进行动态划分,提高数据处理的吞吐性能。
为达到上述目的,本发明主要提供如下技术方案:
一方面,本发明提供一种数据缓存方法,具体包括:
获取目标数据的长度信息;
从空闲链表中获取与所述长度信息对应的空闲链表地址,每个空闲链表地址管理至少两个缓存地址;
将所述目标数据存储至空闲链表地址管理的缓存地址中,并将所述空闲链表地址从所述空闲链表中转移至消费链表,确定存储所述目标数据的消费链表首地址;
在读取所述目标数据时,根据所述长度信息与消费链表首地址读取对应缓存地址中的数据,并将对应的消费链表地址从所述消费链表中转移至空闲链表。
另一方面,本发明提供一种数据缓存装置,具体包括:
采集单元,用于获取目标数据的长度信息;
获取单元,用于从空闲链表中获取与所述采集单元确定的长度信息对应的空闲链表地址,每个空闲链表地址管理至少两个缓存地址;
数据存储单元,用于将所述目标数据存储至所述获取单元得到的空闲链表地址管理的缓存地址中,并将所述空闲链表地址从所述空闲链表中转移至消费链表,确定存储所述目标数据的消费链表首地址;
数据读取单元,用于在读取所述目标数据时,根据所述采集单元确定的长度信息与所述数据存储单元确定的消费链表首地址读取对应缓存地址中的数据,并将对应的消费链表地址从所述消费链表中转移至空闲链表。
另一方面,本发明提供一种网络设备,所述网络设备中具有报文缓存管理芯片,所述报文缓存管理芯片在对报文进行缓存管理时,执行上述的数据缓存方法。
另一方面,本发明提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的数据缓存方法。
另一方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述的数据缓存方法。
借由上述技术方案,本发明提供的一种数据缓存方法及网络设备,能够对待缓存的数据按照其长度信息动态分配缓存空间,通过维护空闲链表与消费链表,将缓存地址分组进行管理,使得链表中的每个地址可以管理若干单位长度的缓存地址,同时,根据待缓存数据的长度匹配足够数量的空闲链表地址,如此,可以提高对存储地址的利用效率,减少缓存空间的浪费。而空闲链表与消费链表中的链表地址可以根据其使用情况进行转移,使得数据在读写时可以快速地通过空闲链表与消费链表查找所对应的缓存地址,从而提高数据的读写效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提出的一种数据缓存方法的流程图;
图2示出了本发明实施例提出的另一种数据缓存方法的流程图;
图3示出了本发明实施例提出的空闲链表、消费链表以及缓存地址的示意框图;
图4示出了本发明实施例提出的一种数据缓存装置的组成框图;
图5示出了本发明实施例提出的另一种数据缓存装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供的一种数据缓存方法,该方法可以用于对数据缓存具有管理需求的设备中,如服务器、路由器、交换机、网卡等。通过本发明实施例所提出的数据缓存方法,可以提高缓存地址空间的利用效率以及数据读写效率,从而提高设备对网络带宽的利用率。需要说明的是,本发明实施例所提出的数据缓存方法应用于静态存储器中。以下实施例将具体说明本发明实施例对数据缓存的管理过程,其具体步骤如图1所示,包括:
步骤101、获取目标数据的长度信息。
缓存在数据处理过程中用于对数据内容的临时存储,以便在使用数据时可以高效地读取其内容。因此,当数据需要存入缓存时,需要记录其在缓存中的位置,以便在读取时能够快速找到。在以子空间存储数据的缓存管理方式中,数据存储的位置是以子空间的位置进行定位的。而在本实施例中,缓存空间的划分是以数据的长度信息进行动态划分的,其中,数据的长度信息是指该数据所要占用的缓存地址的数量。需要说明的是,本步骤中待缓存的目标数据在存入缓存前,需要确定该目标数据的长度信息。一般地,该长度信息是携带在目标数据中的,通过解析数据中内容可以得到目标数据的长度信息。
在本实施例中,单位长度的目标数据与单位缓存地址所存储的数据长度相一致,即一个单位长度的数据可以存储在一个单位的缓存地址中。理论上,按照目标数据长度信息,为其分配对应长度的存储地址是可以最大化利用缓存空间的,杜绝缓存空间浪费的问题。但是,在实际应用中,考虑到缓存地址数量巨大,这种动态划分方式对于计算资源的消耗是巨大的。因此,为了平衡缓存空间动态划分时对计算资源的消耗问题。本发明实施例是通过维护空闲链表与消耗链表来减少对计算资源的消耗,其中,空闲链表与消耗链表中记录有链表地址,空闲链表中的空闲链表地址用于管理若干个未写入数据的缓存地址,而消耗链表中的消耗链表地址用于管理若干个已写入数据的缓存地址,空闲链表地址与消耗链表地址多管理的缓存地址数量是相同的,并且,空闲链表地址与消耗链表地址根据其所对应的缓存地址的数据写入状态是可以相互转换的。由于链表地址的数量远小于缓存地址的数量,因此,在读取目标数据时可以减少计算资源的消耗,提高查找效率。
而在将目标数据写入缓存时,本实施例的动态划分是指根据长度信息为其分配足够数量的空闲链表地址,以存储该目标数据。同时,标记出第一个存储的链表地址,以便在读取该目标数据时,可以根据该链表地址对应的缓存地址中读取数据。
步骤102、从空闲链表中获取与长度信息对应的空闲链表地址。
由于目标数据的长度信息与缓存地址具有对应关系,因此,根据长度信息可以确定存储目标数据所需的缓存地址数量,而空闲链表地址所管理的缓存地址数量是固定的,因而,根据长度信息,就可以确定出空闲链表地址所需的数量。比如,目标数据的长度为10个单元长度,对应存储该目标数据的缓存地址数量为10个,若1个空闲链表地址管理4个缓存地址,那么,所需要的空闲链表地址则为3个,在存储该目标数据后,有两个缓存地址被浪费。
在本实施例中,每个空闲链表地址管理至少两个缓存地址,而所管理的缓存地址数量是预先设置的。根据上述说明可知,空闲链表地址管理的缓存地址数量越少,其动态划分的缓存空间与目标数据所需的存储空间的配合度越高,所浪费的缓存地址数量越少,缓存空间的利用率也就越高。因此,在计算资源许可的情况下,空闲链表地址管理的缓存地址数量越少,本实施例的效果越佳。
步骤103、将目标数据存储至空闲链表地址管理的缓存地址中,并将空闲链表地址从空闲链表中转移至消费链表,确定存储目标数据的消费链表首地址。
本步骤是目标数据写入缓存的过程,该过程的主要分为3个操作,分别为:
第一、数据存储。
该操作是按照目标数据的单位长度,将目标数据逐一存储至空闲链表地址所管理的缓存地址中。其中,当空闲链表地址有多个时,需要按照空闲链表地址的顺序逐一存储,在写满一个空闲链表地址管理的全部缓存地址后,再向下一个空闲链表地址管理的缓存地址中写数据。
第二、链表更新。
该操作是指对空闲链表与消费链表中链表地址的更新。在写入目标数据的过程中,是从空闲链表中获取的空闲链表地址,当在该空闲链表地址中写入数据后,该空闲链表地址将被转移至消费链表,链表地址由空闲链表地址变为消费链表地址,即将链表地址从空闲链表中移除,同时,将该链表地址添加到消费链表中。
第三,链表首地址标注。
该操作是为读取目标数据所作的准备,链表首地址是指目标数据写入缓存时,所使用的第一个空闲链表地址。提取该空闲链表地址的标识信息,建立目标数据与该标识信息的映射关系。以便在读取目标数据时,根据该映射关系确定缓存地址。
步骤104、在读取目标数据时,根据长度信息与消费链表首地址读取对应缓存地址中的数据,并将对应的消费链表地址从所述消费链表中转移至空闲链表。
本步骤是目标数据从缓存中读取的过程,该过程的主要包括2个操作,分别为:
第一、数据读取。
根据目标数据在写入缓存时标注的链表首地址,该操作是在消费链表中查找该链表首地址,并从其所对应的缓存地址中读取数据。再根据读取的数据长度与目标数据的长度信息进行对比,当长度一致时,就可以确定所读取的数据为目标数据。
需要说明的是,在读取数据时,如果目标数据被存储在多个消费链表地址中时,为了能够从链表首地址连续地读取目标数据的内容,本实施例在消费链表中,还会为每个消费链表地址记录转移指针,该转移指针用于指向存储有目标数据的下一个消费链表地址。而该转移指针是在目标数据写入时根据空闲链表地址的存储顺序所确定的。
第二、链表更新。
对应于目标数据写入时对空闲链表与消费链表的更新,在读取目标数据时,也需要对读取后的链表地址进行更新,将读取出数据的链表地址从消费链表中移除,同时,将该链表地址添加到空闲链表中。如此,数据的读写过程对应于链表地址的更新过程,使得空闲链表能够连续提供空闲链表地址,实现对数据的连续缓存。
通过上述实施例的说明,本发明实施例所提供的一种数据缓存方法,是在平衡计算资源的情况下,实现对待缓存的数据按照其长度信息动态分配缓存空间,通过维护空闲链表与消费链表,将缓存地址分组进行管理,使得链表中的每个地址可以管理若干个单位长度的缓存地址,同时,根据待缓存数据的长度匹配足够数量的空闲链表地址,如此,可以提高对存储地址的利用效率,减少缓存空间的浪费。而空闲链表与消费链表中的链表地址可以根据其使用情况进行转移,使得数据在读写时可以快速地通过空闲链表与消费链表查找所对应的缓存地址,从而提高数据的读写效率。
进一步的,针对图1所示的数据缓存方法,以下实施例中,将基于网络设备所需缓存的常见数据(报文数据)详细说明各步骤的具体操作过程,其具体步骤如图2所示,包括:
步骤201、创建空闲链表与消费链表。
关于空闲链表与消费链表的定义,在图1所示实施例的步骤101中进行了说明,此处不再赘述。需要说明的是,在空闲链表与消费链表中的链表地址所对应的缓存地址数量是相同的,而缓存地址所能够存储的数据长度为报文数据一个时钟周期输出的数据长度。
在实际应用中,空闲链表、消费链表以及缓存地址的形式以及关联关系如图3所示。图中,左侧的表格表示缓存地址,A0、A1、A2…D2、D3共表示16个缓存地址,每个缓存地址能够存储一个单位长度的报文数据,即一个时钟周期输出的报文数据长度;中间的表格表示空闲链表,链表中的A0、B0、C0、D0表示空闲链表地址,需要说明的是,该空闲链表地址的名称可以使用缓存地址的名称,比如,空闲链表地址A0管理4个缓存地址A0、A1、A2、A3。而右侧的表格表示消费链表,其中示例性地列出了消费链表地址,并且,每个消费链表地址还标记有同一数据存储顺序的指针。
此外,需要说明的是,链表地址所管理的缓存地址的数量是根据缓存输出延时参数确定,延时越短,其对应的数量就可以越低,缓存空间的利用效率也就越高。而该输出延时参数一般是由缓存的生产厂家在生产是所确定。因此,本实施例中管理缓存地址的数量需要获取缓存的输出延时参数,在图3的示例中,1个链表地址可以管理4个缓存地址。
步骤202、获取目标数据的长度信息。
在执行本步骤之前,需要对空闲链表与消费链表进行初始化操作。确定链表中的链表地址。以图3为例,若缓存中未存储数据,则初始化后,空闲链表中的空闲链表地址为A0、B0、C0、D0,消费链表中没有消费链表地址。
报文数据的长度记载于报文数据中,其长度信息可以根据报文长度换算为若干个单位长度,如此,便于确定所需存储的缓存地址数量。
步骤203、从空闲链表中获取与长度信息对应的空闲链表地址。
本实施例中,空闲链表在记录空闲链表地址时为顺序记录,即在添加与移除时是按照排序顺序使用的。在确定了报文数据的长度信息后,先根据该长度信息确定存储报文数据的缓存地址的数量,之后,根据缓存地址的数量以及空闲链表地址管理缓存地址的数量计算所需空闲链表地址的数量,最后,根据空闲链表地址的数量从空闲链表中顺序确定需要存储该报文数据的空闲链表地址。
以图3中空闲链表地址的由上至下的顺序为例,当一条报文数据的长度为7个单位长度时,可以确定缓存该报文数据需要7个缓存地址,在根据空闲链表地址管理缓存地址的数量(1个空闲链表地址管理4个缓存地址),确定所需的空闲链表地址的数量为2。根据空闲链表中的排序,确定存储报文数据的空闲链表地址为A0、B0。由此可知,为该条报文数据所动态划分的实际缓存地址为8个地址,分别为A0、A1、A2、A3、B0、B1、B2、B3。而在存入报文数据后,缓存地址B3将因无数据可存浪费。
步骤204、将目标数据存储至空闲链表地址管理的缓存地址中,并将空闲链表地址从空闲链表中转移至消费链表,确定存储目标数据的消费链表首地址。
该步骤对应于图1所示实施例的步骤103,为报文数据写入缓存的过程,对于本步骤的执行过程,可以根据空闲链表地址的数量不同分为两种情况:
第一种,空闲链表地址的数量为一个。说明该空闲链表地址所对应的缓存地址足够存储该报文数据,此时,将目标数据按照缓存读写的时钟周期顺序存储至空闲链表地址对应的缓存地址中;在存储报文数据的同时,将该空闲链表地址从空闲链表中删除,并在消费链表中增加与缓存地址对应的消费链表地址;并且,确定该消费链表地址为存储报文数据的消费链表首地址,即在消费链表地址中标注指向其他消费链表地址的指针。
第二种,空闲链表地址的数量为多个。说明1个空闲链表地址所对应的缓存地址不足以存储该报文数据,此时,按照空闲链表地址的顺序逐一向空闲链表地址对应的缓存地址中存储报文数据,其中,向一个空闲链表地址对应的缓存地址中存储报文数据的过程与第一种情况相同,此处不再赘述;而在写满一个空闲链表地址对应的缓存地址时,需要将该空闲链表地址转移至消费链表,即删除空闲链表中的链表地址,同时在消费链表中增加该链表地址,并在对应的消费链表地址中标记该报文数据存储的下一个缓存地址对应的空闲链表地址的指针。此种情况下,是将多个空闲链表地址中第一个写入报文数据对应的消费链表地址确定为消费链表首地址。
以图3所示的缓存地址为例,对依次对接收到的长度为3个单元长度的报文1与长度为5个单元长度的报文2进行缓存时,数据存储过程以及链表更新状态如下:
根据报文1的长度,确定空闲链表地址A0用于存储报文数据,根据时钟周期将报文1切分为3个切片:pkt0_solo0、pkt0_solo1、pkt0_solo2,顺序地存储至缓存地址A0、A1、A2中。同时,空闲链表更新为B0、C0、D0,消费链表更新为A0,并且该A0的指针仍然为A0,确定消费链表地址A0为报文1的消费链表首地址。
之后,根据报文2的长度,根据空闲链表中的地址顺序确定B0、C0用于存储报文数据,根据时钟周期将报文2切分为5个切片:pkt1_solo0、pkt1_solo1、pkt1_solo2、pkt1_solo3、pkt1_solo4,顺序地存储至缓存地址B0、B1、B2、B3、C0中。在将切片pkt1_solo3写入B3时,由于空闲链表地址B0所管理的缓存地址写满,此时,在将链表地址B0从空闲链表中移至消费链表时,为链表地址B0标记指向C0的指针。更新后的空闲链表中的空闲链表地址为D0,消费链表中的消费链表地址为A0(A0)、B0(C0)、C0(C0)。此种情况下,将确定消费链表地址B0为报文2的消费链表首地址。
步骤205、在读取目标数据时,根据长度信息与消费链表首地址读取对应缓存地址中的数据,并将对应的消费链表地址从所述消费链表中转移至空闲链表。
本步骤的数据读取过程以及链表更新状态,以图3中写入上述报文1与报文2后,读取报文2的过程为例进行说明:
在需要读取报文2时,确定报文2的消费链表首地址为B0,据此,从对应的缓存地址B0、B1、B2、B3中顺序读取数据,在读取到B3时,获取消费链表首地址为B0在消费链表中记录的指针,其指向消费链表地址C0,据此,在读出缓存地址B3的数据后,继续读取C0、C1、C2、C3中的数据,由于C1、C2、C3中无数据,因此,最终读到的数据为B0、B1、B2、B3、C0中存储的数据。在该过程中,消费链表首地址B0以及消费链表地址C0将被顺序地添加到空闲链表中,最终,消费链表中的消费链表地址为A0;空闲链表中的空闲链表地址依次为:D0、B0、C0。
此外,在读取报文数据时,消费链表首地址用于确定读取报文的第一个缓存地址,其也为写入报文时的第一个缓存地址;长度信息用于对所读取的报文数据长度进行校验,以确定其为所要读取的报文。
在本实施例中,使用长度信息对报文数据校验的主要方式有两种:
第一种,是在完成数据读取后使用长度信息进行校验。
具体的,先读取消费链表首地址对应的缓存地址中的数据,完成读取后,判断消费链表首地址在消费链表中是否标记有指向其他消费链表地址的指针;若存在,则根据该指针读取其他消费链表地址对应的缓存地址中的数据,同时,将已读取的消费链表地址(即消费链表首地址)从消费链表中转移至空闲链表,直至消费链表地址中标记的指针指向自己,或者没有其他消费链表地址的指针;反之,若不存在,即指针指向自己,或者没有其他消费链表地址的指针时,说明数据以及完成读取,此时,利用长度信息对所读取的数据长度进行校验,若长度一致,则确定读取的数据为目标报文,而如果长度不一致,则需要生成报警提示信息。
第二种,是在读取数据过程中使用长度信息进行校验。
具体的,先读取消费链表首地址对应的缓存地址中的数据;完成读取后,判断长度信息与所读取数据的长度的差值是否大于0;若大于,说明所读取的数据尚不完成,此时,获取消费链表首地址在消费链表中标记的指向其他消费链表地址的指针,根据该指针读取其他消费链表地址对应的缓存地址中的数据,同时,将已读取的消费链表地址(消费链表首地址)从消费链表中转移至空闲链表,在读取完其他消费链表地址对应的缓存地址中的数据后,继续判断长度信息与所有读取数据的长度的差值是否大于0,直至该差值为0时,确定读取的数据为目标报文,否则,需要生成报警提示信息。
以上图2所示的实施例在图3所示的链表状态示意图的配合下,详细说明了对报文数据缓存的动态划分缓存空间以及数据读写的过程。基于该过程以及空闲链表、消费链表的设置,本发明实施例可以有效降低缓存地址的浪费,提高数据处理的吞吐性能。
进一步的,针对本实施例中所设置的空闲链表、消费链表,还可以通过图形界面对缓存空间的使用状态相关信息进行可视化展示,例如,可以响应于对缓存的查询请求,在系统界面中展示对应的图形界面,该图像界面不限定为跳转页面或弹窗页面等展示形式。在该图像界面中所展示的相关信息包括但不限于:缓存空间的使用占比;空闲链表地址所管理的缓存地址的数量;空闲链表、消费链表中保存的空闲链表地址与消费链表地址以及所对应的地址数量。在此基础上,还可以进一步针对每个消费链表地址所缓存的数据量进行展示,以便于查看每个消费链表地址缓存数据的效率,为调节一个空闲链表地址所管理的缓存地址数量提供数据支持。需要说明的是,上述展示的相关信息可以在一个图形界面中以文字或图形的方式进行展示,也可以根据所展示的内容数量在多个图像界面中进行展示,对此,本实施例不做具体限定。
进一步的,在上述实施例对报文数据进行缓存的过程中,本发明实施例还可以针对该报文数据进行处理,包括对报文数据的转发、保存、丢弃等,而要确定对报文数据采用何种处理操作,就需要对报文数据的具体内容进行分析,在确定该报文数据需要存储在本地时,则进一步确定该报文数据在本地的存储位置,并从缓存中读取出报文数据并将其保存至确定的存储位置,而在确定该报文数据需要转发时,则需要进一步确定发送该报文数据所对应的传输路径,进而按照该传输路径发送从缓存地址中读取的报文数据。
具体的,对于需要转发的报文数据,在实际应用中,特别是在云计算的应用场景中,会在网络节点上预先配置转发的匹配规则,例如在容器网络中实现网络隔离功能时,一般是在linux的内核网络中预设的匹配规则,用于判断数据是否需要分发以及分发到何处。然而,随着容器网络的扩展,在内核网络总设置的规则会越来越多,复杂度也会成指数级提升,从而导致容器所在主机的计算资源被规则计算大量占用,使其性能降低,无法提供稳定的网络输出。
为此,本发明的一个优选实施例中,提出将上述预设的规则设置在智能网卡中,由智能网卡利用该规则直接对报文数据进行处理,具体的,可以通过访问控制列表定义所需规则对网络设备接口上的报文数据进行控制,在容器网络中应用虚拟网卡,其虚拟网卡与智能网卡直通时,该智能网卡根据匹配规则还可以进一步确定报文数据所要发送的虚拟网卡接口,进而利用智能网卡中预设的数据转发模块将从缓存中读取的报文数据发送至对应的虚拟网卡接口,完成报文数据的分发操作。
进一步的,针对该智能网卡,所获取的报文数据也可以是其他网络设备转发的数据,对此,该智能网卡可以通过预设的数据转发模块对这类报文数据进行快速处理,例如,利用DPDK工具实现报文数据的转发处理。可见,本实施例中的智能网卡在实现对报文数据的高效缓存的同时,还可以通过预设的匹配规则对报文数据的进一步处理操作进行匹配,实现了在智能网卡端进行网络隔离的功能,解放了主机CPU的计算资源,提高了网络转发能力。
进一步的,对应于上述将由主机执行的网络隔离策略下放到智能网卡中的实施例,本发明的另一优选实施例还可以将主机所要执行的负载均衡功能也下放至智能网卡中,具体的,在智能网卡中设置负载均衡模块,例如在智能网卡中设置IP虚拟服务器(IPVirtual Server,简写为IPVS),尤其为所获取的目标数据提供高性能四层负载均衡,为目标数据确定所要发送的目标服务器,之后,再由智能网卡中的数据转发模块将该目标数据通过对应的虚拟网卡接口发送至目标服务器。其中,该数据转发模块不限定为为DPDK工具。
对于本实施例中的智能网卡,为了进一步提高网络负载性能,还可以将系统中的多个智能网卡的网卡绑定为一个逻辑网卡,配置单个的IP地址,具体可使用Linux teaming或bond来绑定多个智能网卡,以此来提升整个系统网络的负载性能。
进一步的,作为对上述图1、图2所示数据缓存方法的实现,本发明实施例提供了一种数据缓存装置,该装置主要目的在于将缓存地址空间以数据长度进行动态划分,提高数据处理的吞吐性能。为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置如图4所示,具体包括:
采集单元31,用于获取目标数据的长度信息;
获取单元32,用于从空闲链表中获取与所述采集单元31确定的长度信息对应的空闲链表地址,每个空闲链表地址管理至少两个缓存地址;
数据存储单元33,用于将所述目标数据存储至所述获取单元32得到的空闲链表地址管理的缓存地址中,并将所述空闲链表地址从所述空闲链表中转移至消费链表,确定存储所述目标数据的消费链表首地址;
数据读取单元34,用于在读取所述目标数据时,根据所述采集单元31确定的长度信息与所述数据存储单元33确定的消费链表首地址读取对应缓存地址中的数据,并将对应的消费链表地址从所述消费链表中转移至空闲链表。
进一步的,如图5所示,所述装置还包括:
创建单元35,用于创建空闲链表与消费链表,所述空闲链表用于存储未写入数据的缓存地址对应的链表地址,所述消费链表用于存储已写入数据的缓存地址对应的链表地址,其中,每个链表地址根据缓存输出延时参数确定所管理的缓存地址数量,所述缓存地址用于存储单位长度的数据。
进一步的,如图5所示,所述空闲链表中顺序记录空闲链表地址;所述获取单元32包括:
确定模块321,用于根据所述长度信息确定存储所述目标数据的缓存地址的数量;
计算模块322,用于根据所述确定模块321确定的缓存地址的数量以及空闲链表地址管理缓存地址的数量计算所需空闲链表地址的数量;
所述确定模块321还用于,根据计算模块322得到的空闲链表地址的数量从所述空闲链表中顺序确定需要存储所述目标数据的空闲链表地址。
进一步的,如图5所示,数据存储单元33包括:
存储模块331,用于所述空闲链表地址为一个时,将所述目标数据按照缓存读写的时钟周期顺序存储至空闲链表地址对应的缓存地址中;
更新模块332,用于将所述空闲链表地址从所述空闲链表中删除,并在消费链表中增加与缓存地址对应的消费链表地址;
确定模块333,用于确定该消费链表地址为存储所述目标数据的消费链表首地址。
进一步的,数据存储单元33还用于:
所述存储模块331还用于,所述空闲链表地址为多个时,按照空闲链表地址的顺序逐一向空闲链表地址对应的缓存地址中存储所述目标数据;
所述更新模块332还用于,在写满一个空闲链表地址对应的缓存地址时,将所述空闲链表地址转移至消费链表,并在对应的消费链表地址中标记所述目标数据存储的下一个缓存地址对应的空闲链表地址;
所述确定模块333还用于,将多个空闲链表地址中第一个写入所述目标数据对应的消费链表地址确定为消费链表首地址。
进一步的,如图5所示,所述数据读取单元34包括:
读取模块341,用于读取所述消费链表首地址对应的缓存地址中的数据;
判断模块342,用于判断所述读取模块341读取的消费链表首地址在消费链表中是否标记有指向其他消费链表地址的指针;
所述读取模块341还用于,若判断模块342确定存在指针,则根据所述指针读取其他消费链表地址对应的缓存地址中的数据,并将已读取的消费链表地址从消费链表中转移至空闲链表;
校验模块343,用于若判断模块342确定不存在指针,则利用所述长度信息对所读取的数据长度进行校验,确定读取的数据为目标数据。
进一步的,如图5所示,所述数据读取单元34还用于:
所述读取模块341还用于,读取所述消费链表首地址对应的缓存地址中的数据;
所述判断模块342还用于,判断所述长度信息与读取模块341读取数据的长度的差值是否大于0;
所述读取模块341还用于,若判断模块342确定差值大于0,则获取所述消费链表首地址在消费链表中标记的指向其他消费链表地址的指针,根据所述指针读取其他消费链表地址对应的缓存地址中的数据,将已读取的消费链表地址从消费链表中转移至空闲链表;
确定模块344,用于所述判断模块342确定差值不大于0,则确定读取的数据为目标数据。
进一步的,如图5所示,所述装置还包括:
展示单元36,用于通过图形界面展示数据缓存的相关信息,所述相关信息至少包括:每个空闲链表地址管理的缓存地址数量,空闲链表中的空闲链表地址及其数量,消费链表中的消费链表地址及其数量等信息。
进一步的,如图5所示,所述装置还包括:
判断单元37,用于根据预设的匹配规则判断所述目标数据的传输路径,所述预设的匹配规则设置在智能网卡中;
发送单元38,由所述智能网卡根据所述判断单元37确定的传输路径,并将所述目标数据利用数据转发模块发送至对应的虚拟网卡接口。
进一步的,如图5所示,所述装置还包括:
确定单元39,用于利用负载均衡模块确定所述目标数据发送的目标服务器,所述负载均衡模块设置在智能网卡中;
所述发送单元38还用于,由所述智能网卡中的数据转发模块将所述目标数据通过对应的虚拟网卡接口发送至所述确定单元39确定的目标服务器。
进一步的,本发明实施例还提出了一种网络设备,该网络设备可以应用网络设备中,从而优化所传输网络数据在缓存中的读写效率,提高缓存空间的利用效率。在该网络设备中,设置有报文缓存管理芯片,该报文缓存管理芯片在对报文进行缓存管理时,通过执行上述图1、图2所示实施例提供的数据缓存方法来提升网络设备所在设备对数据处理的吞吐性能。在实际应用场景下,该网络设备可具体体现为网卡、交换机、路由器、网关设备或负载均衡设备等,即需要对报文数据进行缓存处理的网络设备。当网络设备为网卡时,该网卡还可以应用于服务器,电脑等个人终端设备中以提高对网络传输数据的吞吐性能。而对于已有的网络系统,通过应用安装有该网卡的计算设备,也可以替代已有系统中独立设置的网关、负载均衡设备等,从而提高系统整体的集成性。当网络设备为交换机、路由器、网关等具有计算能力的设备时,则可以将上述图1、图2所示实施例提供的数据缓存方法应用于这些设备中,在具体执行上述的数据缓存方法时,网络设备中的报文缓存管理芯片执行对网络设备中缓存空间的管理执行,通过执行上述图1、图2所述的实施例,为需要存储至缓存的报文数据匹配对应的链表地址,进而将报文数据存储至链表地址对应的缓存地址中,同时,将链表地址从空闲链表转移至消费链表,以便在读取报文数据时,直接从该消费链表中获取,从而实现对设备缓存的高效管理。
另外,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述图1、图2所示实施例提供的数据缓存方法。
另外,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述图1、图2所示实施例提供的数据缓存方法。
另外,本发明实施例还提供存储在计算机可读存储介质中的计算机可执行程序,其中,该计算机可读存储介质具体可以为报文缓存管理芯片,而计算机可执行程序则为上述图1-2所示实施例提供的数据缓存方法对应的程序代码,由报文缓存管理芯片执行该数据缓存方法,以实现对设备缓存的高效管理,其中,本实施例对编写程序代码的具体编写语言不做限定。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法、装置及网络设备中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的较佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据缓存设备的处理器以产生一个机器,使得通过计算机或其他可编程数据缓存设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据缓存设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据缓存设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种数据缓存方法,所述方法包括:
获取目标数据的长度信息;
从空闲链表中获取与所述长度信息对应的空闲链表地址,每个空闲链表地址管理至少两个缓存地址;
将所述目标数据存储至空闲链表地址管理的缓存地址中,并将所述空闲链表地址从所述空闲链表中转移至消费链表,确定存储所述目标数据的消费链表首地址;
在读取所述目标数据时,根据所述长度信息与消费链表首地址读取对应缓存地址中的数据,并将对应的消费链表地址从所述消费链表中转移至空闲链表。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
创建空闲链表与消费链表,所述空闲链表用于存储未写入数据的缓存地址对应的链表地址,所述消费链表用于存储已写入数据的缓存地址对应的链表地址,其中,每个链表地址根据缓存输出延时参数确定所管理的缓存地址数量,所述缓存地址用于存储单位长度的数据。
3.根据权利要求1所述的方法,其特征在于,所述空闲链表中顺序记录空闲链表地址;所述从空闲链表中获取与所述长度信息对应的空闲链表地址,包括:
根据所述长度信息确定存储所述目标数据的缓存地址的数量;
根据所述缓存地址的数量以及空闲链表地址管理缓存地址的数量计算所需空闲链表地址的数量;
根据空闲链表地址的数量从所述空闲链表中顺序确定需要存储所述目标数据的空闲链表地址。
4.根据权利要求3所述的方法,其特征在于,将所述目标数据存储至空闲链表地址管理的缓存地址中,并将所述空闲链表地址从所述空闲链表中转移至消费链表,确定存储所述目标数据的消费链表首地址,包括:
所述空闲链表地址为一个时,将所述目标数据按照缓存读写的时钟周期顺序存储至空闲链表地址对应的缓存地址中;
将所述空闲链表地址从所述空闲链表中删除,并在消费链表中增加与缓存地址对应的消费链表地址;
确定该消费链表地址为存储所述目标数据的消费链表首地址。
5.根据权利要求3所述的方法,其特征在于,将所述目标数据存储至空闲链表地址管理的缓存地址中,并将所述空闲链表地址从所述空闲链表中转移至消费链表,确定存储所述目标数据的消费链表首地址,包括:
所述空闲链表地址为多个时,按照空闲链表地址的顺序逐一向空闲链表地址对应的缓存地址中存储所述目标数据;
在写满一个空闲链表地址对应的缓存地址时,将所述空闲链表地址转移至消费链表,并在对应的消费链表地址中标记所述目标数据存储的下一个缓存地址对应的空闲链表地址;
将多个空闲链表地址中第一个写入所述目标数据对应的消费链表地址确定为消费链表首地址。
6.根据权利要求1-5中任一项所述的方法,其特征在于,根据所述长度信息与消费链表首地址读取对应缓存地址中的数据,并将对应的消费链表地址从所述消费链表中转移至空闲链表,包括:
读取所述消费链表首地址对应的缓存地址中的数据;
判断所述消费链表首地址在消费链表中是否标记有指向其他消费链表地址的指针;
若存在,则根据所述指针读取其他消费链表地址对应的缓存地址中的数据,并将已读取的消费链表地址从消费链表中转移至空闲链表;
若不存在,则利用所述长度信息对所读取的数据长度进行校验,确定读取的数据为目标数据。
7.根据权利要求1-5中任一项所述的方法,其特征在于,根据所述长度信息与消费链表首地址读取对应缓存地址中的数据,并将对应的消费链表地址从所述消费链表中转移至空闲链表,包括:
读取所述消费链表首地址对应的缓存地址中的数据;
判断所述长度信息与读取数据的长度的差值是否大于0;
若大于,则获取所述消费链表首地址在消费链表中标记的指向其他消费链表地址的指针,根据所述指针读取其他消费链表地址对应的缓存地址中的数据,将已读取的消费链表地址从消费链表中转移至空闲链表;
若不大于,则确定读取的数据为目标数据。
8.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
通过图形界面展示数据缓存的相关信息,所述相关信息至少包括:每个空闲链表地址管理的缓存地址数量,和/或空闲链表中的空闲链表地址及其数量,和/或消费链表中的消费链表地址及其数量。
9.根据权利要求1-5中任一项所述的方法,其特征在于,在将所述目标数据存储至空闲链表地址管理的缓存地址后,所述方法还包括:
根据预设的匹配规则判断所述目标数据的传输路径,所述预设的匹配规则设置在智能网卡中;
由所述智能网卡根据所述匹配规则确定的传输路径,并将所述目标数据利用数据转发模块发送至对应的虚拟网卡接口。
10.根据权利要求1-5中任一项所述的方法,其特征在于,在将所述目标数据存储至空闲链表地址管理的缓存地址后,所述方法还包括:
利用负载均衡模块确定所述目标数据发送的目标服务器,所述负载均衡模块设置在智能网卡中;
由所述智能网卡中的数据转发模块将所述目标数据通过对应的虚拟网卡接口发送至目标服务器。
11.一种网络设备,所述网络设备中具有报文缓存管理芯片,所述报文缓存管理芯片在对报文进行缓存管理时,执行权利要求1-10中任意一项所述的数据缓存方法。
12.根据权利要求11所述的网络设备,其特征在于,所述网络设备为智能网卡、交换机、路由器、网关设备或负载均衡设备中的任一设备。
13.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-10中任意一项所述的数据缓存方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1-10中任意一项所述的数据缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110860484.7A CN113343045B (zh) | 2021-07-29 | 2021-07-29 | 一种数据缓存方法及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110860484.7A CN113343045B (zh) | 2021-07-29 | 2021-07-29 | 一种数据缓存方法及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113343045A true CN113343045A (zh) | 2021-09-03 |
CN113343045B CN113343045B (zh) | 2021-11-05 |
Family
ID=77480422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110860484.7A Active CN113343045B (zh) | 2021-07-29 | 2021-07-29 | 一种数据缓存方法及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113343045B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168259A (zh) * | 2022-09-06 | 2022-10-11 | 浪潮电子信息产业股份有限公司 | 一种数据存取方法、装置、设备和计算机可读存储介质 |
CN117745516A (zh) * | 2023-12-12 | 2024-03-22 | 沐曦科技(北京)有限公司 | 一种基于链表的标记的存储方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784699A (en) * | 1996-05-24 | 1998-07-21 | Oracle Corporation | Dynamic memory allocation in a computer using a bit map index |
US20040151170A1 (en) * | 2003-01-31 | 2004-08-05 | Manu Gulati | Management of received data within host device using linked lists |
CN101551736A (zh) * | 2009-05-20 | 2009-10-07 | 杭州华三通信技术有限公司 | 基于地址指针链表的缓存管理装置和方法 |
CN101990256A (zh) * | 2010-08-27 | 2011-03-23 | 中兴通讯股份有限公司 | 长连接管理装置及长连接通讯的链路资源管理方法 |
CN102098221A (zh) * | 2011-01-28 | 2011-06-15 | 华为技术有限公司 | 一种报文查询方法及装置 |
CN103678172A (zh) * | 2013-12-25 | 2014-03-26 | Tcl集团股份有限公司 | 一种本地数据缓存管理方法及装置 |
US20190004946A1 (en) * | 2017-06-30 | 2019-01-03 | EMC IP Holding Company LLC | Method and device for cache management |
CN109375985A (zh) * | 2018-09-06 | 2019-02-22 | 新华三技术有限公司成都分公司 | 内存动态管理方法及装置 |
CN109828980A (zh) * | 2019-02-19 | 2019-05-31 | 北京字节跳动网络技术有限公司 | 数据缓存方法、装置、终端及存储介质 |
US20200073823A1 (en) * | 2018-08-28 | 2020-03-05 | International Business Machines Corporation | Data cache performance |
CN113138859A (zh) * | 2020-01-17 | 2021-07-20 | 北京中软万维网络技术有限公司 | 一种基于共享内存池的通用数据存储方法 |
-
2021
- 2021-07-29 CN CN202110860484.7A patent/CN113343045B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784699A (en) * | 1996-05-24 | 1998-07-21 | Oracle Corporation | Dynamic memory allocation in a computer using a bit map index |
US20040151170A1 (en) * | 2003-01-31 | 2004-08-05 | Manu Gulati | Management of received data within host device using linked lists |
CN101551736A (zh) * | 2009-05-20 | 2009-10-07 | 杭州华三通信技术有限公司 | 基于地址指针链表的缓存管理装置和方法 |
CN101990256A (zh) * | 2010-08-27 | 2011-03-23 | 中兴通讯股份有限公司 | 长连接管理装置及长连接通讯的链路资源管理方法 |
CN102098221A (zh) * | 2011-01-28 | 2011-06-15 | 华为技术有限公司 | 一种报文查询方法及装置 |
CN103678172A (zh) * | 2013-12-25 | 2014-03-26 | Tcl集团股份有限公司 | 一种本地数据缓存管理方法及装置 |
US20190004946A1 (en) * | 2017-06-30 | 2019-01-03 | EMC IP Holding Company LLC | Method and device for cache management |
US20200073823A1 (en) * | 2018-08-28 | 2020-03-05 | International Business Machines Corporation | Data cache performance |
CN109375985A (zh) * | 2018-09-06 | 2019-02-22 | 新华三技术有限公司成都分公司 | 内存动态管理方法及装置 |
CN109828980A (zh) * | 2019-02-19 | 2019-05-31 | 北京字节跳动网络技术有限公司 | 数据缓存方法、装置、终端及存储介质 |
CN113138859A (zh) * | 2020-01-17 | 2021-07-20 | 北京中软万维网络技术有限公司 | 一种基于共享内存池的通用数据存储方法 |
Non-Patent Citations (2)
Title |
---|
XIANCHENG XU: "Flow Cache Design for Improving Traffic Collection in NP-Based Network Monitor System", 《IEEE》 * |
金守英: "《TTE-ET业务队列调度管理及总线控制模块的设计与实现》", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168259A (zh) * | 2022-09-06 | 2022-10-11 | 浪潮电子信息产业股份有限公司 | 一种数据存取方法、装置、设备和计算机可读存储介质 |
CN117745516A (zh) * | 2023-12-12 | 2024-03-22 | 沐曦科技(北京)有限公司 | 一种基于链表的标记的存储方法 |
CN117745516B (zh) * | 2023-12-12 | 2024-08-16 | 沐曦科技(北京)有限公司 | 一种基于链表的标记的存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113343045B (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10922287B2 (en) | Intelligent layout of composite data structures in tiered storage | |
CN105144121B (zh) | 高速缓存内容可寻址数据块以供存储虚拟化 | |
CN113343045B (zh) | 一种数据缓存方法及网络设备 | |
CN109240946A (zh) | 数据的多级缓存方法及终端设备 | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
CN103064797B (zh) | 数据处理方法和虚拟机管理平台 | |
CN102902805A (zh) | 一种页面访问方法和装置 | |
CN105677904B (zh) | 基于分布式文件系统的小文件存储方法及装置 | |
CN109951494B (zh) | 仿真数据处理方法、装置、仿真设备及存储介质 | |
CN102821113A (zh) | 缓存方法及系统 | |
CN107665095B (zh) | 存储器空间管理的设备、方法及可读存储介质 | |
CN109564502B (zh) | 应用于存储设备中的访问请求的处理方法和装置 | |
CN110119304A (zh) | 一种中断处理方法、装置及服务器 | |
CN104657435A (zh) | 一种应用数据的存储管理方法和网络管理系统 | |
CN110162396A (zh) | 内存回收方法、装置、系统和存储介质 | |
CN109359063A (zh) | 面向存储系统软件的缓存置换方法、存储设备及存储介质 | |
CN114579404A (zh) | 冷热页统计方法以及装置 | |
CN103595720A (zh) | 卸载数据传输方法、装置和客户端 | |
CN117332881B (zh) | 分布式训练方法及电子设备 | |
CN113297105B (zh) | 一种转换地址的缓存处理方法及装置 | |
CN117608856A (zh) | NVMe加速卡内存扩展方法、系统、终端及存储介质 | |
CN112597151A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN111562883B (zh) | 固态硬盘的缓存管理系统、方法、装置 | |
CN116089477B (zh) | 分布式训练方法及系统 | |
CN107832097A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40058121 Country of ref document: HK |