掌桥专利:专业的专利平台
掌桥专利
首页

基于智能索引的数据处理方法及其相关设备

文献发布时间:2023-06-19 19:40:14


基于智能索引的数据处理方法及其相关设备

技术领域

本申请实施例涉及通信领域,尤其涉及基于智能索引的数据处理方法及其相关设备。

背景技术

远程直接数据访问(remote direct memory access,RDMA)是一种新兴的网络技术,具有高网络带宽和低网络时延的特性,其中,RDMA包括单边操作以及双边操作来实现数据的传输。目前,有一种应用于RDMA方面加速索引查找的智能索引(learned index)技术,主要是通过使用智能的机器学习模型来预测键值所对应的值的位置。而利用这种智能索引的智能缓存技术是近年来新提出的加速远程有序索引的技术,其中,远程有序索引是一种支持查询某个范围的键值对应的所有的值的远程内存数据结构,该远程内存数据结构是一种支持在客户端中使用RDMA单边操作执行服务器端数据结构操作的数据结构。

当前的智能缓存技术是将智能索引缓存在客户端。例如在客户端使用智能缓存加速键值查找操作。首先客户端使用智能索引能预测某个键值在服务器中的位置范围,然后客户端通过RDMA单边操作从服务器的位置范围内获取到该键值对应的值。其中,智能索引的数据量较小,能直接缓存在客户端本地,以及客户端只需要通过RDMA单边操作即可完成键值查找操作,提高了效率,减少了网络资源的浪费,且有效地避免了使用传统的索引(如B树)造成的网络放大效应。

但是由于智能索引的数据存储方式无法支持如插入和删除等动态操作,只能加速远程有效索引中的静态操作(如键值查找)。所以当前的智能缓存技术无法支持动态操作,适用的应用场景较少,无法满足当前的需求。

发明内容

本申请提供了基于智能索引的数据处理方法及其相关设备,应用于互联网中的RDMA技术方面,能够解决当前的智能缓存技术无法在支持静态操作的基础上支持动态操作的问题,增加适用的应用场景,提高了工作效率。

第一方面,提供了一种基于智能索引的数据处理方法,包括:

网络设备接收由计算机设备发送的第一键值对,该第一键值对包括第一关键值以及与第一关键值对应的第一目标值。

然后,网络设备基于第一键值对对第一页表进行更新,得到第二页表,其中,页表用于表示键值对与键值对的实际地址之间的对应关系。其中,实际地址为网络设备存储键值对的地址,由于网络设备在接收到第一键值对后,会对第一键值对进行动态操作,造成网络设备上的键值对的实际地址发生变化,网络设备由此更新第一页表,得到第二页表。

网络设备向计算机设备发送第二页表,以使得计算机设备与网络设备具备相同的页表。

在本申请实施例中,网络设备接收由计算机设备发送的第一键值对,然后网络设备基于第一键值对对第一页表进行更新得到第二页表,且将第二页表发送给计算机设备,使得计算机设备具备与网络设备相同的页表。其中网络设备基于第一键值对更新第一页表得到第二页表,并将第二页表发送给计算机设备,保证了该方案支持动态操作,并且计算机设备上具备与网络设备上相同的页表,因此在对第一键值对进行动态操作后,计算机设备可以根据第二页表支持静态操作。该方案支持静态操作以及动态操作,增加了适用的应用场景,满足当前的需求,提高了工作效率。

在第一方面的一种可能的实现方式中,在计算机设备得到第二关键值的情况下,计算机设备会从网络设备获取第二关键值对应的第二目标值,因此网络设备会接收由计算机设备发送的第二键值对的实际地址,其中,该第二键值对的实际地址由计算机设备根据计算机设备上的第二页表确定,且该第二键值对包括前述的第二关键值以及与第二关键值对应的第二目标值。

然后,网络设备根据第二键值对的实际地址获取第二目标值,并将该第二目标值发送给计算机设备。

在本申请的实施方式中,在计算机设备得到第二关键值的情况下,网络设备接收由计算机设备发送的第二键值对的实际地址,并根据第二键值对的实际地址获取第二目标值,并将该第二目标值发送给计算机设备。其中第二键值对的实际地址是由计算机设备根据计算机设备上的第二页表确定。提供了计算机设备在接收到第二页表后,能根据第二页表进行静态操作的具体实施方式,进一步确保方案支持动态操作以及静态操作。

在第一方面的一种可能的实现方式中,页表还包括键值对的版本信息,版本信息可以用于判断计算机设备具备的页表是否与网络设备相同。

在网络设备向计算机设备发送第二页表之前,网络设备接收由计算机设备发送的第一通告消息,其中,第一通告消息用于指示网络设备获取第一版本信息,该第一版本信息为第三键值对在网络设备上对应的版本信息。

网络设备向计算机设备发送第一版本信息。

在第一版本信息与第二版本信息不一致的情况下,网络设备接收由计算机设备发送的计算机设备获取的第二页表的消息,其中第二版本信息为第三键值对在计算机设备上的页表中对应的版本信息。其中,第一版本信息与第二版本信息不一致,表示计算机设备上的页表与网络设备上的页表不同,因此计算机设备需要从网络设备上获取网络设备具备的页表。

在本申请的实施方式中,页表还包括键值对的版本信息,且在网络设备向计算机设备发送第二页表之前,网络设备还接收由计算机发送的第一通告消息,然后向计算机设备发送第一版本信息,在第一版本信息与第二版本信息不一致的情况下,网络设备接收计算机设备发送的获取第二页表的消息。提供了网络设备向计算机设备发送第二页表的条件,提供了具体的实施方式,体现了方案的可靠性。

在第一方面的一种可能的实现方式中,网络设备接收由计算机设备发送的获取点三目标值的消息,其中,该第三目标值是第三键值对包括的与第三关键值对应的目标值。

然后网络设备获取第三目标值,并将第三目标值向计算机设备发送。

在本申请的实施方式中,网络设备接收计算机设备获取第三目标值的消息,然后网络设备获取第三目标值,并发送给计算机设备。保证计算机设备与网络设备不具备相同页表的情况下,该方案仍然能支持静态操作,保证工作的正常进行,提高了方案的可靠性。

在第一方面的一种可能的实现方式中,第一页表包括n个子页表,因此网络设备根据第一键值对从n个子页表中确定m个第一目标子页表,n≥m≥1。网络设备对第一键值对进行动态操作,可能只会造成网络设备上的某些键值对的实际地址发生变化,所以网络设备根据实际地址发生变化的键值对确定m个第一目标子页表。

然后,网络设备对m个第一目标子页表进行更新,得到更新后的m个第二目标子页表。

得到m个第二目标子页表以后,网络设备向计算机设备发送m个第二目标子页表。

在本申请的实施方式中,第一页表包括n个子页表,网络设备根据第一键值对从n个子页表中确定m个第一目标子页表,然后将m个第一目标子页表进行更新得到m个第二目标子页表,并将m个第二子页表发送给计算机设备。减少了网络设备更新的数据量以及更新时长,节约了网络资源,提高了工作效率。

在第一方面的一种可能的实现方式中,网络设备对第一键值对进行删除操作,得到更新后的键值对的实际地址。

然后,网络设备根据更新后的键值对的实际地址对第一页表进行更新,得到第二页表。

