CN114531487A - 缓存管理方法及装置 - Google Patents

缓存管理方法及装置 Download PDF

Info

Publication number
CN114531487A
CN114531487A CN202011199840.7A CN202011199840A CN114531487A CN 114531487 A CN114531487 A CN 114531487A CN 202011199840 A CN202011199840 A CN 202011199840A CN 114531487 A CN114531487 A CN 114531487A
Authority
CN
China
Prior art keywords
buffer
queue
capacity
cache
target
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
CN202011199840.7A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011199840.7A priority Critical patent/CN114531487A/zh
Publication of CN114531487A publication Critical patent/CN114531487A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

公开了一种缓存管理方法及装置,属于网络技术领域。当网络设备的目标缓存队列的存储量超过目标缓存队列的可用缓存容量时,网络设备为目标缓存队列分配临时可用缓存容量。目标缓存队列包括未发生拥塞的缓存队列。目标缓存队列的总缓存容量为可用缓存容量与临时可用缓存容量的和。网络设备能够为存储量超过可用缓存容量的未发生拥塞的缓存队列分配临时可用缓存容量,实现了对该缓存队列所在的缓存空间的剩余缓存容量的充分利用。

Description

缓存管理方法及装置
技术领域
本申请涉及网络技术领域,特别涉及一种缓存管理方法及装置。
背景技术
网络设备通常采用基于动态阈值(dynamic threshold,DT)的缓存管理机制。网络设备基于缓存队列所在的缓存空间的剩余缓存容量动态调整该缓存队列的可用缓存容量。但是,基于DT的缓存管理机制共享缓存空间的所有缓存队列的存储量之和总是小于该缓存空间的总缓存容量,因此无法实现对缓存资源的充分利用。
发明内容
本申请提供了一种缓存管理方法及装置,可以实现对缓存资源的充分利用。
第一方面,提供了一种缓存管理方法。该方法包括:当网络设备的目标缓存队列的存储量超过目标缓存队列的可用缓存容量时,网络设备为目标缓存队列分配临时可用缓存容量。目标缓存队列包括未发生拥塞的缓存队列。目标缓存队列的总缓存容量为可用缓存容量与临时可用缓存容量的和。
其中,目标缓存队列可以仅指代网络设备中未发生拥塞的缓存队列。
本申请,当网络设备中未发生拥塞的缓存队列的存储量超过该缓存队列的可用缓存容量,即缓存队列发生流量突发状况时,网络设备为该缓存队列分配临时可用缓存容量,使得该缓存队列可以进行突发吸收,降低该缓存队列在流量突发情况下的丢包率。也实现了对缓存队列所在的缓存空间的剩余缓存容量的充分利用,提高了缓存资源的利用率。
可选地,网络设备为目标缓存队列分配临时可用缓存容量的实现过程,包括:网络设备根据目标缓存队列对应的剩余缓存容量为目标缓存队列分配临时可用缓存容量。其中,目标缓存队列对应的剩余缓存容量为目标缓存队列所在的缓存空间的剩余缓存容量。
可选地,目标缓存队列所在的缓存空间属于该目标缓存队列所在的端口,或目标缓存队列所在的缓存空间属于该目标缓存队列所在的端口组。
可选地,目标缓存队列的可用缓存容量与目标缓存队列对应的剩余缓存容量正相关。
可选地,目标缓存队列的可用缓存容量T满足:T=α*C,其中,α为分配因子,α>0,C为剩余缓存容量。临时可用缓存容量ΔT满足:ΔT=Δα*C,Δα为临时分配因子,Δα>0。
本申请中,网络设备可以采用基于DT的缓存管理机制为各个缓存队列分配可用缓存容量,使得各个缓存队列之间可以公平地分享缓存资源。当网络设备中未发生拥塞的缓存队列的存储量超过该缓存队列的可用缓存容量,即缓存队列发生流量突发状况时,网络设备为该缓存队列分配临时可用缓存容量,使得该缓存队列可以进行突发吸收,实现了对缓存队列所在的缓存空间的剩余缓存容量的充分利用。
可选地,当目标缓存队列对临时可用缓存容量的占用时长达到第一时长时,网络设备回收目标缓存队列的临时可用缓存容量。
本申请中,当目标缓存队列对临时可用缓存容量的占用时长达到第一时长时,网络设备回收该目标缓存队列的临时可用缓存容量,可以避免出现目标缓存队列长时间占用该目标缓存队列所在的缓存空间的剩余缓存容量,导致共享该缓存空间的其它缓存队列无法正常享用缓存资源的情况,使得共享缓存空间的多个缓存队列可以较为公平地分享缓存资源。
可选地,当目标缓存队列的存储量的持续减小时长超过第二时长,或者,目标缓存队列的存储量低于目标阈值时,网络设备回收目标缓存队列的临时可用缓存容量。可选地,目标阈值为目标缓存队列的最小保留存储量。
本申请中,当目标缓存队列的存储量的持续减小时长超过第二时长,可以在一定程度上反映该目标缓存队列的流量突发结束,此时网络设备回收该目标缓存队列的临时可用缓存容量,尽可能减小对共享缓存空间的其它缓存队列的影响。当目标缓存队列的存储量低于目标阈值,可以反映该目标缓存队列无需再使用临时可用缓存容量,此时网络设备回收该目标缓存队列的临时可用缓存容量,可以减少对缓存资源的浪费。
可选地,网络设备从回收目标缓存队列的临时可用缓存容量后的第三时长内,抑制为目标缓存队列分配新的临时可用缓存容量。
本申请中,从网络设备回收目标缓存队列的临时可用缓存容量后的第三时长内,无论目标缓存队列的存储量是否超出该目标缓存队列的可用缓存容量,网络设备都不会再给目标缓存队列分配新的临时可用缓存容量。可以避免目标缓存队列在发生拥塞前(即将发生拥塞但还未被判定成发生拥塞),持续占用该目标缓存队列所在的缓存空间的剩余缓存容量,导致出现共享该缓存空间的其它缓存队列无法正常享用缓存资源的情况,使得共享缓存空间的多个缓存队列可以较为公平地分享缓存资源。
第二方面,提供了一种网络设备。所述网络设备包括多个功能模块,所述多个功能模块相互作用,实现上述第一方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
第三方面,提供了一种网络设备,包括:存储器和队列管理器;
所述存储器,用于存放缓存队列;
所述队列管理器,用于当所述存储器中存放的目标缓存队列的存储量超过所述目标缓存队列的可用缓存容量时,为所述目标缓存队列分配临时可用缓存容量,所述目标缓存队列包括未发生拥塞的缓存队列,所述目标缓存队列的总缓存容量为所述可用缓存容量与所述临时可用缓存容量的和。
可选地,队列管理器为网络处理器(network processor,NP)、流量管理器(traffic manager,TM)或中央处理器(central processing unit,CPU)等。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被计算机设备的处理器执行时,实现上述第一方面及其各实施方式中的方法。
第五方面,提供了一种芯片,芯片包括可编程逻辑电路和/或程序指令,当芯片运行时,实现上述第一方面及其各实施方式中的方法。
附图说明
图1是本申请实施例提供的一种缓存管理方法的流程示意图;
图2是本申请实施例提供的一种网络设备为目标缓存队列分配临时可用缓存容量的场景示意图;
图3是本申请实施例提供的一种网络设备的结构示意图;
图4是本申请实施例提供的另一种网络设备的结构示意图;
图5是本申请实施例提供的一种网络设备的框图;
图6是本申请实施例提供的另一种网络设备的框图;
图7是本申请实施例提供的一种通信网络的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
网络设备通常包括多个端口组。一个端口组通常包括多个端口。一个端口通常包括多个缓存队列。一个端口上的多个缓存队列可以共享属于该端口的缓存空间,和/或,一个端口组内的多个端口可以共享属于该端口组的缓存空间。缓存管理(buffermanagement,BM)是网络设备的核心功能之一。良好的缓存管理机制可以保证网络设备的缓存队列之间公平地分享缓存资源。
网络设备通常采用基于DT的缓存管理机制。网络设备基于缓存队列所在的缓存空间的剩余缓存容量动态调整该缓存队列的可用缓存容量。其中,缓存队列的可用缓存容量也可称为该缓存队列的缓存阈值,指该缓存队列可以利用的最大缓存容量。当有报文准备进入缓存队列时,如果该缓存队列的存储量已达到或超过该缓存队列的可用缓存容量,则该报文会被丢弃;如果该缓存队列的存储量未达到该缓存队列的可用缓存容量,则该报文进入该缓存队列。如果缓存队列的存储量已超过其可用缓存容量,网络设备通常并不丢弃该缓存队列中已存储的报文,而仅仅不再在该缓存队列中存储新的报文,即新报文不能进入该缓存队列。网络设备发送该缓存队列中的报文后,该报文离开该缓存队列,从而降低该缓存队列的存储量。因此新报文不进入该缓存队列后,该缓存队列的存储量会逐渐下降。
缓存空间的剩余缓存容量等于该缓存空间的总缓存容量与共享该缓存空间的所有缓存队列的存储量之和的差值。缓存队列的存储量指该缓存队列实际占用的缓存容量。缓存队列所在的缓存空间可以属于该缓存队列所在的端口,或者,缓存队列所在的缓存空间也可以属于该缓存队列所在的端口组。在一种情况下,一个端口上的多个缓存队列共享属于该端口的缓存空间,而属于该端口的缓存空间的大小固定,则该端口上的缓存队列所在的缓存空间属于该端口。在另一种情况下,一个端口上的多个缓存队列共享属于该端口的缓存空间,且该端口所在端口组内的多个端口共享属于该端口组的缓存空间,则该端口上的缓存队列所在的缓存空间属于该端口所在的端口组。
在基于DT的缓存管理机制中,网络设备可以采用缓存分配公式T=α*C来计算缓存队列的可用缓存容量T。其中,α为分配因子,α>0,α的可选取值范围为1/256至128,通常α取值为2。C为该缓存队列所在的缓存空间的剩余缓存容量。由于缓存队列所在的缓存空间的剩余缓存容量是动态变化的,该缓存空间内的任一缓存队列进一个报文或出一个报文都可能会引起该缓存空间的剩余缓存容量发生变化,因此采用该缓存分配公式可以实现对缓存队列的可用缓存容量的动态调整。可选地,缓存空间内的任一缓存队列每出一个报文,更新一次该缓存空间的剩余缓存容量,进而更新一次该缓存空间内各个缓存队列的可用缓存容量。
基于DT的缓存管理机制的原理可知,同一缓存空间内的多个缓存队列之间相互约束着对方的缓存占用。如果一个缓存队列的存储量增大,那么缓存空间的剩余缓存容量就会减少,该缓存空间内各个缓存队列的可用缓存容量也会随着减少,这就约束了缓存侵占比较强的缓存队列继续侵占缓存,可以避免出现发生拥塞的缓存队列对缓存资源进行持续抢占的情况,从而实现缓存队列之间较为公平地分享缓存资源。
但是,在基于DT的缓存管理机制中,共享缓存空间的所有缓存队列的存储量之和总是小于该缓存空间的总缓存容量。假设缓存空间内包括N个缓存队列,该N个缓存队列的分配因子α均相同,N为正整数。当N个缓存队列的存储量均达到可用缓存容量,即该N个缓存队列竞争缓存达到平衡时,各个缓存队列的可用缓存容量T均满足:T=α*B/(1+αN)。其中,B为缓存空间的总缓存容量。此时该缓存空间内无法利用的缓存容量W满足:W=B/(1+αN),也即是,该缓存空间内总有大小为B/(1+αN)的缓存容量无法被利用。因此网络设备采用目前的基于DT的缓存管理机制,无法实现对缓存资源的充分利用。
本申请实施例提供了一种缓存管理方法,该方法既可以实现缓存队列之间较为公平地分享缓存资源,又可以实现对缓存资源的充分利用。图1是本申请实施例提供的一种缓存管理方法的流程示意图。如图1所示,该方法包括:
步骤101、当网络设备的目标缓存队列的存储量超过该目标缓存队列的可用缓存容量时,网络设备为该目标缓存队列分配临时可用缓存容量。
该目标缓存队列包括未发生拥塞的缓存队列。本申请实施例中,网络设备可以仅为存储量超过可用缓存容量且未发生拥塞的缓存队列分配临时可用缓存容量,即目标缓存队列仅包括网络设备中未发生拥塞的缓存队列。在网络设备为目标缓存队列分配临时可用缓存容量后,目标缓存队列的总缓存容量为可用缓存容量与临时可用缓存容量的和。
缓存队列的存储量超过该缓存队列的可用缓存容量并不一定是拥塞导致的,流量突发也会导致缓存队列的存储量急剧增长而超过可用缓存容量。由于流量突发是瞬时发生的,通常持续不到100毫秒。在流量突发场景下,缓存队列的存储量通常先急剧增长,而后会迅速下降至可用缓存容量以下,这个过程持续的时间很短。而拥塞是长期存在的,因此流量突发是一种非拥塞状态。当目标缓存队列为未发生拥塞的缓存队列,该目标缓存队列的存储量超过该目标缓存队列的可用缓存容量时,可以判定该目标缓存队列发生流量突发状况。
网络设备通过缓存队列的存储量的持续增长时间判定该缓存队列是否发生拥塞,而不依赖于缓存队列的存储量大小条件判定该缓存队列是否发生拥塞。因此,当目标缓存队列的存储量超过所述缓存队列的可用缓存容量时,该缓存队列可能并没有被网络设备确定为已发生拥塞。网络设备为可用缓存容量不足的非拥塞队列分配临时可用缓存容量,对拥塞队列则不分配(无论可用缓存容量是否充足)临时可用缓存容量。网络设备通过缓存队列的存储量的持续增长时间判定该缓存队列是否发生拥塞的具体方案可以参见于2020年10月28日提交的申请号为202011174189.8、发明名称为“拥塞识别方法及装置”的中国专利申请,其全部内容通过引用结合在本申请中。
可选地,当网络设备的缓存队列的存储量的持续增长时间超过第一阈值时,网络设备不依赖于该缓存队列的存储量大小条件确定该缓存队列发生拥塞。其中,第一阈值为最小拥塞判断时长,即判定缓存队列发生拥塞的最小持续时长。例如,该第一阈值可以取值为100毫秒。当网络设备的缓存队列的存储量下降到一定数值(固定值或动态值)时,网络设备确定该缓存队列的拥塞解除。
可选地,网络设备在判定缓存队列是否发生拥塞后,对该缓存队列标记拥塞状态。例如,网络设备在确定缓存队列发生拥塞后,将该缓存队列的状态标记为拥塞。网络设备为没有被标记为拥塞状态的可用缓存容量不足的缓存队列分配临时可用缓存容量,对被标记为拥塞状态的缓存队列则不分配临时可用缓存容量。
可选地,网络设备为目标缓存队列分配临时可用缓存容量的实现过程,包括:网络设备根据目标缓存队列对应的剩余缓存容量为目标缓存队列分配临时可用缓存容量。其中,目标缓存队列对应的剩余缓存容量为该目标缓存队列所在的缓存空间的剩余缓存容量。
可选地,目标缓存队列所在的缓存空间属于该目标缓存队列所在的端口,或目标缓存队列所在的缓存空间属于该目标缓存队列所在的端口组。在一种情况下,目标缓存队列所在的端口上的多个缓存队列共享属于该端口的缓存空间,而属于该端口的缓存空间的大小固定,则该目标缓存队列所在的缓存空间属于该目标缓存队列所在的端口。在另一种情况下,目标缓存队列所在的端口上的多个缓存队列共享属于该端口的缓存空间,且该端口所在的端口组内的多个端口共享属于该端口组的缓存空间,则目标缓存队列所在的缓存空间属于该目标缓存队列所在的端口组。如果属于端口组的缓存空间被固定分配给该端口组内的各个端口,那么目标缓存队列所在的缓存空间实际上为该目标缓存队列所在的端口被分配到的那部分缓存空间。例如,属于端口组的缓存空间大小为500兆字节,目标缓存队列所在的端口被分到的缓存空间大小为100兆字节,那么目标缓存队列所在的缓存空间就是那100兆字节的缓存空间。如果端口组内的各个端口没有被分配固定的缓存空间,那么这些端口竞争共享的缓存空间,即这些端口没有各自的缓存空间上限,仅受端口组的总缓存空间的限制,此时目标缓存队列所在的缓存空间就是属于端口组的总缓存空间。例如,属于端口组的缓存空间大小为500兆字节,目标缓存队列所在的缓存空间就是这500兆字节的缓存空间。
例如,目标缓存队列所在的缓存空间属于该目标缓存队列所在的端口组,且该端口组内的各个端口没有被分配固定的缓存空间。图2是本申请实施例提供的一种网络设备为目标缓存队列分配临时可用缓存容量的场景示意图。如图2所示,网络设备包括端口组,端口组包括m个端口,分别记为P1,P2,…,Pm,m为正整数。其中,端口P3包括n个缓存队列,分别记为Q1,Q2,…,Qn,n为正整数。假设目标缓存队列为端口P3上的缓存队列Q3。当缓存队列Q3的存储量超过缓存队列Q3的可用缓存容量时,网络设备会为缓存队列Q3分配临时可用缓存容量,该临时可用缓存容量来自端口组的剩余缓存容量(即缓存空间的剩余缓存容量,包含端口P3的剩余缓存容量以及其它端口的剩余缓存容量)。网络设备调整缓存队列Q3的总缓存容量,使得缓存队列Q3能够占用端口P3的剩余缓存容量;网络设备联动调整端口P3的总缓存容量,使得端口P3能够占用端口组的剩余缓存容量。网络设备通过两级联动调整缓存队列Q3的总缓存容量和端口P3的总缓存容量,使得缓存队列Q3能够使用端口组的剩余缓存容量。
临时可用缓存容量的大小可以是不超过目标缓存队列所在的缓存空间的剩余缓存容量的任意值。如果临时可用缓存容量是固定值,当缓存空间的剩余缓存容量小于该固定值时,网络设备为目标缓存队列分配的临时可用缓存容量为缓存空间的剩余缓存容量的全部或一部分,而不是该固定值。临时可用缓存容量也可以是动态变化的。同样,该动态变化值的大小应小于或等于缓存空间的剩余缓存容量。例如,如果网络设备根据目标缓存队列对应的剩余缓存容量确定该目标缓存队列的可用缓存容量,则可以参考该目标缓存队列的可用缓存容量的算法确定临时可用缓存容量的大小。例如,目标缓存队列的可用缓存容量与目标缓存队列对应的剩余缓存容量正相关。目标缓存队列的可用缓存容量T满足:T=α*C。其中,α为分配因子,α>0,C为该目标缓存队列对应的剩余缓存容量,即目标缓存队列所在的缓存空间的剩余缓存容量,C的值是动态变化的。可选地,α的取值范围为1/256至128。例如,α可以取值为2。可以引入临时分配因子确定临时可用缓存容量。临时可用缓存容量ΔT满足:ΔT=Δα*C。其中,Δα为临时分配因子,Δα>0。可选地,临时分配因子Δα可以取所允许的最大值,例如(α+Δα)的最大值可取128,则临时分配因子Δα可以取值为(128-α)。或者,还可以根据缓存空间的总缓存容量计算得到临时分配因子Δα。例如,使Δα=Cmax*w/C-α,其中,Cmax为目标缓存队列所在的缓存空间的总缓存容量,w为固定值,可取值范围为[0.7,1),例如w可以取值为0.75。目标缓存队列的总缓存容量T可以表示为:T=T+ΔT=(α+Δα)*C。上述算法也可以理解为引入了新的分配因子α=(α+Δα),相应的,T=α*C。
本申请实施例中,网络设备可以采用基于DT的缓存管理机制为各个缓存队列分配可用缓存容量,使得各个缓存队列之间可以公平地分享缓存资源。当网络设备中未发生拥塞的缓存队列的存储量超过该缓存队列的可用缓存容量,即缓存队列发生流量突发状况时,网络设备为该缓存队列分配临时可用缓存容量,使得该缓存队列可以进行突发吸收,降低该缓存队列在流量突发情况下的丢包率。也实现了对缓存队列所在的缓存空间的剩余缓存容量的充分利用,提高了缓存资源的利用率。
可选地,本申请实施例中,为了避免出现一个缓存队列长时间占用该缓存队列所在的缓存空间的剩余缓存容量,导致共享该缓存空间的其它缓存队列无法正常享用缓存资源的情况,在网络设备为目标缓存队列分配临时可用缓存容量之后,还可以执行下述步骤102。
步骤102、当目标缓存队列对临时可用缓存容量的占用时长达到第一时长时,网络设备回收该目标缓存队列的临时可用缓存容量。
网络设备回收该目标缓存队列的临时可用缓存容量,也即是,网络设备结束目标缓存队列对临时可用缓存容量的占用。网络设备回收该目标缓存队列的临时可用缓存容量后,该目标缓存队列的总缓存容量恢复为不计入临时可用缓存容量的可用缓存容量,例如基于DT的缓存管理机制分配到的可用缓存容量,该目标缓存队列的总缓存容量具体可以表示为α*C,C为网络设备完成对目标缓存队列的临时可用缓存容量的回收后,该目标缓存队列所在的缓存空间的剩余缓存容量。如果目标缓存队列此时的存储量达到或超过可用缓存容量,准备进入该目标缓存队列的报文会被丢弃。
可选地,网络设备中可以设置一个定时器,并将该定时器的定时时长设置为第一时长。在网络设备为目标缓存队列分配临时可用缓存容量时,网络设备启动该定时器,在定时器达到定时时长时,网络设备回收该目标缓存队列的临时可用缓存容量。该第一时长可以取值为10毫秒。
本申请实施例中,当目标缓存队列对临时可用缓存容量的占用时长达到第一时长时,网络设备回收该目标缓存队列的临时可用缓存容量,可以避免出现目标缓存队列长时间占用该目标缓存队列所在的缓存空间的剩余缓存容量,导致共享该缓存空间的其它缓存队列无法正常享用缓存资源的情况,使得共享缓存空间的多个缓存队列可以较为公平地分享缓存资源。
可选地,当目标缓存队列的存储量的持续减小时长超过第二时长时,网络设备也可以回收目标缓存队列的临时可用缓存容量。该第二时长小于第一时长。网络设备可以对目标缓存队列的存储量进行周期性采样,以确定目标缓存队列的存储量的变化趋势。或者,网络设备还可以根据目标缓存队列的进包速率和出包速率来判定目标缓存队列的存储量的变化趋势。本申请实施例对此不做限定。当目标缓存队列的存储量的持续减小时长超过第二时长,可以在一定程度上反映该目标缓存队列的流量突发结束,此时网络设备回收该目标缓存队列的临时可用缓存容量,尽可能减小对共享缓存空间的其它缓存队列的影响。
可选地,目标缓存队列的存储量低于目标阈值时,网络设备也可以回收目标缓存队列的临时可用缓存容量。目标阈值可以是目标缓存队列的最小保留存储量。当目标缓存队列的存储量低于目标阈值,可以反映该目标缓存队列无需再使用临时可用缓存容量,此时网络设备回收该目标缓存队列的临时可用缓存容量,可以减少对缓存资源的浪费。
可选地,本申请实施例中,为了避免出现连续多次为同一个缓存队列分配临时可用缓存容量,导致共享缓存空间的其它缓存队列无法公平地分享缓存资源的情况,网络设备还可以执行下述步骤103。
步骤103、网络设备从回收目标缓存队列的临时可用缓存容量后的第三时长内,抑制为目标缓存队列分配新的临时可用缓存容量。
网络设备从回收目标缓存队列的临时可用缓存容量后的第三时长内,抑制为目标缓存队列分配新的临时可用缓存容量,也即是,从网络设备回收目标缓存队列的临时可用缓存容量后的第三时长内,无论目标缓存队列的存储量是否超出该目标缓存队列的可用缓存容量,网络设备都不会再给目标缓存队列分配新的临时可用缓存容量。可以避免目标缓存队列在发生拥塞前(即将发生拥塞但还未被判定成发生拥塞),持续占用该目标缓存队列所在的缓存空间的剩余缓存容量,导致出现共享该缓存空间的其它缓存队列无法正常享用缓存资源的情况,使得共享缓存空间的多个缓存队列可以较为公平地分享缓存资源。其中,第三时长可以取值为100毫秒。
本申请实施例提供的缓存管理方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内。例如,本申请实施例提供的缓存管理方法除了可以用于为缓存队列分配可用缓存容量之外,还可以用于为端口分配可用缓存容量。
综上所述,在本申请实施例提供的缓存管理方法中,网络设备可以采用基于DT的缓存管理机制为各个缓存队列分配可用缓存容量,使得各个缓存队列之间可以公平地分享缓存资源。当网络设备中未发生拥塞的缓存队列的存储量超过该缓存队列的可用缓存容量,即缓存队列发生流量突发状况时,网络设备为该缓存队列分配临时可用缓存容量,使得该缓存队列可以进行突发吸收,降低该缓存队列在流量突发情况下的丢包率。也实现了对缓存队列所在的缓存空间的剩余缓存容量的充分利用,提高了缓存资源的利用率。另外,本申请实施例还可以避免出现目标缓存队列长时间或多次占用该目标缓存队列所在的缓存空间的剩余缓存容量,导致共享该缓存空间的其它缓存队列无法正常享用缓存资源的情况,使得共享缓存空间的多个缓存队列可以较为公平地分享缓存资源。
图3是本申请实施例提供的一种网络设备的结构示意图。如图3所示,该网络设备30包括:
分配模块301,用于当网络设备的目标缓存队列的存储量超过目标缓存队列的可用缓存容量时,为目标缓存队列分配临时可用缓存容量,目标缓存队列包括未发生拥塞的缓存队列,目标缓存队列的总缓存容量为可用缓存容量与临时可用缓存容量的和。
可选地,分配模块301,还用于:根据目标缓存队列对应的剩余缓存容量为目标缓存队列分配临时可用缓存容量,其中,目标缓存队列对应的剩余缓存容量为目标缓存队列所在的缓存空间的剩余缓存容量。
可选地,目标缓存队列所在的缓存空间属于目标缓存队列所在的端口,或目标缓存队列所在的缓存空间属于目标缓存队列所在的端口组。
可选地,目标缓存队列的可用缓存容量与目标缓存队列对应的剩余缓存容量正相关。
可选地,目标缓存队列的可用缓存容量T满足:T=α*C,其中,α为分配因子,α>0,C为剩余缓存容量;临时可用缓存容量ΔT满足:ΔT=Δα*C,Δα为临时分配因子,Δα>0。
可选地,如图4所示,网络设备30还包括:回收模块302。
在一种情况下,回收模块302,用于当目标缓存队列对临时可用缓存容量的占用时长达到第一时长时,回收目标缓存队列的临时可用缓存容量。
在另一种情况下,回收模块302,用于当目标缓存队列的存储量的持续减小时长超过第二时长,或者,目标缓存队列的存储量低于目标阈值时,回收目标缓存队列的临时可用缓存容量。
可选地,分配模块301,还用于:从网络设备回收目标缓存队列的临时可用缓存容量后的第三时长内,抑制为目标缓存队列分配新的临时可用缓存容量。
综上所述,在本申请实施例中,网络设备可以通过分配模块采用基于DT的缓存管理机制为各个缓存队列分配可用缓存容量,使得各个缓存队列之间可以公平地分享缓存资源。当网络设备中未发生拥塞的缓存队列的存储量超过该缓存队列的可用缓存容量,即缓存队列发生流量突发状况时,网络设备通过分配模块为该缓存队列分配临时可用缓存容量,使得该缓存队列可以进行突发吸收,降低该缓存队列在流量突发情况下的丢包率。也实现了对缓存队列所在的缓存空间的剩余缓存容量的充分利用,提高了缓存资源的利用率。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供了一种网络设备,包括:存储器和队列管理器;
所述存储器,用于存放缓存队列;
所述队列管理器,用于当所述存储器中存放的目标缓存队列的存储量超过所述目标缓存队列的可用缓存容量时,为所述目标缓存队列分配临时可用缓存容量,所述目标缓存队列包括未发生拥塞的缓存队列,所述目标缓存队列的总缓存容量为所述可用缓存容量与所述临时可用缓存容量的和。
可选地,所述队列管理器还用于根据所述目标缓存队列对应的剩余缓存容量为所述目标缓存队列分配所述临时可用缓存容量,其中,所述目标缓存队列对应的剩余缓存容量为所述目标缓存队列所在的缓存空间的剩余缓存容量。
可选地,所述缓存空间属于所述目标缓存队列所在的端口,或所述缓存空间属于所述目标缓存队列所在的端口组。
可选地,所述目标缓存队列的可用缓存容量与所述目标缓存队列对应的剩余缓存容量正相关。
可选地,所述目标缓存队列的可用缓存容量T满足:T=α*C,其中,所述α为分配因子,α>0,C为所述剩余缓存容量;所述临时可用缓存容量ΔT满足:ΔT=Δα*C,所述Δα为临时分配因子,Δα>0。
可选地,所述队列管理器还用于当所述目标缓存队列对所述临时可用缓存容量的占用时长达到第一时长时,回收所述目标缓存队列的临时可用缓存容量。
可选地,所述队列管理器还用于当所述目标缓存队列的存储量的持续减小时长超过第二时长,或者,所述目标缓存队列的存储量低于目标阈值时,回收所述目标缓存队列的临时可用缓存容量。
可选地,所述队列管理器还用于从网络设备回收所述目标缓存队列的临时可用缓存容量后的第三时长内,抑制为所述目标缓存队列分配新的临时可用缓存容量。
可选地,队列管理器可以是网络处理器、流量管理器、CPU等具有处理能力的芯片或其组合。流量管理器具有缓存区,用于报文的缓冲和转发。存储器可以是流量处理器中的缓存区,或者可以是独立的存储器,又或者可以集成在其它芯片中。
本申请实施例以网络设备采用以下两种结构为例进行说明。
在第一种结构中,队列管理器为网络处理器,存储器为流量管理器中的缓存区。图5是本申请实施例提供的一种网络设备的框图。如图5所示,该网络设备50包括网络处理器501和流量管理器502。
参见图5,流量管理器502包括控制区5021和缓存区5022。缓存区5022存放有缓存队列。流量管理器502的控制区5021用于将流量管理器502接收到的报文存储至缓存区5022中的缓存队列。网络处理器501用于从流量管理器502的缓存区5022中读取缓存队列的缓存占用信息,例如缓存队列的存储量等;根据缓存队列的缓存占用信息分析缓存队列的缓存变化趋势,以判断缓存队列是否发生拥塞;根据缓存队列对应的剩余缓存容量计算该缓存队列的可用缓存容量;当未发生拥塞的缓存队列的存储量超出可用缓存容量时,修改流控参数并将修改后的流控参数发送给流量管理器,该流控参数包括分配因子;等等。流量管理器502的控制区5021还用于根据来自网络处理器501的流控参数修改缓存区5022的对应缓存参数;根据缓存参数决定丢弃报文还是转发报文;等等。
可选地,该网络设备50还包括CPU 503、通信总线504和通信接口505。
CPU 503包括一个或者一个以上处理核心,通过运行计算机程序执行各种功能应用以及数据处理。
通信接口505可以为一个或多个,通信接口505用于与其它设备进行通信。例如与存储设备或其它网络设备进行通信。
网络处理器501、流量管理器502与通信接口505分别通过通信总线504与CPU 503连接。
在第二种结构中,队列管理器为CPU。图6是本申请实施例提供的另一种网络设备的框图。如图6所示,该网络设备60包括CPU 601和存储器602。
存储器602用于存放缓存队列。该存储器602还用于存储计算机程序,该计算机程序包括程序指令。可选地,存储器可存储操作系统和至少一个功能所需的应用程序单元。操作系统可以是实时操作系统(Real Time eXecutive,RTX)、LINUX、UNIX、WINDOWS或OS X之类的操作系统。本申请实施例中,缓存队列和计算机程序可以存放在一个存储器中,或者缓存队列和计算机程序也可以分别独立存放在不同存储器中。
CPU 601用于调用存储器602存储的计算机程序,采用如上述方法实施例中的方法,实现为存储器602中的缓存队列分配可用缓存容量。CPU 601通常为多核处理器。
可选地,该网络设备60还包括通信总线603和通信接口604。
通信接口604可以为一个或多个,通信接口804用于与其它设备进行通信。例如与存储设备或其它网络设备进行通信。
存储器602与通信接口604分别通过通信总线603与CPU 601连接。
本申请实施例所涉及的网络设备可以是通信网络中的任一网络设备。该网络设备可以是交换机或路由器等。网络设备的缓存队列可以是该网络设备中用于缓存数据的任一队列,例如可以是出端口队列或入端口队列等,本申请实施例对缓存队列的类型不作限定。
可选地,该通信网络可以是数据中心网络(data center network,DCN)、城域网络、广域网络或园区网络等,本申请实施例对通信网络的类型不做限定。通信网络可以采用二级网络架构或三级网络架构。在二级网络架构下,通信网络包括汇聚层和接入层,该通信网络也可称为两层网络,汇聚层是通信网络的高速交换主干,接入层用于将工作站接入通信网络。在三级网络架构下,通信网络包括核心层、汇聚层和接入层,该通信网络也可称为三层网络,核心层是通信网络的高速交换主干,汇聚层用于提供汇聚连接(连接接入层和核心层),接入层用于将工作站接入通信网络。其中,工作站可以包括终端、接入点(accesspoint,AP)、服务器或虚拟机(virtual machine,VM)等。终端可以是手机或电脑等。其中,处于核心层的网络设备称为核心网络设备。处于汇聚层的网络设备称为汇聚网络设备。处于接入层的网络设备称为接入网络设备。
可选地,图7是本申请实施例提供的一种通信网络的结构示意图。该通信网络为三层网络,例如该通信网络可以是园区网络。如图7所示,该通信网络包括核心网络设备001、汇聚网络设备002A-002B(统称为汇聚网络设备002)以及接入网络设备003A-003D(统称为接入网络设备003)。汇聚网络设备002A和汇聚网络设备002B分别与核心网络设备001连接。接入网络设备003A和接入网络设备003B分别与汇聚网络设备002A连接。接入网络设备003C和接入网络设备003D分别与汇聚网络设备002B连接。
核心网络设备001通常指吞吐量强大的二层交换机或者三层交换机。其承载和汇聚着通信网络中的所有传输流量,是通信网络性能的主要保障。核心网络设备001的主要功能是为汇聚网络设备002提供高速的传输和优化,相当于一个出口或总汇总。
汇聚网络设备002是多个接入网络设备003的汇聚点。它能够处理来自所连接的接入网络设备003的所有传输流量,并提供到核心层的上行链路。汇聚网络设备002与接入网络设备003相比,需要更高的性能、更少的接口和更高的交换速率。汇聚网络设备002一般用于楼宇间,相当于一个局部或重要的中转站。
接入网络设备003一般用于直接连接工作站,具有低成本和接口密度高等特性。
本申请实施例所涉及的网络设备可以是如图7所示的通信网络中的核心网络设备001、汇聚网络设备002或接入网络设备003。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被计算机设备的处理器执行时,实现上述方法实施例所涉及的缓存管理方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本申请实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (17)

