一种数据处理方法及系统与流程

文档序号:16465862发布日期:2019-01-02 22:47阅读:173来源:国知局
一种数据处理方法及系统与流程

本申请涉及数据处理技术领域,尤其涉及一种数据处理方法及系统。



背景技术:

目前,为了保证服务器存储子系统中数据的可靠性,同时又能获得比较理想的cpu(centralprocessingunit,中央处理器)的访存性能,可以考虑在服务器中使用nvdimm(none-volatiledimm,非易失内存)。此类存储设备可以保证在系统突然断电或者异常的情况下,存储在其中的数据不会立即丢失。借助一定的软固件恢复机制,可以在系统重新上电后,将保存在非易失存储介质中的数据快速恢复,以实现关键数据持久化存储或压缩系统启动时间的目的。

现代计算系统多处理器架构通常会采用物理上分离的计算节点和内存簇设计来更好的实现多任务计算,但是在跨节点访问内存簇时由于电气特性因素其访问速度会有所区别。numa(nonuniformmemoryaccessarchitecture,非统一内存访问架构)的特点是被共享的存储器是分布在系统各个节点上的,各节点cpu对分布式存储器的读写带宽并不一致。cpu对本节点存储器访问带宽较高,对远端(其它节点)存储器访问带宽相对较低。

当基于numa的多节点计算系统为了保证数据的可靠性与可恢复性而采用了nvdimm作为存储器件时,由于非易失内存与易失性内存在使用方法上有一定的区别,因此如何实现cpu对nvdimm访问延时的动态平衡是一项亟待解决的问题。



技术实现要素:

有鉴于此,本申请提供一种数据处理方法,能够实现cpu对nvdimm访问延时的动态平衡。

本申请提供了一种数据处理方法,包括:

绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备;

将所述缓存块设备作为读写缓存与系统中的存储设备绑定;

判断计算节点读写缓存是否命中;

当计算节点读写缓存未命中且所述缓存nvdimm内有空闲空间时,判断近端nvdimm是否有空间;

当近端nvdimm有空间时,将缓存部署到近端nvdimm。

优选地,所述方法还包括:

当近端nvdimm无空间时,将缓存部署到远端nvdimm。

优选地,所述方法还包括:

当计算节点读写缓存未命中且所述缓存nvdimm内无空闲空间时,配置成替换本地缓存或全局替换缓存;

判断是否为全局替换缓存,若是,则在全节点nvdimm上替换缓存,若否,则:

在本节点nvdimm上替换缓存。

优选地,所述方法还包括:

当计算节点读写缓存命中时,更新缓存元数据;

判断命中缓存是否位于本地nvdimm,若是,则更新元数据减少远程命中计数器数值,若否,则:

更新元数据增加远程命中计数器数值;

判断远程命中计数器中的计数是否达到预设阈值,若是,则交换远程中的缓存至本地。

优选地,所述绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备前还包括:

在系统中的存储设备上部署业务和数据。

一种数据处理系统,包括:

存储器,用于存储应用程序与应用程序运行所产生的数据;

处理器,用于运行所述应用程序以绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备,将所述缓存块设备作为读写缓存与系统中的存储设备绑定,判断计算节点读写缓存是否命中,当计算节点读写缓存未命中且所述缓存nvdimm内有空闲空间时,判断近端nvdimm是否有空间,当近端nvdimm有空间时,将缓存部署到近端nvdimm。

优选地,所述处理器还用于:

运行所述应用程序以当近端nvdimm无空间时,将缓存部署到远端nvdimm。

优选地,所述处理器还用于:

运行所述应用程序以当计算节点读写缓存未命中且所述缓存nvdimm内无空闲空间时,配置成替换本地缓存或全局替换缓存,判断是否为全局替换缓存,若是,则在全节点nvdimm上替换缓存,若否,则:在本节点nvdimm上替换缓存。

优选地,所述处理器还用于:

运行所述应用程序以当计算节点读写缓存命中时,更新缓存元数据,判断命中缓存是否位于本地nvdimm,若是,则更新元数据减少远程命中计数器数值,若否,则:更新元数据增加远程命中计数器数值,判断远程命中计数器中的计数是否达到预设阈值,若是,则交换远程中的缓存至本地。