在本申请的实施方式中,网络设备对第一键值对进行删除操作,得到更新后的键值对的实际地址,然后根据更新后的键值对的实际地址更新第一页表得到第二页表。明确了网络设备对第一键值对进行的具体操作,同时说明了网络设备如何更新第一页表得到第二页表,增加了适用的应用场景,体现了方案的多样性。

在第一方面的一种可能的实现方式中,网络设备对第一键值对进行插入操作,得到更新后的键值对的实际地址。

然后,网络设备根据更新后的键值对的实际地址对第一页表进行更新,得到第二页表。

在本申请的实施方式中,网络设备对第一键值对进行插入操作,得到更新后的键值对的实际地址,然后根据更新后的键值对的实际地址更新第一页表得到第二页表。明确了网络设备对第一键值对进行的动态操作为插入操作,体现了方案的可选择性以及多样性。

第二方面,提供了一种基于智能索引的数据处理方法,包括:

计算机设备向网络设备发送第一键值对,该第一键值对包括第一关键值以及与第一关键值对应的第一目标值。

然后,计算机设备从网络设备获取第二页表,该第二页表是由网络设备基于第一键值对对第一页表进行更新得到的,其中,页表用于表示键值对与键值对的实际地址之间的对应关系,实际地址为网络设备存储键值对的地址。

在本申请的实施方式中,计算机设备向网络设备发送第一键值对,然后网络设备对第一键值对进行动态操作,会造成网络设备上的键值对的网络地址发生变化,所以网络设备基于第一键值对对第一页表进行更新得到第二页表,然后计算机设备从网络设备获取第二页表。该方案表明了支持动态操作,且计算机设备获取第二页表,保证了计算机设备与网络设备具备相同的页表,确保计算机设备能在第一键值被进行动态操作后仍然支持静态操作。

在第二方面的一种可能的实现方式中,在计算机设备得到第二关键值的情况下,计算机设备根据第二页表确定第二键值对的实际地址,其中,第二键值对包括第二关键值以及第二关键值对应的第二目标值。

计算机设备根据第二键值对的实际地址从网络设备获取第二目标值。

在本申请的实施方式中,在计算机设备得到第二关键值的情况下,计算机设备根据第二页表确定第二键值对的实际地址,然后根据第二键值对的实际地址从网络设备获取第二目标值。具体体现了计算机设备根据第二页表基于第二关键值获取第二目标值的实施方式,体现了计算机设备在第一键值对被执行动态操作后,仍能在第二页表的基础上支持静态操作。

在第二方面的一种可能的实现方式中,页表还包括键值对的版本信息,版本信息可以用于判断计算机设备具备的页表是否与网络设备相同。

在计算机设备从网络设备获取第二页表之前,计算机设备向网络设备发送第一通告消息,该第一通告消息用于通告指示网络设备获取第一版本信息,其中,第一版本信息为第三键值对在网络设备上对应的版本信息。

然后,计算机设备接收由网络设备发送的第一版本信息。

在第一版本信息与第二版本信息不一致的情况下,计算机设备从网络设备获取第二页表,其中,第二版本信息为第三键值对在计算机设备上的页表中对应的版本信息。

在本申请的实施方式中,页表还包括键值对的版本信息,然后计算机设备向计算机设备发送第一通告消息,然后接收网络设备发送的第一版本信息,计算机设备在第一版本信息与第二版本信息不一致的情况下,向网络设备获取第二页表。明确了计算机设备获取第二页表的具体实施方式,提高了方案的可靠性。

在第二方面的一种可能的实现方式中,计算机设备向网络设备发送获取第三目标值的消息,其中,该第三目标值为第三键值对包括的第三关键值对应的目标值。

然后计算机设备接收由网络设备发送的第三目标值。

在本申请的实施方式中,计算机设备向网络设备发送获取第三目标值的请求,然后接收到网络设备发送的第三目标值,保证了在计算机设备与网络设备具备的页表不一致的情况下,该方案仍然能支持静态操作。

在第二方面的一种可能的实现方式中,第一页表包括n个子页表,计算机设备从网络设备获取m个第一目标子页表,该m个第一子页表由网络设备将m个第二目标子页表更新得到,其中,该m个第二目标子页表由网络设备根据第一键值对从第一页表的n个子页表中确定,n≥m≥1。

在本申请的实施方式中,第一页表包括n个子页表,计算机设备从网络设备获取m个第一目标子页表,该m个子页表是网络设备对根据第一键值对确定的第一页表中的m个第二目标子页表更新得到。减少了计算机设备获取的数据量,节省了网络资源,提高了工作效率。

第三方面,提供一种网络设备,该网络设备具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

第三方面的网络设备执行本申请第一方面或第一方面任一种可能实现方式所描述的方法。

第四方面,提供一种计算机设备,该计算机设备具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

第四方面的计算机设备执行本申请第二方面或第二方面任一种可能实现方式所描述的方法。

第五方面,提供另一种网络设备或计算机设备,可以包括处理器,该处理器与存储器耦合,其中存储器用于存储指令,处理器用于执行存储器中的指令使得该网络设备执行本申请第一方面或第一方面任意一种可能实现方式的方法,或使得该计算机设备执行本申请第二方面或第二方面任意一种可能实现方式的方法。

第六方面,提供另一种网络设备或计算机设备,包括处理器,用于执行存储器中存储的计算机程序(或计算机可执行指令),当计算机程序(或计算机可执行指令)被执行时,使得该网络设备执行如第一方面及第一方面各个可能的实现方式中的方法,或使得该计算机设备执行如第二方面及第二方面各个可能的实现方式中的方法。

在一种可能的实现中,处理器和存储器集成在一起;

在另一种可能的实现中,上述存储器位于该网络设备或计算机设备之外。

该网络设备或计算机设备还包括通信接口,该通信接口用于该网络设备或计算机设备与其他设备进行通信,例如数据和/或信号的发送或接收。示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。

第七方面提供一种计算机可读存储介质,包括计算机可读指令,当计算机可读指令在计算机上运行时,使得本申请第一方面或第一方面任一种可能实现方式所描述的方法被执行,或使得本申请第二方面或第二方面任意一种可能实现方式的方法被执行。

第八方面,提供一种计算机程序产品,包括计算机可读指令,当计算机可读指令在计算机上运行时,使得本申请第一方面或第一方面任一种可能实现方式所描述的方法被执行,或使得本申请第二方面或第二方面任意一种可能实现方式的方法被执行。

第九方面,提供了一种芯片,该芯片包括至少一个处理器和至少一个接口电路,该接口电路和该处理器耦合,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,至少一个处理器用于运行计算机程序或指令,其具有实现如上述第一方面或第一方面任意一种可能实现方式的方法的功能,或具有实现如上述第二方面或第二方面任意一种可能实现方式的方法的功能,该功能可以通过硬件实现,也可以通过软件实现,还可以通过硬件和软件组合实现,该硬件或软件包括一个或多个与上述功能相对应的模块。

第十方面,本申请还提供一种通信系统,包括第三方面、第四方面、第五方面及前述各方面的各种可能的实现提供的网络设备以及计算机设备。

附图说明

图1为智能缓存加速查找的一个示意图;

图2为本申请实施例提供的一种基于智能索引的数据处理方法的一个示意图;