1.一种缓存管理方法,其特征在于,所述方法包括:
当网络设备的目标缓存队列的存储量超过所述目标缓存队列的可用缓存容量时,所述网络设备为所述目标缓存队列分配临时可用缓存容量,所述目标缓存队列包括未发生拥塞的缓存队列,所述目标缓存队列的总缓存容量为所述可用缓存容量与所述临时可用缓存容量的和。
2.根据权利要求1所述的方法,其特征在于,所述网络设备为所述目标缓存队列分配临时可用缓存容量,包括:
所述网络设备根据所述目标缓存队列对应的剩余缓存容量为所述目标缓存队列分配所述临时可用缓存容量,其中,所述目标缓存队列对应的剩余缓存容量为所述目标缓存队列所在的缓存空间的剩余缓存容量。
3.根据权利要求2所述的方法,其特征在于,所述缓存空间属于所述目标缓存队列所在的端口,或所述缓存空间属于所述目标缓存队列所在的端口组。
4.根据权利要求2或3所述的方法,其特征在于,所述目标缓存队列的可用缓存容量与所述目标缓存队列对应的剩余缓存容量正相关。
5.根据权利要求4所述的方法,其特征在于,所述目标缓存队列的可用缓存容量T满足:T=α*C,其中,所述α为分配因子,α>0,C为所述剩余缓存容量;
所述临时可用缓存容量ΔT满足:ΔT=Δα*C,所述Δα为临时分配因子,Δα>0。
6.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
当所述目标缓存队列对所述临时可用缓存容量的占用时长达到第一时长时,所述网络设备回收所述目标缓存队列的临时可用缓存容量。
7.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:
当所述目标缓存队列的存储量的持续减小时长超过第二时长,或者,所述目标缓存队列的存储量低于目标阈值时,所述网络设备回收所述目标缓存队列的临时可用缓存容量。
8.根据权利要求1至7任一所述的方法,其特征在于,所述方法还包括:
所述网络设备从回收所述目标缓存队列的临时可用缓存容量后的第三时长内,抑制为所述目标缓存队列分配新的临时可用缓存容量。
9.一种网络设备,其特征在于,包括:
分配模块,用于当所述网络设备的目标缓存队列的存储量超过所述目标缓存队列的可用缓存容量时,为所述目标缓存队列分配临时可用缓存容量,所述目标缓存队列包括未发生拥塞的缓存队列,所述目标缓存队列的总缓存容量为所述可用缓存容量与所述临时可用缓存容量的和。
10.根据权利要求9所述的网络设备,其特征在于,所述分配模块,用于:
根据所述目标缓存队列对应的剩余缓存容量为所述目标缓存队列分配所述临时可用缓存容量,其中,所述目标缓存队列对应的剩余缓存容量为所述目标缓存队列所在的缓存空间的剩余缓存容量。
11.根据权利要求10所述的网络设备,其特征在于,所述缓存空间属于所述目标缓存队列所在的端口,或所述缓存空间属于所述目标缓存队列所在的端口组。
12.根据权利要求10或11所述的网络设备,其特征在于,所述目标缓存队列的可用缓存容量与所述目标缓存队列对应的剩余缓存容量正相关。
13.根据权利要求12所述的网络设备,其特征在于,所述目标缓存队列的可用缓存容量T满足:T=α*C,其中,所述α为分配因子,α>0,C为所述剩余缓存容量;
所述临时可用缓存容量ΔT满足:ΔT=Δα*C,所述Δα为临时分配因子,Δα>0。
14.根据权利要求9至13任一所述的网络设备,其特征在于,所述网络设备还包括:
回收模块,用于当所述目标缓存队列对所述临时可用缓存容量的占用时长达到第一时长时,回收所述目标缓存队列的临时可用缓存容量。
15.根据权利要求9至14任一所述的网络设备,其特征在于,所述网络设备还包括:
回收模块,用于当所述目标缓存队列的存储量的持续减小时长超过第二时长,或者,所述目标缓存队列的存储量低于目标阈值时,回收所述目标缓存队列的临时可用缓存容量。
16.根据权利要求9至15任一所述的网络设备,其特征在于,所述分配模块,还用于:
从所述网络设备回收所述目标缓存队列的临时可用缓存容量后的第三时长内,抑制为所述目标缓存队列分配新的临时可用缓存容量。
17.一种网络设备,其特征在于,包括:存储器和队列管理器;
所述存储器,用于存放缓存队列;
所述队列管理器,用于当所述存储器中存放的目标缓存队列的存储量超过所述目标缓存队列的可用缓存容量时,为所述目标缓存队列分配临时可用缓存容量,所述目标缓存队列包括未发生拥塞的缓存队列,所述目标缓存队列的总缓存容量为所述可用缓存容量与所述临时可用缓存容量的和。
CN202011199840.7A 2020-10-30 2020-10-30 缓存管理方法及装置 Pending CN114531487A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011199840.7A CN114531487A (zh) 2020-10-30 2020-10-30 缓存管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011199840.7A CN114531487A (zh) 2020-10-30 2020-10-30 缓存管理方法及装置