优选地,所述处理器还用于:在绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备前,在系统中的存储设备上部署业务和数据。

从上述技术方案可以看出,本申请公开的一种数据处理方法,首先通过绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备,然后将缓存块设备作为读写缓存与系统中的存储设备绑定,并判断计算节点读写缓存是否命中,当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,判断近端nvdimm是否有空间,当近端nvdimm有空间时,将缓存部署到近端nvdimm,实现了cpu对nvdimm访问延时的动态平衡。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请公开的一种数据处理方法实施例1的方法流程图;

图2为本申请公开的一种数据处理方法实施例2的方法流程图;

图3为本申请公开的一种数据处理方法实施例3的方法流程图;

图4为本申请公开的一种数据处理方法实施例4的方法流程图;

图5为本申请公开的一种数据处理系统实施例1的结构示意图;

图6为本申请公开的一种数据处理系统实施例2的结构示意图;

图7为本申请公开的一种数据处理系统实施例3的结构示意图;

图8为本申请公开的一种数据处理系统实施例4的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

如图1所示,为本申请公开的一种数据处理方法实施例1的方法流程图,所述方法可以包括以下步骤:

s101、绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备;

当需要实现cpu对nvdimm访问延时的动态平衡时,首先将多节点计算系统中的多个nvdimm做扩展模式绑定,使其扩展成一个统一的块设备。其中,在绑定时,由于linux内核包含devicemapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。

s102、将缓存块设备作为读写缓存与系统中的存储设备绑定;

当形成一个扩展的缓存块设备后,将新构造的块设备作为读写缓存与系统中的存储设备绑定。例如,将块设备作为读写缓存与nvme或hdd结合。

s103、判断计算节点读写缓存是否命中;

然后,判断计算节点读写缓存是否命中,在判断时是通过读取cache中相应缓存数据的元数据来完成,元数据中记录了cache中缓存数据对应于源设备上的块号,通过该块号是否存在于元数据中就可以判断命中与否。

s104、当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,判断近端nvdimm是否有空间;

当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,进一步判断近端nvdimm是否有空间。

s105、当近端nvdimm有空间时,将缓存部署到近端nvdimm。

综上所述,在上述实施例中,首先通过绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备,然后将缓存块设备作为读写缓存与系统中的存储设备绑定,并判断计算节点读写缓存是否命中,当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,判断近端nvdimm是否有空间,当近端nvdimm有空间时,将缓存部署到近端nvdimm,将访存数据尽可能从近端选择缓存单元空间,实现了cpu对nvdimm访问延时的动态平衡。

如图2所示,为本申请公开的一种数据处理方法实施例2的方法流程图,所述方法可以包括以下步骤:

s201、在系统中的存储设备上部署业务和数据;

当需要实现cpu对nvdimm访问延时的动态平衡时,首先在系统中的nvme或hdd上部署业务和数据。其中,在部署时,具体业务的部署取决于服务器的应用场景,如web服务器,邮件服务器,或者数据库服务器等。

以常见的数据库服务器为例,部署的业务数据既是用于保存数据的数据库文件和应用程序,这些文件和应用是数据库服务器为客户应用提供服务的基础。这些服务包括查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等。

s202、绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备;

然后,将多节点计算系统中的多个nvdimm做扩展模式绑定,使其扩展成一个统一的块设备。其中,在绑定时,由于linux内核包含devicemapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。

s203、将缓存块设备作为读写缓存与系统中的存储设备绑定;

当形成一个扩展的缓存块设备后,将新构造的块设备作为读写缓存与系统中的存储设备绑定。例如,将块设备作为读写缓存与nvme或hdd结合。

s204、判断计算节点读写缓存是否命中;

然后,判断计算节点读写缓存是否命中,在判断时是通过读取cache中相应缓存数据的元数据来完成,元数据中记录了cache中缓存数据对应于源设备上的块号,通过该块号是否存在于元数据中就可以判断命中与否。

