一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种命名数据网络的缓存替换方法及装置与流程

2021-10-24 12:03:00 来源:中国专利 TAG:
1.本发明涉及缓存
技术领域
:,特别是涉及一种命名数据网络的缓存替换方法及装置。
背景技术
::2.在命名数据网络中,缓存节点需要维护一个cs(contentstore,内容存储器),cs会对经过的数据包进行存储,且cs中的缓存在每次通信结束后都不会被清除,该缓存内容可以用于下一次通信。当下一次通信中与该缓存内容相匹配的请求数据再次到达节点时,cs中的该缓存内容会被直接返回,而无须再去服务节点获取该数据包。3.缓存替换策略是指当缓存节点中缓存空间已被占满,且需要存储新的数据包时,该缓存节点所采用的策略。目前,命名数据网络的缓存替换策略主要有lru(leastrecentlyused,最近最少使用算法)、lfu(leastfrequentlyused,最不经常使用算法)与fifo(firstinfirstout,先进先出算法)。在缓存空间已满时:lru即时间替换,保存新到达缓存节点的数据包,删除存储时间最长的数据包;lfu即次数替换,保存新到达缓存节点的数据包,删除被请求次数最少的数据包;fifo即删除前一个被保存的数据包,再保存新到达缓存节点的数据包。4.但是,lru没有考虑缓存访问次数的周期性变化,因此一个在特定时间访问次数高的数据包很可能被最近请求的数据包替换;lfu可能会导致缓存被之前访问次数很高、但最近很少被使用的数据包占满,而新到达的数据包无法被保存;fifo则既存储不了访问次数高的数据包,也存储不了经常被访问的数据包,命中率最低。现有的缓存替换策略一般根据过往的历史以及时间局部性原理进行缓存决策,未能考虑数据未来的流行度变化,不能随着互联网用户需求的动态变化而变化,也没有考虑各种数据本身的特点,从而导致缓存空间利用率低,网络传输时延很高的问题,不能很好满足用户需求。技术实现要素:5.本发明实施例的目的在于提供一种命名数据网络的缓存替换方法和装置,以实现提高了缓存空间利用率、降低了网络的传输时延的目的。6.本技术实施例的第一方面,首先提供了一种命名数据网络的缓存替换方法,应用于所述ndn的缓存节点,所述缓存节点包括一级缓存器和二级缓存器,所述一级缓存器中存储有已被访问的数据包,所述二级缓存器中存储有从所述ndn的服务节点获取的预测被访问的数据包;所述方法包括:7.接收客户端节点发送的请求,所述请求包括待请求数据的待请求命名;8.检测所述一级缓存器中是否存储有与所述待请求命名对应的第一数据包;9.如果所述一级缓存器中未存储,则检测所述二级缓存器中是否存储有所述第一数据包;10.如果所述二级缓存器中存储有,则检测所述一级缓存器的可用存储空间是否小于所述第一数据包的数据量;11.若小于所述第一数据包的数据量,则提取出所述一级缓存器中至少一个第二数据包,并将所述第一数据包移动至所述一级缓存器;12.检测所述二级缓存器的可用存储空间是否小于提取出的所述至少一个第二数据包的数据量;所述至少一个第二数据包的数据量大于等于所述第一数据包的数据量;13.若小于所述至少一个第二数据包的数据量,则删除第二缓存器中至少一个第三数据包,并将所述至少一个第二数据包存储至所述二级缓存器;所述至少一个第三数据包的数据量大于等于所述至少一个第二数据包的数据量;14.向所述客户端节点发送所述第一数据包。15.本技术实施例的第二方面,提供了一种命名数据网络的缓存替换装置,应用于所述ndn的缓存节点,所述缓存节点包括一级缓存器和二级缓存器,所述一级缓存器中存储有已被访问的数据包,所述二级缓存器中存储有从所述ndn的服务节点获取的预测被访问的数据包;所述装置包括:16.请求接收单元,用于接收客户端节点发送的请求,所述请求包括待请求数据的待请求命名;17.扫描单元,用于检测所述一级缓存器中是否存储有与所述待请求命名对应的第一数据包;如果所述一级缓存器中未存储,则检测所述二级缓存器中是否存储有所述第一数据包;如果所述二级缓存器中存储有,则检测所述一级缓存器的可用存储空间是否小于所述第一数据包的数据量;18.缓存替换单元,用于若小于所述第一数据包的数据量,则提取出所述一级缓存器中至少一个第二数据包,并将所述第一数据包移动至所述一级缓存器;检测所述二级缓存器的可用存储空间是否小于提取出的所述至少一个第二数据包的数据量;所述至少一个第二数据包的数据量大于等于所述第一数据包的数据量;若小于所述至少一个第二数据包的数据量,则删除第二缓存器中至少一个第三数据包,并将所述至少一个第二数据包存储至所述二级缓存器;所述至少一个第三数据包的数据量大于等于所述至少一个第二数据包的数据量;19.发送单元,用于向所述客户端节点发送所述第一数据包。20.本技术实施的另一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;21.存储器,用于存放计算机程序;22.处理器,用于执行存储器上所存放的程序时,实现上述任一命名数据网络的缓存替换方法的步骤。23.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一命名数据网络的缓存替换方法的步骤。24.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一命名数据网络的缓存替换方法的步骤。25.本发明实施例有益效果:26.本发明实施例提供的技术方案中,将命名数据网络ndn中缓存节点的内容存储器分为一级缓存器和二级缓存器,一级缓存器中存储有已被访问的数据包,二级缓存器中存储有从该ndn的服务节点获取的预测被访问的数据包。缓存节点接收到客户端节点发送的请求,该请求包括待请求数据的待请求命名,检查一级缓存器中是否存储有与该待请求命名对应的第一数据包,如果一级缓存器中未存储,则检查二级缓存器中是否存储有该第一数据包,如果二级缓存器中存储有,则检测一级缓存器的可用存储空间是否小于该第一数据包的数据量,若小于,则提取出一级缓存器中至少一个第二数据包,并将该第一数据包移动至一级缓存器,再检测二级缓存器的可用存储空间是否小于该第二数据包的数据量,若小于,则删除第二缓存器中至少一个第三数据包,并将至少一个第二数据包存储至二级缓存器,并将该第一数据包发送给所述客户端节点;其中,至少一个第三数据包的数据量大于等于所述至少一个第二数据包的数据量。27.本发明实施例提供的命名数据网络的缓存替换方法及装置,可以解决命名数据网络节点在存储数据包时,忽略数据包访问次数的未来变化趋势、不能满足互联网用户需求的动态变化、缓存空间利用率很低、数据的传输时延高的问题。通过一级缓存器中存储已被访问的数据包,二级缓存器存储从ndn的服务节点获取的预测被访问的数据包的二级缓存机制,对预先预测会被访问的数据包做出处理,并根据已发生的访问次数变化,对已存储的数据包做出相应替换,既满足了互联网用户需求的动态变化,又提高了缓存空间利用率、降低了网络的传输时延。28.当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明29.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。30.图1为本发明实施例提供的ndn的缓存替换方法的一种流程示意图;31.图2为本发明实施例提供的数据包命名方式的一种示意图;32.图3为本发明实施例提供的ndn中预测数据包访问次数方法的一种流程示意图;33.图4为本发明实施例提供的预先训练的神经网络模型的一种结构示意图;34.图5为本发明实施例提供的第一种数据分析图;35.图6为本发明实施例提供的第二种数据分析图;36.图7为本发明实施例提供的第三种数据分析图;37.图8为本发明实施例提供的第四种数据分析图;38.图9为本发明实施例提供的ndn缓存模型的一种结构示意图;39.图10为本发明实施例提供的ndn的缓存替换装置的一种结构示意图;40.图11为本发明实施例提供的ndn中预测数据包访问次数装置的一种结构示意图;41.图12为本发明实施例提供的电子设备的一种结构示意图。具体实施方式42.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。43.下面通过具体实施例,对本发明实施例提供的命名数据网络的缓存替换方法进行详细说明。44.参见图1,图1为本发明实施例提供的ndn的缓存替换方法的一种流程示意图。该方法应用于ndn(nameddatanetworking,命名数据网络)的缓存节点,缓存节点包括一级缓存器和二级缓存器,一级缓存器中存储有已被访问的数据包,二级缓存器中存储有从ndn的服务节点获取的预测被访问的数据包。该方法包括如下步骤。45.步骤101,接收客户端节点发送的请求,该请求包括待请求数据的待请求命名。46.在一个实施例中,命名数据网络中的数据包的命名方式可以如图2所示,图2为本发明实施例提供的数据包命名方式的一种示意图,该命名包含了数据的ndn’、地区、时间、类型四个特性。由于数据包命名的全网唯一性,而时间、地点、数据包类型能简单、全面和唯一地表示数据,因此该命名方式可以唯一地表示数据包。47.其中,ndn’表示数据包处于命名数据网络域;地区表示服务节点作用的地区,例如北京、纽约等;时间表示请求发出的时间,例如2018‑12‑28等;类型表明请求的类型,例如天气、气温等。这样的命名方式虽然简单,但是它能准确、完整的表明用户的需求,而且在后续的缓存替换算法中,能够方便高效地从命名中获取数据包的特征,进而对数据包预测访问次数。48.步骤102,检测一级缓存器中是否存储有与待请求命名对应的第一数据包。49.如果一级缓存器中存储有,则将该第一数据包发送给客户端节点。本技术实施例中,缓存节点在将第一数据包发送给客户端节点后,可以将该第一数据包的访问次数累计加1。第一数据包的访问次数即为第一数据包的流行度。本技术实施例中,一级缓存可以是内存驻留,二级缓存可以是硬盘驻留,按数据流行度和预取策略进行缓存。50.如果一级缓存器中未存储,则实施步骤103。51.步骤103,检测二级缓存器中是否存储有该第一数据包。52.在一个实施例中,如果二级缓存器中未存储,则将所述请求转发至其他节点。该其他节点可以为其他缓存节点,也可以为服务节点。53.如果二级缓存器中存储有,则实施步骤104。54.步骤104,检测一级缓存器的可用存储空间是否小于该第一数据包的数据量。55.在一个实施例中,如果一级缓存器的可用存储空间不小于该第一数据包的数据量,则可以直接将该第一数据包移动至一级缓存器,并将该第一数据包发送给客户端节点。具体的,缓存节点将二级缓存器中的第一数据包复制一份存储至一级缓存器,并删除二级缓存器中存储的第一数据包。56.如果一级缓存器的可用存储空间小于该第一数据包的数据量,则实施步骤105。57.步骤105,提取出一级缓存器中至少一个第二数据包,并将第一数据包移动至一级缓存器。58.在一个实施例中,缓存节点按照访问次数由小到大的顺序,依次提取一级缓存器中的第二数据包,具体的,缓存节点将该第二数据包复制一份,然后删除一级缓存器存储的该第二数据包。缓存节点每提取出一个第二数据包,比较一次一级缓存器的可用存储空间与该第一数据包的数据量,直至一级缓存器的可用存储空间大于等于该第一数据包的数据量时,停止提取,将第一数据包移动至一级缓存器,具体的,缓存节点将二级缓存器中的第一数据包复制一份存储至一级缓存器,并删除二级缓存器中存储的第一数据包。59.步骤106,检测二级缓存器的可用存储空间是否小于提取出的至少一个第二数据包的数据量。60.如果二级缓存器的可用存储空间不小于该提取出的至少一个第二数据包的数据量,则将该提取出的至少一个第二数据包移动至二级缓存器。具体的,缓存节点将复制的至少一个第二数据包存储至二级缓存器。61.如果二级缓存器的可用存储空间小于该第二数据包的数据量,则实施步骤107。62.步骤107,删除第二缓存器中至少一个第三数据包,将该至少一个第二数据包移动至二级缓存器;所述至少一个第三数据包的数据量大于等于所述至少一个第二数据包的数据量。63.在一个实施例中,如果二级缓存器的可用存储空间小于该第二数据包的数据量,则缓存节点按照访问次数由小到大的顺序,依次删除二级缓存器中的第三数据包,缓存节点每删除一个第三数据包,比较一次二级缓存器的可用存储空间与提取出来的至少一个第二数据包的数据量,直至二级缓存器的可用存储空间大于等于该至少一个第二数据包的数据量时,停止删除,将将该至少一个第二数据包移动至二级缓存器。具体的,缓存节点将复制的该至少一个第二数据包存储至二级缓存器。其中,将一级缓存器中的数据包缓存到二级缓存器中,可以采用基于流行度的预取算法:首先,可以根据缓存空间的大小计算可以预取多少数据;然后,生成流行度的累积函数,并根据缓存大小设置阈值,对于每个周期,可以使用流行度模型来预测所有数据空间的流行度,并将等待预取数据的流行度与已在缓存空间中数据的流行度进行比较;然后,可以根据缓存空间的大小计算得出预取流行度阈值,并预取其流行度高于阈值的数据,同时,未来流行度较低的数据可以进行驱逐。64.步骤108,向所述客户端节点发送该第一数据包。65.本发明实施例提供的命名数据网络的缓存替换方法,可以解决缓存空间利用率很低、数据的传输时延高的问题。通过一级缓存器中存储已被访问的数据包,二级缓存器存储从一级缓存器中替换出来的访问次数相对较低的数据包的二级缓存机制,可以根据已发生的访问次数变化,对已存储的数据包做出相应替换,提高了缓存空间利用率、降低了网络的传输时延。66.一个可选的实施例中,本发明实施例还提供了一种ndn中预测数据包访问次数的方法。参见图3,图3为本发明实施例提供的ndn中预测数据包访问次数方法的一种流程示意图。该方法应用于ndn的缓存节点,缓存节点包括一级缓存器和二级缓存器,一级缓存器中存储有已被访问的数据包,二级缓存器中存储有从ndn的服务节点获取的预测被访问的数据包。缓存节点在接收到客户端节点发送的请求之前,该方法包括如下步骤。67.步骤301,获取服务节点存储的各个数据包的命名。68.一个实施例中,缓存节点可以按照第一预设周期,获取服务节点存储的各个数据包的命名,以定时更新二级缓存器中存储的数据包,提高二级缓存器中数据包的新鲜度。69.另一个实施例中,缓存节点可以在接收到更新指令后,获取服务节点存储的各个数据包的命名。更新指令可以为用户输入的,也可以为其他节点发送的。这提高二级缓存器中数据包更新的灵活性。70.步骤302,提取所获取的各个数据包的命名的有效特征,构建各个数据包的特征向量。71.在一个实施例中,缓存节点获取的一个数据包的命名包含ndn’、地区、月、日、小时、类型共六个特征。由于数据包均来自命名数据网络域,所以ndn’是所有数据包的共同特征,对预测数据包的访问次数没有帮助,属于数据包的命名的无效特征;而地区、月、日、小时、类型可以唯一地表示数据包,故可以作为数据包的命名的有效特征,用来预测访问次数。因此,缓存节点提取该数据包的命名中地区、月、日、小时、类型共五个有效特征,构建出一个五维向量。72.步骤303,将各个数据包的特征向量输入预先训练的神经网络模型,得到各个数据包的预测访问次数。73.在一个实施例中,该神经网络模型是根据预设训练集训练获得的模型,该预设训练集包括:多个样本数据包的命名以及各个样本数据包的实际访问次数。74.在另一个实施例中,由于该神经网络模型的建立需要消耗大量的资源,包括时间与内存空间等,因此可以离线建模,在离线状态下用预设训练集训练生成神经网络模型,再将该离线生成的神经网络模型上传、保存在命名数据网络相应的缓存节点中,用来预测数据的访问次数。75.在又一个实施例中,预先训练的神经网络模型的一种结构示意图如图4所示,包括一个嵌入层、两个lstm(longshorttermmemory,长短期记忆)网络层和一个全连接层,lstmcell为长短期记忆网络单元。其中,两层lstm(每层具有128个神经元)而不是传统的单层lstm可以提高训练效率和准确性,第一层lstm的输出将全部作为第二层lstm的输入;全连接层采用线性激活函数;整个训练过程采用adam算法作为优化器。其中,训练过程可以设置的学习率为0.0005,训练epoch为1000,batch为72。76.步骤304,按照预测访问次数从大到小的顺序,依次从服务节点获取数据包,并缓存二级缓存器,直至二级缓存器的存储空间小于预设阈值。其中,对二级缓存器的预设阈值可以根据实际需进行设定,本发明实施例不作具体限定。77.例如,将二级缓存器的预设阈值设为0.1mb。假设二级缓存器缓存空间总共有1mb,服务节点共有5个数据包,按照预测访问次数从大到小排序,分别记作数据包1、数据包2、数据包3、数据包4和数据包5。数据包1的数据量为0.3mb,数据包2的数据量为0.25mb,数据包3的数据量为0.25mb,数据包4的数据量为0.2mb,数据包5的数据量为0.15mb,则二级缓存器先存储数据包1,再存储数据包2,再存储数据包3,再存储数据包4,此时二级缓存器的缓存空间还剩0mb,小于预设阈值0.1mb,则二级缓存器停止存储,不再存储数据包5。78.在一个实施例中,缓存节点按照第一预设周期,获取服务节点存储的各个数据包的命名,并按照预测访问次数从大到小的顺序,依次从服务节点获取数据包,缓存于二级缓存器,直至二级缓存器的存储空间小于预设阈值。在将二级缓存器中存储的数据包作为待更新数据包,针对每一待更新数据包,按照第二预设周期,检测服务节点中的第四数据包与该待更新数据包是否相同,如果否,则缓存节点从服务节点中获取该第四数据包,并删除该待更新数据包。其中,该第四数据包的命名与该待更新数据包的命名相同,该第二预设周期小于等于该第一预设周期。本发明实施例中,将数据包的访问次数记为流行度。79.本发明实施例提供的ndn中预测数据包访问次数的方法,可以解决命名数据网络节点在存储数据包时,忽略数据包访问次数的未来变化趋势,不能满足互联网用户需求的动态变化,数据的传输时延高的问题。通过二级缓存器在客户端节点发来的请求到达缓存节点之前,预先存储从ndn的服务节点获取的预测被访问的数据包的预取机制,对预先预测会被访问的数据包做出处理,既满足了互联网用户需求的动态变化,又降低了网络的传输时延。80.参见图5,图5为本发明实施例提供的第一种数据分析图,其中,横坐标轴为时间,纵坐标轴为数据的流行度。图中统计了2018年9月11日20时至2018年9月18日20时,电影《头号玩家》、歌手德雷克以及天气数据的流行度。其中,折线501代表热门电影《头号玩家》数据类型的流行度,折线502代表流行歌手德雷克数据类型的流行度,折线503代表天气数据类型的流行度。81.从常识可知,天气这种数据类型的流行度相较于其他数据类型如气温、湿度、光照等的流行度,已经高出许多。然而,从图中的对比可知,天气这种数据类型比起热门电影、流行歌手这两种数据类型,其流行度又非常低,流行歌手数据类型流行度的峰值比天气数据类型流行度的峰值高出六倍至七倍,热门电影数据类型流行度的峰值比天气数据流行度的峰值高出八倍甚至十倍。因此数据的流行度是具有稀疏性的,不同类型的数据的流行度差别很大。因此,命名数据网络中缓存节点现在使用的缓存替换策略,在处理这种具有稀疏性的请求数据时失效,对具有稀疏性的响应数据的命中率极低。82.参见图6,图6为本发明实施例提供的第二种数据分析图。其中,左图统计了2018年5月24日至30日纽约天气数据每天的流行度变化,其中横坐标轴为时间,纵坐标轴为流行度,由七条折线组成的折线簇代表2018年5月24日至30日纽约天气数据的流行度变化。83.从左图可以看出,每一天内纽约的天气数据的流行度变化与相邻几天的流行度变化趋势是一致的,只是在数值上具有一定的差别。将左图在时间轴上按天展开,就得到右图,即2018年5月24日0时至30日24时纽约天气数据流行度的统计折线图。从右图中可以更清晰地看出纽约每一天天气数据流行度变化趋势的一致性。84.由图6的分析,可知天气这种数据类型的流行度具有一定的规律性,以天为周期呈现规律性的变化。这就印证了命名数据网络基于数据流行度未来变化趋势设计缓存替换方法的可行性。85.参见图7,图7为本发明实施例提供的第三种数据分析图。其中,子图701的横坐标轴代表时间,纵坐标轴代表天气,统计了某个城市在2018年7月27日8:50至23:50这段时间中,天气这种数据类型每隔五分钟其数值的变化;子图702的横坐标轴代表时间,纵坐标轴代表pm2.5浓度,统计了该城市在2018年7月27日8:50至23:50这段时间中,pm2.5浓度这种数据类型每隔五分钟其数值的变化;子图703的横坐标轴代表时间,纵坐标轴代表空气质量指数,统计了该城市在2018年7月27日8:50至23:50这段时间中,空气质量指数这种数据类型每隔五分钟其数值的变化。86.从图7可以看出,天气、pm2.5浓度、空气质量指数这三种数据类型的数值会在一段时间内保持不变,具有一定的持久性。因此,在命名数据网络中,可以预设一个时间,缓存节点每隔预设时间检查一次二级缓存器中存储的、从服务节点预先取出的数据包,检查其是否与服务节点的数据包相同,如果相同,则不必替换数据,如果不相同,再替换为新的数据,而不必每次有请求数据到达缓存节点时,都要到服务器节点检查一次数据是否更新。这样可以极大地降低数据传输时延。该性质使前述步骤301‑304的设计方法具备了可行性,该步骤包括:87.缓存节点按照第一预设周期,获取服务节点存储的各个数据包的命名,并按照预测访问次数从大到小的顺序,依次从服务节点获取数据包,缓存于二级缓存器,直至二级缓存器的存储空间小于预设阈值。再将二级缓存器中存储的数据包作为待更新数据包,针对每一待更新数据包,按照第二预设周期,检测服务节点中的第四数据包与该待更新数据包是否相同,如果否,则缓存节点从服务节点中获取该第四数据包,并删除该待更新数据包。其中,该第四数据包的命名与该待更新数据包的命名相同,该第二预设周期小于等于该第一预设周期。88.参见图8,图8为本发明实施例提供的第四种数据分析图,两幅图的横坐标轴均代表流行度,纵坐标轴均代表密度。其中,曲线801是以半小时为单位,对数据流行度更细粒度分析所得的拟合曲线;曲线802是以一小时为单位,对数据流行度更细粒度分析所得的拟合曲线。其中,对数据流行度更细粒度的分析步骤如下:89.首先,对各地区一整天的数据的流行度进行分析,发现这些地区的感知数据的流行度服从zipf(齐夫定律)分布:[0090][0091]其中,pd是区域d的流行度,cd,σd是zipf分布的参数。然而发现感知数据流行度的指数序列是不一致的,会随着不同时间阶段而变化。[0092]然后,通过对每个小时的数据进行分析发现,一个小时内的数据服从正态分布:qi~n(μ,σ2),其中qi表示流行度的分布,并且过长或者过短的时间段都会失去准确性。从理论上讲,这种正态分布现象可以推导如下:[0093]a)数据在一小段时间内的请求过程{n(t),ti≤t<ti 1}满足正态分布;[0094]b)将在时间段(ti,ti 1)内的流行度看作正态分布,并且用表示请求率。可以得到:其中,服从正态过程{n(t),ti≤t<ti 1}的正态分布:[0095]c)随着的增大,泊松分布接近于正态分布。因此,在时间段(t1,t2)内,可以通过正态分布来说明:[0096][0097]qi~n(μ,σ2)[0098]最后,综合上述分析,可以得出结论,数据一整天的流行度变化由多个不同参数的泊松过程组成:xq(t)={n1(t1),n2(t2)…nn(tn)}。[0099]通过图5‑图8的分析,得出了两个重要结论:一、没有考虑数据的特征的传统的请求‑响应模型以及相关的缓存替换算法在该类数据环境下可能失效;二、构建的数据流行度的变化过程可以被视为时间序列数据,其中,时间序列数据是指数值变化具有周期性的数据。[0100]具体的,本技术实施例的缓存替换测量可以包括:[0101](1)数据包和兴趣包的命名,数据包和兴趣包的命名结构如下:[0102]/ndn/location/time/type/[0103]其中,ndn表示ndn网络域;location表示感知节点作用的地区,例如,北京、纽约等;time表示请求时间,例如2018‑12‑28等;type表明请求的类型,例如天气、气温等。[0104](2)流行度的预测,感知数据流行度可以是非连续、非线性、与环境有关的时间序列数据,采用lstm网络进行流行度的预测。但是,从数据名称中提取的特征对于lstm来说仅仅有5(纬度:地点、类型、月、日、小时)*24(小时)的有效特征,本技术实施例中,采用一层嵌入层加两层lstm加一层全连接层进行建模,训练过程采用adam算法作为优化器,全连接层采用线性激活函数。[0105](3)两级缓存,在ndn网络节点中,采用两级缓存,其中,第一级缓存(cs1)用来存储用户请求过的流行度高的数据,而第二级缓存(cs2)用来存储在数据流行之前预取的数据以及从第一级缓存中替换出来的相对流行度高的数据。两级缓存架构的设计主要考虑不同存储设备的访问延迟和边缘网络的提取延迟。cs1缓存的存储介质可以是dram(用于内部存储器中的转发守护进程),而cs2可以是硬盘(用于外部应用程序的持久缓存)。其中,来自cs1的被逐出的数据将被插入到cs2中,cs2在每个周期的开始处预取数据。[0106](4)兴趣包的处理过程,当兴趣包到达节点时,处理过程可以参见图9,图9为本发明实施例提供的ndn缓存模型的一种结构示意图,可以包括:downstreamnode(下游节点)和learningbase(基础学习),通过根据requestrecords(请求记录)得到featuresrecords(特征记录),然后生成requestvector(请求向量),再通过learningdatebase(学习数据库),得到learningcore(学习要素),生成dlmodel(deeplearningmodel,深度学习模型)并输入到cs(contentstore,内容存储器)中,同时cs还接受来自pit(pendinginteresttable,待定转发表)的cache(缓存);而interest(兴趣包)输入cs后当对pit时lookupmiss(查找未命中)则addincominginterface(添加传入接口),在针对fib(forwardinginformationbase,前向转发表)lookupmiss,则drop/nack(减少或不响应);并且,针对pit中的数据lookupmiss时也可以执行discarddate(抛弃数据)。当兴趣包到达节点时,处理过程如下:[0107]1、根据interest中请求信息的命名,检查cs1中是否有相应的信息,如果存在相应的数据,则直接将数据原路返回,否则,转向b);[0108]2、根据interest中请求信息的命名,检查cs2中是否有与兴趣包相对应的数据包,若不存在,则检查pit表,查看是否有相同的请求存在,否则,转向d)与c);[0109]3、根据算法1将相应的数据包缓存在cs1中并删除cs2中相应的数据包;[0110]4、根据pit中的相应的接口将数据包发回请求的客户端节点。[0111]当数据包到达缓存节点时,上游的处理过程如下所示:[0112]5、根据算法1将数据包缓存到cs1,若算法输出非空,则转f);[0113]6、根据缓存算法2将cs1替换出的数据包缓存到cs2。[0114]其中,上述缓存算法可以为基于流行度的预取算法,具体的:[0115][0116][0117](5)模型保存,由于深度学习预测流行度的建模需要消耗大量的资源,包括时间空间等,而感知数据具有一定的规律性,因此离线建模,生成的流行度模型保存在节点中,预测数据的流行度。[0118]基于同一种发明构思,根据上述本发明实施例提供的命名数据网络的缓存替换方法以及对数据特性的分析,本发明实施例还提供了一种命名数据网络的缓存替换装置。该装置应用于所述ndn的缓存节点,缓存节点包括一级缓存器和二级缓存器,一级缓存器中存储有已被访问的数据包,二级缓存器中存储有从所述ndn的服务节点获取的预测被访问的数据包。如图10所示,图10为本发明实施例提供的ndn的缓存替换装置的一种结构示意图。该装置包含以下单元。[0119]请求接收单元1001,用于接收客户端节点发送的请求,所述请求包括待请求数据的待请求命名。[0120]扫描单元1002,用于检测所述一级缓存器中是否存储有与所述待请求命名对应的第一数据包,或者检测所述二级缓存器中是否存储有所述第一数据包,或者检测所述一级缓存器的可用存储空间是否小于所述第一数据包的数据量,或者检测所述二级缓存器的可用存储空间是否小于所述至少一个第二数据包的数据量。[0121]缓存替换单元1003,用于提取出所述一级缓存器中至少一个第二数据包,将所述第一数据包移动至所述一级缓存器,并删除所述第二缓存器中至少一个第三数据包,再将所述至少一个第二数据包存储至所述二级缓存器;所述至少一个第三数据包的数据量大于等于所述至少一个第二数据包的数据量。[0122]发送单元1004,用于向所述客户端节点发送所述第一数据包。[0123]一个实施例中,缓存替换单元包含一级缓存器和二级缓存器,其中,一级缓存器用于存储已被访问的数据包,二级缓存器用于存储从ndn的服务节点获取的预测被访问的数据包,以及从一级缓存器中替换出来的访问次数相对不高的数据包。[0124]一个实施例中,缓存替换单元1003还可以用于:[0125]如果一级缓存器的可用存储空间不小于二级缓存器存储的该第一数据包的数据量,则将所述第一数据包移动至所述一级缓存器。[0126]一个实施例中,缓存替换单元1003还可以用于:[0127]如果二级缓存器的可用存储空间不小于提取出的至少一个第二数据包的数据量,则将所述至少一个第二数据包存储至所述二级缓存器。[0128]一个实施例中,发送单元1004还可以用于:[0129]如果一级缓存器中存储有与待请求命名对应的第一数据包,则将该第一数据包发送给所述客户端节点。[0130]一个实施例中,发送单元1004还可以用于:[0131]如果二级缓存器中未存储与待请求命名对应的第一数据包,则将该请求转发至其他节点。具体的,该其他节点可以是缓存节点,也可以是服务节点。[0132]本发明实施例提供的命名数据网络的缓存替换装置,可以解决缓存空间利用率很低、数据的传输时延高的问题。通过一级缓存器中存储已被访问的数据包,二级缓存器存储从一级缓存器中替换出来的访问次数相对较低的数据包的二级缓存机制,可以根据已发生的访问次数变化,对已存储的数据包做出相应替换,提高了缓存空间利用率、降低了网络的传输时延。[0133]参见图11,图11为本发明实施例提供的ndn中预测数据包访问次数装置的一种结构示意图。该装置可以包括以下单元。[0134]命名获取单元1101,用于获取服务节点存储的各个数据包的命名;[0135]特征提取单元1102,用于提取所获取的各个数据包的命名的有效特征,构建各个数据包的特征向量;[0136]预测单元1103,用于将各个数据包的特征向量输入预先训练的神经网络模型,得到各个数据包的预测访问次数,所述神经网络模型是根据预设训练集训练获得的模型,所述预设训练集包括:多个样本数据包的命名以及各个样本数据包的实际访问次数;[0137]缓存单元1104,用于按照预测访问次数从大到小的顺序,依次从所述服务节点获取数据包,并缓存所述二级缓存器,直至所述二级缓存器的存储空间小于预设阈值。[0138]一个实施例中,命名获取单元1101还可以用于:[0139]按照第一预设周期,获取所述服务节点存储的各个数据包的命名;[0140]在按照预测访问次数从大到小的顺序,依次从所述服务节点获取数据包,并缓存所述二级缓存器,直至所述二级缓存器的存储空间小于预设阈值之后,所述方法还包括:[0141]将所述二级缓存器中存储的数据包作为待更新数据包,针对每一待更新数据包,按照第二预设周期,检测所述服务节点中第四数据包与该待更新数据包是否相同,所述第四数据包的命名与该待更新数据包的命名相同,所述第二预设周期小于等于所述第一预设architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。[0159]通信接口用于上述电子设备与其他设备之间的通信。[0160]存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non‑volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。[0161]上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field‑programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。[0162]基于同一种发明构思,根据上述本发明实施例提供的命名数据网络的缓存替换方法以及对数据特性的分析,在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一命名数据网络的缓存替换方法的步骤。[0163]在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一命名数据网络的缓存替换方法的步骤。[0164]在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。[0165]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。[0166]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于命名数据网络的缓存替换装置、电子设备、机器可读存储介质实施例而言,由于其基本相似于命名数据网络的缓存替换方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。[0167]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