V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hulk
V2EX  ›  程序员

磁盘 Redis - Kvrocks 设计与实现

  •  
  •   hulk ·
    git-hulk · 2022-03-02 09:10:15 +08:00 · 2749 次点击
    这是一个创建于 1001 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://mp.weixin.qq.com/s/K9KVJR5sW7bsYrF4_dUV5g

    这篇文章从关键设计和内部实现来分析,希望对于想知道如何实现磁盘类型 Redis 及想熟悉 Kvorcks 设计和实现的人带来一些帮助。

    16 条回复    2022-03-02 17:53:16 +08:00
    gabon
        1
    gabon  
       2022-03-02 09:19:56 +08:00 via iPhone
    在用,性能基本没有很大损失情况下成本降低了很多。
    hulk
        2
    hulk  
    OP
       2022-03-02 09:46:28 +08:00
    @gabon Kvrocks 用户吗
    gabon
        3
    gabon  
       2022-03-02 10:10:22 +08:00 via iPhone
    @hulk 公司内部基于 kvrocks 封装的
    hulk
        4
    hulk  
    OP
       2022-03-02 10:15:11 +08:00
    @gabon cool, 如果没有加入 Kvrocks 社区交流群可以加我微信: hulkdev, 我拉你进群,现在超过 200 个人,只能邀请。
    mekingname
        5
    mekingname  
       2022-03-02 10:43:29 +08:00
    请问 Kvrocks 在性能上,有跟 Redis 做过对比吗?有哪些优势哪些不足?
    hulk
        6
    hulk  
    OP
       2022-03-02 10:51:27 +08:00
    @mekingname kvrocks 项目的 README 里面有一些 benchmark 数据,然后吞吐由于是多线程会比 Redis(包含 6.0 以上的多线程 IO)高,但读延时如果 miss cache 到磁盘肯定延时会比 Redis 高一些。本身是作为 Redis 的互补而不是替换,磁盘类型相比于 Redis, 单实例大小可以几百 G 同时成本基本是 Redis 1/10 以下。
    zhengxiaowai
        7
    zhengxiaowai  
       2022-03-02 11:33:33 +08:00
    加微信了,看看能不能贡献几行代码 :-)
    hulk
        8
    hulk  
    OP
       2022-03-02 11:45:18 +08:00
    @zhengxiaowai wow ,太期待了~
    aper
        9
    aper  
       2022-03-02 11:55:39 +08:00
    和 Pika 比有什么优势呢?
    hulk
        10
    hulk  
    OP
       2022-03-02 12:07:42 +08:00
    @aper 之前 GitHub Discussion 上由一个讨论: https://github.com/KvrocksLabs/kvrocks/discussions/319

    整体上,对于大多数可能关注的是功能的差异。除此了上面的讨论之外我自己觉得最重要的几个点:
    * 社区是足够开放或者更加遵循开源准则,社区共识大于代码,尽量所有设计和讨论都在社区进行,包含 roadmap
    * 对于代码的态度,至少 Kvrocks 不管在 PR 合并再 Commit Log 都是很严谨的讨论和对待
    * 明确的 roadmap, 社区要有明确的方向,而不是走一步看一步
    linksNoFound
        11
    linksNoFound  
       2022-03-02 14:13:59 +08:00
    考虑过磁盘寿命的影响吗
    hulk
        12
    hulk  
    OP
       2022-03-02 14:52:08 +08:00
    @linksNoFound Redis 也是一样,靠复制和集群分配来解决可用性问题
    linksNoFound
        13
    linksNoFound  
       2022-03-02 15:14:41 +08:00
    @hulk 不,频繁读写状态下,固态集群会高速损失 PE 寿命,磁盘集群会影响磁头和盘片的寿命。redis 在内存常驻,内存是易失性闪存,和固态不一样,内存本身就是能承载高速读写的,对寿命影响很小。
    hulk
        14
    hulk  
    OP
       2022-03-02 15:16:22 +08:00
    嗯,其实我的意思是高可用不会依赖单机硬件,另外 Redis 数据全内存没问题,重启加载的 RDB/Aof 还是从磁盘恢复,所以也是同样的问题。
    sampeng
        15
    sampeng  
       2022-03-02 17:13:50 +08:00
    这个思路挺好的。。其实 99%的业务不需要 redis 那么极端的性能优化。需要的,成本是吃不消的
    hulk
        16
    hulk  
    OP
       2022-03-02 17:53:16 +08:00
    嗯,是的。除了要求低延时的,中间还有很多高容量,但延时可以有一点妥协空间的场景。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2961 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 15:00 · PVG 23:00 · LAX 07:00 · JFK 10:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.