CN112948398A - 一种面向冷热数据的分级存储系统及方法 - Google Patents
一种面向冷热数据的分级存储系统及方法 Download PDFInfo
- Publication number
- CN112948398A CN112948398A CN202110476035.2A CN202110476035A CN112948398A CN 112948398 A CN112948398 A CN 112948398A CN 202110476035 A CN202110476035 A CN 202110476035A CN 112948398 A CN112948398 A CN 112948398A
- Authority
- CN
- China
- Prior art keywords
- data
- temperature
- hot
- cold
- database
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向冷热数据的分级存储系统及方法,系统包括数据采集模块、冷热数据判定模块和冷热数据迁移模块;其中,数据采集模块用于采集用户数据访问请求;冷热数据判定模块用于分析数据访问请求同时根据分析出的温度计算相关信息计算数据温度,并将温度计算相关信息和数据温度更新并重新封装至原始数据;冷热数据迁移模块用于对热库中的数据进行监控,将不符合热库中两个设定阈值的热数据迁移到冷库中,并根据数据访问特征动态调整设定阈值。本发明基于数据的访问时间、访问频率和数据关联性三个方面的特征,对数据的温度进行量化,实现对冷热数据的判定和冷热数据的分离存储。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种面向冷热数据的分级存储系统及方法。
背景技术
数据量激增带来的存储需求不断提高,企业通过建立分层存储架构来优化存储空间。为了提高分层存储系统中的空间利用率,企业将数据分为高频访问的热数据与不常访问冷数据,并将数据访问特征与存储设备性能相匹配,以避免冷数据驻留于高性能存储层造成的存储污染。而冷热数据的识别精度会直接影响到分层存储系统的数据存取效率。
因此,开展面向冷热数据的存储机制研究具有重要意义。对冷热数据的研究起源于计算机高速缓存的分级设计,缓存替换中的经典算法大多是基于数据的访问时间、访问频率等数据的单一特征来决定数据是否需要被换出。这些算法对数据访问特征的考虑都具有一定的局限性,且无法很好的适应数据访问模式的变化。
如公开号为CN111427969A的专利申请公开了一种分级存储系统的数据替换方法,该方法包括:当任一节点的持久性内存空间使用率大于或等于替换阈值时,任一节点自动成为迁移节点,迁移节点通过远程过程调用向其他节点发送数据替换请求,以便其他节点根据数据替换请求提议并发送备选冷数据对应的结果;迁移节点根据结果汇总筛选备选冷数据,做出最终数据替换决策;迁移节点根据最终数据替换决策,在持久性内存和外存之间交换冷热数据,并通过版本信息以保证数据一致性。该方案虽然能够以较低的性能开销,高效地识别出持久性内存中的冷数据并将该冷数据替换到外存,但是还存在对数据存储无法适应数据访问模式变化的问题。
发明内容
本发明的目的在于克服现有技术的不足,提供一种面向冷热数据的分级存储系统及方法,基于数据的访问时间、访问频率和数据关联性三个方面的特征,对数据的温度进行量化,依据此温度对数据未来的访问模式进行估计,实现对冷热数据的判定。同时针对数据存储无法适应数据访问模式变化的问题,本发明根据热数据库中数据温度分布情况来动态调整该库的存储阈值,将超过阈值的数据迁移至冷数据库以完成冷热数据的分离存储。
本发明的目的是通过以下技术方案来实现的:
一种面向冷热数据的分级存储系统,包括数据采集模块、冷热数据判定模块和冷热数据迁移模块。其中,数据采集模块用于利用系统前端采集用户输入的数据,即数据访问请求,并将数据访问请求发送至系统后台进行温度判定;冷热数据判定模块用于分析数据访问请求同时根据分析出的温度计算相关信息对数据的温度进行计算,并将温度计算相关信息和计算出的温度信息更新并重新封装至原始数据;冷热数据迁移模块用于对热库中的数据进行监控,将不符合热库中两个设定阈值的热数据迁移到冷库中,并根据数据访问特征动态调整设定阈值。
具体的,冷热数据判定模块根据温度计算相关信息对数据的温度进行计算过程具体包括:先读取数据访问请求,然后根据数据访问读取数据key;再根据key获取温度计算相关信息,温度计算相关信息包括数据包含的时间戳、关联数据以及原有温度信息;利用温度计算相关信息并结合推导出的牛顿冷却定律公式计算出该数据当前数据温度,并更新其关联数据温度。
具体的,冷热数据判定模块还可以根据对用户输入数据的数据库操作,来对数据温度进行调整,调整过程具体包括:
当发生数据插入操作时,直接将温度上升变量W作为数据插入的初始温度值;
当某数据被修改或访问时,先将其原有温度根据访问间隔时间进行冷却后,再进行一次升温得到最新的温度值,将最新的温度值加上温度上升变量W获得最终的数据温度,将数据温度作为数据被修改或访问时的温度值;
当某数据被删除时,则该数据自身温度置0,并同时根据数据关联性温度计算公式计算出该数据的关联数据温度,并更新关联数据的数据温度。
具体的,冷热数据迁移模块对热库中的数据进行监控,将不符合热库中两个设定阈值的热数据迁移到冷库中的过程具体包括:冷热数据迁移模块采用高低水位法对热数据库进行饱和度监控,同时当热库数据量达到设定的高水位阈值后,按照数据温度的大小将热数据库中数据以数据温度从小到大的顺序进行排序,将超过低水位阈值的数据迁移至冷库中进行存储。
具体的,系统还包括数据手动触发迁移过程,具体包括:当热数据库长期未接受访问,以及数据库或业务终止时,将热库中的所有数据完全同步进行迁移冷库中。
一种面向冷热数据的分级存储方法,包括以下步骤:
步骤一:数据采集,利用系统前端采集用户输入的数据,即数据访问请求,并将数据访问请求发送至系统后台进行温度判定;
步骤二:冷热数据判定,分析数据访问请求同时根据分析出的温度计算相关信息对数据的温度进行计算,并将温度计算相关信息和计算出的温度信息更新并重新封装至原始数据;
步骤三:冷热数据迁移,分别将原始数据中的冷数据和热数据存储到对应的冷库和热库中;并对热库中的数据进行监控,将不符合热库中两个设定阈值的热数据迁移到冷库中。
本发明的有益效果:
1.存储基本需求方面,本发明不论采用何种存储介质存放数据,所有数据都具有数据完整性,即满足了数据的精确性与可靠性,在存储系统正常运行的状态下,不会出现数据丢失、数据错误等问题。
2.存储空间需求方面,本发明在对于热冷数据的存储都应在保证满足读取性能的前提下,优化了存储结构,以在有限的存储空间下,可以存下更多的数据。其中,由于冷数据的读取性能要求低于热数据,在冷数据存储时更应注意结构优化,本发明保证读写可靠性的前提下,缩小存储空间开销。
3.读取性能需求方面,热数据为频繁访问数据,本发明保证了热数据能够高效的读取,以及冷数据读写的可靠性,不会出现数据读取错误、写入失败等问题。
附图说明
图1是本发明的系统原理框图。
图2是本发明的冷热数据判定模块的交互逻辑图。
图3是本发明的数据温度关联更新过程图。
图4是本发明的高低水位法监测示意图。
图5是现有断电恢复技术中的Redis执行bgsave流程图。
图6是本发明的数据温度分布图。
图7是本发明的冷热数据迁移流程图。
图8是本发明的数据回温过程示意图。
图9是本发明的冷数据块压缩策略转移图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
本实施例中,如图1所示,一种面向冷热数据的分级存储系统,包括数据采集模块、冷热数据判定模块和冷热数据迁移模块。其中,数据采集模块用于采集用户输入数据;冷热数据判定模块用于根据温度计算相关信息对数据的温度进行计算,并将温度计算相关信息和计算出的温度信息更新并重新封装至原始数据;冷热数据迁移模块用于对热库中的数据进行监控,将不符合热库中两个设定阈值的热数据迁移到冷库中,并根据数据访问特征动态调整设定阈值。
具体的,冷热数据判定模块根据温度计算相关信息对数据的温度进行计算过程具体包括:先读取数据访问请求,然后根据数据访问读取数据key;再根据key获取温度计算相关信息,温度计算相关信息包括数据包含的时间戳、关联数据以及原有温度信息;利用温度计算相关信息并结合推导出的牛顿冷却定律公式计算出该数据当前数据温度,并更新其关联数据温度。
具体的,冷热数据判定模块还可以根据对用户输入数据的数据库操作,来对数据温度进行调整,调整过程具体包括:
当发生数据插入操作时,直接将温度上升变量W作为数据插入的初始温度值;
当某数据被修改或访问时,先将其原有温度根据访问间隔时间进行冷却后,再进行一次升温得到最新的温度值,将最新的温度值加上温度上升变量W获得最终的数据温度,将数据温度作为数据被修改或访问时的温度值;
当某数据被删除时,则该数据自身温度置0,并同时根据数据关联性温度计算公式计算出该数据的关联数据温度,并更新关联数据的数据温度。
具体的,冷热数据迁移模块对热库中的数据进行监控,将不符合热库中两个设定阈值的热数据迁移到冷库中的过程具体包括:冷热数据迁移模块采用高低水位法对热数据库进行饱和度监控,同时热库中的数据温度设定高水位和低水位两个阈值。其中,高水位阈值是数据迁移的触发阈值,数据迁移时将超过低水位阈值的数据进行迁移。当热库数据量超过设定的高水位阈值后,将热数据库中数据以数据温度按从小到大进行排序,将此时超过低水位阈值的数据迁移至冷库中进行存储。
具体的,系统还包括数据手动触发迁移过程,具体包括:当热数据库长期未接受访问,以及数据库或业务终止时,将热库中的所有数据完全同步进行迁移冷库中。
为了进一步对本发明的技术方案进行阐述,下面结合实施例对本发明系统的各个模块功能及系统工作原理进行介绍。
本实施例所建立的系统是基于数据温度的存储方案,最终目标是对存储于本系统中的数据进行冷热识别,并根据其温度分别存入相应的数据库当中,以提高空间利用效率和计算效率。因此在本实施例中会存在冷数据库(冷库)与热数据库(热库)两个概念,热库用于存放温度判定为热的数据,冷库则用于存放温度判定为热冷的数据。冷热数据判定模块则建立在两个数据库之外,进入系统的数据优先落在热库当中,并由冷热数据判定模块为其计算一个初始温度,有查询引起的数据访问也将通过冷热数据判定模块,对被访问数据的温度进行调整。
本实施例中,系统对于冷库与热库的原生数据库并不会进行修改,而是在其之外独立增加冷热数据判定模块和冷热迁移模块两个模块来支持冷热数据的分离存储。
其中,对于冷热数据判定模块,如上文所说,数据的插入和修改操作均会导致数据温度的变化,而数据温度的计算必须依赖于冷热数据判定模块,因此冷热数据判定模块也可看作整个系统的客户端一般的存在。区别与客户端的地方在于,冷热数据判定模块的主要功能是根据数据包含的时间戳、关联数据以及原有温度信息,对数据温度进行计算,并将这些信息更新并重新封装至原始数据当中,其他的数据插入与修改操作还是保持热库原生的操作方式,不会修改数据原有的信息。对于数据的查询操作,本模块也会对查询命中的数据进行温度更新,但不影响查询结果。对于数据的几种基本数据库操作,冷热数据判定模块的交互逻辑如图2所示。
冷热数据判定模块进行冷热数据判定是根据冷热数据判定方法来进行的,而冷热数据判定方法则需要建立冷热判定模型来制定。
关于冷热判定模型的建立,其最主要的依据是数据访问的时间特征,因此需建立对时间变化敏感的模型。牛顿冷却定律是用于描述一个高温物体在低温环境中,向周围传递热量并逐渐冷却的规律,它表明了物体温度的变化速度与环境的温差成正比关系,即物体温度高于环境越多,其温度下降速度越快。该定律的公式表示如下:
T′(t)=-a(T(t)-H) 公式(3-1)
上式中T表示物体温度,α表示物体温度变化速度,H表示环境温度,将T对t进行求导得到的即为温度变化速度。若对该公式进一步求解,可以得到如下推导结果:
如求解结果所示,牛顿冷却定律反映了物体温度随时间推进是一个不断衰减的过程,这也可作为随时间衰减模型的基本理论框架。本实施例中数据的冷热程度正是一个随时间衰减的过程,最新访问的数据应具有较高的温度,而随时间推进其温度应逐渐降低,因此可考虑将牛顿冷却定律推导公式作为基础来建立模型。相比于真实物理环境中的物体,数据库里的数据仅有时间这一特征,而环境温度信息仅可通过计算全部数据的平均温度加以代替,从实际数据温度的影响因素来考虑,这样的代替是没有意义的。因此本实施例提出的冷热判定模型中,数据的温度仅与其最近访问时间与访问频率有关。基于上述考虑,将公式3.2做适应性的变形,并加上访问带来的温度上升变量W,可以得到如下公式:
其中,T(tn)表示tn时刻数据的温度,α为预先设定的温度衰减系数,W(tn)为一个离散函数,当tn时刻数据被访问,则Wtn为估计温度上升数值,反之为0。上述数据温度为数据自身的访问所带来的温度变化,除此之外,数据与数据之间也存在着关联性,即数据在访问规律上呈现出的特征,尤其在数据循环访问的模式下,数据有着明显的关联关系。
例如存在“ABCDDCBA”这样的访问序列,当“ABCD”已经被访问时,系统若能识别并记录下各数据间的联系,在下次同样数据再次被访问时,将与之关联的数据温度也进行一定预热。当再遇到“DCBA”的后续访问时,如“D”被访问时,对上次访问中“D”的前序数据“C”进行预热,则可以保证关联数据都存在一定的热度,该访问序列即可保证均在热库中被高效访问。对于每个数据记录其关联数据,仅记录上一次访问的前序数据,当数据再次被访问时,若其前序数据改变,则再影响原关联数据后,其关联数据也会进行更新。数据温度关联更新过程如图3所示。
这样的数据关联性温度的影响,就类似于物体间的温度传递,两个相邻近的物体中有一个物体的温度上升,则热量也会向周围物体进行传递。同样基于温度变化公式3.2,假设数据A被访问升温后的温度为TA,而与数据A相关联的数据B的温度为TB,此时数据A相当于环境温度,而数据B则是随环境温度变化的对象。假设数据间传递仅经过一个时间单位,那么可以得到如下公式:
TB’=TA+(TB-TA)e-a 公式(3-4)
其中,TB’则代表数据B受数据A升温影响之后数据温度。由于这样的温度传递带来的变化较小,而发生二次传递所导致的数据温度变化会更加微弱,考虑节省计算成本,在实际应用时仅考虑被访问数据直接关联数据的温度变化。且本次数据温度的变化并不等同于数据被访问,因此所记录的数据上次被访问时间并不会随之更新,而是在下次被访问时直接将当前数据温度当做上次访问后的数据温度进行计算。特殊情况下,当数据的前序访问数据为自身时,数据不会对自身的温度再次累加,且会将原先的关联数据改为自身,这样做是为了避免当一个数据被连续重复访问时,其关联数据温度反复提升的问题,而实际此时数据的访问模式已经发生了改变。
上述冷热数据判定模型应用于冷热数据的判定和比较。数据库的基本操作包括增删查改,这几种操作都会带来数据自身或者周围数据的温度变化。本实施例中还根据对数据的数据库操作对数据温度进行调整,调整过程具体包括:
当发生插入操作时,全新的数据加入到数据库中,应赋予其环境温度值作为初始值。在本实施例中,直接将公式3.3中的温度上升变量W作为数据插入的初始温度。
当某数据被修改或者访问时,本实施例将其视为同一类型的数据温度变化,会将其原先温度根据访问间隔时间进行冷却后,再进行一次升温得到最新的温度。参考公式3.3,假设上次访问时间为tn-1,当前时间为tn,数据记录温度为T(tn-1),冷却系数为α,则经过tn-tn-1时间后数据冷却为再加上温度上升变量W,即可得到最新的温度。本发明中的冷却系数为数据温度随时间变化而下降的速度。
当某数据被删除时,其自身温度并不需要再被考虑,删除操作带来的仅是其关联数据温度的变化。被删除的数据,其温度相当于变为0,参考公式3.4,假设关联数据上次温度为T,则受被删除数据影响后的温度为Te-α,若该数据本身温度已经为0,则不再进行计算。
通过上述的操作计算描述,系统即可在任意时间得到某一数据的具体温度,数据间的温度比较也可直接基于此数值,温度较大的数据为较热数据,即更有可能被访问的数据,反之则为较冷数据。
本实施例中,为满足冷热数据的存储需求,选择合适的存储介质与数据库直接决定了系统整体的成本与存储性能。
本实施例中冷热数据库的需求与业界的线上线下数据库需求相仿,但而本实施例设计的冷热数据库的不同之处在于热库数据的区分方式比线上更加精确,所基于的存储介质速度更快,冷热数据库间的数据迁移更加频繁。因此,本实施例采用Redis基于内存的数据库作为热数据库,保证热数据最高的读写性能,同时采用HBase数据库作为冷数据库,为大量的冷数据提供存储。
本实施例中,冷热数据迁移模块用于对热库中的数据进行监控,将不符合热库中两个设定阈值的热数据迁移到冷库中,并根据数据访问特征动态调整设定阈值;同时根据置换条件将冷库与热库之间的数据进行进行相互置换。该模块在数据迁移过程中所依赖的是冷热数据迁移方法。
本实施例中冷热数据迁移方法是拟采用高低水位法对热数据库进行饱和度监控,同时兼顾了数据的特征以及存储设备的存储状态,弥补了单独采用高低水位法进行数据迁移的缺点,让热库一直保持高效且可用的状态。高低水位法监测示意图如图4所示。
图4中,在热数据库存储数据中存在两个由系统设定的阈值,分别标示了热数据库理论允许存放的最大数据量以及热数据库在经过第一次数据迁移后所保持的最低数据量。由于热数据库是易失性的,每次系统的重启都会导致热数据库中的数据丢失,因此在整个存储系统运行初始状态下,热数据库都是从空状态开始记录数据。随着数据访问量的上升,热数据库空间使用率会同步上升,而热数据库状态由迁移模块实时监控,一旦使用率达到最大数据量阈值则会发起迁移流程,将数据量控制下降到最低数据量,再继续累积数据不断重复。
本实施例还考虑到热数据库为内存数据库,即发生如断电等事故时,若数据仅在热数据库中存储,则该部分数据会丢失难以恢复。因此,为应对内存数据丢失问题,本实施例除了在高水位阈值发生数据迁移外,还结合了Redis数据库原有的RDB与AOF持久化机制保证数据在断电情况下的恢复。
Redis数据库的RDB机制,原理上是将某时刻的所有数据以快照的形式保存在磁盘上,并生成二进制文件。原生Redis提供了三种RDB触发机制:save、bgsave以及自动化。save需要客户端下达命令,在执行期间Redis服务器处于阻塞状态,当内存中数据量过大时,会导致客户端操作延迟过高;自动化的方式则需要通过配置文件来进行,以m秒内存在n修改为触发机制,但由于冷热数据场景下数据访问模式无法确定,此方式并不是最合适的方案。bgsave的方式与save类似,但是它是通过创建子进程的方式异步执行快照操作,因此阻塞仅发生在创建子进程的时间,而创建快照的同时客户端可以正常接受请求。在Redis中执行bgsave过程如图5所示。
通过bgsave获得RDB文件后,即可在断电后将数据库恢复到记录时的状态,但在异步创建RDB的过程中,服务器所接受的数据修改请求无法避免丢失。Redis数据库的AOF机制,是以类似日志追加的形式来对操作进行记录,这种方法具有更强实时性和数据完整性保障,但相应的持久化存储开销以及数据库的写QPS会受影响。在冷热数据分离存储的场景下,由于热数据库会被迁移至冷数据库,热数据库中数据量始终不会过大,因此本发明采用AOF机制触发RDB的方式来保证数据不被丢失更加符合要求,执行bgsave的时机也与热数据库达到迁移阈值相对应,保证了未发生迁移的热数据的数据安全性与完整性。
此外,本实施例中热数据库所需的两个阈值可以直接以固定值进行设定,考虑巴莱多定律将系统的初始阈值分别设定在热数据库容量的20%与80%,这样足以保证热数据库的稳定运行,但这种方式欠缺对数据访问模式的考虑,比如在热数据访问均匀分布的情况下,若设定的存储阈值过低,则会导致一部分仍保持较热的数据被迁移到冷数据库中,进而导致此部分数据可能会快速回温至热数据库里,发生频繁的数据迁移。
因此,本实施例为应对不同场景的需要,将存储阈值设计为根据数据访问模式进行动态调整。本实施例为了获取动态调整阈值范围,在每次执行数据迁移时,会对热数据库中数据温度进行记录,并对这些数据进行均匀采样,以识别被迁移部分数据温度的分布情况。理想情况下的数据温度采样应服从正态分布,如图6所示。
如图6的内容所示,理想的标准线阈值应处于数据分布的2σ与3σ之间的水平,保证大多数的访问都落在标准线阈值一下的数据上,而若所设定阈值所对应的数据温度在分布中水平过高或者过低都是不理想的阈值划分。通过采样的数据温度即可对当前阈值在数据中所处位置进行识别,比如图中过高的阈值线,其周围采样得到的数据温度间跨度应该较大,这表明当前阈值内包含的数据已存在部分的冷数据,此时应将标准线的阈值适当调低,将更多的数据迁移到冷数据库中。相对的若阈值线周围采样得到的数据温度间跨度很小,说明在阈值周围的数据访问频率较为均匀,此时应将标准线阈值进行提高,以适应当前的访问模式,避免数据的频繁迁移。
本实施例中,根据上述本实施例设计的冷热数据迁移方法实现的冷热数据迁移模块,其负责监控热数据的饱和度以将超过阈值的冷数据迁移至冷数据库中进行存储。在其监控的同时,热数据库会保持接受新插入的数据,并为每条数据记录其数据温度和最近访问时间戳。当热库数据量到达设定阈值(高水位)后,本模块会将热数据库中数据以数据温度按从小到大进行排序,并把数据量控制在标准线上(低水位),多出的数据将会被模块迁移至冷数据库中存放。冷热数据迁移模块工作流程图如图7所示。
冷热数据迁移模块在发生迁移时首先会将数据按温度进行排序,随后的流程主要分三个过程进行,分别是在冷库中写入数据、在热库中删除数据和分析温度分布调整阈值。这三个过程是采用的是多线程的方式实现,互相之间不存在逻辑顺序,以加快整体数据迁移流程。被迁移的数据会调用HBaseAPI批量写入冷数据库中,若数据原先在冷库中已经存在,则会以多版本的形式进行保存。热数据库删除数据工作与对数据库建立快照持久化是一个耦合的过程,当热库清理完毕后系统会立即调用bgsave命令来创建RDB文件,创建完毕后会将历史RDB文件丢弃,至此数据的迁移工作已经完成,热数据库也可以开始进行新的数据写入操作。阈值调整过程在实现时仅依赖于迁移时所计算的数据温度,在数据按温度排序后,此过程会在所有数据中按排序均匀抽取100个温度样本,并计算温度样本间的间隔。比如系统原先设定的标准线阈值为20%,当热数据饱和度达到80%时触发了数据迁移,则会取排名在0.8%、1.6%、...、79.2%、80%的数据温度,然后计算采样数据的温度差,由于标准线为20%,则对比20%-19.2%与20.8%-20%的温度差与其他温度差之间的差异。若20%-19.2%与20.8%-20%的温差相比在20%以下的温差明显过大,则将标准线阈值降低至16%,若过小则将标准线阈值提高至24%。
完成数据迁移后,存入到冷数据库中的数据将不再拥有温度属性,仅保有数据原有的信息。当冷数据再次被访问的时候,该数据会再次进入热数据库中并重新标定温度,但此时冷数据库中保存的数据将不会被删除,即此份数据会同时保持双副本状态,但冷数据库中存放的是该数据的老版本。在下次数据变冷迁移至冷库时,新数据将覆盖老数据副本,完成数据的更新。数据回温的示意图如8图所示。
除了由程序触发的数据迁移外,本系统还实现了手动触发迁移的过程,该过程会将热数据库中的所有数据完全进行迁移,即清空热数据库存储空间。手动迁移是为了应对两种情况而设计,一方面是当数据库或业务终止时,仍会有部分数据驻留在热数据库中,需要将这部分数据同步到冷数据库里,以保证数据的持久化存储;另一方面是当热数据库长期未接受访问时,所存放数据温度均已降到最低,不再具有访问参考价值,此时手动的将这部分数据刷入冷数据库中,能够加快应对新的数据访问模式,避免内存污染。
本实施例中,在冷数据存储到HBase数据库时,需将冷数据压缩为数据块然后进行存储。由于已经在热数据库中进行了冷热数据识别,最终存放在冷数据库中的数据,一定是访问率较低的数据。本实施例在冷数据库中,对于刚进入冷库的这部分数据采取Snappy压缩策略,能够对数据迁移策略阈值过低所导致的问题进行一定的弥补。冷数据的数据块压缩转移如图9所示。如图9所示,当数据从数据迁移模块中被转移到冷数据库时,优先采用Snappy的压缩方法,保证数据在回温时不会产生过大的开销。当发生下一次数据迁移时,原先保存的Snappy压缩块由于其温度进一步冷却,采用压缩率最高的GZIP算法将其转换为GZIP压缩块存储。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由所附的权利要求书及其等效物界定。
Claims (5)
1.一种面向冷热数据的分级存储系统,其特征在于,包括数据采集模块、冷热数据判定模块和冷热数据迁移模块;其中,
数据采集模块用于利用系统前端采集用户输入的数据,即数据访问请求,并将数据访问请求发送至系统后台进行温度判定;
冷热数据判定模块用于分析数据访问请求同时根据分析出的温度计算相关信息对数据的温度进行计算,并将温度计算相关信息和计算出的温度信息更新并重新封装至原始数据;
冷热数据迁移模块用于对热库中的数据进行监控,将不符合热库中两个设定阈值的热数据迁移到冷库中,并根据数据访问特征动态调整设定阈值;其中,两个设定阈值分别为高水位阈值和低水位阈值。
2.根据权利要求1所述的一种面向冷热数据的分级存储系统,其特征在于,所述冷热数据判定模块根据温度计算相关信息对数据的温度进行计算过程具体包括:先读取数据访问请求,然后根据数据访问读取数据key;再根据key获取温度计算相关信息,温度计算相关信息包括数据包含的时间戳、关联数据以及原有温度信息;利用温度计算相关信息并结合推导出的牛顿冷却定律公式计算出该数据当前数据温度,并更新其关联数据温度。
3.根据权利要求2所述的一种面向冷热数据的分级存储系统,其特征在于,所述冷热数据判定模块还可以根据对用户输入数据的数据库操作,来对数据温度进行调整,调整过程具体包括:
当发生数据插入操作时,直接将温度上升变量W作为数据插入的初始温度值;
当某数据被修改或访问时,先将其原有温度根据访问间隔时间进行冷却后,再进行一次升温得到最新的温度值,将最新的温度值加上温度上升变量W获得最终的数据温度,将数据温度作为数据被修改或访问时的温度值;
当某数据被删除时,则该数据自身温度置0,并同时根据数据关联性温度计算公式计算出该数据的关联数据温度,并更新关联数据的数据温度。
4.根据权利要求1所述的一种面向冷热数据的分级存储系统,其特征在于,所述冷热数据迁移模块对热库中的数据进行监控,将不符合热库中两个设定阈值的热数据迁移到冷库中的过程具体包括:冷热数据迁移模块采用高低水位法对热数据库进行饱和度监控,同时当热库数据量达到设定的高水位阈值后,按照数据温度的大小将热数据库中数据以数据温度从小到大的顺序进行排序,将超过低水位阈值的数据迁移至冷库中进行存储。
具体的,系统还包括数据手动触发迁移过程,具体包括:当热数据库长期未接受访问,以及数据库或业务终止时,将热库中的所有数据完全同步进行迁移冷库中。
5.一种基于权利要求1~4任意一项所述分级存储系统的分级存储方法,其特征在于,包括以下步骤:
步骤一:数据采集,利用系统前端采集用户输入的数据,即数据访问请求,并将数据访问请求发送至系统后台进行温度判定;
步骤二:冷热数据判定,分析数据访问请求同时根据分析出的温度计算相关信息对数据的温度进行计算,并将温度计算相关信息和计算出的温度信息更新并重新封装至原始数据;
步骤三:冷热数据迁移,分别将原始数据中的冷数据和热数据存储到对应的冷库和热库中;并对热库中的数据进行监控,将不符合热库中两个设定阈值的热数据迁移到冷库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110476035.2A CN112948398B (zh) | 2021-04-29 | 2021-04-29 | 一种面向冷热数据的分级存储系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110476035.2A CN112948398B (zh) | 2021-04-29 | 2021-04-29 | 一种面向冷热数据的分级存储系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948398A true CN112948398A (zh) | 2021-06-11 |
CN112948398B CN112948398B (zh) | 2023-02-24 |
Family
ID=76233650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110476035.2A Active CN112948398B (zh) | 2021-04-29 | 2021-04-29 | 一种面向冷热数据的分级存储系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948398B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113792772A (zh) * | 2021-09-01 | 2021-12-14 | 中国船舶重工集团公司第七一六研究所 | 一种用于数据分级混合存储的冷热数据识别方法 |
CN114020828A (zh) * | 2021-09-27 | 2022-02-08 | 南京云创大数据科技股份有限公司 | 一种分布式分级存储系统 |
CN114817425A (zh) * | 2022-06-28 | 2022-07-29 | 成都交大大数据科技有限公司 | 一种冷热数据分类的方法、装置、设备及可读存储介质 |
CN115269277A (zh) * | 2022-09-27 | 2022-11-01 | 山东恒辉软件有限公司 | 一种智慧实验室数据协同综合管理系统 |
CN115563087A (zh) * | 2022-11-17 | 2023-01-03 | 北京滴普科技有限公司 | 一种greenplum自动冷温热分区数据迁移系统 |
CN116204138A (zh) * | 2023-05-05 | 2023-06-02 | 成都三合力通科技有限公司 | 一种基于分层存储的高效存储系统及方法 |
CN116678162A (zh) * | 2023-08-02 | 2023-09-01 | 八爪鱼人工智能科技(常熟)有限公司 | 基于人工智能的冷库运行信息管理方法、系统及存储介质 |
CN117193656A (zh) * | 2023-02-27 | 2023-12-08 | 自然资源部信息中心 | 一种数据分级存储迁移流程方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140304480A1 (en) * | 2013-04-04 | 2014-10-09 | Sk Hynix Memory Solutions Inc. | Neighbor based and dynamic hot threshold based hot data identification |
CN104102454A (zh) * | 2013-04-07 | 2014-10-15 | 杭州信核数据科技有限公司 | 一种自动实现分层存储的方法和管理分层存储的系统 |
WO2015081757A1 (zh) * | 2013-12-05 | 2015-06-11 | 华为技术有限公司 | 冷热数据识别门限值计算方法、装置和系统 |
CN106502576A (zh) * | 2015-09-06 | 2017-03-15 | 中兴通讯股份有限公司 | 迁移策略调整方法、容量变更建议方法及装置 |
CN106502578A (zh) * | 2015-09-06 | 2017-03-15 | 中兴通讯股份有限公司 | 容量变更建议方法及装置 |
CN107844269A (zh) * | 2017-10-17 | 2018-03-27 | 华中科技大学 | 一种基于一致性哈希的分层混合存储系统及方法 |
CN108108128A (zh) * | 2017-12-19 | 2018-06-01 | 深圳忆联信息系统有限公司 | 一种混合ssd的磨损均衡方法及ssd |
CN108810140A (zh) * | 2018-06-12 | 2018-11-13 | 湘潭大学 | 云存储系统中基于动态阈值调整的分级存储方法 |
US20190227898A1 (en) * | 2018-01-19 | 2019-07-25 | Seagate Technology Llc | Wear Mitigation in a Data Storage System Through Data Migration |
CN111427844A (zh) * | 2020-04-15 | 2020-07-17 | 成都信息工程大学 | 一种面向文件分级存储的数据迁移系统及方法 |
CN111427969A (zh) * | 2020-03-18 | 2020-07-17 | 清华大学 | 一种分级存储系统的数据替换方法 |
CN111858471A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 一种实时迁移策略 |
CN112286459A (zh) * | 2020-10-29 | 2021-01-29 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、设备及介质 |
-
2021
- 2021-04-29 CN CN202110476035.2A patent/CN112948398B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140304480A1 (en) * | 2013-04-04 | 2014-10-09 | Sk Hynix Memory Solutions Inc. | Neighbor based and dynamic hot threshold based hot data identification |
CN104102454A (zh) * | 2013-04-07 | 2014-10-15 | 杭州信核数据科技有限公司 | 一种自动实现分层存储的方法和管理分层存储的系统 |
WO2015081757A1 (zh) * | 2013-12-05 | 2015-06-11 | 华为技术有限公司 | 冷热数据识别门限值计算方法、装置和系统 |
CN106502576A (zh) * | 2015-09-06 | 2017-03-15 | 中兴通讯股份有限公司 | 迁移策略调整方法、容量变更建议方法及装置 |
CN106502578A (zh) * | 2015-09-06 | 2017-03-15 | 中兴通讯股份有限公司 | 容量变更建议方法及装置 |
CN107844269A (zh) * | 2017-10-17 | 2018-03-27 | 华中科技大学 | 一种基于一致性哈希的分层混合存储系统及方法 |
CN108108128A (zh) * | 2017-12-19 | 2018-06-01 | 深圳忆联信息系统有限公司 | 一种混合ssd的磨损均衡方法及ssd |
US20190227898A1 (en) * | 2018-01-19 | 2019-07-25 | Seagate Technology Llc | Wear Mitigation in a Data Storage System Through Data Migration |
CN108810140A (zh) * | 2018-06-12 | 2018-11-13 | 湘潭大学 | 云存储系统中基于动态阈值调整的分级存储方法 |
CN111427969A (zh) * | 2020-03-18 | 2020-07-17 | 清华大学 | 一种分级存储系统的数据替换方法 |
CN111427844A (zh) * | 2020-04-15 | 2020-07-17 | 成都信息工程大学 | 一种面向文件分级存储的数据迁移系统及方法 |
CN111858471A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 一种实时迁移策略 |
CN112286459A (zh) * | 2020-10-29 | 2021-01-29 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、设备及介质 |
Non-Patent Citations (4)
Title |
---|
SUJI GOPINATH 等: ""A Weighted Dynamic Data Replication Management for Cloud Data Storage Systems"", 《INTERNATIONAL JOURNAL OF APPLIED ENGINEERING RESEARCH》 * |
万进: ""一种自适应分级存储系统的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
夏之生: ""混合云存储数据迁移技术研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
杨青霖 等: ""分布式存储系统中的数据高效缓存方法"", 《大数据》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113792772B (zh) * | 2021-09-01 | 2023-11-03 | 中国船舶重工集团公司第七一六研究所 | 一种用于数据分级混合存储的冷热数据识别方法 |
CN113792772A (zh) * | 2021-09-01 | 2021-12-14 | 中国船舶重工集团公司第七一六研究所 | 一种用于数据分级混合存储的冷热数据识别方法 |
CN114020828A (zh) * | 2021-09-27 | 2022-02-08 | 南京云创大数据科技股份有限公司 | 一种分布式分级存储系统 |
CN114020828B (zh) * | 2021-09-27 | 2024-05-31 | 南京云创大数据科技股份有限公司 | 一种分布式分级存储系统 |
CN114817425A (zh) * | 2022-06-28 | 2022-07-29 | 成都交大大数据科技有限公司 | 一种冷热数据分类的方法、装置、设备及可读存储介质 |
CN114817425B (zh) * | 2022-06-28 | 2022-09-02 | 成都交大大数据科技有限公司 | 一种冷热数据分类的方法、装置、设备及可读存储介质 |
CN115269277A (zh) * | 2022-09-27 | 2022-11-01 | 山东恒辉软件有限公司 | 一种智慧实验室数据协同综合管理系统 |
CN115269277B (zh) * | 2022-09-27 | 2022-12-27 | 山东恒辉软件有限公司 | 一种智慧实验室数据协同综合管理系统 |
CN115563087A (zh) * | 2022-11-17 | 2023-01-03 | 北京滴普科技有限公司 | 一种greenplum自动冷温热分区数据迁移系统 |
CN115563087B (zh) * | 2022-11-17 | 2023-04-11 | 北京滴普科技有限公司 | 一种greenplum自动冷温热分区数据迁移系统 |
CN117193656A (zh) * | 2023-02-27 | 2023-12-08 | 自然资源部信息中心 | 一种数据分级存储迁移流程方法 |
CN116204138B (zh) * | 2023-05-05 | 2023-07-07 | 成都三合力通科技有限公司 | 一种基于分层存储的高效存储系统及方法 |
CN116204138A (zh) * | 2023-05-05 | 2023-06-02 | 成都三合力通科技有限公司 | 一种基于分层存储的高效存储系统及方法 |
CN116678162A (zh) * | 2023-08-02 | 2023-09-01 | 八爪鱼人工智能科技(常熟)有限公司 | 基于人工智能的冷库运行信息管理方法、系统及存储介质 |
CN116678162B (zh) * | 2023-08-02 | 2023-09-26 | 八爪鱼人工智能科技(常熟)有限公司 | 基于人工智能的冷库运行信息管理方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112948398B (zh) | 2023-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112948398B (zh) | 一种面向冷热数据的分级存储系统及方法 | |
US10623488B1 (en) | Systems and methods for replicating data | |
US9449005B2 (en) | Metadata storage system and management method for cluster file system | |
CN102014158B (zh) | 一种云存储服务客户端高效细粒度数据缓存系统与方法 | |
US7107419B1 (en) | Systems and methods for performing record append operations | |
US8112585B2 (en) | Method and apparatus for dynamically switching cache policies | |
US7222119B1 (en) | Namespace locking scheme | |
CN104978362B (zh) | 分布式文件系统的数据迁移方法、装置及元数据服务器 | |
US20050198062A1 (en) | Method and apparatus for accelerating data access operations in a database system | |
US20110066808A1 (en) | Apparatus, System, and Method for Caching Data on a Solid-State Storage Device | |
EP3087513A1 (en) | Hierarchical chunking of objects in a distributed storage system | |
US20160085834A1 (en) | Prioritizing repopulation of in-memory compression units | |
CN103246696A (zh) | 高并发数据库的访问方法及应用于多服务器系统的方法 | |
CN110188080A (zh) | 基于客户端高效缓存的远程文件数据访问性能优化方法 | |
EP3465473A1 (en) | Versioning and non-disruptive servicing of in-memory units in a database | |
CN107888687B (zh) | 一种基于分布式存储系统的代理客户端存储加速方法及系统 | |
CN105915595B (zh) | 一种集群存储系统存取数据的方法以及集群存储系统 | |
CN109002400B (zh) | 一种内容感知型计算机缓存管理系统及方法 | |
CN110554914B (zh) | 资源锁管理方法、装置、服务器及存储介质 | |
Tao et al. | Adaptive index structures | |
CN116226128A (zh) | 以对象存储为冷存储的olap引擎冷热分离优化方法 | |
CN108984338B (zh) | 一种面向去重备份系统数据恢复的离线最优缓存替换装置及方法 | |
CN112015807B (zh) | 数据同步的处理方法、装置、电子设备及计算机存储介质 | |
CN106776249B (zh) | 一种用于对并发生成的业务日志的处理方法和系统 | |
CN112632027A (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 |