s205、当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,判断近端nvdimm是否有空间;

当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,进一步判断近端nvdimm是否有空间。

s206、当近端nvdimm有空间时,将缓存部署到近端nvdimm;

s207、当近端nvdimm无空间时,将缓存部署到远端nvdimm。

综上所述,在上述实施例中,首先在系统中的存储设备上部署业务和数据,然后通过绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备,然后将缓存块设备作为读写缓存与系统中的存储设备绑定,并判断计算节点读写缓存是否命中,当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,判断近端nvdimm是否有空间,当近端nvdimm有空间时,将缓存部署到近端nvdimm,当近端nvdimm无空间时,将缓存部署到远端nvdimm,由此可以看出,将系统中工作在块设备方式的多个跨节点nvdimm,以numa的设计思路组织起来,将节点中频繁读写的扇区数据尽可能优先放置在本地,而非远端,只有在近端缓存空间耗尽的状况下,再去远端寻找缓存空间,实现了cpu对nvdimm访问延时的动态平衡。

如图3所示,为本申请公开的一种数据处理方法实施例3的方法流程图,所述方法可以包括以下步骤:

s301、在系统中的存储设备上部署业务和数据;

当需要实现cpu对nvdimm访问延时的动态平衡时,首先在系统中的nvme或hdd上部署业务和数据。其中,在部署时,具体业务的部署取决于服务器的应用场景,如web服务器,邮件服务器,或者数据库服务器等。

以常见的数据库服务器为例,部署的业务数据既是用于保存数据的数据库文件和应用程序,这些文件和应用是数据库服务器为客户应用提供服务的基础。这些服务包括查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等。

s302、绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备;

然后,将多节点计算系统中的多个nvdimm做扩展模式绑定,使其扩展成一个统一的块设备。其中,在绑定时,由于linux内核包含devicemapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。

s303、将缓存块设备作为读写缓存与系统中的存储设备绑定;

当形成一个扩展的缓存块设备后,将新构造的块设备作为读写缓存与系统中的存储设备绑定。例如,将块设备作为读写缓存与nvme或hdd结合。

s304、判断计算节点读写缓存是否命中;

然后,判断计算节点读写缓存是否命中,在判断时是通过读取cache中相应缓存数据的元数据来完成,元数据中记录了cache中缓存数据对应于源设备上的块号,通过该块号是否存在于元数据中就可以判断命中与否。

s305、当计算节点读写缓存未命中且缓存nvdimm内无空闲空间时,配置成替换本地缓存或全局替换缓存;

当计算节点读写缓存未命中且缓存nvdimm内无空闲空间时,可配置成替换本地缓存或全局替换缓存,类似于numa的访存策略。

s306、判断是否为全局替换缓存,若是,则进入s307,若否,则进入s308:

s307、在全节点nvdimm上替换缓存;

当为全局替换缓存模式时,在全节点nvdimm上替换缓存。

s308、在本节点nvdimm上替换缓存。

当为本地替换缓存模式时,只在本节点nvdimm上替换缓存。

综上所述,在上述实施例中,当计算节点读写缓存未命中且缓存nvdimm内无空闲空间时,配置成替换本地缓存或全局替换缓存,当为全局替换缓存模式时,在全节点nvdimm上替换缓存,当为本地替换缓存模式时,只在本节点nvdimm上替换缓存,实现了cpu对nvdimm访问延时的动态平衡。

如图4所示,为本申请公开的一种数据处理方法实施例4的方法流程图,所述方法可以包括以下步骤:

s401、在系统中的存储设备上部署业务和数据;

当需要实现cpu对nvdimm访问延时的动态平衡时,首先在系统中的nvme或hdd上部署业务和数据。其中,在部署时,具体业务的部署取决于服务器的应用场景,如web服务器,邮件服务器,或者数据库服务器等。

以常见的数据库服务器为例,部署的业务数据既是用于保存数据的数据库文件和应用程序,这些文件和应用是数据库服务器为客户应用提供服务的基础。这些服务包括查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等。

s402、绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备;