图3为本申请实施例提供的应用场景的一个示意图;

图4为本申请实施例提供的得到第二页表的一个流程示意图;

图5为本申请实施例提供的网络设备存储数据的一个示意图;

图6为本申请实施例提供的第一页表为n个子页表的一个示意图;

图7为本申请实施例提供的得到m个第二目标子页表的一个系统交互示意图;

图8为本申请实施例生成或更新子页表的一个流程示意图;

图9为本申请实施例提供的得到第一模型的一个示意图;

图10为本申请实施例提供的页表的一个示意图;

图11为本申请实施例提供的计算机设备进行查找操作的一个示意图;

图12为本申请实施例提供的计算机设备进行查找操作的一个流程示意图;

图13为本申请实施例提供的发送第三目标值以及第二页表的一个流程示意图;

图14(a)为本申请实施例提供的uniform场景测试数据的一个示意图;

图14(b)为本申请实施例提供的latest场景测试数据的一个示意图;

图15为本申请实施例提供的TPC-C场景测试数据的一个示意图;

图16为本申请实施例提供的第一模型为不同学习模型的测试数据的一个示意图;

图17为本申请实施例提供的网络设备的一个结构示意图;

图18为本申请实施例提供的计算机设备的一个结构示意图;

图19为本申请实施例提供的通信装置的一个结构示意图。

具体实施方式

本申请实施例提供了基于智能索引的数据处理方法及其相关设备,应用于互联网中的RDMA技术方面,能支持动态操作以及静态操作,且能适用多种应用场景,提高工作效率。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

本申请实施例涉及了许多RDMA技术的相关知识,为了能更好的理解本申请实施例的方案,下面先对本申请实施例可能涉及的相关术语和概念进行介绍。

远程直接数据访问:RDMA是一种新兴的网络技术,具备高网络带宽和低网络时延的特性。其中,上层系统可以使用单边操作和双边操作使用RDMA。RDMA是通过网络把资料直接传入计算机设备的存储区,将数据从计算机设备快速移动到远程系统存储器中,而不对操作系统造成任何影响,可以尽可能少量占用计算机设备的处理功能。消除了外部存储器复制和上下文切换的开销,因而解放内存带宽和处理器周期用于改进系统功能。

双边操作:RDMA的双边操作必须要远程系统感知参与才能完成收发,双边操作提供了消息传递的接口,该接口和传统网络通信类似。多用于传输短的控制消息。

单边操作:RDMA的单边操作只需提供直接访问的虚拟地址,远程系统不必感知此次通信,数据的读或写都通过RDMA在支持RDMA的网卡(RDMA-capable network card,RNIC)与应用缓存区之间完成,即网卡可以绕过处理器读写远程系统的内存。当前的单边操作有读操作(read)、写操作(write)以及原子操作等。与双边操作相比,单边操作具有更好的性能,而且可以绕开远程系统的处理器对内存数据进行操作,具有更低的能耗,从而降低成本,适用于批量数据传输。

远程内存数据结构:一种支持在客户端中使用RDMA单边操作执行远程系统的数据结构操作的数据结构。

有序键值操作:支持查询某个范围的key对应的所有值,通常使用B树实现。例如,相邻的key(a)、key(b)可以通过一次查询同时查找出来。

远程有序索引:一种支持有序键值操作的远程内存数据结构。通常,该数据结构基于B树实现。

索引缓存:将远程系统的索引(或部分索引)缓存到客户端的技术。

智能索引(learned index):一种加速索引查找的技术,与传统的索引一样能索引数据。与传统的索引不同的是,传统的索引(例如B树)通过遍历内存中的数据结构找到一个key对应的value的位置,而智能索引使用智能的机器学习模型来预测key所对应的value的位置,智能索引能极大减少内存遍历的操作。

智能缓存(learned cache):一种采用了智能索引作为缓存的缓存技术。

在介绍本申请实施例之前,先对目前常见的智能缓存技术进行简单的介绍,以便于后续理解本申请实施例。

智能缓存是一种加速远程有序索引的技术,下面请参阅图1详细了解智能缓存加速静态键值操作的具体实现,图1为智能缓存加速查找的一个示意图。其中,服务器以有序数组存储数据。且,智能缓存技术是在客户端中缓存智能索引,该智能索引可以索引服务器的数据。

通过智能缓存技术,客户端执行查找操作,该操作将返回查找的key(例如K1)所对应的value(例如V1)。下面具体举例说明,在客户端得到一个key(K1),并对其进行查找操作(get)的情况下(如图1所示,客户端从用户或其他设备或器件接收到对K1执行查找操作的指令),首先客户端使用智能索引预测V1在服务器的存储的位置范围,当V1存储在服务器中,V1就在预测的范围内。然后,客户端通过一次RDMA单边操作将范围内对应的key读回,由此客户端可以通过本地搜索确定V1所在的确定位置,然后,客户端根据V1所在的确定位置,使用一次RDMA单边操作将V1读回。该智能缓存技术的智能索引较小,可以将智能索引完全缓存在客户端,且客户端只需要两次RDMA单边操作就可以查找到key所对应的值。能有效加速远程有序索引中的静态操作。然而,上述的智能缓存技术由于数据存储方式无法支持动态操作(如插入(insert)、删除(delete)等等)。

为解决上述所述问题,本申请实施例首先提供了一种基于智能索引的数据处理方法,用于互联网中的RDMA技术方面,计算机设备向网络设备发送第一键值对。网络设备接收到第一键值对后,基于第一键值对对第一页表进行更新,得到第二页表,其中,该页表用于表示键值对与键值对的实际地址之间的对应关系,且网络设备将第二页表发送给计算机设备,计算机设备从网络设备获取到第二页表,则计算机设备与网络设备具备相同的页表。本申请实施例能支持动态操作以及静态操作,增加了适用的应用场景,提高工作效率。

为了更好的理解本申请的实施例,下面结合附图,对本申请的实施例提出的一种基于智能索引的数据处理方法进行详细描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。具体请参阅图2,图2为本申请实施例提供的一种基于智能索引的数据处理方法的一个示意图,具体包括:

201、网络设备接收由计算机设备发送的第一键值对。

网络设备接收由计算机设备发送的第一键值对,该第一键值对包括第一关键值以及与该第一关键值对应的第一目标值。

在计算机设备得到第一键值对,并需要将第一键值对在网络设备的数据结构中执行动态操作的情况下,计算机设备通过RDMA双边操作将第一键值对以及对其的具体操作发送到网络设备。

为便于理解,下面通过应用场景进行简单的举例说明,本申请实施例应用在分布式系统中需要对网络设备中存储的数据进行“增删改查”的场景,或数据库场景。例如分布式内存键值存储、分布式文件系统中元数据的操作等,如图3所示,图3为本申请实施例提供的应用场景的一个示意图。其中,计算机设备使用动态智能缓存接口对网络设备的内存中存储的数据进行增删改查,网络设备采用键值方式组织数据。计算机设备根据自身具备的动态智能缓存能高效使用RDMA单边操作来最大化查找等静态操作的性能,该动态智能缓存包括页表,计算机设备主要根据页表来最大化查找等静态操作的。然后,计算机设备通过RDMA双边操作执行插入、删除或更新等动态操作。可以理解的是,图3仅仅作为示例,用于理解本申请实施例,不对本申请产生实质性的限定。

