CN111294394B - 基于复杂网络交汇点的自适应缓存策略方法 - Google Patents
基于复杂网络交汇点的自适应缓存策略方法 Download PDFInfo
- Publication number
- CN111294394B CN111294394B CN202010061532.1A CN202010061532A CN111294394B CN 111294394 B CN111294394 B CN 111294394B CN 202010061532 A CN202010061532 A CN 202010061532A CN 111294394 B CN111294394 B CN 111294394B
- Authority
- CN
- China
- Prior art keywords
- popularity
- content
- cache
- request
- packet
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及基于复杂网络交汇点的自适应缓存策略,属于内容中心网络领域。本发明分析了内容中心网络((Information Centric Networking,ICN))中缓存内容的放置问题,根据用户请求内容的流行度不同,本发明将用户请求内容的流行度分为整体流行度和局部流行度。并根据流行度的种类不同,提出了在复杂网络中以路径交汇点为主、边缘节点为辅的缓存放置方法。本发明针对不同的拓扑进行了大规模的仿真,仿真结果表明与传统的主流方法相比,本发明的方法能够明显提高网络中的整体缓存命中率、降低时延、降低链路负载以及提高用户体验。
Description
技术领域
本发明涉及基于复杂网络交汇点的自适应缓存策略方法,属于内容中心网络领域。
背景技术
内容中心网络(ICN)是一种新的互联网架构,有可能处理当前IP网络固有缺陷的问题,并有望满足未来的要求,以提高互联网的质量。ICN是将信息对象作为构建网络的基础,分离信息的位置信息与内容识别,通过内容名字而不是主机IP地址获取数据。利用网络内置缓存提高传输效率,而不关心数据存储位置。通过发布/订阅模式请求数据,使供给者和消费者在空间、时间上解耦合。这种新的网络架构专注于信息对象、信息属性和用户兴趣,采用“信息共享通信模型”,从而实现高效、可靠的信息分发。
ICN架构中,用户通过发送兴趣分组请求自己需要的内容。当网络中的节点收到兴趣分组时,将根据内容的名称进行匹配查询。若发现与兴趣分组匹配的内容,则沿着该兴趣分组的反向传播路径返回相应的内容数据分组。同时,ICN采用泛在化的网络内置缓存,在返回内容数据分组的沿途转发路径上对应答内容进行缓存,使得网络作为内容传输体的同时也成为了内容的存储体。内置缓存机制使得内容副本可以缓存在距离请求用户更近的中间节点上,为未来潜在的用户请求提供就近响应的机会,从而大大减小了内容获取的延迟和带宽需求,并减轻了内容原始服务器的访问压力。因此,针对内置缓存机制的研究一直是ICN领域关注的热点之一。
在本发明提出之前,ICN缓存放置领域,有LCE、LCD、ProCache、CL4M等等,用这些方法进行缓存放置的缺点有:
(1)不能充分考虑内容的流行度,缓存了一些流行度较低的内容,导致缓存命中率下降。
(2)没有综合内容放置的位置,导致过多相同的内容被缓存在网络中,导致内容冗余度过高,从而影响缓存命中率、用户体验等。
发明内容
本发明的目的就在于克服上述缺陷,研制基于复杂网络交汇点的自适应缓存策略,即基于复杂网络交汇点的自适应缓存策略方法。本发明的方法能够明显提高网络中的整体缓存命中率、降低时延、降低链路负载以及提高用户体验。
本发明的技术方案如下:
基于复杂网络交汇点的自适应缓存策略方法,其特征在于,包括如下步骤:
(1)对ICN网络中的原有的路由器内的数据结构进行改造;
(2)获取用户的每个周期的历史请求记录以及当前周期的请求记录;
(3)根据用户的历史请求记录计算内容的整体流行度,以及当前周期的请求记录计算局部流行度;
(4)改造兴趣包和数据包的数据结构;
(5)计算数据包的缓存位置,根据计算出的位置,将数据包进行缓存;
进一步的,所述步骤(1)对ICN中路由器内原有的数据结构进行改造,本发明在ICN路由器中添加2种类型的数据结构用于数据收集:
(1)边缘流行度统计表
为了更合理的获取内容请求信息,在每个边缘节点建立边缘流行度统计表,其中每个边缘流行度统计表周期性的统计连接在这个边缘节点上的用户的请求信息。当一个周期结束后,立刻获取每个边缘节点中的流行度统计信息(流行度统计信息为一段时间内兴趣请求的数量),并将一个周期内的请求信息进行汇总,同时清空每个边缘流行度统计表。其中,边缘流行度统计表如表1所示:
Interest Name | λ |
a | 45 |
b | 30 |
c | 20 |
表1:边缘流行度统计表
如表1所示表中的第一列Interest Name为兴趣请求的名称,第二列λ为兴趣请求的数量。
(2)请求记录表
为了计算缓存位置,本发明在每个路由器内额外添加一个请求记录表。同样也在每个周期结束时清空每个请求记录表中的信息。其中,请求记录表如表2所示:
Interest Name | Face-HOP List |
a | (face1,2) |
b | (face0,1)(face1,3) |
c | (face1,2) |
表2:请求记录表
请求记录表更新方法:
当一个兴趣转发到一个路由器时,如果路由器的请求记录表中Interest Name没有该兴趣包的名称,则将一个二元组(face,hop)信息(二元组(face,hop)表示兴趣进入的接口和经过的跳数)添加到该兴趣的Face-HOP List中。但是如果路由器的请求记录表中Interest Name有该兴趣包的名称,则更新该兴趣包Face-HOP List中的信息。在更新信息时,如果Face-HOP List有来自相同接口的记录,将最新的信息替换旧的信息。例如:Face-HOP List中原本有信息(face0,1),而此时从face0进入的兴趣包生成的信息为(face0,2),那么将(face0,2)替换(face0,1)。相反,Face-HOP List没有来自相同接口的记录,则将生成的信息添加到该兴趣包的Face-HOP List即可。
进一步的,所述步骤(3)计算用户请求内容的整体流行度和局部流行度,本发明采用了两种方法对内容的流行度进行评估:
(1)指数加权移动平均值模型
由于整体流行度是拓扑内所有用户请求的内容的流行度,其数量较大,所以利用指数加权移动平均值(EWMA,exponential weighted moving average)模型计算内容的整体流行度,以便划分出内整体内容的流行内容和不流行内容。EMWA模型是处理序列数据的常用方法,其中各数值的加权值随着时间呈指数形式递减,即越近期的数据项加权越重,这正好符合了最新流行的内容应当被分配更高权重这一特征。其中,计算公式如下:
本发明用来表示内容C在近几个周期的整体流行度,用前几个周期的流行度作为当前周期的参考标准。上述公式period表示当前周期的前一个周期数,表示内容C在第period个周期的请求数量。β为权重参数,β∈(0,1)。β的计算公式如下:
对于整体内容的流行度,本发明将整体流行度划分为三部分,即整体流行内容,整体潜在流行内容和整体不流行内容。当一个内容的请求数量超过流行度阈值时,将其设置为流行内容。其中流行度阈值为经过EMWA模型处理后所有内容请求的平均值,当然这个阈值时动态的。
对于剩下的内容,将其进行排序,取前25%的内容作为潜在流行度内容,而后75%的内容为不流行内容,所谓潜在流行内容就是可能会在将来成为流行内容的内容。
(2)实时内容请求数量
由于局部请求的内容数量相对于整体较少,反映当前的实时请求情况。本发明直接对每个边缘节点当前周期的实时内容请求数量进行统计,来获取内容的局部流行度。其中,计算公式如下:
由于局部区域获取的数据量较少,本发明对边缘流行度表进行排序,取排名前50%且不在整体流行度中的内容作为局部流行度的流行内容。
进一步的,所述步骤(4)改造兴趣包和数据包的数据结构,本发明在ICN原有的兴趣包和数据包内添加额外字段用于计算数据包的缓存位置。
为了计算出最佳的缓存节点,本发明对兴趣包和数据包进行了改造。在兴趣包字段中额外添加hop、temp和cache node三个字段。其中hop是记录兴趣包经过的跳数,以便在转发到路由时将经过的跳数记录在请求记录表中。temp为临时值,其初始值很大,用于后续计算使用。cache node为缓存节点字段,存储要缓存的节点ID。而在数据包中仅添加了cache node字段,当兴趣包命中时,将兴趣包内的cache node字段的值赋值给数据包内的cache node字段,以便数据包在返回的过程中进行存储。
进一步的,所述步骤(5)计算数据包的缓存位置,根据计算出的位置,将数据包进行缓存,本发明计算出缓存位置,将返回的数据包进行缓存,缓存替换方法采用LRU。为了说明数据包缓存位置的合理性,本发明做如下分析:
根据表2所示,对于兴趣a,它的二元组(face,hop)有1个,表示与face0接口连接的链路中有用户请求过兴趣a。在复杂网络中一个接口下的可能含有多条链路,每条可能含有多个用户,因此存在相同接口不同跳数的兴趣请求经过。当一个兴趣有超过两条链路请求时,那么说明至少有2个用户请求过这个兴趣,如表2的兴趣b。如果此时兴趣b是整体流行内容,则表示b近期可能还会被请求,如果把兴趣b返回的数据包缓存在这个交汇点,那么存储在这个交汇点的数据包b会满足2条链路中多个用户的需求,如果这两条链路中的用户后续还会对内容b发出请求,则内容b会有可能缓存在离用户更近的交汇点上,而上行交汇点的内容b会随着命中次数的减少,会渐渐被替换掉。因此不仅会减少用户的请求延迟,还会减少整个网络的冗余程度。当然在每个用户的请求路径中存的在这种情况的交汇点不止一个,因此要找出请求路径中距离多个用户的距离之和最短的交汇点,并将其作为缓存节点。如果在一条最短路径中,缓存节点存在多个(即存在多个请求相同内容的最短交汇点),此时针对内容的流行情况进行缓存。如果缓存内容为整体流行度中的流行内容,则缓存在多个缓存节点。如果缓存内容为整体流行度中的潜在流行内容,则只缓存在一个缓存节点上。为了计算各个请求相同内容的用户到每个交汇点距离之和,用以下公式计算:
针对不同类型的,在计算其缓存位置时,将采用不同的计算方法。
(1)对于整体流行内容或整体潜在流行内容计算步骤如下:
①将兴趣C沿最短路径(即用户到服务器的最短路径)转发兴趣C;
②当兴趣C到达路由节点时,先检查是否命中,如果命中则转步骤⑤;否则按请求记录表更新方法,更新请求记录表;
③如果请求记录表中的兴趣C的Face-HOP List二元组(face,hop)信息大于1条则转步骤④,否则转步骤①;
④利用兴趣C的Face-HOP List信息计算并将其与兴趣C中的temp字段作比较。如果则将兴趣C中的cache node字段内的信息删除,并将该路由器的ID添加到cache node字段中。如果则将该路由器的ID添加到cache node字段中。如果则cache node字段不做改变。转步骤①。
⑤结束;
(2)对于局部内容计算步骤如下:
①将边缘节点的ID添加到兴趣C的cache node字段中;
②将兴趣C沿最短路径(即用户到服务器的最短路径)转发兴趣C;
③当兴趣C到达路由节点时,先检查是否命中,如果命中则转步骤④;否则转步骤②;
④结束;
本发明的优点和有益效果在于:
本发明分析了内容中心网络((Information Centric Networking,ICN))中缓存内容的放置问题,根据用户请求内容的流行度不同,本发明将用户请求内容的流行度分为整体流行度和局部流行度。并根据流行度的种类不同,提出了在复杂网络中以路径交汇点为主、边缘节点为辅的缓存放置方法。本发明针对不同的拓扑进行了大规模的仿真,仿真结果表明与传统的主流方法相比,在该方法下内容缓存命中率得到了明显提升,并且提高了用户体验。
附图说明
图1——本发明仿真拓扑图;
图2——与其它方法的缓存命中率变化趋势比较图;
图3、图4——与其它方法的链路负载变化趋势比较图;
图5——与其它方法的用户时延变化趋势比较图;
图6——与其它方法的用户请求跳数变化趋势比较图。
具体实施方式
本发明的技术思路是:
缓存策略主要包括三点方面:a.缓存什么内容;b.缓存在什么位置;
在流行度分析中,流行度分为整体流行度和局部流行度。又将整体流行度分为整体流行内容和整体潜在流行内容,并通过计算的出整体流行内容、整体潜在流行内容和局部流行内容的信息。
再根据不同类型的流行内容,对其缓存位置进行计算。计算的出具体的缓存位置后,将其添加到兴趣包的cache node字段中。当缓存命中时,在将兴趣包的cache node字段的信息交给数据包。在数据包返回过程中,便可根据数据包中的cache node字段中的信息在相应的路由进行缓存。当一个路由缓存空间不足时,采用LRU替换算法进行替换。
实施例:
为了真实的模拟ICN网络,本发明采用Tiscali-3257(泛欧商业ISP)实际拓扑结构进行仿真实验。如图1所示,Tiscali-3257在拓扑中具有240个节点和404个边,其中包括44个服务器节点(中间白色),36个用户节点(边缘白色)和160个路由器节点(黑色)。仿真实验总共有20000种不同的内容,这20000种内容随机分布在44个服务器中。不同的内容请求已被建模为Poisson流程,遵循Zipf分布产生内容流行度,其中Zipf分布参数为0.8。为了说明仿真结果的稳定性,拓扑周围的用户累计进行了400000次的随机请求,并分别统计了不同方法的缓存命中率、链路负载、用户时延和用户请求跳数这4种评估标准。
(1)缓存命中率
图2表示在Zipf分布参数为0.8条件下,缓存命中率的对比效果,图中横坐标为整个拓扑的缓存空间大小与内容总数的比值,其中MIX为本发明的方法。从图2中可以看出随着缓存空间的增加各种方法的缓存命中率均有提升,相比于其他方法,由于本发明综合考虑了内容的流行度以及内容放置位置,因此缓存命中率方面有较大的提升。
(2)链路负载
图3和图4表示在Zipf分布参数为0.8条件下,链路负载的对比效果,图中横坐标为整个拓扑的缓存空间大小与内容总数的比值,其中MIX为本发明的方法。从图3和图4中可以看出链路负载会随着路由内缓存空间的增加而降低。用户不同的请求速率也会影响到链路负载,由于图3的用户请求速率比图4的用户请求速率低,因此图3的链路负载普遍比图4低。但无论是哪种请求速率,本发明的链路负载始终远远低于其他四种方法。
(3)用户时延
图5表示在Zipf分布参数为0.8条件下,用户时延的对比效果,图中横坐标为整个拓扑的缓存空间大小与内容总数的比值,其中MIX为本发明的方法。用户时延反映了用户在请求内容过程中的等待时间,用户时延越低,用户的体验效果越好。图5中可以看出随着缓存空间的增加,用户的时延均有下降,但本发明的用户时延明显低于其他四种方法,效果提升显著。
(3)用户请求跳数
图6表示在Zipf分布参数为0.8条件下,用户请求跳数的对比效果,图中横坐标为整个拓扑的缓存空间大小与内容总数的比值,其中MIX为本发明的方法。用户请求跳数反映了用户在请求一个内容时所经过的路由器跳数,用于不同的用户请求不同的内容时所经过的跳数不一样,因此本发明将其做归一化处理,即图6的纵坐标为在最短路径下,用户实际经历的跳数与原本到服务器的跳数的比值。从图6中可以看出本发明的用户请求跳数远远低于其他4中方法。
Claims (2)
1.基于复杂网络交汇点的自适应缓存策略方法,其特征在于,包括如下步骤:
(1)对ICN网络中的原有的路由器内的数据结构进行改造;
(2)获取用户的每个周期的历史请求记录以及当前周期的请求记录;
(3)根据用户的历史请求记录计算内容的整体流行度,以及当前周期的请求记录计算局部流行度;
(4)改造兴趣包和数据包的数据结构;
(5)计算数据包的缓存位置,根据计算出的位置,将数据包进行缓存;
所述步骤(1)对ICN中路由器内原有的数据结构进行改造,在ICN路由器中添加边缘流行度统计表用于数据收集:
为了更合理的获取内容请求信息,在每个边缘节点建立边缘流行度统计表,其中每个边缘流行度统计表周期性的统计连接在这个边缘节点上的用户的请求信息;当一个周期结束后,立刻获取每个边缘节点中的流行度统计信息,流行度统计信息为一段时间内兴趣请求的数量,并将一个周期内的请求信息进行汇总,同时清空每个边缘流行度统计表;
所述步骤(1)中,在ICN路由器中添加请求记录表用于数据收集:
为了计算缓存位置,在每个路由器内额外添加一个请求记录表,同样也在每个周期结束时清空每个请求记录表中的信息;
所述步骤(3)计算用户请求内容的整体流行度,采用指数加权移动平均值模型对内容的流行度进行评估:
由于整体流行度是拓扑内所有用户请求的内容的流行度,其数量较大,所以利用指数加权移动平均值模型计算内容的整体流行度,以便划分出内整体内容的流行内容和不流行内容;EMWA模型是处理序列数据的常用方法,其中各数值的加权值随着时间呈指数形式递减,即越近期的数据项加权越重,这正好符合了最新流行的内容应当被分配更高权重这一特征;
所述步骤(3)计算用户请求内容的局部流行度,采用实时内容请求数量对内容的流行度进行评估:
由于局部请求的内容数量相对于整体较少,反映当前的实时请求情况;直接对每个边缘节点当前周期的实时内容请求数量进行统计,来获取内容的局部流行度;
所述步骤(4)改造兴趣包和数据包的数据结构,在ICN原有的兴趣包和数据包内添加额外字段用于计算数据包的缓存位置。
2.根据权利要求1所述的基于复杂网络交汇点的自适应缓存策略方法,其特征在于,所述步骤(5)计算数据包的缓存位置,根据计算出的位置,将数据包进行缓存,根据步骤(1)、步骤(3)、步骤(4)的信息计算出缓存位置,将返回的数据包进行缓存,缓存替换方法采用LRU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010061532.1A CN111294394B (zh) | 2020-01-19 | 2020-01-19 | 基于复杂网络交汇点的自适应缓存策略方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010061532.1A CN111294394B (zh) | 2020-01-19 | 2020-01-19 | 基于复杂网络交汇点的自适应缓存策略方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111294394A CN111294394A (zh) | 2020-06-16 |
CN111294394B true CN111294394B (zh) | 2022-09-27 |
Family
ID=71029145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010061532.1A Active CN111294394B (zh) | 2020-01-19 | 2020-01-19 | 基于复杂网络交汇点的自适应缓存策略方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111294394B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111800486B (zh) * | 2020-06-22 | 2021-09-17 | 山东大学 | 一种云边协同的资源调度方法及*** |
CN111935230A (zh) * | 2020-07-13 | 2020-11-13 | 哈尔滨工程大学 | 一种基于多级人气指数的协作边缘缓存方法 |
CN112887992B (zh) * | 2021-01-12 | 2022-08-12 | 滨州学院 | 基于接入均衡核和置换率的密集无线网络边缘缓存方法 |
CN113489779B (zh) * | 2021-07-01 | 2024-07-16 | 扬州大学 | 一种基于网络拓扑分层的精确缓存放置方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753797B (zh) * | 2015-04-09 | 2017-08-25 | 清华大学深圳研究生院 | 一种基于选择性缓存的内容中心网络动态路由方法 |
WO2016170559A1 (en) * | 2015-04-23 | 2016-10-27 | Nec Corporation | Method and system for bandwidth reservation for multiple tree based traffic engineering in content centric networks |
CN106131182B (zh) * | 2016-07-12 | 2019-04-09 | 重庆邮电大学 | 命名数据网络中一种基于流行度预测的协作缓存方法 |
-
2020
- 2020-01-19 CN CN202010061532.1A patent/CN111294394B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111294394A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111294394B (zh) | 基于复杂网络交汇点的自适应缓存策略方法 | |
CN104753797B (zh) | 一种基于选择性缓存的内容中心网络动态路由方法 | |
CN109905480B (zh) | 基于内容中心性的概率缓存内容放置方法 | |
CN108366089B (zh) | 一种基于内容流行度和节点重要度的ccn缓存方法 | |
CN105262833B (zh) | 一种内容中心网络的跨层缓存方法及其节点 | |
CN111107000B (zh) | 一种基于网络编码的命名数据网络中内容缓存方法 | |
CN108900570B (zh) | 一种基于内容价值的缓存替换方法 | |
CN104166630B (zh) | 一种面向内容中心网络中基于预测的最优化缓存放置方法 | |
CN111885648A (zh) | 基于边缘缓存的能量有效的网络内容分发机制构建方法 | |
CN103905439A (zh) | 一种基于家庭网关的加速网页浏览方法 | |
CN103905538A (zh) | 内容中心网络中邻居协作缓存替换方法 | |
CN113783779B (zh) | 命名数据网络中分级随机缓存方法 | |
Xiaoqiang et al. | An in-network caching scheme based on betweenness and content popularity prediction in content-centric networking | |
Gui et al. | A cache placement strategy based on entropy weighting method and TOPSIS in named data networking | |
Lal et al. | A popularity based content eviction scheme via betweenness-centrality caching approach for content-centric networking (CCN) | |
Pal et al. | A neighborhood aware caching and interest dissemination scheme for content centric networks | |
CN101840417B (zh) | 一种基于相关关系的物联网uid查询方法 | |
Zhang et al. | DENA: An intelligent content discovery system used in named data networking | |
CN107302571B (zh) | 基于果蝇算法的信息中心网络路由和缓存管理方法 | |
Zhang et al. | Intelligent resources management system design in information centric networking | |
CN112822275B (zh) | 基于topsis熵权法的轻量级缓存策略 | |
CN113382053B (zh) | 基于节点半局部中心性和内容热度的内容主动推送方法 | |
Jeon et al. | On-path caching in information-centric networking | |
Wang et al. | Caching in information-centric networking | |
Liu et al. | Proactive data caching and replacement in the edge computing environment |
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 |