数据库存储性能优化方法、系统、终端及存储介质与流程

文档序号:28804030发布日期:2022-02-09 01:13阅读:71来源:国知局
1.本发明涉及数据存储
技术领域
:,具体涉及一种数据库存储性能优化方法、系统、终端及存储介质。
背景技术
::2.大数据领域,数据库的读写性能是衡量一个数据库是否可选的主要参考指标。一般传统关系型数据库的数据文件都存储在磁盘中,非关系型数据库的数据文件存储在hdfs等分布式文件系统中。所有的读写操作都受限于磁盘的io速度,性能存在上限。考虑到磁盘io和内存读写性能的巨大差异,为了提升数据库的读写速度,很多数据库都会基于内存设计缓存层,对性能进行优化。如数据写入时,为了数据读写的极致性能,会将写入数据缓存在内存中,当满足一定条件后,统一刷写到磁盘;当读取数据时,也会先从缓存中读取热数据,读取不到才会从磁盘读取数据。从这个优化思路可以看出,缓存层内存越大,性能提升越明显。于是出现了如redis这种内存数据库,即所有数据都基于内存进行读写操作。获得极致的读写性能。但是内存的成本过于昂贵,且服务器本身支持的内存容量也存在上限。因此大数据量下,就无法选择redis这种内存数据库。很多公司都是把redis作为缓存数据库,存储热数据与上层业务对接,提升业务性能。但是多一层数据库,维护成本就会多出很多,且需要耗费大量内存,成本大幅提升。3.持久内存(pmem)是新一代的存储介质,具备高速读写性能、高存储密度、低静态功耗等优点,且成本低于dram(内存),为构建更高效的存储计算系统带来了新的机遇。目前社区可将pmem作为hbase堆外缓存介质,缓存大量数据,大幅提升热数据读性能。但通过性能测试发现,pmem设备的数据换入换出性能相比dram差了很多,且原有的内存资源无法和pmem设备结合使用,造成资源浪费问题。技术实现要素:4.针对现有技术存在的数据缓存的成本以及不同存储介质无法结合导致的数据库存储性能不佳的技术问题,本发明提供一种数据库存储性能优化方法、系统、终端及存储介质,以解决上述技术问题。5.第一方面,本发明提供一种数据库存储性能优化方法,包括:6.获取数据库的服务器的存储设备种类,并根据各种存储设备的读写速度设定各存储设备的等级;7.设定各等级存储设备对应的数据热度范围;8.监控数据库的数据读写热度,根据数据热度将数据存储至相应等级的存储设备;9.设定数据查找顺序为由读写速度大的高等级存储设备到读写速度小的低等级存储设备。10.进一步的,获取数据库的服务器的存储设备种类,并根据各种存储设备的读写速度设定各存储设备的等级,包括:11.如果获取到服务器存在内存、持久内存和磁盘,则在用户配置中挂载读取到的存储设备的目录;12.设定内存为第一存储、持久内存为第二存储、磁盘为第三存储,并设定第一存储的数据热度高于第二存储的数据热度,第二存储的数据热度高于第三存储的数据热度。13.进一步的,监控数据库的数据读写热度,根据数据热度将数据存储至相应等级的存储设备,包括:14.监控数据库的读写操作对应的目标数据块,并统计各数据块的单位时间读写次数,将数据块的单位时间读写次数作为数据块的读写热度;15.根据数据块的读写热度所属的热度范围,将数据块存储至相应的存储设备。16.进一步的,设定数据查找顺序为由读写速度大的高等级存储设备到读写速度小的低等级存储设备,包括:17.设置数据库的查询链路,将查询链路限定为优先从第一存储查询,如果查找不到目标数据则从第二存储查询,如果第二存储中未查找到目标数据则从第三存储中查询,将查询到的目标数据缓存至第一存储。18.第二方面,本发明提供一种数据库存储性能优化系统,包括:19.设备获取单元,用于获取数据库的服务器的存储设备种类,并根据各种存储设备的读写速度设定各存储设备的等级;20.热度设定单元,用于设定各等级存储设备对应的数据热度范围;21.数据存储单元,用于监控数据库的数据读写热度,根据数据热度将数据存储至相应等级的存储设备;22.查询设定单元,用于设定数据查找顺序为由读写速度大的高等级存储设备到读写速度小的低等级存储设备。23.进一步的,所述设备获取单元包括:24.设备挂载模块,用于如果获取到服务器存在内存、持久内存和磁盘,则在用户配置中挂载读取到的存储设备的目录;25.存储设置模块,用于设定内存为第一存储、持久内存为第二存储、磁盘为第三存储,并设定第一存储的数据热度高于第二存储的数据热度,第二存储的数据热度高于第三存储的数据热度。26.进一步的,所述数据存储单元包括:27.监控模块,用于监控数据库的读写操作对应的目标数据块,并统计各数据块的单位时间读写次数,将数据块的单位时间读写次数作为数据块的读写热度;28.存储模块,用于根据数据块的读写热度所属的热度范围,将数据块存储至相应的存储设备。29.进一步的,所述查询设定单元包括:30.链路设置模块,用于设置数据库的查询链路,将查询链路限定为优先从第一存储查询,如果查找不到目标数据则从第二存储查询,如果第二存储中未查找到目标数据则从第三存储中查询,将查询到的目标数据缓存至第一存储。31.第三方面,提供一种终端,包括:32.处理器、存储器,其中,33.该存储器用于存储计算机程序,34.该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。35.第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。36.本发明的有益效果在于,本发明提供的数据库存储性能优化方法、系统、终端及存储介质,将dram设备和pmem设备结合使用,作为hbase的堆外缓存。dram作为第一级缓存介质,负责热数据的换入换出,pmem作为第二级缓存介质,负责dram中淘汰的数据。既提升数据缓存到hbase多级缓存层的速度,也大幅提升缓存容量的大小。本发明充分利用服务器硬件资源,实现自动化配置,大幅提升海量数据的读性能。通过pmem自动初始化配置,可自动实现pmem设备的管理和使用;通过将pmem和dram相结合,合理利用服务器硬件资源,并充分发挥两种设备的优势,大幅提升数据读性能。37.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。附图说明38.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。39.图1是本发明一个实施例的方法的示意性流程图。40.图2是本发明一个实施例的方法的另一示意性流程图。41.图3是本发明一个实施例的系统的示意性框图。42.图4为本发明实施例提供的一种终端的结构示意图。具体实施方式43.为了使本
技术领域
:的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。44.下面对本发明中出现的关键术语进行解释。45.hbase是一个分布式的、面向列的开源数据库,该技术来源于faychang所撰写的google论文“bigtable:一个结构化数据的分布式存储系统”。就像bigtable利用了google文件系统(filesystem)所提供的分布式数据存储一样,hbase在hadoop之上提供了类似于bigtable的能力。hbase是apache的hadoop项目的子项目。hbase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是hbase基于列的而不是基于行的模式。hbase–hadoopdatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用hbase技术可在廉价pcserver上搭建起大规模结构化存储集群。与fujitsucliq等商用大数据产品不同,hbase是googlebigtable的开源实现,类似googlebigtable利用gfs作为其文件存储系统,hbase利用hadoophdfs作为其文件存储系统;google运行mapreduce来处理bigtable中的海量数据,hbase同样利用hadoopmapreduce来处理hbase中的海量数据;googlebigtable利用chubby作为协同服务,hbase利用zookeeper作为对应。46.大数据(bigdata),或称巨量资料,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换而言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。随着云时代的来临,大数据(bigdata)也吸引了越来越多的关注。分析师团队认为,大数据(bigdata)通常用来形容一个公司创造的大量非结构化数据和半结构化数据,这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像mapreduce一样的框架来向数十、数百或甚至数千的电脑分配工作。47.lru(leastrecentlyused,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。算法包括:新数据插入到链表头部;每当缓存命中(即缓存数据被访问),则将数据移到链表头部;当链表满的时候,将链表尾部的数据丢弃。算法分析:命中率,当存在热点数据时,lru的效率很好,但偶发性的、周期性的批量操作会导致lru命中率急剧下降,缓存污染情况比较严重。复杂度,实现简单。代价,命中时需要遍历链表,找到命中的数据块索引,然后需要将数据移到头部。48.图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种数据库存储性能优化系统。49.如图1所示,该方法包括:50.步骤110,获取数据库的服务器的存储设备种类,并根据各种存储设备的读写速度设定各存储设备的等级;51.步骤120,设定各等级存储设备对应的数据热度范围;52.步骤130,监控数据库的数据读写热度,根据数据热度将数据存储至相应等级的存储设备;53.步骤140,设定数据查找顺序为由读写速度大的高等级存储设备到读写速度小的低等级存储设备。54.为了便于对本发明的理解,下面以本发明数据库存储性能优化方法的原理,结合实施例中对数据库存储性能进行优化的过程,对本发明提供的数据库存储性能优化方法做进一步的描述。55.具体的,请参考图2,所述数据库存储性能优化方法包括:56.s1、获取数据库的服务器的存储设备种类,并根据各种存储设备的读写速度设定各存储设备的等级。57.如果获取到服务器存在内存、持久内存和磁盘,则在用户配置中挂载读取到的存储设备的目录;设定内存为第一存储、持久内存为第二存储、磁盘为第三存储,并设定第一存储的数据热度高于第二存储的数据热度,第二存储的数据热度高于第三存储的数据热度。58.通常服务器都存在内存和磁盘这两种存储设备,因此获取服务器的存储设备种类主要是查看是否存在永久内存。59.具体的,自动获取服务器配置信息,检查是否有pmem设备。如果存在pmem设备,就通过自动化脚本进行初始化配置。初始化配置主要有以下两个步骤:60.a)自动读取用户配置。比如指定使用哪一块设备,设置为adfsdax模式,使用多大的空间。61.b)将pmem目录自动挂载到用户配置的目录,类似于硬盘挂载操作。62.pmem设备初始化完成后,自动配置hbase堆外缓存模式为dram+pmem混合模式。并将dram设置为第一级缓存介质,负责热数据的换入换出,pmem作为第二级缓存介质,负责dram中淘汰的数据。其中,将dram设置为第一级缓存介质的原因是dram的换入换出性能优于pmem设备。受限于成本,dram的可用空间大小要比pmem小一个量级。63.s2、设定各等级存储设备对应的数据热度范围。64.本实施例中设定内存对应的数据热度为a-b,永久内存对应的数据热度为b-c,磁盘对应的数据热度为c-d,其中a,b,c,d均为常数,且a>b>c>d。65.s3、监控数据库的数据读写热度,根据数据热度将数据存储至相应等级的存储设备。66.监控数据库的读写操作对应的目标数据块,并统计各数据块的单位时间读写次数,将数据块的单位时间读写次数作为数据块的读写热度;根据数据块的读写热度所属的热度范围,将数据块存储至相应的存储设备。67.基于预设或自定义的策略,对缓存数据进行筛选、淘汰。考虑到dram+pmem设备的可用空间是有限的,缓存数据无法持续增长,因此需要使用合理的淘汰策略,只缓存最热的数据。这里一般采用lru(leastrecentlyused,即最近最少使用)策略对数据进行筛选淘汰。可选的,支持用户使用自定义策略进行数据的淘汰。68.s4、设定数据查找顺序为由读写速度大的高等级存储设备到读写速度小的低等级存储设备。69.设置数据库的查询链路,将查询链路限定为优先从第一存储查询,如果查找不到目标数据则从第二存储查询,如果第二存储中未查找到目标数据则从第三存储中查询,将查询到的目标数据缓存至第一存储。70.本实施例将dram设备和pmem设备结合使用,作为hbase的堆外缓存。dram作为第一级缓存介质,负责热数据的换入换出,pmem作为第二级缓存介质,负责dram中淘汰的数据。既提升数据缓存到hbase多级缓存层的速度,也大幅提升缓存容量的大小。经性能测试,可大幅提升hbase读性能。通过充分利用服务器硬件资源,实现自动化配置,大幅提升海量数据的读性能。通过pmem自动初始化配置,可自动实现pmem设备的管理和使用;通过将pmem和dram相结合,合理利用服务器硬件资源,并充分发挥两种设备的优势,大幅提升数据读性能。71.如图3所示,该系统300包括:72.设备获取单元310,用于获取数据库的服务器的存储设备种类,并根据各种存储设备的读写速度设定各存储设备的等级;73.热度设定单元320,用于设定各等级存储设备对应的数据热度范围;74.数据存储单元330,用于监控数据库的数据读写热度,根据数据热度将数据存储至相应等级的存储设备;75.查询设定单元340,用于设定数据查找顺序为由读写速度大的高等级存储设备到读写速度小的低等级存储设备。76.本发明中,设备获取单元负责服务器硬件设施的初始化工作,构建hbase堆外二级缓存配置;热度设定单元用于基于某些策略,数据存储单元对缓存的数据进行筛选、淘汰,保证缓存的数据都是最新的热数据;查询设定单元负责hbase查询时的查询机制,dram缓存的数据为第一查询优先级;pmem缓存的数据为第二查询优先级;当缓存中未查到数据时,再从磁盘查询数据。77.可选地,作为本发明一个实施例,所述设备获取单元包括:78.设备挂载模块,用于如果获取到服务器存在内存、持久内存和磁盘,则在用户配置中挂载读取到的存储设备的目录;79.存储设置模块,用于设定内存为第一存储、持久内存为第二存储、磁盘为第三存储,并设定第一存储的数据热度高于第二存储的数据热度,第二存储的数据热度高于第三存储的数据热度。80.获取服务器配置信息,检查是否有pmem设备,如果存在就通过自动化脚本进行初始化配置,并自动挂载对应目录。然后自动配置hbase堆外缓存配置,配置为dram+pmem混合使用。并将dram设置为第一级缓存介质,负责热数据的换入换出,pmem作为第二级缓存介质,负责dram中淘汰的数据。其中,受限于成本,dram的空间大小要比pmem小一个量级。81.可选地,作为本发明一个实施例,所述数据存储单元包括:82.监控模块,用于监控数据库的读写操作对应的目标数据块,并统计各数据块的单位时间读写次数,将数据块的单位时间读写次数作为数据块的读写热度;83.存储模块,用于根据数据块的读写热度所属的热度范围,将数据块存储至相应的存储设备。84.对缓存数据进行筛选、淘汰。考虑到dram+pmem设备的可用空间是有限的,缓存数据无法持续增长,因此需要使用合理的淘汰策略,只缓存最热的数据。85.可选地,作为本发明一个实施例,所述查询设定单元包括:86.链路设置模块,用于设置数据库的查询链路,将查询链路限定为优先从第一存储查询,如果查找不到目标数据则从第二存储查询,如果第二存储中未查找到目标数据则从第三存储中查询,将查询到的目标数据缓存至第一存储。87.通过改写hbase查询链路,在第一级缓存介质dram中查找不到数据时,会继续在第二级缓存介质pmem中查询。当在两级缓存介质都没有命中数据时,才会向磁盘查询。并将查询结果缓存起来,供下次查询使用。88.本发明充分利用服务器硬件资源,实现自动化配置,大幅提升海量数据的读性能。通过pmem自动初始化配置,可自动实现pmem设备的管理和使用;通过将pmem和dram相结合,合理利用服务器硬件资源,并充分发挥两种设备的优势,大幅提升数据读性能。89.图4为本发明实施例提供的一种终端400的结构示意图,该终端400可以用于执行本发明实施例提供的数据库存储性能优化方法。90.其中,该终端400可以包括:处理器410、存储器420及通信单元430。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。91.其中,该存储器420可以用于存储处理器410的执行指令,存储器420可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器420中的执行指令由处理器410执行时,使得终端400能够执行以下上述方法实施例中的部分或全部步骤。92.处理器410为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器410可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。93.通信单元430,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。94.本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。95.因此,本发明将dram设备和pmem设备结合使用,作为hbase的堆外缓存。dram作为第一级缓存介质,负责热数据的换入换出,pmem作为第二级缓存介质,负责dram中淘汰的数据。既提升数据缓存到hbase多级缓存层的速度,也大幅提升缓存容量的大小。本发明充分利用服务器硬件资源,实现自动化配置,大幅提升海量数据的读性能。通过pmem自动初始化配置,可自动实现pmem设备的管理和使用;通过将pmem和dram相结合,合理利用服务器硬件资源,并充分发挥两种设备的优势,大幅提升数据读性能。,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。96.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。97.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。98.在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。99.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。100.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。101.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1