202、网络设备基于第一键值对对第一页表进行更新,得到第二页表。

网络设备基于第一键值对对第一页表进行更新,得到第二页表。其中页表用于表示键值对与该键值对的实际地址之间的对应关系。其中,实际地址为网络设备存储键值对的地址,在网络设备对第一键值对进行操作的情况下,会导致网络设备上的键值对的实际地址发生变化,所以网络设备对第一页表进行更新得到第二页表,即当前网络设备上的键值对与键值对的实际地址之间的对应关系。

具体的,网络设备接收到第一键值对后,对第一键值对进行动态操作,包括删除、插入或更新等等,具体此处不做限定。一种可能的实现方式中,网络设备对第一键值对进行插入操作,得到更新后的键值对的实际地址,网络设备根据更新的键值对的实际地址对第一页表进行更新,得到第二页表,或网络设备对第一键值对进行删除操作,得到更新后的键值对的实际地址,网络设备根据更新后的键值对的实际地址对第一页表进行更新,得到第二页表。

方式一、网络设备对第一键值对进行插入操作,得到更新后的键值对的实际地址,然后网络设备根据更新后的键值对的实际地址对第一页表进行更新,得到第二页表。

为便于理解,下面以具体的实施方式举例说明,具体请参阅图4,图4为本申请实施例提供的得到第二页表的一个流程示意图。

401、网络设备将第一键值对插入到xtree和叶子节点中。

其中,网络设备以叶子节点(leaf node,LN)的方式存储数据,可以理解的是,网络设备还能以其他形式存储数据,具体此处不做限定,并由一个传统的索引结构(例如xtree,可以理解的是,还能是其他形式的索引,具体此处不做限定)对数据进行索引,具体请参阅图5,图5为本申请实施例提供的网络设备存储数据的一个示意图。可选的,xtree可以采用B+树、跳表、定位编号分离协议(locator ID separation protocol,LISP)或skip实现,可用理解的是,在实际情况中,还可以是其他的实现方式,具体此处不做限定。网络设备将第一键值对插入到叶子节点和xtree中,确保能通过xtree索引到插入到叶子节点的第一键值对。其中插入第一键值对,可能造成叶子节点合并或分裂,导致网络设备上存储的某些键值对的实际地址发生变化,得到更新后的键值对的实际地址,因此网络设备根据更新后的键值对的实际地址对第一页表进行更新,得到第二页表。

在本申请的实施方式中,网络设备对第一键值对进行插入操作,得到更新后的键值对的实际地址,然后根据更新后的键值对的实际地址更新第一页表得到第二页表。明确了网络设备对第一键值对进行的动态操作为插入操作,体现了方案支持动态操作以及体现了方案的可选择性。

可以理解的是,上述图4以及图5仅仅作为一个示例,用于理解本申请实施例,不对本申请实施例产生实质性的限定。

一种可能的实现方式中,第一页表包括n个子页表,具体形式请参阅图6,图6为本申请实施例提供的第一页表为n个子页表的一个示意图。网络设备根据第一键值对从n个子页表中确定m个第一目标子页表,其中,n≥m≥1。然后网络设备对m个第一目标子页表进行更新,得到更新后的m个第二目标子页表。

为便于理解,下面具体举例说明第一页表包括n个子页表的实现方式,在前述图3的应用场景上,为了保证在网络设备对第一键值对进行动态操作后,计算机设备仍然能根据动态智能缓存支持静态操作以及动态操作,所以需要对计算机设备上的页表进行更新。页表由网络设备进行更新,计算机设备从网络设备获取更新后的页表,然后根据更新后的页表支持静态操作。由此可以在网络设备上设置动态智能缓存,且计算机设备上的动态智能缓存与网络设备上的一致(例如计算机设备上的动态智能缓存可从网络设备获得)。

可选的,该动态智能缓存分为第一模型以及n个底层模型,其中每个底层模型包含一个子页表,第一模型用于根据关键值确定底层模型,n个包括子页表的底层模型由网络设备生成,底层模型可用于从子页表中快速确定关键值对应的键值对的实际地址。或者,网络设备也可以只具备n个包括子页表的底层模型,将n个包括子页表的底层模型发送给计算机设备,使计算机设备具备与网络设备具备相同的页表,计算机设备自身具备第一模型,然后根据第一模型以及n个子页表支持静态操作以及动态操作。可以理解的是,在实际情况中,还可以采用其他的实现方式,具体此处不做限定。

为便于理解更新m个第一目标子页表,得到第二目标子页表,下面举例说明,其中,以将第一键值对插入网络设备为例说明,具体示例请参阅图7,图7为本申请实施例提供的得到m个第二目标子页表的一个系统交互示意图。其中,计算机设备得到将第一键值对插入到网络设备的指令,然后网络设备从计算机设备得到第一键值对并将第一键值对插入xtree和叶子结点中,导致了网络设备上的键值对的实际地址发生变化,网络设备确定实际地址发生变化的键值对对应的子页表确定为m个第一目标子页表,网络设备将m个第一目标子页表加入待更新队列,然后网络设备利用训练线程更新待更新队列中的m个第一子页表,得到m个第二目标子页表,即得到m个更新后的底层模型。

其中,第一模型以及底层模型可以是任意的机器学习模型。可选的,第一模型可以为泛化能力较强的机器学习模型,底层模型为占用内存较少、训练较快的模型,例如采用神经网络或多元线性回归作为第一模型,线性回归作为底层模型,能更快,高效的支持静态操作以及动态操作,且能占用较少的内存,节省资源。

网络设备得到m个第二目标子页表的具体实施过程请参阅图4:

402、在叶子节点断裂或合并的情况下,网络设备确定m个第一目标子页表。

从图3中的步骤401可知,在网络设备将第一键值对插入到xtree和叶子节点中,叶子节点可能会断裂或合并,导致网络设备上的键值对的实际地址发生变化。由此,在叶子节点断裂或合并的情况下,网络设备确定与实际地址发生变化的键值对对应的子页表为m个第一目标子页表,n≥m≥1。

403、网络设备判断m个目标子页表中的每一个第一目标子页表是否在待更新队列。

当某个第一目标子页表没在待更新队列中,执行步骤404。

当某个第一目标子页表在待更新队列中,执行步骤405。

404、将该第一目标子页表加入待更新队列,然后执行步骤405。

405、网络设备更新待更新队列中的m个第一目标子页表,得到第二目标子页表。

为便于理解,下面举例说明网络设备对第一目标子页表更新,得到第二目标子页表的具体实现方式。网络设备更新m个第一目标子页表得到m个第二目标子页表,具体过程请参阅图8,图8为本申请实施例生成或更新子页表的一个流程示意图。按照如下步骤可得到第二目标子页表的底层模型:

801、初始化训练集为空;

例如training_set=[],其中training_set代表训练集,可以理解的是,在实际情况中,还能以其他形式代表训练集,具体此处不做限定。

802、初始化页表为空;

例如TT=[],其中TT代表页表,可以理解的是,在实际情况中,还能以其他字母、字母组合、单词、单词组合或其他形式代表页表,具体此处不做限定。