Publications (1)

Publication Number Publication Date
CN114531487A true CN114531487A (zh) 2022-05-24

Family

ID=81618752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011199840.7A Pending CN114531487A (zh) 2020-10-30 2020-10-30 缓存管理方法及装置

Country Status (1)

Country Link
CN (1) CN114531487A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7599292B1 (en) * 2002-08-05 2009-10-06 Extreme Networks Method and apparatus for providing quality of service across a switched backplane between egress and ingress queue managers
CN102279810A (zh) * 2011-08-11 2011-12-14 浪潮(北京)电子信息产业有限公司 一种网络存储服务器及其缓存数据的方法
CN102377631A (zh) * 2010-08-06 2012-03-14 北京乾唐视联网络科技有限公司 一种基于流量控制的数据传输方法及通信系统
CN105099940A (zh) * 2014-05-05 2015-11-25 中兴通讯股份有限公司 队列管理方法和装置
KR101681613B1 (ko) * 2015-07-21 2016-12-01 주식회사 엘지유플러스 분산 병렬 데이터 전송 시스템에서 자원들을 스케줄링하기 위한 장치 및 그 방법
CN106789729A (zh) * 2016-12-13 2017-05-31 华为技术有限公司 一种网络设备中的缓存管理方法及装置
CN106850457A (zh) * 2015-12-04 2017-06-13 中国电信股份有限公司 缓存共享方法和装置
CN110278157A (zh) * 2018-03-14 2019-09-24 华为技术有限公司 拥塞控制方法及网络设备
CN111555974A (zh) * 2020-03-19 2020-08-18 视联动力信息技术股份有限公司 一种数据包的处理方法、装置、终端设备和存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7599292B1 (en) * 2002-08-05 2009-10-06 Extreme Networks Method and apparatus for providing quality of service across a switched backplane between egress and ingress queue managers
CN102377631A (zh) * 2010-08-06 2012-03-14 北京乾唐视联网络科技有限公司 一种基于流量控制的数据传输方法及通信系统
CN102279810A (zh) * 2011-08-11 2011-12-14 浪潮(北京)电子信息产业有限公司 一种网络存储服务器及其缓存数据的方法
CN105099940A (zh) * 2014-05-05 2015-11-25 中兴通讯股份有限公司 队列管理方法和装置
KR101681613B1 (ko) * 2015-07-21 2016-12-01 주식회사 엘지유플러스 분산 병렬 데이터 전송 시스템에서 자원들을 스케줄링하기 위한 장치 및 그 방법
CN106850457A (zh) * 2015-12-04 2017-06-13 中国电信股份有限公司 缓存共享方法和装置
CN106789729A (zh) * 2016-12-13 2017-05-31 华为技术有限公司 一种网络设备中的缓存管理方法及装置
CN110278157A (zh) * 2018-03-14 2019-09-24 华为技术有限公司 拥塞控制方法及网络设备
CN111555974A (zh) * 2020-03-19 2020-08-18 视联动力信息技术股份有限公司 一种数据包的处理方法、装置、终端设备和存储介质

