写点什么

专利解析|混合缓存技术在元年多维库中的应用

  • 2022 年 10 月 11 日
    天津
  • 本文字数:3629 字

    阅读完需:约 12 分钟

企业决策对数据分析的要求

随着企业信息化步伐的推进、企业内部产生的数据越来越多,企业决策系统处理的数据也随之增大,很多公司数据处理的时间越来越长,性能问题逐渐暴露出来。信息的爆炸式增长和对信息的实时处理能力不足是矛盾的。企业对数据的实时处理能力的需求,也变强烈和迫切。而数据处理不可避免地遇到性能问题,这已成为企业需要解决的重要挑战。数据量越来越大,计算越来越复杂,响应时间要求越来越短,性能却越来越慢...

实时计算和分析利器:内存计算

联机分析处理(Online Analytical Processing, OLAP)是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察数据,以达到深入理解数据的目的,因此被广泛应用于企业市场和销售分析、盈利分析、预算预测等场景。

计算机技术的发展促进多核 CPU 和基于 x64 架构的内存容量的增长,服务器内存可以轻松地支持 TB 级的直接寻址空间。多核架构支持大规模数据库操作的并行处理,所有相关数据可以保留在内存中,以很高效的速度进行处理。读操作和数据计算与访问低速磁盘存储设备无关。写操作也在内存中进行,但为保证数据安全和一致性,必须在非易失存储中做记录。

元年多维数据库是一个基于内存技术的数据处理引擎。基本原理就是将数据放在内存中,从而使对磁盘的访问不再成为系统性能的瓶颈,显著的提升数据库性能。多维数据库的数据可以即时写入,即时计算,进行实时分析。并且支持数据恢复,高可用和 ACID(原子性、隔离性、一致性、持久性)特性。数据高度压缩以减少内存占用。实时计算很快,聚合查询都是秒级响应,不再需要预聚合,避免产生数据爆炸的问题。内存计算技术可以极大地改进时效性,瞬间计算,快速科学决策。


缓存数据分层,减少冷数据的内存占

我们使用数据分层来表示将数据分布到多种类别的存储器中的方法。其中的存储类别包括主存(内存)、固态存储(SSD)、一般的磁盘等多种类别。在传统的磁盘数据库中,主要通过缓存算法来提高数据库的直接访问性能。最常访问的数据(热数据)保存在较快的存储类别中,也就是动态随机存储器(DRAM、内存)。较少使用的数据(冷数据)保存在磁盘里。通过这种热数据、冷数据的理念,数据库能达到非常高的缓存命中率,数据库的响应时间也得到了改善。


元年多维数据库中的数据会按需常驻在内存中,直接访问都可以做到快速的响应。但在实际的决策场景中,查询数据有超过 90%的都是计算出来的,并且大量的计算结果需要被重复使用或者查询,对相同的结果一次又一次的计算将导致效率低下。当元年多数据库检测到这种重复的计算时,会尽可能的记住这些结果,并再次使用。从而减少计算量,提升计算和查询性能。但是缓存的数据量较大,缓存数据分层技术,可以将冷数据保存到非易失性存储中,减少冷数据的主内存占用。


通常企业希望能访问几年内的数据并进行实时计算和分析,对缓存数据进行冷热分层是十分必要的,最近 2、3 年的数据是经常访问的热数据,会一直保持在内存中。超过一定年限的数据是冷数据,会存储到 SSD 或者磁盘上,当需要时也会加载到内存中。加载过程可以通过特定的数据算法实现,可以保证加载的性能。在多维数据库中,很难对单一缓存数据记录进行分层,很大程度上依赖部分维度组合的切片形成主索引和次索引来实现,通过对索引的访问区分冷热数据。


混合缓存应用方法

01/业务场景

年维度包括 4 个维度成员:2017 年、2018 年、2019 年和 2020 年;组织维度包括 3 个维度成员:公司 1、公司 2 和公司 3。科目维度可以包括至少 1 个维度成员,例如营业利润。一旦该多维数据模型被创建,利用该多维数据模型能存放的数据单元的数量是可确定的,并且可以为这些数据单元中的每个建立索引,以使每个数据单元的数据能够通过其索引被访问。在图 1A、1B 和 1C 的情况下,对于每个数据单元,其索引可以基于该数据单元的具体年维度、具体组织维度和具体科目维度建立,包含或以其他方式体现该数据单元的具体年维度、具体组织维度和具体科目维度,例如可以为具体年维度+具体组织维度+具体科目维度的形式,如 2017 年公司 1 营业利润、2017 年公司 2 营业利润、2017 年公司 3 营业利润、2018 年公司 1 营业利润、2018 年公司 2 营业利润……。一旦该多维数据模型被创建,可以在内存中为预定利用该多维数据模型存放的每个数据单元分配一个内存空间,用于存放该数据单元的数据和该数据单元的索引。每个数据单元的索引可以在该数据单元的数据产生之前被存放在分配给该数据单元的内存空间中。另外,每个数据单元的索引一旦被存放在分配给该数据单元的内存空间中,可以始终保留在该内存空间中,而不论该数据单元的数据如何(例如,是否被写入内存、是否被从内存卸载、是否未被产生等)。如此,在被需要时,每个数据单元的数据总是可以根据已存放在内存中的该数据单元的索引被存放在内存中,例如存放在该数据单元的索引之后。


