【数媒在线课堂】Valkey8.0 预取数据应用(数媒专业课程体系介绍)

【数媒在线课堂】Valkey8.0 预取数据应用(数媒专业课程体系介绍)

Valkey 是一个键值对数据库,在 Valkey 中的键值对是由字典(也称为 hash 表)保存的,如下图所示的链式哈希表。

在 Valkey8.0 之前,在哈希表中查找一个 key 及对应的 value 步骤如下描述:

计算 key 的 hash 值,找到对应的 bucket

遍历存储在 bucket 中通过链表连接的 entry,直到找到需要的 key

如果找到 key,再访问 key 映射的 RedisObj(也就是存储的 value),如果存储的 value 是 OBJ_ENCODING_RAW 类型,还需要进一步访问内存地址获取真正的数据

每一步操作都需要等待前面的步骤完成内存数据读取,整个访问过程是一个串行步骤,这种动态数据结构会阻碍处理器推测未来可以并行执行的内存加载指令的能力,因此访问内存成为 Valkey 处理数据的性能瓶颈。

在 Valkey8.0 中,对于具有可执行命令的客户端(即 IO 线程已解析命令的客户端),主线程将创建一个最多包含 16 条命令的批次,批量处理这些命令。并且执行命令前,先将命令参数预取到主线程的一级缓存中,再将所有命令所需的字典条目 entry 和值 value 都从字典中预取。

同时,预取命令所需的字典条目 entry 和值 value 时遍历字典的方式与上述查找 key 过程类似,不同的是,每个 key 每次只执行一步,然后不等待从内存中完成读取数据,而只是预取数据,然后继续执行下一个 key 的下一次预取动作。这样当所有 key 都遍历完成第一步后,开始执行第二步的时候,执行第二步所需的第一步数据已经预取到了 L1 高速缓存。这样通过交错执行所有 key,并且结合预取,达到分摊访问内存的效果。

单个 key 预取流程如下所示:

每批次多个 key 预取流程则是循环遍历每个 key 交错执行上述步骤,先预取其中一个 key 的 bucket,然后不会执行预取该 key 的 entry,因为此时如果接着流程预取该 key 的 entry,需要等待将该 key 的 bucket 内存读取出来;而是执行下一个 key 的预取动作。也就是达成所有 key 的预取动作一直在并行执行效果,分摊内存访问时间。

多个 key 批量预取流程如下所示:

循环遍历每个 key 交错执行上述步骤,先执行一个 key 的预取动作,然后交错执行另一个 key 的预取动作,所有 key 的预取动作并行执行,降低所有 key 访问内存总时间。

同一批次所有 key 和 value 都完成预取后,主线程开始批量执行命令。相比在 Valkey8.0 之前的版本中,主线程逐个处理每个客户端命令,批量预取数据加上批量处理,大幅提升单节点 Valkey 服务器性能,社区测试单节点 Valkey 访问请求可以达到每秒 120W。

特别声明:[【数媒在线课堂】Valkey8.0 预取数据应用(数媒专业课程体系介绍)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

男子弑母后水泥封尸难忍恶臭自首,杀人动机竟是“妈妈太唠叨”(弑母案例)

男子弑母后水泥封尸难忍恶臭自首。8月4日,泰国一起惨绝人寰的凶杀案被揭露,一名33岁的男子杀害母亲后,将遗体藏在自家浴缸内,并以水泥层层封尸。两周后他亲自前往警局自首,警方到场后,一进浴室就闻到浓浓的尸臭,只能请来相关单位一同协助清理遗体。

男子弑母后水泥封尸难忍恶臭自首,杀人动机竟是“妈妈太唠叨”(弑母案例)

什么是11月包装展的全链路创新?(什么是11月包装食品)

swop包装世界(上海)博览会作为11月包装展的核心平台,聚焦于这些领域的协同演进,例如通过引入高效加工设备、开发环保材料、优化制品功能以及创新设计理念,推动包装解决方案的整体升级。 智能包装新纪元在包装行业…

什么是11月包装展的全链路创新?(什么是11月包装食品)

离心式压缩机属于什么型压缩机(离心式压缩机属于)

离心式压缩机核心工作原理——通过高速旋转的叶轮对气体做功,将机械能转化为气体的动能与压力能。相较于容积式压缩机通过改变密闭空间体积实现压缩,速度型压缩机更注重流体动力学原理的应用。 以上是对“”介绍,离心式…

离心式压缩机属于什么型压缩机(离心式压缩机属于)

钟楚曦慵懒穿搭小心机炸街!松弛感生图引全网抄作业(钟楚曦慵懒穿搭图片)

评论区吵成热帖,高赞留言说:“比起硬凹造型,这种舒服的精致更见品味,这才是通勤人刚需啊”。团队透露,她私下会研究不同体型的穿搭公式,“比如梨形身材怎么卷裤边,苹果型怎么选外套”,机场这套是她自己搭配的通勤范本…

钟楚曦慵懒穿搭小心机炸街!松弛感生图引全网抄作业(钟楚曦慵懒穿搭图片)

如何搭建一套智能审批OA系统?(如何搭建智能家庭)

3.流程一改就得重做,改一次等两周有的系统太死板,一个节点审批顺序一变、字段一加,就要改代码重部署。不是所有流程一上来都得搬线上,建议先选几个最常出问题、员工最频繁提交的流程先动手,比如: 第四步:做个流…

如何搭建一套智能审批OA系统?(如何搭建智能家庭)