CN109117088B - 一种数据处理方法及系统 - Google Patents

一种数据处理方法及系统 Download PDF

Info

Publication number
CN109117088B
CN109117088B CN201810820098.3A CN201810820098A CN109117088B CN 109117088 B CN109117088 B CN 109117088B CN 201810820098 A CN201810820098 A CN 201810820098A CN 109117088 B CN109117088 B CN 109117088B
Authority
CN
China
Prior art keywords
cache
nvdimm
hit
node
read
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
Application number
CN201810820098.3A
Other languages
English (en)
Other versions
CN109117088A (zh
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201810820098.3A priority Critical patent/CN109117088B/zh
Publication of CN109117088A publication Critical patent/CN109117088A/zh
Application granted granted Critical
Publication of CN109117088B publication Critical patent/CN109117088B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

本申请公开了一种数据处理方法及系统,方法包括:绑定多节点计算系统中的多个NVDIMM,形成一个扩展的缓存块设备,将缓存块设备作为读写缓存与系统中的存储设备绑定,判断计算节点读写缓存是否命中,当计算节点读写缓存未命中且所述缓存NVDIMM内有空闲空间时,判断近端NVDIMM是否有空间,当近端NVDIMM有空间时,将缓存部署到近端NVDIMM。本申请能够实现CPU对NVDIMM访问延时的动态平衡。

Description

一种数据处理方法及系统
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据处理方法及系统。
背景技术
目前,为了保证服务器存储子系统中数据的可靠性,同时又能获得比较理想的CPU(Central Processing Unit,中央处理器)的访存性能,可以考虑在服务器中使用NVDIMM(None-Volatile DIMM,非易失内存)。此类存储设备可以保证在系统突然断电或者异常的情况下,存储在其中的数据不会立即丢失。借助一定的软固件恢复机制,可以在系统重新上电后,将保存在非易失存储介质中的数据快速恢复,以实现关键数据持久化存储或压缩系统启动时间的目的。
现代计算系统多处理器架构通常会采用物理上分离的计算节点和内存簇设计来更好的实现多任务计算,但是在跨节点访问内存簇时由于电气特性因素其访问速度会有所区别。NUMA(Non Uniform Memory Access Architecture,非统一内存访问架构)的特点是被共享的存储器是分布在系统各个节点上的,各节点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内核包含device mapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。
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内核包含device mapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。
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内核包含device mapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。
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内核包含device mapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。
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内核包含device mapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。
处理器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内核包含device mapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。
处理器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内核包含device mapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。
处理器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内核包含device mapper架构,通过该架构可以实现线性映射,已达到把两个独立的物理块设备映射成一个连续的逻辑块设备。
处理器802,还用于将缓存块设备作为读写缓存与系统中的存储设备绑定;
当形成一个扩展的缓存块设备后,将新构造的块设备作为读写缓存与系统中的存储设备绑定。例如,将块设备作为读写缓存与NVMe或HDD结合。
处理器802,还用于判断计算节点读写缓存是否命中;
然后,判断计算节点读写缓存是否命中,在判断时是通过读取cache中相应缓存数据的元数据来完成,元数据中记录了cache中缓存数据对应于源设备上的块号,通过该块号是否存在于元数据中就可以判断命中与否。
处理器802,还用于当计算节点读写缓存命中时,更新缓存元数据;
当在NVDIMM中命中时,则对该缓存的元数据进行更新。
处理器802,还用于判断命中缓存是否位于本地NVDIMM;
在更新的过程中,并判断是本地命中还是远端命中。
处理器802,还用于当为本地命中时,更新元数据减少远程命中计数器数值;
当为本地命中时,则减少元数据中的远程命中计数值,减到零为止。
处理器802,还用于当为远程命中时,更新元数据增加远程命中计数器数值;
当为远程命中时,则增加元数据中的远程命中计数值。
处理器802,还用于判断远程命中计数器中的计数是否达到预设阈值;
在增加元数据中的远程命中计数值时,判断远程命中次数是否达到预设阈值。
处理器802,还用于当远程命中次数达到预设阈值时,交换远程中的缓存至本地。
当远程命中次数达到预设阈值时,则交换远程节点中的缓存至本地,被选中的远程交换对象单元为远程命中计数值最大的单元,若未达到预设阈值,则继续等待节点的下一次访问。
综上所述,在上述实施例中,当计算节点读写缓存命中时,更新缓存元数据,判断命中缓存是否位于本地NVDIMM,当为本地命中时,则减少元数据中的远程命中计数值,减到零为止,当为远程命中时,则增加元数据中的远程命中计数值,在增加元数据中的远程命中计数值时,判断远程命中次数是否达到预设阈值,当远程命中次数达到预设阈值时,交换远程中的缓存至本地,实现了CPU对NVDIMM访问延时的动态平衡。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种数据处理方法,其特征在于,用于实现处理器对NVDIMM访问延时的动态平衡,所述方法包括:
绑定多节点计算系统中的多个跨节点NVDIMM,形成一个扩展的缓存块设备,其中,所述缓存块设备为一个连续的逻辑块设备;
将所述缓存块设备作为读写缓存与系统中的存储设备绑定;
判断计算节点读写缓存是否命中;
当计算节点读写缓存未命中且缓存NVDIMM内有空闲空间时,判断近端NVDIMM是否有空间;
当近端NVDIMM有空间时,将缓存部署到近端NVDIMM,所述近端NVDIMM为本地NVDIMM;
当近端NVDIMM无空间时,将缓存部署到远端NVDIMM,所述远端NVDIMM为其它计算节点的NVDIMM。
2.根据权利要求1所述的方法,其特征在于,还包括:
当计算节点读写缓存未命中且所述缓存NVDIMM内无空闲空间时,配置成替换本地缓存或全局替换缓存;
判断是否为全局替换缓存,若是,则在全节点NVDIMM上替换缓存,若否,则:
在本节点NVDIMM上替换缓存。
3.根据权利要求1所述的方法,其特征在于,还包括:
当计算节点读写缓存命中时,更新缓存元数据;
判断命中缓存是否位于本地NVDIMM,若是,则更新元数据减少远程命中计数器数值,若否,则:
更新元数据增加远程命中计数器数值;
判断远程命中计数器中的计数是否达到预设阈值,若是,则交换远程中的缓存至本地。
4.根据权利要求1所述的方法,其特征在于,所述绑定多节点计算系统中的多个NVDIMM,形成一个扩展的缓存块设备前还包括:
在系统中的存储设备上部署业务和数据。
5.一种数据处理系统,其特征在于,用于实现处理器对NVDIMM访问延时的动态平衡,所述系统包括:
存储器,用于存储应用程序与应用程序运行所产生的数据;
处理器,用于运行所述应用程序以绑定多节点计算系统中的多个跨节点NVDIMM,形成一个扩展的缓存块设备,其中,所述缓存块设备为一个连续的逻辑块设备,将所述缓存块设备作为读写缓存与系统中的存储设备绑定,判断计算节点读写缓存是否命中,当计算节点读写缓存未命中且缓存NVDIMM内有空闲空间时,判断近端NVDIMM是否有空间,当近端NVDIMM有空间时,将缓存部署到近端NVDIMM,所述近端NVDIMM为本地NVDIMM,当近端NVDIMM无空间时,将缓存部署到远端NVDIMM,所述远端NVDIMM为其它计算节点的NVDIMM。
6.根据权利要求5所述的系统,其特征在于,所述处理器还用于:
运行所述应用程序以当计算节点读写缓存未命中且所述缓存NVDIMM内无空闲空间时,配置成替换本地缓存或全局替换缓存,判断是否为全局替换缓存,若是,则在全节点NVDIMM上替换缓存,若否,则:在本节点NVDIMM上替换缓存。
7.根据权利要求5所述的系统,其特征在于,所述处理器还用于:
运行所述应用程序以当计算节点读写缓存命中时,更新缓存元数据,判断命中缓存是否位于本地NVDIMM,若是,则更新元数据减少远程命中计数器数值,若否,则:更新元数据增加远程命中计数器数值,判断远程命中计数器中的计数是否达到预设阈值,若是,则交换远程中的缓存至本地。
8.根据权利要求5所述的系统,其特征在于,所述处理器还用于:在绑定多节点计算系统中的多个NVDIMM,形成一个扩展的缓存块设备前,在系统中的存储设备上部署业务和数据。
CN201810820098.3A 2018-07-24 2018-07-24 一种数据处理方法及系统 Active CN109117088B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810820098.3A CN109117088B (zh) 2018-07-24 2018-07-24 一种数据处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810820098.3A CN109117088B (zh) 2018-07-24 2018-07-24 一种数据处理方法及系统

Publications (2)

Publication Number Publication Date
CN109117088A CN109117088A (zh) 2019-01-01
CN109117088B true CN109117088B (zh) 2021-02-19

Family

ID=64862345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810820098.3A Active CN109117088B (zh) 2018-07-24 2018-07-24 一种数据处理方法及系统

Country Status (1)

Country Link
CN (1) CN109117088B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111324306B (zh) * 2020-02-16 2021-04-20 西安奥卡云数据科技有限公司 一种基于nvdimm的数据分类缓存分配方法
CN111880726B (zh) * 2020-06-19 2022-05-10 浙江工商大学 一种提升cnfet缓存性能的方法
CN112445770A (zh) * 2020-11-30 2021-03-05 清远职业技术学院 多维乱序存储的超大规模高性能数据库引擎及云服务平台
CN113222115B (zh) * 2021-04-30 2024-03-01 西安邮电大学 面向卷积神经网络的共享缓存阵列
CN114201120B (zh) * 2022-02-18 2022-05-10 苏州浪潮智能科技有限公司 一种数据读写方法、装置及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102301345A (zh) * 2008-12-30 2011-12-28 英特尔公司 混合存储设备
CN103946811A (zh) * 2011-09-30 2014-07-23 英特尔公司 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
CN104360963A (zh) * 2014-11-26 2015-02-18 浪潮(北京)电子信息产业有限公司 一种面向内存计算的异构混合内存方法和装置
CN106155575A (zh) * 2015-04-17 2016-11-23 伊姆西公司 用于扩展存储系统的高速缓存的方法和装置
CN106843772A (zh) * 2017-02-14 2017-06-13 郑州云海信息技术有限公司 一种基于一致性总线扩展非易失内存的系统及方法
CN106909515A (zh) * 2017-02-11 2017-06-30 郑州云海信息技术有限公司 面向混合主存的多核共享末级缓存管理方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102301345A (zh) * 2008-12-30 2011-12-28 英特尔公司 混合存储设备
CN103946811A (zh) * 2011-09-30 2014-07-23 英特尔公司 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
CN104360963A (zh) * 2014-11-26 2015-02-18 浪潮(北京)电子信息产业有限公司 一种面向内存计算的异构混合内存方法和装置
CN106155575A (zh) * 2015-04-17 2016-11-23 伊姆西公司 用于扩展存储系统的高速缓存的方法和装置
CN106909515A (zh) * 2017-02-11 2017-06-30 郑州云海信息技术有限公司 面向混合主存的多核共享末级缓存管理方法及装置
CN106843772A (zh) * 2017-02-14 2017-06-13 郑州云海信息技术有限公司 一种基于一致性总线扩展非易失内存的系统及方法

Also Published As

Publication number Publication date
CN109117088A (zh) 2019-01-01

Similar Documents

Publication Publication Date Title
CN109117088B (zh) 一种数据处理方法及系统
US11467955B2 (en) Memory system and method for controlling nonvolatile memory
KR102193689B1 (ko) 예측에 기초하여 효율적으로 캐시 라인을 관리하는 시스템 및 방법
EP3210121B1 (en) Cache optimization technique for large working data sets
TWI627536B (zh) 用於具有調適分割之一共用快取之系統及方法
US10169232B2 (en) Associative and atomic write-back caching system and method for storage subsystem
US8805902B2 (en) Managing snapshot storage pools
US7424577B2 (en) Dynamic optimization of cache memory
US7430639B1 (en) Optimization of cascaded virtual cache memory
EP2685384B1 (en) Elastic cache of redundant cache data
EP3089039B1 (en) Cache management method and device
US10545862B2 (en) Memory system and method for controlling nonvolatile memory
US11169927B2 (en) Efficient cache management
CN103558992A (zh) 堆外直接内存数据存储器,创建和/或管理堆外直接内存数据存储器的方法,和/或包括堆外直接内存数据存储器的系统
KR20150087319A (ko) 단편화를 해결하는 메모리 세그먼트 재매핑
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
CN110737394B (zh) 管理缓存的方法、装置和计算机程序产品
Lee et al. M-CLOCK: Migration-optimized page replacement algorithm for hybrid DRAM and PCM memory architecture
US20060123196A1 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
US20170364442A1 (en) Method for accessing data visitor directory in multi-core system and device
Deng et al. GFCache: A Greedy Failure Cache Considering Failure Recency and Failure Frequency for an Erasure-Coded Storage System.
Chen et al. Refinery swap: An efficient swap mechanism for hybrid DRAM–NVM systems
US20190095330A1 (en) Preemptive cache writeback with transaction support
Choi et al. In-memory file system with efficient swap support for mobile smart devices
CN110658999B (zh) 一种信息更新方法、装置、设备及计算机可读存储介质

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