803、初始化叶子节点node为底层模型负责的第一个叶子点;

例如node=first_mode_node,代表的是将初始化叶子节点定义为第一个叶子节点,可以理解的是,node=first_mode_node仅仅只是示例,在实际情况中,还能是其他的形式,具体此处不做限定。

804、判断node是否是该子页表所负责预测的节点,若否,执行步骤808;

805、将node中所有的关键值加到训练集中;

806、把node的地址和版本加到页表中;

807、把node设置为网络设备的存储中node的下一个节点,执行步骤804;

808、使用训练集得到包括子页表的底层模型。

通过上述实施方式网络设备得到更新的m个第二目标子页表,可以理解的是,第一目标子页表也是由此获得,可以理解的是,图8仅仅只是一个示例,不对本申请实施例中网络设备更新第一目标子页表得到第二目标子页表进行限定,在实际情况中,还能是通过其他实施方式达到相同的目的,具体此处不做限定。

在本申请的实施方式中,第一页表包括n个子页表,网络设备根据第一键值对确定m个第一目标子页表,并将m个第一目标子页表更新得到m个第二目标子页表,减少了网络设备更新的数据量以及更新时长,节约了网络资源,提高了工作效率。

接下来,以网络设备得到第一模型为例进行说明,具体实施过程请参阅图9,图9为本申请实施例提供的得到第一模型的一个示意图。具体如下:

901、初始化训练集为空;

例如training_set=[],其中training_set代表训练集,可以理解的是,在实际情况中,还能以其他形式代表训练集,具体此处不做限定。

902、初始化当前关键值为网络设备最小的关键值;

例如current_key=min_key,其中current_key代表当前关键值,min_key代表最小的关键值,可以理解的是,在实际情况中,还能以其他形式代表当前关键值或最小的关键值,具体此处不做限定。

903、初始化计数为0;

例如count=0,其中count代表计数,可以理解的是,还能是其他单词、字母或单词组合代表计数,具体此处不做限定。

904、当前关键值是否小于或等于网络设备存储的最大的关键值,若否,则执行步骤908;

例如current_key<=max_key,其中max_key代表网络设备存储的最大的关键值,可以理解的是,还能以其他形式代表最大的关键值,具体此处不做限定。

905、把(当前关键值,计数)加到训练集;

906、计数加一;

907、把当前关键值设置为网络设备中下一个比当前关键值大的关键值,执行步骤904;

908、使用训练集训练得到第一模型。

需要说明的是,网络设备将第一模型发送给计算机设备,确保计算机设备能根据第一模型快速确定关键值对应的底层模型,可以理解的是,当网络设备不具备第一模型时,计算机设备也可按照类似图9的流程得到第一模型,具体此处不做限定。

需要说明的是,上述图9仅仅作为示例,用于具体理解本申请实施例,不对本申请的实施例产生实质性的限定。

需要说明的是,上述动态智能缓存分为第一模型以及n个底层模型,仅仅是个示例,还可以将动态智能缓存分为第一模型以及n个子页表,具体此处不做限定。其中第一模型以及底层模型只是在页表的基础上快速确定关键值对应的键值对的实际地址,提高工作效率。

可以理解的是,上述以动态智能缓存为例进行说明,仅仅用于理解本申请实施例,不对本申请实施例产生实质性的限定。

方式二、网络设备对第一键值对进行删除操作,得到更新后的键值对的实际地址,然后网络设备根据更新后的键值对的实际地址对第一页表进行更新,得到第二页表。

网络设备对第一键值对进行删除操作,可能导致叶子节点断裂或合并,即导致网络设备上的某些键值对的实际地址发生变化,然后网络设备根据更新后的键值对的实际地址更新第一页表,得到第二页表。其中,具体过程与上述方式一中网络设备对第一键值对进行插入操作的描述类似,具体此处不再赘述。

在本申请的实施方式中,网络设备对第一键值对进行删除操作,得到更新后的键值对的实际地址,然后网络设备根据更新后的键值对的实际地址对第一页表进行更新,得到第二页表。明确了网络设备对第一键值对进行的具体操作,同时说明了网络设备如何更新第一页表得到第二页表,体现了该方案支持动态操作,以及增加了适用的应用场景,体现了方案的多样性。

一种可能的实现中,第一页表包括n个子页表。网络设备根据第一键值对从n个子页表中确定m个第一目标子页表,其中,n≥m≥1。然后网络设备对m个第一目标子页表进行更新,得到更新后的m个第二目标子页表。其中,具体内容与上述方式一中描述的类似,具体此处不再赘述。

203、计算机设备向网络设备发送第一通告消息。

在页表还包括键值对的版本信息的情况下,计算机设备向网络设备发送第一通告消息,该第一通告消息用于指示网络设备获取第一版本信息,其中,第一版本消息为第三键值对在网络设备上的版本信息,第三键值对包括第三关键值以及与第三关键值对应的第三目标值。

页表还包括键值对的版本消息,该版本消息可以是键值对的实际地址的版本信息,键值对的实际地址发生变化后,更新版本信息。或者,也可以是页表的版本信息,页表更新后,版本信息也更新。版本信息用于指示计算机设备确定是否具备与网络设备相同的页表。其页表的具体形式请参阅图10,图10为本申请实施例提供的页表的一个示意图。

为了更好的理解,下面先对计算机设备根据动态智能缓存支持查找操作进行简单的说明,此处以计算机设备上的页表为包括n个子页表的第一页表为例进行说明,请参阅图11,图11为本申请实施例提供的计算机设备进行查找操作的一个示意图,其中,计算机设备从用户或其他设备那里接收到关键值,并要对关键值进行查找操作,首先计算机设备会根据第一模型确定第三关键值对应的第三目标子页表,然后根据第三目标子页表确定第三键值对的实际地址,然后根据第三键值对的实际地址从网络设备获取对应的第三目标值。

根据上述计算机设备具备的动态智能缓存,在计算机设备对第三关键值进行查找操作的情况下,计算机设备会从计算机设备会从网络设备上获取第三键值对在网络设备上的第一版本信息,当计算机设备从网络设备获取到的第一版本信息与第二版本信息相同时,计算机设备才从网络设备获取第三目标值。其具体实施过程请参阅图12,图12为本申请实施例提供的计算机设备进行查找操作的一个流程示意图,其中:

1201、计算机设备基于第一模型确定第三目标子页表。

计算机设备基于第一模型确定第三目标子页表。其中第三目标子页表是第三关键值在计算机设备上对应的第三键值对的实际地址所在的子页表。

1202、计算机设备基于第三目标子页表确定第三键值对的实际地址。

1203、计算机设备向网络设备发送第一通告消息获取第一版本消息。

其中,计算机设备是通过RDMA单边操作获取第一版本消息,且第一通告消息包含第三键值对的实际地址,可以减少信息交互,提高工作效率。

204、网络设备发送第一版本消息。

在网络设备接收到计算机设备发送的第一通告消息后,网络设备向计算机设备发送第一版本消息。

205、计算机设备向网络设备发送获取第二页表的消息。

计算机设备从网络设备获取第二页表。

在第一版本消息与第二版本消息不一致的情况下,计算机设备向网络设备发送获取第二页表的消息。其中,第二版本信息为第三键值对在计算机设备上的页表中对应的版本信息。

