冷热数据浅浅见

冷热数据浅浅见

  • 一、前言
  • 二、冷热数据的标准(判断)
  • 三、判断冷热数据的算法
    • 3.1 基于数据结构特点的判断算法
      • 3.1.1 传统的方法
      • 3.1.2 改进的方法
    • 3.2 基于统计学上的判断算法
    • 3.3 基于机器学习的判断算法
  • 四、总结
  • 五、参考

一、前言

这个星期看了关于目前数据存储中关于冷热数据的一些相关内容。 所谓冷数据,简单来说就是在一段时间内访问的比较少,接下来的一段时间访问的概率也不是很大。相反的是,热数据,就是在一段时间内访问的较多的数据,它们在接下来的时间内访问的概率也会非常大。

在这里插入图片描述

在互联网中,很多业务对数据的访问并不是均匀的,而是呈现相对的数据访问倾斜(skewed workloads),会出现相对的hotspot。例如,下图为阿里巴巴在一篇论文中提到的阿里的业务场景中对一些key-value的访问,可以看到正常情况下50%的访问都是集中在1%的key上,而一些特殊场景(如双11等)90%的访问都是集中在1%的key上(We observe that 50% (daily cases) to 90% (extreme cases) of accesses only touch 1% of total items, which shows that the hotspot issue becomes unprecedentedly serious in the Internet era.)。
在这里插入图片描述
因此对冷热数据的研究还是很有必要的。

二、冷热数据的标准(判断)

那如何判断冷热数据呢?
在这里插入图片描述

就我这段时间的研究发现,冷热数据的判断大都基于两个标准:
(1)、访问的频繁度。 即在一段时间内对一个数据访问的越多,常理上我们越把它当成hot data。这个标准非常符合我们在之前的定义,也非常好理解。
(2)、访问的时效性。 即访问的数据越接近当前时间点,我们也可以从某种程度上把其当成hot data。因为大多数应用场景,都具有时间和空间的局部性(尤其是对于计算机领域来说),当前访问的数据,接下来访问的概率相对要较大些。

以上就是基本的判别标准,一些具体的应用算法也大都是根据上面的两个标准来划分冷热数据的。

三、判断冷热数据的算法

在具体的系统中,有不同的算法来预测接下来的冷热数据。 就我目前的理解来看,大体上分为三类:
(1)、基于数据结构特点的判别算法
(2)、基于统计学上的判断算法
(3)、基于机器学习的判断算法

下面分别简要介绍。

3.1 基于数据结构特点的判断算法

按照我的划分,基于特定数据结构的判断算法分为传统的方法和现代改进的一些算法。分类如下

3.1.1 传统的方法

传统的、经典的用于判断冷热数据的方式就是我们在操作系统上学到的一些页面替换算法。如LRU、LFU、OPT等等。 基本的概念、性质啥的这儿就不说了,这里主要谈点涉及到本主题的内容。

(1)、LRU(最近最久未使用)。 这种方式主要利用里数据的时效性,认为最近访问的数据接下来访问的概率会大些,所以更倾向于在内存中存放那些最近刚访问的数据(或者说是页面),同时淘汰那些已经很久没访问的数据。 但是这种算法没有考虑数据访问的频繁程度。
(2)、LFU(最近最少使用算法)。一字之差,意义可就完全不同了。 LFU算法考虑的是数据访问的频繁程度,访问越频繁的数据,系统会更倾向于把它当成热点数据保存。 同样,LFU只考虑了数据的频繁程度却没有考虑数据的时效性。

对于OPT,它是一种理想情况下的算法,这里不做讨论了。还有一些FIFO、CLOCK等页面淘汰算法和这里的主题不是很相关,暂且就不做讨论了。

3.1.2 改进的方法

传统的方法有一些缺点,在当前的数据架构上不是很合适,所以又出现了了改进的一些基于数据结构的算法,如LRU-k, 2Q、HotRing等等。同理基本的介绍部分,请参照文后参考的相关资料(我的水平估计没它们介绍的好)。

(1)、LRU-k。 这种算法算是前面LRU的改进版,从冷热数据的角度来看,它综合考虑了时效性和数据的频繁度。 冷热数据预测效果应该要比LRU要好,但是实现起来要稍微复杂些。
在这里插入图片描述

(2)、2Q。 这个算法本质上和上面的k取2差不多,都是多利用了一个队列来保护以前频繁访问但是最近未有访问的数据,也算是综合了数据的时效性和频繁程度。

