Reducing Bloom Filter CPU Overhead in LSM-Trees on Modern Storage Devices
时间: 2023-04-11 09:01:00 浏览: 220
作为一个 AI,我可以回答这个问题。LSM-Tree 是一种常用的键值存储引擎,它使用 Bloom Filter 来加速查询操作。然而,在现代存储设备上,Bloom Filter 的 CPU 开销可能会成为瓶颈。为了减少这种开销,可以使用一些技术,例如使用 SIMD 指令集、压缩 Bloom Filter 等。
相关问题
(Collectors.reducing((c1,c2)->c1.getLeadScore()>c2.getLeadScore()?c1:c2), Optional::get)
这是一个 Java 8 中的 Collectors 类的 reducing 方法,用于将一个 Stream 中的元素按照某个规则进行归约操作,这里的规则是比较两个元素的 LeadScore 属性,返回 LeadScore 更高的那个元素。最后通过 Optional 类的 get 方法获取结果。
翻译:In threaded-code interpreters for Forth, and espe- cially in simple inline-expanding native-code com- pilers a significant part of the run-time is consumed by loading stack items from and storing them to memory, and by stack pointer updates. A frequent technique for reducing that overhead is to keep the top-of-stack in a register. Stack caching [Ert95] is a generalization of this technique. In the past we have presented data based on sim- ulations [Ert95], and timing data with restricted forms of stack caching: Gforth was only able to per- form single-state stack caching with one register, and static stack caching with the canonical state containing 0 or 1 registers [EG04]. In this paper, we describe how we lifted these restrictions (Section 3), and present empirical re- sults, including timing results for several different machines (Section 4).
在Forth的线程代码解释器中,特别是在简单的内联扩展本地代码编译器中,运行时的重要部分都被用于从内存中加载栈项和将其存储到内存中,以及栈指针的更新。减少这种开销的常见技术是将栈顶保留在寄存器中。栈缓存[Ert95]是这种技术的一种推广。过去,我们根据模拟[Ert95]和受限形式的栈缓存的计时数据进行了数据呈现:Gforth只能使用一个寄存器执行单状态栈缓存,并且静态栈缓存具有包含0或1个寄存器的规范状态[EG04]。在本文中,我们描述了如何解除这些限制(第3节),并呈现了经验结果,包括针对几种不同机器的计时结果(第4节)。
阅读全文