Entropy-Learned HashingConstant Time Hashing with Controllable Uniformity

哈希是一种广泛使用的从任意数据中创建均匀随机数的技术。这在很多核心数据驱动的操作中都是必需的,包括索引、分区、过滤器和草图。因此,散列是许多系统的核心组件,包括关系数据系统、键值存储、编译器和网络。由于散列算法的计算量和数据量都很大,它是一个核心系统瓶颈。例如,在标准TPC-H基准测试中,一个典型的数据库查询可能会在散列表上花费总开销的50%。类似地,谷歌在c++散列表上至少花费了其总计算成本的2%,这导致仅一次散列操作每年就会产生巨大的计算成本。

本文提出一种新的哈希方法,称为熵学习哈希,它将哈希的计算成本降低了一个数量级。我们从伪随机的角度来看哈希,我们要问的关键问题是“需要多大的随机性?”最先进的哈希函数做了太多的工作,以至于无法执行其核心任务:从数据源中提取随机性,以创建随机输出。熵学习哈希1)建模并估计输入数据的随机性(熵),然后2)创建特定于数据的哈希函数,该函数只使用需要区分输出的数据部分。由此产生的哈希函数极大地减少了所需的计算量,同时证明了其输出与传统哈希函数的输出相似。测试了不同的核心哈希操作(如哈希表、布隆过滤器和分区)的熵学习哈希,与谷歌和Meta大规模使用的类内最好的哈希函数和实现相比,吞吐量分别提高了3.7倍、4.0倍和14倍。

 2 OVERVIEW & MODELING

 

 为了创建部分键函数𝐿,Entropy-Learned
哈希使用三个步骤,如图2所示。首先,它分析数据源𝑥并确定哪些字节是高度随机的,以及从𝐿的选择中可以得到多少熵(章节3)。其次,它推理𝐿如何影响数据结构度量(章节4)。最后,它使用运行时信息,如所需的Bloom过滤器或哈希表的大小或分区中的分区数量,以选择在𝐿中使用哪些字节(章节5)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值