在 Presto 中使用一致性哈希来改善动态集群的缓存命中率

目前,越来越多的用户开始在 Presto 里面使用 Alluxio,它通过利用 SSD 或内存在 Presto workers 上缓存热数据集,避免从远程存储读取数据。Presto 支持基于哈希的软亲和调度(hash-based soft affinity scheduling),强制在整个集群中只缓存一到两份相同的数据,通过允许本地缓存更多的热数据来提高缓存效率。但是,当前使用的哈希算法在集群大小发生变化时效果不佳。本文介绍了一种用于软亲和调度的新哈希算法,一致性哈希(consistent hashing),来解决这个问题。

 

Soft Affinity Scheduling

Presto 使用一种称为软亲和调度的调度策略,将一个 split(最小的数据处理单元)调度到同一个 Presto worker(首选节点)。split 和 Presto worker 的映射关系是通过计算 split 路径的哈希值然后 mod 集群的节点数,确保相同的 split 始终被哈希到同一个 worker 上。第一次处理 split 时,数据将缓存在首选工作节点上。当后续查询处理相同的 split 时,这些请求将再次调度到相同的 worker 节点上。由于数据已经在本地缓存,因此不需要远程读取。

为了改善负载平衡和处理不稳定的 worker,选择了两个首选节点。如果第一个节点繁忙或没有响应,则使用第二个节点。所以数据可能在两台节点上进行缓存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值