在计算机设备从网络设备获取的第一版本信息与计算机设备上的页表中的第二版本信息不一致的情况下,计算机设备从网络设备获取更新后的第二页表,保证计算机设备与网络设备具备相同的页表,确保在网络设备对第一键值对进行动态操作,导致网络设备上的键值对的实际地址发生变化后,计算机设备仍然能支持静态操作。

一种可能的实现方式中,第一页表包括n个子页表,从上述可知,网络设备得到更新后的m个第二目标子页表。此时计算机设备向网络设备发送获取m个第二目标子页表的消息。

为便于理解,下面继续以上述的图12为例进行具体说明,其中:

1204、计算机设备判断第一版本信息与第二版本信息是否一致。

在第一版本信息与第二版本信息一致的情况下,执行步骤1205。

在第一版本信息与第二版本信息不一致的情况下,执行步骤1206。

1205、计算机设备基于RDMA单边操作从网络设备获取第三目标值。

计算机设备从网络设备获取第三目标值具体包括:计算机设备根据第三键值对的实际地址从网络设备获取对应的叶子节点(叶子节点的数量至少为1个)的关键值,然后计算机设备确定第三关键值所在的叶子节点,并通过RDMA单边操作从网络设备中第三关键值所在的叶子节点获取第三目标值,得到第三目标值(步骤1209)。

1206、计算机设备向网络设备发送获取m个第二目标子页表的消息。其中计算机设备是通过RDMA双边操作向网络设备发送获取m个第二目标子页表的消息以获取m个第二目标子页表。

在本申请的实施方式中,步骤203、步骤204以及步骤205具体说明了计算机设备获取第二页表的条件,以及如何获取第二页表。提供了具体的实施方式,体现了方案的可靠性。

一种可能的实现方式中,在计算机设备为节省内存或内存大小不够的情况下,计算机设备中只具备部分的子页表,当计算机设备接收到的关键值对应的子页表不在计算机设备上时,计算机设备使用RDMA单边操作从网络设备获取对应的子页表。

在本申请的实施方式中,计算机设备只具备部分子页表,当计算机设备接收到的关键值对应的子页表不在计算机设备上时,计算机设备使用RDMA单边操作从网络设备获取对应的子页表。能减少对资源的占用,节省网络资源。

一种可能的实现方式中,计算机设备还向网络设备发送获取第三目标值的消息,该第三目标值为第三键值对包括的第三关键值对应的目标值,然后计算机设备接收由网络设备发送的第三目标值。其中具体请参阅图12的示例,其中:

步骤1206、计算机设备向网络设备发送获取第三目标值的消息。

计算机设备通过RDMA双边操作向网络设备发送获取第三目标值的消息。

需要说明的是,计算机设备向网络设备发送第三目标值的消息,与前述的计算机设备向网络设备发送获取第二页表或m个第二目标子页表的消息可以如步骤1106所示,能一起发送,也可以分开发送,可以理解的是,在实际情况中,具体的实现方式可以根据实际情况确定,具体此处不做限定。

步骤1209、计算机设备得到第三目标值。

计算机设备接收由网络设备发送的第三目标值。

206、网络设备向计算机设备发送第二页表。

网络设备向计算机设备发送第二页表,以使得计算机设备与网络设备具备相同的页表。

从上述可知,计算机设备接收到关键值后,是通过计算机设备具备的页表确定键值对的实际地址,从而获取关键值的对应值,因此为了支持静态操作,需要计算机设备与网络设备具备相同的页表。

从上述可知,可选的,在网络设备接收到计算机设备发送的计算机设备获取第二页表的消息后,网络设备向计算机设备发送第二页表。或者,在网络设备接收到计算机设备发送的计算机设备获取m个第二目标子页表的消息后,网络设备向计算机设备发送m个第二目标子页表。

一种可能的实现方式中,从前述的图5可知,网络设备向计算机设备发送更新后的包括第二目标子页表的底层模型,使得计算机设备与网络设备具备相同的页表。

在本申请的实施方式中,网络设备向计算机设备发送第二页表,保证了计算机设备具备与网络设备相同的页表,计算机设备仍能根据页表高效的支持静态操作。

一种可能的实现中,网络设备在接收到计算机设备发送的获取第三目标值的消息后,根据该消息通过传统的索引结构获取第三目标值,并向计算机设备发送该第三目标值。可选的,网络设备向计算机设备发送第三目标值,以及网络设备向计算机设备发送第二页表或m个第二目标子页表,能在同一个消息中发送,也可以分开发送,具体此处不做限定。下面以网络设备在同一个消息中向计算机设备发送第二页表或m个第二目标子页表,以及第三目标值为例进行详细说明,具体请参阅13,图13为本申请实施例提供的发送第三目标值以及第二页表的一个流程示意图。其中:

1301、网络设备根据传统的索引结构获取第三目标值。

1302、网络设备将第三目标值加到向计算机设备发送的消息中。

1303、网络设备是否具备第二页表。

由于网络设备更新第一页表需要一定的时长,所以当计算机设备获取第二页表时,可能待更新队列中的第一页表或m个第一目标子页表还未更新完成,未得到第二页表或m个第二目标子页表。

在网络设备不具备第二页表的情况下,执行步骤1305。

在网络设备具备第二页表的情况下,执行步骤1304。

1304、网络设备将第二页表加到向计算机设备发送的消息中。

1305、网络设备将消息发送给计算机设备。

在本申请的实施方式中,网络设备接收到计算机设备发送的获取第三目标值的消息,能确保计算机设备在不具备与网络设备相同页表的情况下,能快速的获取第三目标值,支持静态操作,保证工作的正常进行,提高了方案的可靠性。

在计算机设备接收到网络设备发送的第二页表后,计算机设备将自身的第一页表更新为接收到的第二页表,或计算机设备在接收到网络设备发送的m个第二目标子页表后,将自身的m个第一目标子页表更新为m个第二目标子页表。为便于理解,下面继续以图12中的步骤1207以及步骤1208为例说明,其中:

1207、计算机设备判断是否接收到m个第二目标子页表。

在计算机设备接收到m个第二目标子页表的情况下,执行1208。

在计算机设备没接收到m个第二目标子页表的情况下,执行1209。

1208、计算机设备将m个第一目标子页表更新为m个第二目标子页表。

此处仅以图12为例说明计算机设备将与网络设备不同的页表更新为相同的页表,也可能该计算机设备可能本身不具备页表,从网络设备获取第二页表或所有网络设备当前具备的n个子页表(包括没更新的子页表以及更新后的m个第二目标子页表),可以理解的是,图12不对本申请实施例产生实质性的限定。

一种可能的实现中,在网络设备向计算机设备发送第二页表后,在计算机设备得到第二关键值的情况下,网络设备接收由计算机设备发送的第二键值对的实际地址,该第二键值对的实际地址由计算机设备根据计算机设备上的第二页表确定,然后网络设备根据第二键值对的实际地址获取第二目标值。提高了计算机设备在接收到第二页表后,能根据第二页表进行静态操作的具体实施方式,进一步确保方案支持动态操作以及静态操作。其具体实施步骤如下步骤207、步骤208、步骤209以及步骤210所示:

207、计算机设备根据第二页表确定第二键值对的实际地址。