(3)、HotRing.确切的说,这不是一种算法,而是一种新的数据结构。这是阿里在Tair(一种内存数据库)中使用的一种子组件。它本质上是一种改进的hash数据结构,把hash算法中的拉链变成了“拉环”。 在hash table中有一个head指针一直指向此环中(也就是冲突链中)最热的结点(确切的说是hotspot 附近的结点)如下图所示。
在这里插入图片描述
关于具体的实现过程可以学习参考【2】中论文。顺便说一点,我觉得这篇论文的精髓一个是在于采用了head 指针指向环中的热点,使得查找hash 冲突的结点所花费的时间缩减;另一个就是其统计采样策略,它并不是每隔一定时间进行采样,而是在hotspot失效的情况下重新进行一轮采样,从而确定新的热点,这种方式从一定程度上提高了系统的性能。

3.2 基于统计学上的判断算法

以上的几种算法都是利用特定的数据结构来进行热点数据的判别的。 我了解到的资料中还有一些是利用统计模型来判断冷热数据的。 这种方式,大都根据数据的访问特征提出了一个算法模型,然后利用这个模型来进行冷热数据判别。

如paper【5】中提出了一种基于指数平滑的冷热数据识别方法,通过指数平滑来预测一个数据未来被访问的可能性。

paper 【6】中,创新的把温度的冷热和数据的冷热结合关联在里一起,利用牛顿冷却定律推导出了一个温度数据模型。

具体的算法请参考相应的论文,这里就不阐述了。

3.3 基于机器学习的判断算法

对于这种方式,就是利用机器学习算法,来进行学习,从而来预测数据的在接下来访问。 这几年机器学习、深度学习这么火,应该对这点研究的也挺多的了。 无奈的是,这目前不是我的强项,这里也就不说了╮(╯▽╰)╭。

四、总结

冷热数据的研究,包括前面总结的负载均衡的研究本质上就是为了提高系统的性能。From a high level, 这都是资源的调度和配置,根据一定的规则和限制,把数据资源放到其该放的地方,从而达到效率、性能等的最大化。

在这里插入图片描述

对于此,任重而道远。。。。

五、参考

【1】、LRU-K和2Q缓存算法介绍
【2】、HotRing: A Hotspot-Aware In-Memory Key-Value Store
【3】、HotRing论文阅读笔记
【4】、深度 | HotRing: 阿里缓存系统Tair的自感知热点数据子组件
【5】、Identifying Hot and Cold Data in Main-Memory Databases
【6】、基于数据温度的冷热数据识别机制研究

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36387.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

商汤日日新大模型90天大升级!CEO现场整活,主打突破想象力

金磊 发自 WAIC量子位 | 公众号 QbitAI 商汤“日日新”AI大模型,如其名,真的做到了日日新。 这不,从发布到现在,时隔仅仅3个月,商汤便正式宣布: 商汤日日新(SenseNova)大模型体系全面…

一张快照就能还原出一段视频!AAAI 2023论文提出快照压缩成像新算法 | 开源

飞晔 投稿量子位 | 公众号 QbitAI 随着光学算法发展,如今我们用低维传感器也能“捕获”高维信号了。 举个例子,这是我们用2D传感器拍到的一张“照片”,看起来充满了噪声数据: 然而,正是通过这张“照片”所包含的数据&a…

微信春节大数据出炉:《三体》阅读量第一 ;曝iOS 17应用商店将向第三方开放;斯坦福大学推出DetectGPT|极客头条

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&…

chatgpt赋能python:Python如何输出彩色的文字

Python如何输出彩色的文字 介绍 Python是一种高级编程语言,它广泛用于数据处理、人工智能、机器学习等各种领域。在Python编程中,输出信息是非常重要的部分。而有时,我们可能希望将输出的信息以不同的颜色呈现,以便更好地区分不…

视觉媒体通信——无损视频播放器

0 前言 我想,看这篇文章的朋友十有八九是在大三下选了这门课。那么我首先祝贺你们,即将结束美好的大学时光。以前听说这门课很难,但是这门课最大的诱惑就是没有期末考试~,所以我当初就选了。我也很担心自己不会做,但是…

chatgpt赋能python:Python绘制彩色线条的详细教程

Python绘制彩色线条的详细教程 简介 Python作为一门高级编程语言,可以用于许多不同领域的应用程序。其中,绘图是Python中很有用的一个应用领域。本文将介绍如何使用Python绘制彩色线条的方法,以及这对于数据可视化有多么重要。 方法 使用…

chatgpt赋能python:Python彩色转黑白简介

Python彩色转黑白简介 Python是一种高级编程语言,提供了许多内置功能和库来进行图像处理。其中之一就是彩色转黑白。彩色图像是RGB(红色,绿色和蓝色)通道的混合,而黑白图像则只有灰度值。 在本篇文章中,我…

chatgpt赋能Python-python_print_彩色