对于每个数据单元,分配给该数据单元的内存空间除用于存放该数据单元的数据和该数据单元的索引之外,还可以用于存放该数据单元的数据状态。在一个实施例中,每个数据单元可以具有三种数据状态:1)“空”,某个数据单元的数据状态为“空”可以指示该数据单元的数据尚未产生;2)“热”,某个数据单元的数据状态为“热”可以指示该数据单元的数据为热数据、被存储在内存中;3)“冷”,某个数据单元的数据状态为“冷”可以指示该数据单元的数据为冷数据、已被从内存卸载并存储在与内存通信的闪存中。在某个数据单元的数据状态为“冷”的情况下,可以将指示包含该数据单元的数据(如缓存数据)的文件(如缓存文件)在闪存中的存储位置的信息,如包含该数据单元的数据的文件的存储路径,存放在用于该数据单元的内存空间中,以用于后续访问该数据单元的数据。上文所述的闪存可以是任何适于利用闪存(Flash Memory)技术存储电子信息的存储介质,例如固态硬盘(SSD)等。

02/分层方法

假设一用户(以下称为“用户 A”)请求查询 2017 年公司 1 的营业利润,则根据查询请求中指示的年维度(2017 年)、组织维度(公司 1)和科目维度(营业利润),基于已存放在内存中的索引可以确定用户 A 请求查询的数据在内存中的位置,例如图 1A 最左边标有“缓存空”的内存空间。如图所示,与所确定的内存空间相应的数据单元的数据状态为“空”。在此情况下,可以使用内存实时计算技术根据预定的计算公式获取相关数据并进行实时计算。例如,预定的计算公式可以是:营业利润=营业收入-营业成本-销售费用-管理费用-财务费用+其他收入;获取的相关数据可以包括:营业收入=1000、营业成本=100、销售费用=100、管理费用=100、财务费用=100、其他收入=100;相应地,计算得到的数据可以是:营业利润=700。可以将该计算得到的数据按照相应的索引存储到内存中的相应内存空间,并且相应的数据单元的数据状态可以变为“热”,如图 1B 所示。另外,可以从内存获得该计算得到的数据并将其作为返回结果提供给用户 A。在图 1B 中,最左边“缓存热”的内存空间中存放有缓存数据“营业利润:700”,此时该缓存数据是热数据。


03/用户查询和计算

在一个实施例中,图 1A 的判断是缓存数据单元的缓存数据是否为冷数据,可以包括:检测缓存数据单元的缓存数据未被访问的持续时间;若该持续时间长于预定时间,则判断该缓存数据单元的缓存数据为冷数据。该预定时间可以根据情况设置,例如可以是数分钟、数小时、数天或更长或更短的时间。根据情况,图 1A 的判断可以周期性地定期进行,例如每 N 分钟或 N 小时进行一次(N 可以是任何合适的正数),或者可以按照任何其他合适的时间安排进行。


继续参照图 1B,假设图 1B 中最左边“缓存热”的内存空间中存放的缓存数据“营业利润:700”在长于上述预定时间的持续时间内一直未被访问(例如被查询、读取、更新、调用等),则可以判断该缓存数据为冷数据。此时,可以执行步骤 S102,将该缓存数据从内存卸载并以缓存文件的形式存储到与该内存通信的闪存中,并且相应的数据单元的数据状态可以变为“冷”,如图 1C 所示。在图 1C 中,缓存数据“营业利润:700”被存储在不同于内存的闪存中,最左边“缓存冷”的内存空间中没有缓存数据。在图 1C 的情况下,可以将指示包含缓存数据的缓存文件在闪存中的存储位置的信息——如包含缓存数据的缓存文件的存储路径——存放在从其卸载该缓存数据的内存空间中,以用于后续访问该缓存数据。

在一个实施例中,响应于检测对一个感兴趣缓存数据单元的查询,包括检查所述感兴趣缓存数据单元的缓存数据是否存储在所述内存中;以及,若确定所述感兴趣缓存数据单元的缓存数据未存储在所述内存中,从所述闪存查找所述感兴趣缓存数据单元的缓存数据并将其加载到所述内存中;并且若确定所述感兴趣缓存数据单元的缓存数据存储在所述内存中,从所述内存获取所述感兴趣缓存数据单元的缓存数据。

附图说明

图 1A



图 1B



图 1C


推荐阅读:

元年专利解析|元数据管理系统和使用其对模型对象进行建模的方法

元年洞察|元年方舟数据中台打造企业数据能力组件中心

拓增量,谋共赢 | 元年发布ISV生态合作伙伴计划

元年洞察|PaaS平台应用趋势

一文读懂数字化转型中的数据存储


发布于: 刚刚阅读数: 3
用户头像

公众号:元年技术洞察 2022.08.05 加入

分享数字化前沿技术、创新实践,用数据和新技术助力企业数字化转型,打造数据驱动型企业。

评论

发布
暂无评论
专利解析|混合缓存技术在元年多维库中的应用_数据分析_元年技术洞察_InfoQ写作社区