在计算机设备得到第二关键值的情况下(例如从用户或其他设备或器件或软件得到的对第二关键值进行查找操作,可以理解的是,计算机设备具体得到第二关键值的方式有多种,在实际情况中,具体此处不做限定),计算机设备根据第二页表确定第二键值对的实际地址,其中第二键值对包括第二关键值以及与第二关键值对应的第二目标值。

一种可能的实现方式中,计算机设备从网络设备获取的是m个第二目标子页表,计算机设备根据m个第二目标子页表确定第二键值对的实际地址。具体的实施过程如上述图11中所述的类似,具体此处不再赘述。

208、计算机设备向网络设备发送第二键值对的实际地址。

计算机设备向网络设备发送第二键值对的实际地址。

209、网络设备根据第二键值对的实际地址获取第二目标值。

在网络设备接收到计算机设备发送的第二键值对的实际地址后,网络设备根据第二键值对的实际地址获取第二目标值。

210、网络设备向计算机设备发送第二目标值。

网络设备向计算机设备发送第二目标值。

需要说明的是,步骤208、步骤209以及步骤210的具体实现过程与上述图11中的步骤1105类似,具体此处不再赘述。

需要说明的是,上述图2仅仅作为一个示例,用于理解本申请。可以理解的是,本申请的具体实施步骤和实施方式可以根据实际情况进行确定,不用限定在图2所示的实施例中,具体此处不做限定。

在本申请实施例中,计算机设备向网络设备发送第一键值对,网络设备在接收到第一键值对后,根据第一键值对对第一页表进行更新,得到第二页表,并将第二页表发送给计算机设备,使得计算机设备与网络设备具备相同的页表。确保了计算机设备能支持动态操作以及静态操作,增加了适用的应用场景,提高了工作效率。且计算机设备根据页表能尽可能的使用RDMA单边操作加速远程有序索引中的静态操作,同时网络设备在对第一键值对进行动态操作后,能更新页表且保证计算机设备具备相同的页表,保证了对动态操作以及静态操作的支持。

需要说明的是,网络设备可以是云侧设备(如,云服务器,集群等)、远程存储设备、服务器或控制器等,可以理解的是,还能是其他存储数据的设备,具体此处不做限定。

需要说明的是,计算机设备可以是个人电脑、笔记本电脑、服务器或其他能进行远端操作的设备,具体此处不做限定。

下面分别举例说明将本申请实施例应用到键值存储以及数据库等实际应用场景中的有益效果。

例如将本申请实施例应用到典型的键值存储的微基准测试YCSB中,该测试包含了动态操作和静态操作的测试场景。主要采用包含了大量插入操作的YCSB-D作为测试场景。其中具体请求分布为95%的读操作和5%的插入操作。采用了等概率随机选择记录(uniform)以及近期写入的记录是热记录(latest)的两种方式生成关键值。该测试在一个16台计算机设备的RDMA集群进行,每台计算机设备有两个12核处理器,128G内存和两张RDMA网卡,将一台计算机设备设置为服务器,其余计算机设备作为客户端。可分别得到图14(a)以及图14(b)的数据图,图14(a)为本申请实施例提供的uniform场景测试数据的一个示意图,图14(b)为本申请实施例提供的latest场景测试数据的一个示意图。

其中,DrTM-tree是当前典型的基于RDMA双边操作的键值存储,cell是典型的基于RDMA单边操作的键值存储,使用的传统的索引缓存,optimal是将B+树完全缓存在客户端的智能缓存。且times表示时刻,throughput表示是数据的吞吐量,从图14(a)以及图14(b)可知,本申请实施例在两个场景中分别比其他方式的数据的吞吐量多2.7倍—3.5倍和1.9倍—3.2倍,且能获得相对稳定的性能,表示本申请实施例能更快更稳定的完成静态操作以及动态操作。相比uniform场景,本申请实施例在latest场景下性能波动更多,原因是由于在uniform场景下,客户端查找的关键值按随机的方式从服务器的键值对中进行挑选,而latest场景下,客户端查找的关键值是从最新插入的关键值中挑选,由此客户端查询的关键值可能是对应的页表需要更新的关键值,对测试产生了一定的影响。但是相比其他方案,本申请实施例仍然能获得一个较稳定的高性能。

例如将本申请实施例应用到典型的联机事务处理过程(on-line transactionprocessing,OLTP)数据库场景的数据库测试基准TPC-C中,该测试包括了如二级索引查找等复杂的数据库操作,这些操作能通过本申请实施例进行加速。请参阅图15,图15为本申请实施例提供的TPC-C场景测试数据的一个示意图。

其中,DrTM+H表示采用DrTM+tree支持二级索引,而DrTM+tree无法支持RDMA单边操作进行加速,DrTM+X表示采用本申请实施例支持二级索引,throughput per machine表示每个设备数据的吞吐量,其单位K reqs/s表示每秒1000reqs,median latency表示时延,其单位为毫秒(ms)。从图15可知,相同条件下,吞吐量与时延成正比,但是可以看出DrTM+X的吞吐量比DrTM+H多,但是时延更短,且其中DrTM+X相比DrTM+H能获得约2.3倍的性能提升,同时本申请实施例还能支持动态操作,进一步解决动态操作对二级索引造成的影响。

在该场景中本申请实施例采用的是上述分为第一模型以及n个底层模型的动态智能缓存,当采用不同的机器学习模型为第一模型时,本申请实施例在该场景中的性能不同。以第一模型分别为线性回归以及多元线性回归为例进行说明,请参阅图16,图16为本申请实施例提供的第一模型为不同学习模型的测试数据的一个示意图。其中LR表示线性回归,MLR表示多元线性回归,median latency表示时延,其单位为微秒(us),throughput为吞吐量,单位为M reqs/s表示每秒1000000reqs。从图16可知,多元线性回归作为第一模型能与线性回归相比,能获得约4.1倍的性能提升。由此,可以得出,尽可能选择泛化能力较强的机器学习模型作为第一模型,能高效的提高工作效率。

从上述将本申请实施例应用到实际场景的例子中可以看出,本申请实施例能高效支持静态操作,支持动态操作的时候还能保证稳定的性能,能高效的提供工作效率,适用多种应用场景。

为了实现上述本申请实施例提供的方法中的各功能,网络设备、计算机设备均可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。

如图17所示,本申请实施例还提供了一种网络设备1700。具体请参阅图17,图17为本申请实施例提供的网络设备的一个结构示意图,该网络设备1700可以是云侧设备(如,云服务器,集群等)、远程存储设备、服务器或控制器等装置。一种可能的实现中,该网络设备1700可以包括执行上述方法实施例中网络设备执行的方法/操作/步骤/动作所一一对应的模块或单元,该单元可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。一种可能的实现中,该网络设备1700可以包括:接收单元1701、更新单元1702以及发送单元1703。接收单元1701可以用于执行如上述方法实施例中接收由计算机设备发送的第一键值对的步骤,更新单元1702可以用于执行如上述方法实施例中基于所述第一键值对对第一页表进行更新,得到第二页表的步骤,发送单元1703可以用于执行如上述方法实施例中向所述计算机设备发送所述第二页表的步骤。