然后,将多节点计算系统中的多个nvdimm做扩展模式绑定,使其扩展成一个统一的块设备。其中,在绑定时,由于linux内核包含devicemapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。

s403、将缓存块设备作为读写缓存与系统中的存储设备绑定;

当形成一个扩展的缓存块设备后,将新构造的块设备作为读写缓存与系统中的存储设备绑定。例如,将块设备作为读写缓存与nvme或hdd结合。

s404、判断计算节点读写缓存是否命中;

然后,判断计算节点读写缓存是否命中,在判断时是通过读取cache中相应缓存数据的元数据来完成,元数据中记录了cache中缓存数据对应于源设备上的块号,通过该块号是否存在于元数据中就可以判断命中与否。

s405、当计算节点读写缓存命中时,更新缓存元数据;

当在nvdimm中命中时,则对该缓存的元数据进行更新。

s406、判断命中缓存是否位于本地nvdimm,若是,则进入s407,若否,则进入s408:

在更新的过程中,并判断是本地命中还是远端命中。

s407、更新元数据减少远程命中计数器数值;

当为本地命中时,则减少元数据中的远程命中计数值,减到零为止。

s408、更新元数据增加远程命中计数器数值;

当为远程命中时,则增加元数据中的远程命中计数值。

s409、判断远程命中计数器中的计数是否达到预设阈值,若是,则进入s410:

在增加元数据中的远程命中计数值时,判断远程命中次数是否达到预设阈值。

s410、交换远程中的缓存至本地。

当远程命中次数达到预设阈值时,则交换远程节点中的缓存至本地,被选中的远程交换对象单元为远程命中计数值最大的单元,若未达到预设阈值,则继续等待节点的下一次访问。

综上所述,在上述实施例中,当计算节点读写缓存命中时,更新缓存元数据,判断命中缓存是否位于本地nvdimm,当为本地命中时,则减少元数据中的远程命中计数值,减到零为止,当为远程命中时,则增加元数据中的远程命中计数值,在增加元数据中的远程命中计数值时,判断远程命中次数是否达到预设阈值,当远程命中次数达到预设阈值时,交换远程中的缓存至本地,实现了cpu对nvdimm访问延时的动态平衡。

如图5所示,为本申请公开的一种数据处理系统实施例1的结构示意图,所述系统可以包括:

存储器501,用于存储应用程序与应用程序运行所产生的数据;

处理器502,用于运行所述应用程序以绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备;

当需要实现cpu对nvdimm访问延时的动态平衡时,首先将多节点计算系统中的多个nvdimm做扩展模式绑定,使其扩展成一个统一的块设备。其中,在绑定时,由于linux内核包含devicemapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。

处理器502,还用于将缓存块设备作为读写缓存与系统中的存储设备绑定;

当形成一个扩展的缓存块设备后,将新构造的块设备作为读写缓存与系统中的存储设备绑定。例如,将块设备作为读写缓存与nvme或hdd结合。

处理器502,还用于判断计算节点读写缓存是否命中;

然后,判断计算节点读写缓存是否命中,在判断时是通过读取cache中相应缓存数据的元数据来完成,元数据中记录了cache中缓存数据对应于源设备上的块号,通过该块号是否存在于元数据中就可以判断命中与否。

处理器502,还用于当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,判断近端nvdimm是否有空间;

当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,进一步判断近端nvdimm是否有空间。

处理器502,还用于当近端nvdimm有空间时,将缓存部署到近端nvdimm。

综上所述,在上述实施例中,首先通过绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备,然后将缓存块设备作为读写缓存与系统中的存储设备绑定,并判断计算节点读写缓存是否命中,当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,判断近端nvdimm是否有空间,当近端nvdimm有空间时,将缓存部署到近端nvdimm,将访存数据尽可能从近端选择缓存单元空间,实现了cpu对nvdimm访问延时的动态平衡。

如图6所示,为本申请公开的一种数据处理系统实施例2的结构示意图,所述系统可以包括:

存储器601,用于存储应用程序与应用程序运行所产生的数据;

