论文阅读(2):hashkv

大模型系列12-KV Cache 预填充性能评估指标:TTFT(time to first token)TTFT 即生成首个标记的时间,是预填充阶段关键评估指标。实际应用中,通常会设定 TTFT SLO,这是对系统的性能要求,只有系统满足该指标,其性能才达标。例如,设定 P90 TTFT SLO 为 0.4 秒,即要求系统 90% 的请求其 TTFT 值小于等于 0.4 秒。解码性能评估指标:TPOT(time per output token)TPOT 是生成每个输出标记的时间,是解码阶段重要评估指标。 阅读详情

香港中文大学helen HashKV: Enabling Efficient Updates in KV Storage via Hashing

 

针对问题:kv分离设计中,valuelog的gc的效率低下,尤其在update intensive负载中。

第一:环形日志维持严格GC顺序,总是在最近的kv对插入的位置开始进行GC。会造成不必要的数据移动。

第二:gc需要查询LSM来检查kv的有效性,而这个查询有着很高的延迟。

 

hashkv的解决方法:

1.对value storage进行基于hash的数据分组设计。将value storage分成固定大小的分组,每个新插入的kv对根据hash值选择group进行append。

并在此基础上,提出了三点扩展:

动态的保留空间分配:如果原始的hash分组满了,动态的分配保留空间给额外的write

热点感知:分离hot和cold的键值对来提高gc效率。

选择性的kv分离:!!!!小size的kv对完全保留在LSMtree来简化查询。

 

实验,对leveldb,rocksdb,kvseperation进行了对比,在load和update两种数据scheme下,wisckeydb在update表现的很差。

SSD分组,hot kv对会进行更多gc,相应他们在lsmtree也在更上层,查询更少。

 

hashkv设计:

1.基于哈希的数据分区:分区隔离,使得一个key的所有update都在一个分区里。确定性分区,一个value应该被存储的分区由hash决定。

2.动态保留空间的分配,每个分区大小固定,有些分区可能增长的超出了这个限制,这时就分配保留空间给他。

3.热点感知:很多时候,热点数据和冷数据被分配到一个分区,那么对这样分区的垃圾回收会导致冷数据被反复重写。hashkv通过标签技术将冷热数据分开。

4.选择性的kv分离:比较小的value就不适用kv分离的机制。

 

 

 

 

gc策略:

选择那个segmentgroup进行gc?

目前是贪婪算法,最多写操作的一个group

怎么尽快判断一个kv对是否valid?

将key,meta和value一起存在valuelog中,这样就不用去LSMtree里去找,直接通过scan valuelog的对应group就能知道。与group end离得最近的一个版本的kv对必然是最新的。

 

热点感知:

标签技术,对seggroup中每个kv pair进行hot、cold分类

当前方法:上次插入之后至少update过一次的叫做热数据,热数据还存在seggroup,但冷数据就只将meta放在group里,而将kv放在另外的存储空间,并用tag标示,等以后被更新过,在更新为热数据。而对于colddata的vlog的垃圾回收,就执行wisckeydb的vlog gc方法。

 

选择性的键值分离:

我当初的想法和他一致

 

范围查询:

使用LSMtree的关键因素,键值在sstable中都是有序排列的。类似wisckeydb,通过preread策略,减少范围查询的延迟,将值预取到pagecache中。

 

崩溃一致性:

元数据日志,flush写缓存,gc

元数据日志是用来记录每一次flush操作的。

所有有关HASH函数的论文 所有有关HASH函数的论文,hash,安全散列算法,值得参考有几十篇关于密码学的论文 立即下载

相关推荐

Efficient and Available In-memory KV-Store with Hybrid Erasure Coding and Replication

Efficient and Available In-memory KV-Store with Hybrid Erasure Coding and Replication

HashKV: Enabling Efficient Updates in KV Storage via Hashing

