HDFS和Ozone的数据删除原理对比思考

本文探讨了HDFS删除操作的性能问题,包括递归遍历目录树和元数据更新,以及可能的异步化和batch处理优化。同时,介绍了Ozone的删除机制,其基于K-V的简单namespace使得批量删除更为高效。Ozone使用rename和后台删除线程,处理删除行为的影响更小,扩展性和性能优于HDFS。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言


前段时间笔者一直在折腾HDFS大目录删除的性能问题,也尝试了很多不同的方案来降低大目录删除所带来的性能影响,包括改INodeDirectly内部child list结构,或者是在Snapshot层面做改进优化等等(详见此文章:HDFS大目录文件删除方案的实践思考)。不过后续笔者在对比HDFS的删除操作和新一代存储Ozone系统内部的删除操作时,发现二者还是存在不少区别的,后者在设计上有着不小的改进之处。本文笔者来聊聊关于HDFS和Ozone的删除行为操作的对比,以及后面对HDFS现有删除操作的一些brainstorm的一些想法。

现有HDFS删除操作的性能问题


重新再回到这个老生常谈的问题–HDFS删除操作性能问题,用简单两个词简单概括:第一操作重,第二影响大。

这个过程简单来说如下:

  • 1)递归遍历目录树结构,收集里面需要被清除的INode实例(包括INode目录和INode文件),以及INodeFile下面所属的block块,即待删除的块。
  • 2)然后执行block的批量删除操作,每一批处理完毕,中间释放一下锁,然后再拿锁进行处理。

鉴于上述过程涉及到NameNode元数据的改动,因此都是在持有FSN全局锁的情况下执行的,因此这个过程就变得很重了。

下图是HDFS内部数据删除过程的一个简要示意图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值