处理器602,用于运行所述应用程序以在系统中的存储设备上部署业务和数据;

当需要实现cpu对nvdimm访问延时的动态平衡时,首先在系统中的nvme或hdd上部署业务和数据。其中,在部署时,具体业务的部署取决于服务器的应用场景,如web服务器,邮件服务器,或者数据库服务器等。

以常见的数据库服务器为例,部署的业务数据既是用于保存数据的数据库文件和应用程序,这些文件和应用是数据库服务器为客户应用提供服务的基础。这些服务包括查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等。

处理器602,还用于绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备;

然后,将多节点计算系统中的多个nvdimm做扩展模式绑定,使其扩展成一个统一的块设备。其中,在绑定时,由于linux内核包含devicemapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。

处理器602,还用于将缓存块设备作为读写缓存与系统中的存储设备绑定;

当形成一个扩展的缓存块设备后,将新构造的块设备作为读写缓存与系统中的存储设备绑定。例如,将块设备作为读写缓存与nvme或hdd结合。

处理器602,还用于判断计算节点读写缓存是否命中;

然后,判断计算节点读写缓存是否命中,在判断时是通过读取cache中相应缓存数据的元数据来完成,元数据中记录了cache中缓存数据对应于源设备上的块号,通过该块号是否存在于元数据中就可以判断命中与否。

处理器602,还用于当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,判断近端nvdimm是否有空间;

当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,进一步判断近端nvdimm是否有空间。

处理器602,还用于当近端nvdimm有空间时,将缓存部署到近端nvdimm;

处理器602,还用于当近端nvdimm无空间时,将缓存部署到远端nvdimm。

综上所述,在上述实施例中,首先在系统中的存储设备上部署业务和数据,然后通过绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备,然后将缓存块设备作为读写缓存与系统中的存储设备绑定,并判断计算节点读写缓存是否命中,当计算节点读写缓存未命中且缓存nvdimm内有空闲空间时,判断近端nvdimm是否有空间,当近端nvdimm有空间时,将缓存部署到近端nvdimm,当近端nvdimm无空间时,将缓存部署到远端nvdimm,由此可以看出,将系统中工作在块设备方式的多个跨节点nvdimm,以numa的设计思路组织起来,将节点中频繁读写的扇区数据尽可能优先放置在本地,而非远端,只有在近端缓存空间耗尽的状况下,再去远端寻找缓存空间,实现了cpu对nvdimm访问延时的动态平衡。

如图7所示,为本申请公开的一种数据处理系统实施例3的结构示意图,所述系统可以包括:

存储器701,用于存储应用程序与应用程序运行所产生的数据;

处理器702,用于运行所述应用程序以在系统中的存储设备上部署业务和数据;

当需要实现cpu对nvdimm访问延时的动态平衡时,首先在系统中的nvme或hdd上部署业务和数据。其中,在部署时,具体业务的部署取决于服务器的应用场景,如web服务器,邮件服务器,或者数据库服务器等。

以常见的数据库服务器为例,部署的业务数据既是用于保存数据的数据库文件和应用程序,这些文件和应用是数据库服务器为客户应用提供服务的基础。这些服务包括查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等。

处理器702,还用于绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备;

然后,将多节点计算系统中的多个nvdimm做扩展模式绑定,使其扩展成一个统一的块设备。其中,在绑定时,由于linux内核包含devicemapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。

处理器702,还用于将缓存块设备作为读写缓存与系统中的存储设备绑定;

当形成一个扩展的缓存块设备后,将新构造的块设备作为读写缓存与系统中的存储设备绑定。例如,将块设备作为读写缓存与nvme或hdd结合。

处理器702,还用于判断计算节点读写缓存是否命中;

然后,判断计算节点读写缓存是否命中,在判断时是通过读取cache中相应缓存数据的元数据来完成,元数据中记录了cache中缓存数据对应于源设备上的块号,通过该块号是否存在于元数据中就可以判断命中与否。

处理器702,还用于当计算节点读写缓存未命中且缓存nvdimm内无空闲空间时,配置成替换本地缓存或全局替换缓存;

