V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
GrayXu
V2EX  ›  问与答

[问] 在键值存储中使用单个键或值中存储多个数据的例子?

  •  
  •   GrayXu · 2021-07-10 15:19:15 +08:00 · 341 次点击
    这是一个创建于 1082 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个问题来自于 OSDI 2020 Twitter 的工作[1],这篇文章中提到他们发现在 Twitter 内部的内存键值缓存集群的工作负载上发现在键上存在类似命名空间的切分使用情况,举例,键值对为"ns1:ns2:ns3, value1"。

    但因为数据脱敏的原因,无从得知这样的特征是从何而来。

    直观上,容易觉得这个特征就是命名空间,比如不同的应用使用的时候,设置属于自己的前缀。但从他们的公开数据集来看,层级高度很集中,键的分布也并不是树的生长方式(即越下层越多不同的 sub key )。

    后来发现也有可能是某些应用是构建在键值存储引擎之上,如 MyRocks 使用 RocksDB 代替了 MySQL 中的 InnoDB,在一个键内保存了表存储的表索引、主键等信息。类似的还有 MongwoRocks, Azure Cosmos DB 。

    但举的这些 DB 的例子都是构建在非缓存的键值存储系统( LSM Tree...)上,和前面提到的 Twitter 的场景不太匹配。。

    我的问题就是,大家有没有见过类似的切分了一个键存多个数据的例子呢?

    ref:

    1. Yang, Juncheng, Yao Yue, and K. V. Rashmi. “A large scale analysis of hundreds of in-memory cache clusters at Twitter.” Proceedings of the 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI’20), Banff, AL, Canada. 2020.
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2987 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:05 · PVG 21:05 · LAX 06:05 · JFK 09:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.