Python打印彩色文本:给你的代码添加亮丽的色彩 如果你是一位具备10年Python编程经验的工程师,那么你一定知道在Python中如何使用print函数输出文本。但是,你是否知道如何打印出彩色的文本?这样一来,你的代码就会变得更…

chatgpt赋能python:Python彩色字体介绍

Python彩色字体介绍 Python是一种高级编程语言,启发式风格的语法使其成为学习编程的理想选择。本文将介绍如何在Python代码中使用彩色字体。如果您是Python编程初学者,这篇文章将对您有所帮助。 什么是彩色字体? 彩色字体是一种添加颜色信…

chatgpt赋能python:Python彩色图像处理

Python彩色图像处理 Python是一门富有表现力语法和丰富库的语言,因此它成为了许多图像处理和计算机视觉任务的首选语言。其中,Python彩色图像处理已经被广泛应用,如图像滤波,图像分割,图像增强等。本文将介绍Python彩…

chatgpt赋能python:Python绘制彩色蟒蛇

Python绘制彩色蟒蛇 如果你曾经看过蟒蛇的图片,那么你会发现这种动物的图案非常独特。如何使用Python编程语言,绘制出这种非常具有特征的蟒蛇形状呢?在这篇文章中,我们将会介绍如何使用Python绘制彩色蟒蛇的方法。 加载必要的库…

chatgpt赋能python:Python色彩空间转换-介绍

Python 色彩空间转换 - 介绍 在图像处理中,色彩空间指的是颜色表示的方式。常见的色彩空间有 RGB、HSV、YUV 等。在图像处理中,经常需要进行不同色彩空间之间的转换。Python 提供了强大的图像处理库 Pillow,可以进行色彩空间的转换。 Pytho…

Unity实战篇 | 接入 声网SDK 实现 音频通话 —— 自己动手做一个 语音聊天房

目录 🐱‍🏍前言🎂Unity 接入 声网SDK 实现 音频通话第1️⃣步,创建声网应用第2️⃣步,获取相应的SDK第3️⃣步,将SDK接入Unity中第4️⃣步:搭建一个测试场景,编写测试代码第5️⃣步:音频通话API第6️⃣步:效果测试🎨总结🐱‍🏍前言 最近正好在网上看到声网…

声网Agora Lipsync技术剖析:通过实时语音驱动人像模拟真人说话

元宇宙的火热让人们对未来虚拟世界的形态充满了幻想,此前我们为大家揭秘了声网自研的3D空间音频技术如何在虚拟世界中完美模拟现实听觉体验,增加玩家沉浸感。今天我们暂时离开元宇宙,回到现实世界,来聊聊声网自研的 Agora Lipsync…

Audio2Face-语音驱动虚拟人表情

任务: 输入自己的音频,导入maya模型,让maya模型通过音频驱动说话 教程: https://www.bilibili.com/video/BV1rZ4y1R7H4/?p2&spm_id_frompageDriver&vd_sourceef114f70c3fd4d5394f12dbd3d022bbe 一.下载和安装 1.首先…

chatgpt赋能python:Python与电影评分

Python与电影评分 近年来,越来越多的人选择通过网络来观看电影。然而,在选择一部电影时,看到的只是电影名称和海报。这时就需要借助电影评分来给自己做出更明智的选择。Python作为一门流行的编程语言,它的应用程序提供了许多有用…

让Ai来告诉你Linux应该怎么学

今天在slack上添加了Claude,他属于ChatGPT的最强竞品,支持中文,体验非常舒适,也并不像国内某些自建AI那样弱智。 至于Linux要怎么学,就让Claude来回答吧。 你能告诉我Liunx应该怎么学吗? 学习Linux,我有…

推荐四款最易上手的电脑版视频编辑软件

视频编辑软件可以剪切并保存一段视频中的精彩部分,从而制作出美丽的视频,让观众欣赏到最有价值的部分。当然,无论是为天猫店铺录制视频,还是自定制作超强特效的科幻视频,都是可以通过视频编辑软件来完成。那么&#xf…

推荐三个可以裁剪视频的软件给你

相信大家在制作视频的过程中都会遇到这种情况:拍摄的画面杂糅了许多其它的物体或着是路人,导致画面看起来非常的杂乱,这时候就需要我们借助一些软件来对视频的画面进行裁剪了,使我们能够保留视频画面的主体内容,方便对…

想知道怎么裁剪视频?这几个方法亲测好用

现在的互联网非常发达,我们可以在网上很快很容易就找到各种视频进行学习。不过有些网课视频的重点内容比较分散。为了不占用我们过多的存储空间,且达到高效学习的目的,我们可以通过裁剪视频,把需要的部分留下来,这样就…