Characterizing, Modeling, and Benchmarking RocksDB Key-Value Workloads at Facebook 论文笔记
摘要
在当今的IT基础设施中,持久性KV存储被广泛用作构建块,用于管理和存储大量数据。然而,由于缺乏跟踪/分析工具以及在操作环境中收集跟踪的困难,表征KV存储的真实工作负载的研究受到了限制。在本文中,我们首先对Facebook上三个典型的RocksDB生产用例的工作负载进行了详细表征:UDB(用于社交图数据的MySQL存储层)、ZippyDB(分布式KV存储)和UP2X(用于AI/ML服务的分布式KV存储)。这些特征揭示了几个有趣的发现:首先,键和值大小的分布与用例/应用程序高度相关;二是KV对的访问具有良好的局部性,并遵循一定的特殊模式;第三,收集的性能指标在UDB中显示强烈的昼夜变化模式,而其他两个没有。
我们进一步发现,尽管广泛使用的KV基准测试YCSB提供了各种工作负载配置和KV对访问分布模型,但是由于忽视键的空间局部性,YCSB触发的基础存储系统工作负载仍不足以与我们收集的工作负载接近。为了解决这个问题,我们提出了一种基于键范围的建模,并开发了一个可以更好地模拟实际KV存储的工作负载的基准测试。这个基准测试可以综合生成更精确的KV查询,表示对底层存储系统的KV存储的读写。