首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏roseduan写字的地方

    实现分布式 kv—1 Standalone KV

    旨在实现一个简易的分布式 kv,其中很多代码框架它已经提供了,我们只需要填充具体的逻辑即可。 这个课程分为了 4 个 Project: Standlone KV Raft KV Multi Raft KV Transaction 分别需要实现单机版 kv、基于 raft(和 multi raft ) 一致性算法的 kv、具有分布式事务的 kv,除了第一个 standalone kv 没有什么难度之外,其他的几个 Project 都非常的有挑战,涉及到手写 raft 算法以及分布式事务。 第一个 Project 是集成 Badger,实现一个简易的单机版 kv。 具体的实现,在 kv/storage/standalone_storage/standalone_storage.go 中,需要封装一下 Badger,然后实现 storage 接口中定义的几个方法。

    1.1K20发布于 2021-11-30
  • 来自专栏算法之美

    Talent Plan KV训练营Standalone KV实验

    从零开始写KV数据库 微信界面不美观 可以直接访问 https://www.yuque.com/docs/share/33170a24-f9fa-4a90-b021-92acc7b0abfc? TinyKV 是PingCAP公司推出的一套开源分布式KV存储实战课程:https://github.com/tidb-incubator/tinykv, 宗旨实现一个简易的分布式 kv 这课程一共包含了 是集成 Badger,实现一个简易的单机版 kv。 /kv/server -run 1 make project1 GO111MODULE=on go test -v --count=1 --parallel=1 -p=1 . /kv/server -run 1 第四步:我的疑问 问:实验1 TestRawGetAfterRawPut1,通一个key,插入不同记录,但是在查询时候。结果不正确了。

    1.3K10编辑于 2022-01-17
  • 来自专栏程序员奇点

    logstash.filter.kv Exception while parsing kv 解决办法

    异常信息如下 Exception while parsing kv ? 查看 logstash 配置文件 kv { source => "custmsg" field_split => "," value_split => "=" } 那肯定是 custmsg 的问题了,是不是 custmsg 里面存在 “\n” 导致 kv filter 如何解析。

    1.1K10发布于 2020-02-17
  • 来自专栏云深之无迹

    IV转换-KV版本

    根据转换的电流的大小,选取对应类型放大器,一般检测电流在nA到uA级的选用CMOS类型,例如TLC2201等芯片,在检测nA以下的电流的时候芯片。首先在类型上要选JFET类型的,JFET类型的运放一般都有着极高的阻抗和低偏置电流的特性。

    52310编辑于 2024-08-20
  • 来自专栏roseduan写字的地方

    从零实现 KV 和分布式 KV 有什么区别?

    在众望所归之下,前两天终于出了一个全新的课程《从零实现分布式 KV》,大家的学习热情都非常高涨,其中有很多同学都问到了一个共同的问题,那就是这个课程和我之前的《从零实现 KV 存储》有什么区别呢? 其实说起来也比较简单,《从零实现 KV 存储》实现的是一个单机 KV 存储引擎,何为单机? 那么《从零实现分布式 KV》 课程又实现的什么呢? 分布式 KV,其重点在于分布式。 server 本地都会维护一个存储数据的单机 KV,这个单机 KV 一般叫做状态机。 所以现在大家应该就清楚了,分布式 KV 重点在于分布式算法,以及分布式系统的设计与实现,并且只是用到了单机 KV 来存储本地数据,而存储数据、磁盘数据组织的具体逻辑,是交给了单机 KV 去负责。

    66620编辑于 2023-11-17
  • 来自专栏roseduan写字的地方

    Renee KV—项目意见征求

    各位朋友大家好,在之前的一段时间内,RoseDB V2 版本的重构已经全部完成了,相较于前面 V1 的版本,设计上更加简洁高效,并且只专注于 KV 接口的实现,目前支持了基础的数据存取接口和迭代器、前缀扫描等特性 这个项目的主要功能是在 KV 存储引擎之去实现和兼容 Redis 的数据结构,比如最常用的 String、List、Hash、Set、ZSet。 这样做的好处也是显而易见的,比如我们可以支持多种不同的 KV 存储引擎,目前计划支持的有: Pebble - CockroachDB 的底层存储引擎 Badger - DGraph 图数据库产品的底层存储引擎 BoltDB - Go 语言领域中比较知名的 KV 库 还有自己的 LotusDB 和 RoseDB 项目当然也会支持。

    29220编辑于 2023-09-01
  • 来自专栏码匠的流水账

    聊聊cortex的kv.Client

    序 本文主要研究一下cortex的kv.Client kv.Client github.com/cortexproject/cortex/pkg/ring/kv/client.go // Client memberlist_client.go // Client implements kv.Client interface, by using memberlist.KV type Client struct { kv *KV // reference to singleton memberlist-based KV codec codec.Codec } // List is part = nil { return nil, err } return c.kv.List(prefix), nil } // Get is part of kv.Client [key]获取数据 KV.CAS github.com/cortexproject/cortex/pkg/ring/kv/memberlist/memberlist_client.go func (m

    45620发布于 2021-02-08
  • 来自专栏码匠的流水账

    聊聊cortex的kv.Client

    序 本文主要研究一下cortex的kv.Client Eventual-Consistency.jpg kv.Client github.com/cortexproject/cortex/pkg/ring { kv *KV // reference to singleton memberlist-based KV codec codec.Codec } // List is part = nil { return nil, err } return c.kv.List(prefix), nil } // Get is part of kv.Client = nil { return } c.kv.WatchPrefix(ctx, prefix, c.codec, f) } Client实现了kv.Client接口,其 List、Get、CAS、WatchKey、WatchPrefix方法均代理给kv,其Delete方法返回error KV.List github.com/cortexproject/cortex/

    63000发布于 2021-01-27
  • 来自专栏每个用户仅限创建一个专栏

    PHP 简单的文件kv cache

    之前做一个小东西的时候随手写了下面这样的一个cache函数 [11.5增补]后来加了直接存储而不序列化的参数,之后这个函数就凌乱了,而且糅合读写在一个函数代码可读性也不好,得数参数才知道是读是写,用来存放一些小的信息,可以省掉数据库,kv 使用起来很简单的,原本这个函数只有两个参数,k和v,后来发现如果想要清除某种特定类型的cache的时候拙计,因为都混在一个文件夹里面了,而跟很多kv的东西一样,不能列出来都有哪些k,所以后面加了第一个参数

    87230编辑于 2022-08-16
  • 来自专栏AI工程落地

    TensorRT LLM--Paged KV Cache

    在TensorRT LLM中,每个Transformer层有一个KV缓存,这意味着一个模型中有与层一样多的KV缓存。 TensorRTLLM的当前版本支持两种不同类型的KV缓存:连续KV缓存和分页KV缓存。连续KV缓存连续的KV缓存是一个整体张量。 分页KV缓存分页KV缓存将KV缓存分解为块,这些块在处理过程中由高速缓存管理器分配给不同的请求。该缓存管理器跟踪序列,从池中分配新块,并在需要时回收这些块。 分页KV缓存(paged attention)出现动机虽然kv cache很重要,但是kv cache所占的空间也确实是大且有浪费的,所以出现了paged attention来解决浪费问题。 block上,通过把每个seq的kv cache划分为固定大小的physical block,每个block包含了每个句子某几个tokens的一部分kv,允许连续的kv可以不连续分布。

    2.6K60编辑于 2023-11-21
  • 来自专栏AI前沿技术

    KV cache - 高效推理必备技术

    主要围绕问题: 通过梳理大模型推理过程,定位KV cache 发生的阶段,阐述: • 如何的利用KV cache,消除自回归解码阶段的计算冗余? • KV cache 的显存占用,并定量计算使用KV cache 和不使用的计算量变化, • 以及如何的优化KV cache 占用的内存? 大模型推理的解码阶段,生成单个token时,Q值需要使用全部序列token的KV值计算注意力,但除当前新token的KV值外,其他token的KV值已经在上一轮中计算过,为了避免冗余计算,使用KV cache 2,KV cache 公式推导 2.1 预填充Prefill Stage • KV cache 的产生: 假设用户输入,其序列长度为n,经编码后为,通过以下公式获得KV cache。 KV cache明显是以内存换效率的方式,使得解码阶段优化KV 的内存占用成为关键。

    53010编辑于 2026-01-13
  • 来自专栏机器学习与统计学

    大模型KV缓存,形象理解

    引入 KV 缓存 此刻,一个自然的问题浮现:**“等等……我们为什么每次都重复同样的投影?”****KV 缓存**就是你拒绝重读过去的瞬间。 这就是 KV 缓存。 底层到底发生了什么变化? 启用 KV 缓存后,方程本身_并未_改变,但 K 和 V 的来源变了 。 KV 缓存作为时空权衡 KV 缓存并非“免费的午餐”,而是一种典型的时空权衡:我们消除了冗余计算(时间),但必须把缓存塞进 GPU 显存(空间),而且这块缓存会变得非常非常庞大! 极简代码示例(PyTorch 朴素实现 vs KV 缓存) 到目前为止,我们只_讨论_了 KV 缓存。现在让我们通过代码来_亲眼看看它是如何工作的_ 。

    37910编辑于 2025-11-20
  • 来自专栏廖念波的专栏

    谈谈 KV 存储集群的设计要点

    Key-value存储系统,是非常普遍的需求,几乎每个在线的互联网后台服务都需要KV存储,我们团队在KV存储方面,经历过几个时期,我自己深感要做好不容易。 第三个时期,为了应对普遍的KV存储需求,我们以公共组件的形式重新设计了KV存储,作为团队标准的组件之一,得到了大规模的应用。 不同于无数据的逻辑层框架,KV存储系统的架构设计会更复杂、运维工作更繁琐、运营过程中可能出现的状况更多、bug收敛时间会更长。 一句话:团队自己做一个KV存储系统是成本很高的,而且也有比较高的技术门槛。 存储,用于存储一些公众号的个数不受限粉丝列表 上面八点,业内的KV存储组件一般都会考虑到,或者各有特色,各自优势在伯仲之间。

    5.2K00发布于 2016-10-03
  • 【 设计分布式KV系统】

    设计分布式KV系统的关键要点 接入协议设计 采用HTTP RESTful API作为标准协议,兼顾开发效率与可维护性。 需实现以下核心接口: KV操作接口:/key路径处理赋值、查询、删除操作 示例:curl -XGET http://raft-cluster-host01:8091/key/foo 集群管理接口:/join /join" { s.handleJoin(w, r) } else { w.WriteHeader(http.StatusNotFound) } } KV

    12310编辑于 2025-12-18
  • 来自专栏开源部署

    KV型内存数据库Redis

    Redis是开源的高性能内存Key-Value数据库, 可以提供事务和持久化支持, 并提供了TTL(time to life)服务。

    3.1K10编辑于 2022-08-18
  • 来自专栏QQ音乐技术团队的专栏

    KV存储跨IDC容灾部署

    1.背景   目前部分KV存储不支持跨IDC部署,所以如果有机房故障的话,就会影响KV存储的可用性。本文提供了一种通过KV存储代理层来实现跨IDC容灾部署的方案。 2.实现原理 ?    3.KV存储代理层实现原理 ?   客户端通过API接入KV存储代理, 如果是写操作, 存储代理会先写流水再操作本地KV存储. 流水转发程序会每隔10ms扫描流水,然后转发给流水转换服务. 流水转换服务会将所有命令的操作转换为Set操作,其value是从本地KV存储通过Get命令读取的最新值. ,而KV存储本身不一定是支持跨IDC容灾部署的。 本文提供了一个通用的解决方案,实现KV存储跨IDC容灾部署。   

    1.8K80发布于 2018-01-30
  • 来自专栏AI工程落地

    大语言模型--KV Cache量化论文

    KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache 论文地址:[2402.02750] KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache (arxiv.org) 谷歌学术被引数:6 研究机构:未知 推荐理由:五星,被huggingface transformers库使用,官方认证 KVQuant: Towards 10 Million Context Length LLM Inference with KV Cache Quantization 论文地址:https://arxiv.org 前面的token对精度影响更大,第一个token使用高精度 5.再反量化后增加了一个Qnorm算子 6.per vector检测异常值,并对异常值做特殊处理 GEAR: An Efficient KV 和历史经过量化的kv 2.提出了两种维度的量化,基于channel和基于token 3.提出了一种cross-block的损失函数 IntactKV: Improving Large Language

    1.5K10编辑于 2024-07-18
  • 来自专栏Excel疑难杂症

    如何拆解 KV 格式的字串({key}value)

    run(replace(ID,[""{"",""}""],["""",""=""]):KV,TEAMS=TEAMS+"";""+[""S1"",""S6"",""S10""]. (KV.property@c(~)).concat("";""),DETAILS=""[NUM -""+replace(NUM,""*"","","")+""]."" +DETAILS)",A1:D3)如图:简要说明:去掉 ID 字段内容中的左括号,将右括号替换为 =,使得 KV 字段内容为标准的 Key=value 结构。

    31910编辑于 2024-05-06
  • 来自专栏喔家ArchiSelf

    大模型的性能提升:KV-Cache

    为了解决这个问题,KV-Cache(Key Value-Cache)应运而生,它是提升 LLM 推理性能的关键技术之一。 KV-Cache 的核心思想是缓存中间计算结果。 关于自注意力机制 要理解KV缓存,首先需要掌握注意力机制的基本原理。 速度与内存的权衡 KV-Cache 的引入显著提升了大型语言模型(LLM)的推理速度。 KV-Cache 实践 KV-Cache 是现代大型语言模型(LLM)推理引擎中至关重要的一项优化技术。 该文通过实验展示了启用 KV-Cache 带来的显著加速效果:在 T4 GPU 上对模型 HuggingFaceTB/SmoLLM2-1.7B 进行测试,使用 KV-Cache 相比不使用时,推理速度提升了

    5.3K41编辑于 2025-06-19
  • 来自专栏携程技术

    干货 | 携程持久化KV存储实践

    图1 随着业务发展和Redis集群的日益增长,需求更加多样化,需要在私有云上同样能有一种持久化的KV存储系统来提供服务,包括: 1)KV存储和读写的场景,Redis能提供的存储上限过低,需要有大容量的 我们仔细分析业务需求和业界可选的方案,以期望找到一种持久化的KV数据库,能兼容Redis满足大容量和成本降低的需求,而又不局限于Redis,能提供更多样化的能力来支撑业务的诉求。 集群运维治理配套是否完善 选择一种KV数据库,除了中间件外,治理相关的如集群扩容,缩容,实例的迁移,资源利用率等一样要考虑进来。 性能也是重要考量的一块,希望找到一种性能优异的KV数据库。 四、从Kvrocks到TRocks 经过不断的开发迭代和使用,最终我们将新系统命名为TRocks(Trip+Kvrocks),作为携程自己的持久化KV数据库。

    1.4K20发布于 2021-07-22
领券