Similar Documents

Publication Publication Date Title
US9146768B2 (en) Automatic adjustment of logical channels in a fibre channel network
US9225668B2 (en) Priority driven channel allocation for packet transferring
JP4845310B2 (ja) 接続型ネットワークの共用出力バッファを仕切るための双モード制御システム及び方法
US5467348A (en) Bandwidth allocation system of virtual path in asynchronous transfer mode
US5838994A (en) Method and apparatus for the dynamic allocation of buffers in a digital communications network
JP3987394B2 (ja) 帯域ブローカによってネットワークドメイン内部で帯域を割り当てる方法
EP0413488B1 (en) Method for regulating traffic in a high speed data network
US20120275464A1 (en) System and method for dynamically allocating buffers based on priority levels
EP0430570A2 (en) Method and apparatus for congestion control in a data network
EP2608467B1 (en) System and method for hierarchical adaptive dynamic egress port and queue buffer management
CN110808920B (zh) 一种ccsds帧和ip报文共存的卫星通信流量控制方法
JPH03188733A (ja) ウィンドウサイズの決定方法とデータセルの輻輳制御方法
US20140036680A1 (en) Method to Allocate Packet Buffers in a Packet Transferring System
JPS61196644A (ja) トラフイツク制御装置および制御方法
KR101639797B1 (ko) 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법
US6704316B1 (en) Push-out technique for shared memory buffer management in a network node
US20200076742A1 (en) Sending data using a plurality of credit pools at the receivers
CN113612696A (zh) 多主机网络适配器中的拥塞控制度量
WO2021143913A1 (zh) 拥塞控制方法、装置及系统、存储介质
US6198725B1 (en) Network element delay allocation for efficient use of network resources
CN114531487A (zh) 缓存管理方法及装置
JPH0358646A (ja) パケット通信網における帯域割当て方式
KR100447059B1 (ko) 무선통신시스템에서 제어국의 트래픽 핸들링 처리 블럭할당 방법
KR101773528B1 (ko) 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법
KR102112270B1 (ko) 다중계층 네트워크 환경에서 패킷을 처리하는 방법 및 그 장치

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