另一种可能的实现中,上述接收单元1701,还可以用于在计算机设备得到第二关键值的情况下,接收由计算机设备发送的第二键值对的实际地址,该网络设备1700还可以包括获取单元1704,获取单元1704可以用于根据第二键值对的实际地址获取第二目标值,上述发送单元,还可以用于根据第二键值对的实际地址获取第二目标值。

在其他可能的设计中,上述接收单元1701、更新单元1702、发送单元1703或获取单元1704可以一一对应的执行上述方法实施例中各种可能的实现方式中的方法/操作/步骤/动作。

在一种可能的设计中,上述接收单元1701,还可以用于接收上述方法实施例中由计算机设备发送的第一通告消息。

在一种可能的设计中,上述接收单元1701,还可以用于接收上述方法实施例中的由计算机设备发送的计算机设备获取第二页表的消息。

在一种可能的设计中,上述接收单元1701,还可以用于接收上述方法实施例中的由计算机设备发送的获取第三目标值的消息。

在一种可能的设计中,上述更新单元1702,可以用于当第一页表包括n个子页表时,根据第一键值对从n个子页表中确定m个第一目标子页表,n≥m≥1,以及对m个第一目标子页表进行更新,得到更新后的m个第二目标子页表。

在一种可能的设计中,上述更新单元1702,可以用于对第一键值对进行删除操作,得到更新后的键值对的实际地址,以及根据更新后的键值对的实际地址对第一页表进行更新,得到第二页表。

在一种可能的设计中,上述更新单元1702,可以对第一键值对进行插入操作,得到更新后的键值对的实际地址,以及根据更新后的键值对的实际地址对第一页表进行更新,得到第二页表。

在一种可能的设计中,上述发送单元1703,还可以用于向计算机设备发送第一版本信息。

在一种可能的设计中,上述发送单元1703,还可以用于将第三目标值向计算机设备发送。

在一种可能的设计中,上述发送单元1703,可以用于向计算机设备发送m个第二目标子页表。

在一种可能的设计中,上述获取单元1704,还可以用于获取第三目标值。

本申请上述的各种设计的网络设备的有益效果请参考上述图2中方法实施例中一一对应的各种实现方式的有益效果,具体此处不再赘述。

需要说明的是,图17对应实施例的网络设备中各模块/单元之间的信息交互、执行过程等内容,与本申请中图2对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

另外,在本申请各个实施例中的各功能模块或单元可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块或单元集成在一个模块或单元中。上述集成的模块或单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

如图18所示,本申请实施例还提供了一种计算机设备1800。具体请参阅图18,图18为本申请实施例提供的计算机设备的一个结构示意图,该计算机设备1800可以是个人电脑、笔记本电脑、服务器或其他能进行远端操作的设备等装置。一种可能的实现中,该计算机设备1800可以包括执行上述方法实施例中计算机设备执行的方法/操作/步骤/动作所一一对应的模块或单元,该单元可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。一种可能的实现中,该计算机设备1800可以包括:发送单元1801以及获取单元1802。发送单元1801可以用于执行如上述方法实施例中向网络设备发送第一键值对的步骤,获取单元1802可以用于执行如上述方法实施例中从网络设备获取第二页表的步骤。

另一种可能的实现中,上述接收单元1701,还包括确定单元1803以及接收单元1804,确定单元1803可以用于在计算机设备得到第二关键值的情况下,根据第二页表确定第二键值对的实际地址,接收单元1804可以用于接收由网络设备发送的第一版本信息。

在其他可能的设计中,上述发送单元1801、获取单元1802、确定单元1803或接收单元1804可以一一对应的执行上述方法实施例中各种可能的实现方式中的方法/操作/步骤/动作。

在一种可能的设计中,上述发送单元1801,还用于向网络设备发送第一通告消息,第一通告消息用于通告指示网络设备获取第一版本信息。

在一种可能的设计中,上述发送单元1801,还用于向网络设备发送获取第三目标值的消息。

在一种可能的设计中,上述获取单元1802,还用于根据第二键值对的实际地址从网络设备获取第二目标值。

在一种可能的设计中,上述获取单元1802,还用于从网络设备获取第二页表。

在一种可能的设计中,上述获取单元1802,可以用于当第一页表包括n个子页表时,从网络设备获取m个第一目标子页表。

在一种可能的设计中,上述接收单元1804,还用于接收由网络设备发送的第三目标值。

本申请上述的各种设计的计算机设备的有益效果请参考上述图2中方法实施例中一一对应的各种实现方式的有益效果,具体此处不再赘述。

需要说明的是,图18对应实施例的网络设备中各模块/单元之间的信息交互、执行过程等内容,与本申请中图2对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

另外,在本申请各个实施例中的各功能模块或单元可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块或单元集成在一个模块或单元中。上述集成的模块或单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

接下来介绍本申请实施例提供的一种通信装置,请参阅图19,图19为本申请实施例提供的通信装置的一个结构示意图,通信装置1900上可以部署有图17或图18对应实施例中所描述的模块,用于实现图17对应实施例中网络设备的功能,或用于实现图18对应实施例中计算机设备的功能,具体的,通信装置1900由一个或多个服务器实现,通信装置1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1922(例如,一个或一个以上中央处理器)和存储器1932,一个或一个以上的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对通信装置1900中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在通信装置1900上执行存储介质1930中的一系列指令操作。

通信装置1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,和/或,一个或一个以上输入输出接口1958。

本申请实施例中,中央处理器1922,用于执行图2对应实施例中的方法。例如,中央处理器1922可以用于:接收计算机设备发送的第一键值对,并基于第一键值对对第一页表进行更新,得到第二页表,并向计算机设备发送第二页表,以使得计算机设备与网络设备具备相同的页表。或中央处理器1922可以用于:向网络设备发送第一键值对,然后从网络设备获取第二页表,该第二页表由网络设备基于第一键值对对第一页表进行更新得到。

需要说明的是,中央处理器1922还可以用于执行与本申请中图2对应的方法实施例中任意一个步骤,具体内容可参见本申请前述所示的方法实施例中的叙述,具体此处不再赘述。

本申请实施例还提供一种计算机可读存储介质,包括计算机可读指令,当计算机可读指令在计算机上运行时,使得计算机执行如前述方法实施例所示任一项实现方式。

本申请实施例还提供的一种计算机程序产品,计算机程序产品包括计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行如前述方法实施例所示任一项实现方式。

本申请还提供一种芯片或芯片系统,该芯片可包括处理器。该芯片还可包括存储器(或存储模块)和/或收发器(或通信模块),或者,该芯片与存储器(或存储模块)和/或收发器(或通信模块)耦合,其中,收发器(或通信模块)可用于支持该芯片进行有线和/或无线通信,存储器(或存储模块)可用于存储程序或一组指令,该处理器调用该程序或该组指令可用于实现上述方法实施例、方法实施例的任意一种可能的实现方式中由终端或者网络设备执行的操作。该芯片系统可包括以上芯片,也可以包含上述芯片和其他分立器件,如存储器(或存储模块)和/或收发器(或通信模块)。

本申请还提供一种通信系统,该通信系统可包括以上网络设备和计算机设备。该通信系统可用于实现上述方法实施例以及方法实施例的任意一种可能的实现方式中由网络设备或者计算机设备执行的操作。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state drive,SSD))等。

技术分类

06120115989651