当计算节点读写缓存未命中且缓存nvdimm内无空闲空间时,可配置成替换本地缓存或全局替换缓存,类似于numa的访存策略。

处理器702,还用于判断是否为全局替换缓存;

处理器702,还用于当为全局替换缓存模式时,在全节点nvdimm上替换缓存;

当为全局替换缓存模式时,在全节点nvdimm上替换缓存。

处理器702,还用于当为本地替换缓存模式时,在本节点nvdimm上替换缓存。

当为本地替换缓存模式时,只在本节点nvdimm上替换缓存。

综上所述,在上述实施例中,当计算节点读写缓存未命中且缓存nvdimm内无空闲空间时,配置成替换本地缓存或全局替换缓存,当为全局替换缓存模式时,在全节点nvdimm上替换缓存,当为本地替换缓存模式时,只在本节点nvdimm上替换缓存,实现了cpu对nvdimm访问延时的动态平衡。

如图8所示,为本申请公开的一种数据处理系统实施例4的结构示意图,所述系统可以包括:

存储器801,用于存储应用程序与应用程序运行所产生的数据;

处理器802,用于运行所述应用程序以在系统中的存储设备上部署业务和数据;

当需要实现cpu对nvdimm访问延时的动态平衡时,首先在系统中的nvme或hdd上部署业务和数据。其中,在部署时,具体业务的部署取决于服务器的应用场景,如web服务器,邮件服务器,或者数据库服务器等。

以常见的数据库服务器为例,部署的业务数据既是用于保存数据的数据库文件和应用程序,这些文件和应用是数据库服务器为客户应用提供服务的基础。这些服务包括查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等。

处理器802,还用于绑定多节点计算系统中的多个nvdimm,形成一个扩展的缓存块设备;

然后,将多节点计算系统中的多个nvdimm做扩展模式绑定,使其扩展成一个统一的块设备。其中,在绑定时,由于linux内核包含devicemapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。

处理器802,还用于将缓存块设备作为读写缓存与系统中的存储设备绑定;

当形成一个扩展的缓存块设备后,将新构造的块设备作为读写缓存与系统中的存储设备绑定。例如,将块设备作为读写缓存与nvme或hdd结合。

处理器802,还用于判断计算节点读写缓存是否命中;

然后,判断计算节点读写缓存是否命中,在判断时是通过读取cache中相应缓存数据的元数据来完成,元数据中记录了cache中缓存数据对应于源设备上的块号,通过该块号是否存在于元数据中就可以判断命中与否。

处理器802,还用于当计算节点读写缓存命中时,更新缓存元数据;

当在nvdimm中命中时,则对该缓存的元数据进行更新。

处理器802,还用于判断命中缓存是否位于本地nvdimm;

在更新的过程中,并判断是本地命中还是远端命中。

处理器802,还用于当为本地命中时,更新元数据减少远程命中计数器数值;

当为本地命中时,则减少元数据中的远程命中计数值,减到零为止。

处理器802,还用于当为远程命中时,更新元数据增加远程命中计数器数值;

当为远程命中时,则增加元数据中的远程命中计数值。

处理器802,还用于判断远程命中计数器中的计数是否达到预设阈值;

在增加元数据中的远程命中计数值时,判断远程命中次数是否达到预设阈值。

处理器802,还用于当远程命中次数达到预设阈值时,交换远程中的缓存至本地。

当远程命中次数达到预设阈值时,则交换远程节点中的缓存至本地,被选中的远程交换对象单元为远程命中计数值最大的单元,若未达到预设阈值,则继续等待节点的下一次访问。

综上所述,在上述实施例中,当计算节点读写缓存命中时,更新缓存元数据,判断命中缓存是否位于本地nvdimm,当为本地命中时,则减少元数据中的远程命中计数值,减到零为止,当为远程命中时,则增加元数据中的远程命中计数值,在增加元数据中的远程命中计数值时,判断远程命中次数是否达到预设阈值,当远程命中次数达到预设阈值时,交换远程中的缓存至本地,实现了cpu对nvdimm访问延时的动态平衡。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1