• Lv0
    粉丝0

积分0 / 贡献0

提问1答案被采纳0文章0

作者动态

    【OH-5.0-Beta1】hmdfs_server_readdir 是否存在无意义重建目录项的设计缺陷

    Nicky Z 显示全部楼层 发表于 2024-10-31 15:02:00
    【问题描述】
    对远端目录执行 list 操作时,发现其时延明显长于在本地目录执行 list,且该问题不是由于网络传输速度引起。
    利用 smartperf 分析发现 server 端处理 list 请求的函数 hmdfs_server_readdir 的大部分时间用于进行 hmdfs_server_rebuild_dents,这其中包含了 create_dentry 这一看起来毫无必要的操作(图一)。
    同时分析 list 本地目录,其最终仅仅额外调用 hmdfs_actor_merge 进行冲突处理,其余均使用 f2fs 中的逻辑,并无额外的目录项重建过程(图二)。
    想知道这一设计是有什么特殊考量,否则为什么不沿用本地目录 list 的方式,再将结果传递给 client?


    remote.png
    图一:远端处理 list 请求的火焰图

    local.png
    图二:本地处理 list 请求的火焰图

    【如何复现】
    在同一组网环境下存在设备 A、B,其上运行相同的 com.example.app 应用。设备 A 在该应用的分布式文件根目录下创建若干个文件,设备 B 对该应用的分布式文件根目录执行 listFileSync 操作,可观察到时延明显(10倍)长于设备 A 在该应用的分布式文件根目录执行 listFileSync 操作。

    您尚未登录,无法参与评论,登录后可以:
    参与开源共建问题交流
    认同或收藏高质量问答
    获取积分成为开源共建先驱

    Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

    返回顶部