HashKV遵循KV分离[23],在lsm树中只存储键和元数据,用于索引KV对,而值存储在一个单独的区域中。在KV分离的基础上,HashKV引入了几个核心设计元素,实现了高效的价值存储管理。KV分离通过仅将键存储在lsm树中,而将值存储在单独的存储中,从而减轻了I/O放大的影响。它支持标准的KV操作:PUT(即写一个KV对)、GET(即取得一个键的值)、DELETE(即删除一个KV对)和SCAN(即取得一个范围内的键的值)。HashKV是一个持久的KV存储,专门针对更新密集型的工作负载。

小蚂蚁与大象 221

从Oracle到腾讯TDSQL数据库升级技术分享

腾讯TDSQL(Tencent Distributed SQL)是一款兼具关系数据库和NoSQL数据库优点的新型数据库,文章主要分享oracle升级为TDSQl数据库技术经验。

u012372850的专栏 2614

redis hash(k-value(kv))

原文链接 为什么说reids中的哈希结构是key-value 而value又是一个key-vlaue键值对的存在呢? 我们简单举个实例来描述下Hash的应用场景,比如我们要存储一个用户信息表数据,包含以下信息: 用户ID为查找的key,存储的value用户对象包含姓名,年龄,生日等信息,如果用普通的key/value结构来存储,主要有以下2种存储方式: 第一种方式将用户ID作为查找k...

hkhl_235的博客 2370

Windows下用Python调用科大讯飞语音唤醒SDK的避坑指南(附完整代码)

本文详细介绍了在Windows平台使用Python调用科大讯飞语音唤醒SDK的全流程,包括环境配置、核心代码实现、典型问题解决方案及进阶开发技巧。通过完整的代码示例和避坑指南,帮助开发者快速集成语音唤醒功能,提升开发效率。

u0v1w2x3的博客 406

Linux下用SquareLine Studio开发LVGL界面:从安装到实战的完整避坑指南

本文提供了一份在Linux系统下使用SquareLine Studio开发LVGL图形界面的完整实战指南。内容涵盖从SDL库安装、SquareLine Studio环境配置、界面可视化设计,到工程导出、源码编译及常见错误排查的全流程。重点解析了如何将设计界面无缝集成到Linux开发流程中,并针对嵌入式设备移植提供了关键步骤,旨在帮助开发者高效避坑,快速上手LVGL界面开发。

egg99的博客 905

KV-存储 之 Hash算法

生活中你应该遇到这样的事情: 你要去隔壁班级拿本书给某位同学, 不巧的是他当时不在,你也不知道他的座位, 你会选择问离你最近的同学,他坐哪. 他会毫不犹豫的回答你: 第几排第几个座位. 这是个很常见的例子, 但是里面却蕴含了极其伟大的Hash算法. 试想 那位同学能在近似常数时间内帮你指出你要知道的那位同学的位置是因为所有同学的位置他已经记在脑子中了(假设全部). 他不会去从第一排第一个位置慢...

holoblog 459

abaqus运行报错 WindowsError:[Error 2]

abaqus提交job总是提示“WindowsError [Error 2”,报这个错误,可能是由于安装其他软件改变了abaqus软件的路径导致,总结了看到的教程,按照下面的方法可以解决这个问题。 步骤一:找到你的abaqus安装路径(我是按照一个安装视频安装的,安装路径为SIMULI1),然后找到SIMULIA文件夹,点击进入后找到commands文件夹,将这个路径复制下来。 步骤二:我的电脑右键属性,在左侧中找到高级系统设置并...

az101za的博客 1万+

unqlite源码分析之unqlite_kv_store

现在只记录了使用文件系统的解析,后续添加使用mem的解析 int unqlite_kv_store(unqlite *pDb,const void *pKey,int nKeyLen,const void *pData,unqlite_int64 nDataLen) { ... if( nKeyLen < 0 ){ /* Assume a nu...

穿越星空 933

基于simulink的自动紧急制动系统(AEB)的功能验证

本文手把手指导使用Simulink构建自动紧急制动系统(AEB)模型,通过五个关键步骤完成功能验证:1)搭建车辆动力学模型;2)设计雷达传感器模型;3)开发基于碰撞时间(TTC)的决策逻辑;4)设计标准化测试场景;5)进行仿真分析。重点讲解了AEB的多级触发机制(预警、辅助制动、自动制动)和核心指标验证方法,包括制动时机判断、减速度性能等。通过典型场景仿真,展示了AEB如何在2.5秒TTC触发预警,1.2秒TTC启动自动制动,有效避免碰撞。文章还展望了行人AEB、传感器融合等进阶研究方向,为自动驾驶安全系统

amy_mhd的博客 267

一文入门车载以太网:从原理到实战,看完就能上手开发

新手选型遵循“适配场景、兼顾成本、优先车规”的原则:普通场景(车载娱乐、普通诊断):100Base-T1 PHY(LAN8742)+ 非TSN交换机(SJA1105)+ STM32H743 ECU + 普通STP线缆;ADAS场景:1000Base-T1 PHY(TJA1101)+ TSN交换机(SJA1110)+ NXP S32G399 ECU + 高抗干扰STP线缆;避免过度选型:如普通娱乐场景无需选择TSN交换机、ASIL-B级芯片,否则会增加成本;

getusushu的博客 319

HashMap<KV>源码详解

HashMap<K,V>源码详解(基于jdk1.8.0_162) 介绍:HashMap<K,V>是一种键值对存储结构。 HashMap<K,V>在jdk1.8之后,底层实现方式变为数组+单链表+红黑树了。 HashMap<K,V>是非线程安全的。 HashMap<K,V&...

p812438109的专栏 681

【YOLOv10改进[Backbone]】使用ADNet改进YOLOv10在噪声干扰下的目标检测效果(图像去噪)+ 含全部代码和详细修改方式 + 手撕结构图 + 全网首发

使用ADNet改进YOLOv10在噪声干扰下的目标检测效果(图像去噪)+ 含全部代码和详细修改方式 + 手撕结构图 + 全网首发 + 遥遥领先

静谧、淡雅 2858

wisckey论文阅读:在SSD场景中,将key于value分离

摘要:基于持久化LSM树的kv存储,将key与value分离减少写放大 性能比起leveldb提升很大 1.introduction 键值存储在很多应用场景中,都越来越重要。 LSM结构比起B树,减少了很多随即写,变成顺序写,提升了性能。而LSM之所以这么成功,是因为与HDD的结合,HDD的顺序IO比起随机IO 快了1000倍。 但随着ssd的使用普及,对这种情况造成了一些变化。 本文...

bigbugss的博客 2126

SRS流媒体服务器在Windows下的安装

在之前的流媒体开发中(视频会议),我基本上使用nginx加模块的方式进行学习、测试,正式开发的时候改为服务器端用EasyDarwin,客户端用rtsp-simple-server(这些流媒体服务器的用法见我以前的博文),这样可以充分利用客户端的资源,降低服务器端的压力。在流媒体协议方案,我选择相对较快的rtsp。这个协议优点是支持UDP协议,优化好的环境下可以实现3秒以下的延迟,基本满足甲方要求,缺点就是不支持网页播放。

dgnankai的专栏 2023

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

KVSSD: 结合 LSM 与 FTL 以实现写入优化的 KV 存储

本次分享的 Paper[1]:《 KVSSD:Close integration of LSM trees and flash translation layer for write-efficient KV store 》是在 18 年的 Design, Automation & Test in Europe Conference & Exhibition (DATE) 会议上出现的 KVSSD,作者为:Sung-Ming Wu[2]、Kai-Hsiang Lin[3]、 Li-Pin C

ludongguoa的博客 1134

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

探秘Transformer系列之(26)--- KV Cache优化---分离or合并

探秘Transformer系列之(26)--- KV Cache优化---分离or合并 从零开始解析Transformer,目标是:(1) 解析Transformer如何运作,以及为何如此运作,让新同学可以入门;(2) 力争融入一些比较新的或者有特色的论文或者理念,让老鸟也可以有所收获。 探秘Transformer系列之(26)--- KV Cache优化 之 PD分离or合并目录探秘Transformer系列之(26)--- KV Cache优化 之 PD分离or合并0x00 概述0x01 背景知识1.1

weixin_55010563的博客 927

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

字节跳动在 RocksDB 存储引擎上的改进实践

读写放大和原版 RocksDB 对比,理论分析上是有优势的:表:复杂度分析对比(读放大和写放大)3.3 KV 分离在论文介绍了一种 KV 分离的 SST 设计,它的主要方式是构建一个 Value Log 文件不断的在上面追加 Value 数据,同时原始的 SST 中 Value 只记录数据真实存在的位置即可。图:KV 分离的基本原理其实 KV 分离的思路比较直接和简单,把符合阈值的 value 从直接存储在 SST 中,改为存储文件指针,降低 Compaction、Seek 等操作的开销。

2401_84048161的博客 1004

论文阅读:efficient and available in-memory KV-store with hybrid erasurecod and repli

内存kv存储加上纠错码和备份的混合设计。 问题: 说是纠错码用在元数据更新上,很频繁,但PBR模式难道不用频繁更新么? 摘要 kvstore用在很多网站和数据库系统中,连续应对每秒million级别的请求。保持可用性的措施往往采用primary-backup主从备份。但这样就要将稀缺的内存用在与响应用户请求无关的地方。本文结合纠错码技术和PBR节省内存开销而不降低性能。 主要挑战是:内存kvsto...

bigbugss的博客 396

kv-storage

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34216036的博客 334

Efficient and Available In-Memory KV-Store with Hybrid Erasure Coding and Replication(fast‘16)

内存中键/值存储(KV存储)是许多系统(例如数据库和大型网站)的关键构建块。 此类系统的两个关键要求是效率和可用性,这要求KV商店每秒连续处理数百万个请求。 一种常见的可用性方法是使用复制,例如主备份(PBR),但是它需要M + 1倍的内存才能容忍M个故障。 这使稀缺的内存无法处理有用的用户作业。 本文首次提出通过集成ec来构建高可用的KV-Store,从而在不显著降低内存性能的前提下提高内存效率。 一个主要的挑战是, 内存KV存储中的元数据分散很多。由于对元数据的更新过小,单个KV认沽期权可能会导致过多的

weixin_41523437的博客 481

《WiscKey: Separating Keys from Values in SSD-conscious Storage》阅读笔记

abstract   我们提供了WiscKey,这是一个持久的基于LSM树的键值存储,具有面向性能的数据布局,它将键与值分离,以最小化I/O放大值。WiscKey的设计是高度SSD优化的,利用了设备的顺序和随机性能特性。我们用微基准测试和YCSB工作负载演示了WiscKey的优势。微基准测试结果显示,WiscKey比LevelDB快2.5×-111×,比随机查找快1.6×-14×。在所有六个YCSB工作负载中,WiscKey比LevelDB和RocksDB都要快。 introduction   对于写密集型

weixin_44520881的博客 1110

wiscKey论文--------对LSM-tree的优化

个人学习

m0_63691156的博客 435

Rocksdb KV分离存储实践

这个要从一篇论文说起 —— 《WiscKey》。我们知道 Rocksdb 中,key 和 value 是存在一起的,该论文提出了一种优化思路:在 LSM-tree 上做 key 和 value 分离存储。如下图:该论文的思想比较好理解,就是将 key 和 value 对应的索引存 LSM-tree 中,将真正的 value 存在另一个文件中。目前 KV 分离存储方案已经应用到了喜马拉雅的 XCache 存储系统中,大大降低了大 value 场景下的延时问题。

jakeswang的博客 1544

Redis基础篇-05-Redis的数据类型---Hash(kv模式且v是一个kv键值对)

Hash(哈希)Redis hash是一个键值对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

Alan0517 640

当LSM遇上SSD

女主宣言 以LevelDB和Rocksdb为代表的LSM(Log-Structured Merge-Tree)存储引擎凭借其优异的性能正成为越来越多分布式组件的存储基石。同时SSD也从未停歇地完成着自己的攻城略地。当他们相遇,是碰撞还是融合?欢迎阅读本文哦。 PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦! 背景介绍 近年来,以LevelDB和Rocks

HULK一线技术杂谈 1693
上一篇: 论文阅读(1):cocytus
下一篇: 论文阅读(3):pebblesdb
bigbugss
博客等级 码龄12年 6粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值