元数据版本更新
JuiceFS 5.2.14 (2025/9/17)
- 改进当部分事务日志缺失时的服务恢复流程
 - 避免重复发送元数据更新消息导致的性能问题
 - 支持重放日志时的热点目录信息
 - 多分区
- 改进跨分区链接名称的修复流程
 - 修复 fsck 在修复异常链接时查询的路径可能不对的问题
 
 
JuiceFS 5.2.13 (2025/9/9)
- 当内存不足导致 meta 重启时,需等待所有事务日志刷盘
 - 多分区
- 修复在有过多个文件系统的 meta 集群中,可能因 zlink 记录泄漏导致的数据错乱问题
 - 修复优化跨分区链接时用 2 作为目标 inode 可能导致歧义的问题
 
 
JuiceFS 5.2.12 (2025/9/3)
- 在主循环外提前解析指标上报消息的 JSON 内容
 - 降低 Pyroscope 的上传频率,禁用其收集指标期间的 GC
 - 多分区
- 支持 meta 自动发现热点目录并通知客户端进行迁移
 - 进一步优化 fsck 命令对跨分区链接和目标文件的修复能力
 - 修复 rebalance 命令的进度条可能卡死的问题
 - 镜像集群客户端找链接文件时去源端查找
 - 优化批量反查 inode 的路径的性能
 - 提升清理链接文件的并发性能和准确性
 - 提升某些情况下在同一分区内优化跨分区链接的性能
 - 提升加载迁移的 inodes 的性能(不再使用分片 Hash)
 - 不要为孤儿文件去修正回收站路径
 - 修复使用子目录挂载时删除被拆分的根目录里面的子目录可能卡主的问题
 
 
JuiceFS 5.2.11 (2025/8/21)
- 当本地端口小于 15000 时,尝试重新建立连接
 - 在镜像集群中因访问文件更新 atime 时,不要修改 ctime
 - 修复元数据退出时快照中可能包含未提交的数据的问题
 - 多分区
- 修复迁移的 inode 未能及时释放的问题
 - 限制 
rename单文件的并发,避免客户端内存暴涨 - 不允许优化迁移中的目录
 - 优先选择未压缩的回收站文件进行路径修复,减少回收站文件的内存占用
 - 提升批量反查 inode 的路径的性能
 - 修复跨分区 
rename时可能因 inode 相同导致陷入死循环的问题 - 修复同分区内优化链接不准确导致出现孤儿文件的问题
 
 
JuiceFS 5.2.10 (2025/8/13)
- 新增 
shell命令来直接访问元数据服务 - 修复当 
INODE_REUSE_DELAY时间过短时,客户端的符号链接缓存未正常失效的问题 - 多分区
- 元数据迁移时不允许使用 2 作为新的 inode 以避免歧义
 - 允许清理迁移中的 LINK 文件
 - 修复异常情况下链接优化操作可能循环调用导致栈溢出的问题
 
 
JuiceFS 5.2.9 (2025/8/7)
- 删除目录后需要清理客户端上对应的目录缓存
 - 新增 
RENAME_OBJECT_LIMIT=1来避免重命名目录时不必要的扫描 - 让日志文件中的版本号保持连续
 - 优化查找日志文件的性能
 - 修复在清理已删除的文件时可能的不一致问题
 - 修复当主循环阻塞时,网络 fd 会大量泄漏的问题
 - 修复主循环 CPU 统计值不准确(可能远超 100%)的问题
 - captool: 使用更大的缓冲区来降低丢包
 - 多分区
- rebalance 命令增加速率限制
 - rebalance 命令支持多分区并发执行
 - rebalance 命令忽略迁移中的目录
 - fsck 命令支持修复 
.backup目录下的链接目标文件 - 修复链接名没有及时修正的问题
 - 隐藏拆分后的 
.jfszone0下的普通文件 - 优化根据 inode 查询路径的性能
 - 修复文件多次迁移后可能导致客户端内存暴涨的问题
 
 
JuiceFS 5.2.8 (2025/8/1)
- 支持显示镜像集群的热点目录
 - 在处理 
rename请求时确保没有目录成环 - 允许镜像集群更新访问时间
 - 优化服务器在发送消息和管理 QoS 时的内存分配
 - 即使事务日志不完整时也尽量写入磁盘
 - 支持设置 
READ_COMMITED=1来避免幻读 - 修复服务重启后 Kerberos token 丢失的问题
 - 多分区
- fsck 命令在加载迁移日志文件时,选择最新的迁移链条
 - fsck 命令支持并行修复跨分区链接
 - fsck 命令支持清理回收站中的 损坏链接
 - fsck 命令修复查找文件路径时可能选择了错误分区导致结果不正确的问题
 - 只在没有显式设置 
FREE_MOVED时才做自适应调整 - 在解析 LINK 文件时,让 inode 未找到和 inode 是符号链接两种情况返回不同的错误码
 - 修复 
info命令查看刚删除的文件可能陷入死循环的问题 - 修复 
rename后源端 LINK 可能未被正常删除的问题 - 修复查找链接文件时结果可能不准确导致误将文件标记为 
dangling的问题 
 
JuiceFS 5.2.7 (2025/7/28)
- 多分区
- 修复某些情况下客户端的缓存没有及时清理的问题
 - fsck 命令进一步优化修复跨分区链接的功能
 - 支持优化 
.backup目录下的链接目标文件 - 修复跨分区链接优化后可能导致目录缓存不准确的问题
 - 修复查找 inode 的路径时可能不准确的问题
 
 
JuiceFS 5.2.6 (2025/7/25)
- 能更快速地列出所有使用中的跨分区链接
 - 修复回收站中的 inode 可能被错误复用的问题
 - 设置 
INODE_REUSE_DELAY和FREE_MOVED的最小值 - captool: 改进高压力情况下的稳定性和准确性
 - 多分区
- fsck 命令支持检查和修复跨分区链接
 - 改进跨分区链接优化策略,避免某些目录在两个分区间来回迁移
 - 修复跨分区链接文件被不合理优化导致链条可能断裂的 问题
 
 
JuiceFS 5.2.5 (2025/7/9)
- 修复清理临时回收站文件时,
rmr的事务日志里记录的文件名称为空的问题 - 及时压缩扫描过的回收站文件来避免内存突增
 - 限制镜像集群客户端的后台任务数,避免内存暴涨
 - 修复冷备节点发送日志时可能导致脑裂的问题
 - captool: 改进稳定性和性能
 - 多分区
- 修复部分目录在跨分区统计时指标不准确的问题
 
 
JuiceFS 5.2.4 (2025/6/24)
- 新增 
FS_READONLY参数来将某个分区调整为只读模式 - 在导入和克隆失败时能自动回滚,避免服务退出
 - 限制内存中事务日志的大小
 - captool: 使用内核 BPF 过滤器减轻抓包负担,减少丢包
 - 多分区
- 新增 
BOOT_FREE_MOVED参数来调整清理迁移的 inode 启动延迟 - 支持复制共享的数据片段,使得相关文件转为可迁移状态
 - 根据当前迁移走的 inode 的数量自动调整回收等待时间
 - 在优化跨分区链接时,如果源分区已经比较大,则不要将链接目标回迁
 
 - 新增 
 
JuiceFS 5.2.3 (2025/6/19)
- 在热备节点也跟踪更新过的链接目标以便在重启后也能更新统计数据
 - 修复当操作的文件数过多时 
LOAD和EMPTY日志可能超过长度限制的问题 - 进一步完善网络包分析工具 
captool 
JuiceFS 5.2.1 (2025/5/27)
- 完善 meta 进程的网络包分析工具 (1.0)
 - 修复使用 bloomfilter 后在压缩目录中新建文件却找不到的问题
 
JuiceFS 5.2.0 (2025/5/24)
- 新增 meta 进程的网络包分析工具 (beta)
 - 新增 -loadBin 选项来导入社区版的二进制格式的元数据备份
 - 多方面改善 meta 进程的内存压缩策略
 - 提升元数据事务日志的完整性(rmr 日志记录删除的 inodes 等)和鲁棒性,便于更好地跟踪特定文件的完整生命周期
 - 允许使用 export 规则文件来禁用非标准的目录统计信息功能
 - 提升系统的 inodes 限制到 1 万亿
 - 并行加载快照文件中的迁移 inode 信息,加快元数据服务的启动速度
 - 改进处理元数据请求的主线程的效率,并使用独立的线程回收内存
 - 使用后台线程读取硬盘上的快照和日志文件,降低对主线程的影响
 - 使用 bloomfilter 加速在压缩目录中查找不存在的文件
 - 有多块元数据盘时改进选择策略,当空间不多时优先使用剩余空间较大的盘
 - 修复创建快照时 sticky bit 权限检查不准确问题
 - 修复恢复回收站文件时 sgid 未正确恢复问题
 - 修复被拆分目录被克隆时 UID/GID 可能不一致的问题
 - 修复被拆分的目录下子项被 rename 时可能误失败的问题
 - 修复 rmr 空目录时可能因没有读权限导致失败的问题
 - 修复写入磁盘快照时可能死锁的问题
 - 修复调整镜像集群的消息优先级后可能导致重放日志失败的问题
 - 避免使用 CHUNK_FORCE_DELETE=1 时短时间内多次尝试导致数据泄露的问题
 - 允许 metalogger 使用小于 1000 的端口号
 - 删除 vdir 时忽略对父目录的权限检查
 - 多分区
- 优化跨分区链接的统计,提高目录统计信息的准确性和及时性
 - 自动清理子分区根目录下泄漏的临时文件
 - 多分区事务中添加提交版本检查,提高镜像文件系统的一致性
 - 多分区个数限制修改后能自动更新并推送配置
 - 修复文件可能因删除操作中断而泄漏的问题
 - 修复有 hardlink 的文件可能被多删除一次的问题
 - 修复链接文件可能被误替换为回收站文件的问题
 - 修复元数据迁移过程中存在不能迁移的文件时客户端缓存的失效问题
 - 修复多分区集群中 rmdir 的返回值可能异常的问题
 - 修复多分区集群中创建 hardlink 有可能误失败的问题
 - 修复多分区集群中因缓存问题导致 nlink 可能不准确的问题
 - 修复 status 命令中 session 的 CPUUsage 可能不准确问题
 - 修复 rmr 可能删除不干净的问题
 - 修复启用回收站时删除根目录下文件再创建的名字冲突问题
 
 
JuiceFS 5.1.19 (2025/5/13)
- 允许通过 UNDEL_UMASK 来调整从回收站恢复文件时自动创建的目录的权限
 - 允许调整来自 peer 和 client 的消息的优先级,避免部分请求被长时间挂起
 - 允许任何来源的 MSG_GET_VERSION 请求
 - 将 FIX_TRASH_PATH_LIMIT 的默认值由 1000 减小为 200
 - 加强对 5.2 版本变更日志的兼容性
 
JuiceFS 5.1.18 (2025/4/16)
- 提升删除文件硬链接的性能
 - 创建硬链接后如果 nlink 未变(达到了 nlink 最大值限制)则不需要更新 attribute
 
JuiceFS 5.1.17 (2025/4/1)
- 给 pyroscope 增加 集群名和 build 信息作为 tag
 - 增加 /debug/pprof/cpuprofile 来规避跟 pyroscope 的冲突
 - 增加 
--checkVdir参数来检查被拆分目录的完整性 - 修复通配符配额更新不对的问题
 - 增加 
QOS_RESET_CYCLE参数来控制限速的精度 - 修复 readdir 返回回收站文件导致客户端异常的问题
 - 多分区
- 优先处理 REPLACE 请求
 - 延迟合并还在更新的目录到它的父目录所在分区
 - 延长等待连接到子分区的时间到 30 秒
 - 修复 ref 在被拆分的 .backup 里是路径不对的问题
 - 修复 在拆分的 .backup 中的 ref
 - 修复 .backup 的权限为 0777
 - 隐藏根目录下创建中的临时硬链接
 - 修复硬链接泄漏问题
 - 修复硬链接的 ref
 - 当 ref 不能移动到 .backup 中时尝试修复 ref
 - 修复多分区模式 quota 命令返回的路径
 - 修复删除损坏的跨分区目录的问题
 
 
JuiceFS 5.1.16 (2025/3/20)
- 按顺序处理消耗资源比较多的消息,避免部分请求等待时间过长
 - 修复限制 readdir 返回的文件数时可能导致老板版本客户端读不到完整数据的问题
 - 新增 
NLINK_LIMIT来限制返回的硬链接的 nlink 的值以缓解访问大量硬链接的性能问题 - 多分区
- 修复迁移文件可能导致元数据损坏的问题
 - 给修复多分区的回收站路径增加缓存以提升性能
 
 
JuiceFS 5.1.15 (2025/3/17)
- 优先处理客户端连接和监控系统的请求
 - 限制内部的 readdir 请求返回的文件数量(默认 10 万)
 - 低优先级处理消耗 CPU 比较多的请求类型或者客户端
 - 不给客户端工具分配后台任务
 - 多分区
- 更新 .backup 里面的 ref
 - 改进同分区的连接优化步骤
 - 删除目录时处理目标在 .backup 的情况
 - 限制客户端执行的元数据相关的后台任务的并发数
 - 限制异步删除请求的速率
 - 改进优化同分区的连接的检查
 - 放慢 root 运行 rmr 的速度,改成客户端递归执行跨分区删除,避免把集群打爆
 - 修复跨分区的配额限制问题
 - 使用更新后的信息来修复 ref
 - 修复损坏的级联跨分区链接问题
 
 
JuiceFS 5.1.14 (2025/3/6)
- 增加 
DISABLE_CHECKSUM来关闭元数据的校验更新 - 降低下载快照的并发到 1 以降低读 取磁盘的压力
 - 访问回收站目录时不要生成日志(无法正常重放)
 - 忽略访问回收站目录的日志
 - reload 配置文件时更新 pyroscope 的状态
 - 多分区
- 修复配额传播导致的性能问题
 - 修复跨分区 rename 问题
 - 将根目录的 ref 自动迁移到 .backup 中
 - 改进跨分区的 rename,立即异步迁移文件
 - 提升载入迁移的 inode 的速度
 
 
JuiceFS 5.1.13 (2025/2/27)
- 后台异步更新可用内存
 - 允许多进程并发监听端口(避免因子进程未退出导致新进程起不来)
 - 在镜像重放日志失败后仍然继续提供服务
 - 修复镜像写集群可能连接失败的问题
 - 多分区
- 限制客户端对每个每个分区的并发操作个数为 100
 - 修复 rebalance 命令中各个子分区的 inode 数量不准的问题
 - 修复损坏的拆分的目录
 - 修复优化链接可能导致拆分目录损坏的问题
 - 清理找不到目标文件的跨分区链接
 
 
JuiceFS 5.1.12 (2025/2/22)
- 修复拆分很多次的目录的统计更新性能问题
 - 修复 lookup 时的空指针问题
 - 加载元数据到给定时间的版本
 - 只导出路径和 inode
 - 多分区
- 将迁移元数据的大小限制提升到 200KB
 - 修复迁移元数据时重复拆分目录的问题
 - 修复迁移热点元数据时的死锁
 - 不用迁移空的目录
 - 改进有大文件的目 录的迁移
 - 允许强制清空子分区的目录
 - 改进完成迁移流程
 - 禁止再次迁移迁移中的元数据
 - 异步修复 ref
 - 隐藏根目录的 .backup
 - 不允许迁移任何 ref
 - 不允许迁移 .backup
 - 增加缓存变量 JFS_LINK_LIMIT 控制根目录的 ref 数量
 - 加快迁移后的 inode 清理
 - 修复 .backup 的容量重复统计问题
 - 加快热点元数据的迁移
 
 
JuiceFS 5.1.11 (2025/2/13)
- 多分区
- 解决并发写入文件时的热点问题
 
 
JuiceFS 5.1.10 (2025/2/11)
- 多分区
- 改进写入文件时的局部热点问题
 - 通过 rebalance 命令清理损坏的跨区链接
 - 修复错误地迁移 .backup 导致跨区链接损坏的问题
 - 解决目录统计更新不及时的问题
 
 
JuiceFS 5.1.9 (2025/1/15)
- 优化 getattr 的元数据缓存
 - 允许忽略冲突的 slice ID
 
JuiceFS 5.1.8 (2025/1/8)
- 修复 cuckoo 溢出导致快照数据不完整的问题
 - 改进从 JSON 导入 hardlink 问题
 - 通过 CHUNK_DELETE_LIMIT = 0 来禁止删除
 - 解决异步写日志导致子进程不能退出的问题
 - 解决空集群的 dump 问题
 
JuiceFS 5.1.7 (2024/12/30)
- 拒绝老版本的客户端(5.0.24-)执行 GC 操作,可能导致误删
 - 修复压缩的目录中的内容没有导出为 JSON 的问题
 - 忽略尝试用 SSL 来连接非加密端口导致的日志
 - 解决新创建的文件的 mode 不能被正确重放的问题
 - 增加每次失败的数据删除操作的等待时间到 10 分钟,减少空间泄漏的可能
 - 解决 5 节点的集群中的频繁选举问题
 - 解决从固定节点下载快照文件总是失败的问题
 - 多分区
- 日志中增加分区 ID
 
 
JuiceFS 5.1.6 (2024/12/11)
- 多分区:
- 改进多分区的文件数均衡
 - 改进多分区的访问热点均衡
 - 同步迁移文件
 
 
JuiceFS 5.1.5 (2024/11/21)
- 改进
- 忽略端口冲突导致的日志
 - 兼容 5.2 生成的日志
 - 挂载根目录时不做 UID 映射
 
 - 多分区
- 改进元数据迁移的碎片情况
 - 提升元数据均衡时的碎片限制到 2000
 - 提升 DUPM_DISCONNECT 默认值为 10
 - 改进热点目录的负载均衡
 
 
JuiceFS 5.1.4 (2024/11/4)
- 允许服务运行的时候导出为 JSON
 - 修复异常时日志丢失的问题
 - 支持加载溢出的回收站 inode
 - 修复载入快照失败导致内存数据不一致的问题
 - 分散日志节点下载快照的时间
 
JuiceFS 5.1.3 (2024/10/28)
- 修复回收站数据 inode 溢出的问题
 - 放慢日志节点下载快照的速度,避免影响业务
 - 修复直连子分区的问题
 - 降低导出为 JSON 时的批次大小为 10000
 - 当内存不足时,确保有可用服务节点再重启
 
JuiceFS 5.1.2 (2024/10/16)
- 对大文件不使用紧凑格式
 - 限制 setTrashPath 的 QPS
 - 多分区:
- 修复 rename 一个指向目录的链接
 - 当平均目标超过 1000 时停止均衡
 
 
JuiceFS 5.1.1 (2024/9/19)
- Bug 修复
- 修复拆分目录的 SetACL 没有重置 SGID 的问题
 
 - 多分区
- 限制 rebalance 命令的运行时间和累计的跨分区链接的数量
 - 修复 rename 的权限检查问题
 - 修复可写镜像未完成初始化的问题
 
 
JuiceFS 5.1.0 (2024/9/10)
- 新功能
- 使用后台 CPU 来压缩内存
 
 - 改进
- 加速下载快照文件
 - 提升删除有大量扩展属性的文件的速度
 - 降低 ACL 和扩展属性的内存占用
 - 减少小规模集群的 cuckoo 的内存占用
 - 支持最大 inode 到 40 亿
 - 自动恢复被删除的根目录的配额
 - 处理超时导致重复的请求
 - 检查块设备的 ID 的合法性
 - 允许关掉新增客户端会话的日志
 - 自动拆分压缩比较慢的目录
 - 解决回收块设备的空间时的性能问题
 
 - Bug 修复
- 修复快照文件中的重复扩展属性
 
 - 多分区
- 修复多分区的各种兼容性问题
 - 将 
_dangling文件/目录放到.backup中 - 将硬链接放到 
.backup中 
 - 私有部署
- 解决 CSI 中元数据服务的 DNS 不生效的问题
 
 
JuiceFS 5.0.25 (2024/9/2)
- Bug 修复
- 修复删除包含被拆分目录的快照时奔溃的问题
 - 修正早期创建的文件系统的 vid
 - 尝试从其他客户端查找分配的地址空间
 
 
JuiceFS 5.0.24 (2024/8/19)
- Bug 修复
- 修复压缩的审计日志时可能不完整的问 题
 
 - 多分区
- 修复数据均衡时可能导致奔溃的问题
 - 支持载入 5.1 的元数据
 - 解决 flock/plock 在多分区集群中有很多错误日志的问题
 - 解决目录的属性没有正确失效的问题
 - 修复 
.backup被拆分时 ref 判断不对的问题 
 
JuiceFS 5.0.22 (2024/7/30)
- 改进
- 改进 heatmap 的准确性
 - 过滤掉单个分区的指标
 - 给镜像模式的请求增加白名单,避免异常消息导致元数据分叉
 - 支持 5.1 的元数据格式
 
 - 多分区
- 修复递归删除跨分区的超大目录时删不干净的问题
 - 允许 heatmap 命令显示单个分区的热点
 
 
JuiceFS 5.0.21 (2024/6/28)
- 改进
- 限制后台任务最多使用 30% 的 CPU
 - 修复从多个节点同时下载导致下载失败或者数据错乱的问题
 - 修复可能使用已经释放的内存的问题
 
 - 多分区
- 修复多分区的特殊文件名可能处理不准确的问题
 - 修复 Rename 返回 EAGAIN 的问题
 - 使用 5.0.20+ 的客户端来删除硬链接,避免误删
 
 
JuiceFS 5.0.20 (2024/6/28)
- 改进
- 允许通过 CHECK_SIGN=0 来关闭节点之前的签名校验
 
 - 多分区
- 不要将 LINK 放到 .backup 里
 - 支持 .backup 中的链接对象
 
 
JuiceFS 5.0.19 (2024/6/20)
- 改进
- 提升默认删除限制到 5000
 
 - 多分区
- 修复 rebalance 命令的 batch 参数不生效的问题
 - 禁止使用刚加载的目录树替换 link 节点
 - 将硬链接放入 .backup 目录中
 - 修复删除 link 时误删硬链接的其他边的问题
 - 更快地合并小目录
 - 迁移目录时自动排除某些不能被迁移的文件(硬链接、克隆或者太大的文件)
 
 
JuiceFS 5.0.18 (2024/6/3)
- 改进
- 改进很多客户端同时打开同一个文件时的性能问题
 - 修复日志文件压缩后没有及时生成快照的问题
 
 
JuiceFS 5.0.17 (2024/5/2)
- 改进
- 修复重复的待删除数据
 - 剩余内存低于 
10%时才强制开启内存压缩 - 忽略快照文件中重复的 inode
 
 
JuiceFS 5.0.16 (2024/4/16)
- 改进
- 改进限速,避免浪费
 
 
JuiceFS 5.0.15 (2024/4/7)
- 改进
- 增大 vm.max_map_count 到 256K
 
 
JuiceFS 5.0.14 (2024/3/25)
- 改进
- 清理被删除的 ACL
 - 减少哈希表扩容时时的卡顿现象
 
 
JuiceFS 5.0.13 (2024/3/19)
- 
改进
- 将 meta 之间连接失败的日志调整为 INFO
 - 增加后台任务的频次并缩减大小,减少阻塞时间
 - 支持直接使用 
;分隔的 IP 地址来访问源集群 - 加载新版本写入的 ACL 数据
 - 改进当某些文件系统没有可用客户端时的数据删除和碎片合并速度
 - 延迟碎片的等待时间到 24 小时
 - 当可用 inode 不足时提升释放速度
 - 当失败的请求修改了状态时主动重启
 - 加载新版本保存的节点数据
 
 - 
Bug 修复
- 修复调整服务端口导致服务不可用的问题
 - 解决遍历待删除数据库可能导致服务重新选举的问题
 - 修复从 JSON 中导入 ACL 失败的问题
 - 解决镜像中待重试的后台任务太多导致的性能问题
 - 解决 inode 溢出问题
 - 解决设置 ACL 后元数据的 checksum 未更新的问题
 
 
JuiceFS 5.0.12 (2024/3/1)
- Bug 修复
- 解决服务选举后出现未知 session 的问题
 
 
JuiceFS 5.0.11 (2024/2/19)
- 改进
- 改进检查配额的性能
 
 - Bug 修复
- 修复继承 ACL 时文件的属性不对的问题
 
 
JuiceFS 5.0.11 (2024/1/26)
- 改进
- 提升 cuckoo 哈希的内存使用率
 - 提升碎片合并的速率,降低内存使用量
 - 提升后台任务的并发量
 
 - Bug 修复
- 修复 slice 有多个空闲片段时导致磁盘快照不能读取的问题
 
 
JuiceFS 5.0.10 (2024/1/24)
- 改进
- 小批量扫描待删除数据和碎片,改进限速能力,降低性能影响。
 - 当碎片量超过 1 亿时强制合并所有的碎片。
 - 提升碎片扫描的速度
 
 - Bug 修复
- 修复读正在写入的 日志文件的最后版本号失败的问题
 
 
JuiceFS 5.0.9 (2024/1/19)
- 改进
- 当延迟删除的对象很多时自动提升限速到最大 20 倍
 - 增加参数 CHUNK_DELAY_LIMIT=86400 来限制延迟删除数据块的时间,默认不再跟回收站一致
 
 - 多分区
- 解决 Volume 初始化设置回收站时间失败的问题
 - 在 destroy 命令中清理子分区的所有文件
 - 解决子分区中的 Quota 路径不对的问题
 
 
JuiceFS 5.0.8 (2024/1/13)
- 改进
- 推迟缓存节点信息的广播以避免短时间内大量连接导致的不稳定。
 - 禁止迁移回收站的文件
 - 内存紧张导致重启时,一次只重启一个进程。
 - 提升碎片合并时解压缩目录的比例到 10%
 - 解决某些异常的大内存节点上检查可用内存时 CPU 占用过高的问题。
 
 - 多分区
- 解决往根目录被拆分的子分区迁移数据的问题
 - 修复载入包含有被迁移的回收站文件的磁盘快照失败的问题
 - 等子分区都连接上后再开始均衡元数据
 
 
JuiceFS 5.0.7 (2024/1/7)
- 改进
- 合并回收站中碎片很多的文件
 - 处理内存压缩失败的情况,改为不压缩
 - 提升碎片合并的速度
 - 允许中断日志重放过程
 - 调整子进程的 OOM 权重以避免父进程被杀
 - 把 80% 的 buffer/cache 内存当做可用内存
 - 创建 symlink 时忽悠默认 ACL
 - 避免写磁盘快照时把盘写满
 
 - Bug 修复
- 修复当有非常多碎片时导致碎片合并限速不对的问题
 
 - 多分区
- 修复多分区集群目录树可能不对的问题
 - 禁止均衡到同一个分区
 - 忽略迁移中的目录或者文件
 - 优化多级跨分区链接
 - 清理迁移完成的文件和目录
 
 
JuiceFS 5.0.6 (2023/12/21)
- 
改进
- 改进当系统内存不够时的稳定性,尽量避免被 OOM,以及被 OOM 后尽量恢复服务
 - 加快加入磁盘上的快照文件
 - 减少将大量扩展属性写入磁盘时的内存使用
 - 解决从磁盘载入快照文件可能被 watchdog 打断的问题
 
 - 
Bug 修复
- 解决扩展属性可能泄漏的问题
 
 
JuiceFS 5.0.4 (2023/12/7)
- 改进
- 将重复日志的进度写入到日志文件中
 - 修复数据清空后 CPU 使用过高的问题
 
 
JuiceFS 5.0.3 (2023/11/30)
- 
改进
- 在重放事务日志时,如果机器内存富余(10+%)则不做内存压缩
 - 重放从网络拿到的事务日志时也尝试压缩内存
 - 在恢复回收站的文件时检查权限和配额
 - 将未写入的数据片段持久化
 
 - 
Bug 修复
- 修复设置回收站时间时受影响的文件数量
 - 修复拿单个 文件的锁时格式不对的问题
 - 修复跨文件系统重命名时 vid 不对的问题
 - 修复用 rmr 删除被拆分的目录时权限检查问题
 - 修复空文件系统的回收站设置可能丢失的问题
 - 修复合并有空洞的文件导致结果不对的问题
 - 修复 flock 的升级和降级没有持久化的问题
 - 修复被拆分的目录的 ACL 设置
 - 修复设置了 ACL 时 mode 不对的问题
 - 修复启用了转存后启动时可能会奔溃的问题
 
 
JuiceFS 5.0.2 (2023/11/16)
- 
改进
- 支持迁移不超过 1000 个碎片的文件
 
 - 
Bug 修复
- 修复热备节点的日志文件没有正确轮转的问题
 
 
JuiceFS 5.0.1 (2023/10/30)
- 
新增
- 使用共享块设备加速小文件的读写
 - 将分块写入的文件在指定时间后以兼容格式转存到对象存储
 - 支持异构的缓存集群(指定不同的空间权重)
 - 支持限制后台任务使用的对象存储带宽
 - 支持 df 命令时返回指定的目录的使用量信息
 
 - 
改进
- 提升碎片合并的效率
 
 - 
多分区
- 提升跨分区重命名文件的性能(通过环境变量 JFS_FAST_RENAME=1 启用)
 
 
JuiceFS 4.9.23 (2023/10/18)
- 
Bug 修复
- 修复恢复回收站中文件时创建的目录的 GID 在多个节点间不一致的问题
 - 修复访问文件名的内部 hash 为 0 时导致服务异常退出的问题
 
 - 
改进
- 减少重复的碎片合并
 
 - 
多分区
- 修复多分区集群中可能有跨分区的文件泄漏的问题
 
 
JuiceFS 4.9.22 (2023/9/20)
- 
改进
- 启动时忽略无效的文件名
 
 - 
多分区
- 修复跨分区的引用错误导致文件错乱的问题
 
 
JuiceFS 4.9.21 (2023/9/14)
- 
优先删除数据而不是碎片合并
 - 
多分区
- 修复替换迁移中的目录中的 链接导致文件被误删的问题
 
 
JuiceFS 4.9.20 (2023/9/6)
- 
修复给某个 volume 启用多分区时没有立即生效的问题
 - 
支持指定服务端使用 tcp4 网络(默认优先使用 tcp6)
 - 
多分区
- 修复跨分区优化可能可能导致文件被误删的问题
 
 
JuiceFS 4.9.19 (2023/9/31)
- 
修复被合并的数据块没有主动同步的问题
 - 
多分区
- 修复 rename 失败导致挂载点 crash 的问题
 - 修复优化跨分区链接导致 crash 的问题
 
 
JuiceFS 4.9.18 (2023/8/25)
- 解决 meta 更新配置时使用了被占用的端口导致卡死的问题
 
JuiceFS 4.9.17 (2023/8/21)
- 多分区
- 修复被迁移的链接泄漏的问题
 - 修复失败的 Link 操作导致客户端 crash 的问题
 - 修复跨分区的快速 rename
 - 优先使用客户端设置的 Quota
 - 挑选有写权限的客户端来更新使用量统计
 
 
JuiceFS 4.9.16 (2023/8/21)
- 多分区
- 在 readdir 的回应中不用返回 链接的对象
 - 支持跨分区的快速 rename (JFS_FAST_RENAME=1)
 
 
JuiceFS 4.9.15 (2023/8/21)
- 
修复重放日志时的文件 fd 泄漏问题
 - 
自动合并直接文件数少的目录
 - 
自动合并多层被拆分的目录
 - 
优化一次清理大量回收站文件时的性能问题
 - 
多分区
- 立即迁移 rename 产生的跨分区文件
 - 修复子分区的根目录被频繁预热导致服务器过载的问题
 - 修复迁移元数据时陷入死循环的问题
 
 
JuiceFS 4.9.14 (2023/7/27)
- 修复内存压缩导致 chunk 的信息错误的问题
 - 修复被多个文件共享的 chunk 相关的问题
 
JuiceFS 4.9.13 (2023/7/25)
- 在 reload 配置文件失败时打印日志
 - 修复保存大量快照数据导致 watchdog 超时的问题
 - 自动拆分包含大量符号链接的目录
 - 当没有配置密钥时不用尝试加密连接
 
JuiceFS 4.9.12 (2023/7/7)
- Bugfix
- 压缩回收站应该遵循配置
 - 调整杀子进程慢的日志为 warning
 - 修复 rmr 删除被拆分的目录权限不够时导致服务异常重启的问题
 - 当发现被拆分的目录 ID 异常时异常重启的问题
 
 - 多分区
- 修复优化被删除的跨区链接时的异常
 - 修复 sync 命令访问 
jfs://时的不会自动均衡的问题 
 
JuiceFS 4.9.11 (2023/6/29)
- 多分区
- 修复恢复被删除的跨区链接导致服 务重启的问题
 - 修复在子分区的目录上运行 df 慢的问题
 
 
JuiceFS 4.9.10 (2023/6/26)
- 改进
- 支持修改服务端口
 
 
JuiceFS 4.9.8 (2023/6/16)
- 改进
- fork 后子进程因为增长 stack 导致卡主的问题
 - 支持使用 CIDR 指定访问元数据的白名单
 
 - Bug 修复
- 修复检查迁移的文件系统时导致客户端注册失败的问题(4.9.5 引入)
 
 - 多分区
- 优化指向硬链接的跨区链接
 
 
JuiceFS 4.9.6 (2023/6/1)
- 改进
- 使用 SESSION_MIN_UPTIME 限制长连接的客户端的信息上报,避免大量短时间 Session
 - 提升访问有大量碎片的文件的性能
 - 降低碎片树的高度,以减少访问时的递归深度
 
 
JuiceFS 4.9.5 (2023/6/1)
- Bug 修复
- 修复镜像集群中 sessionid 可能重复的问题(导致监控数据不对)
 - 解决服务器端推送消息到客户端不及时的问题
 - 修复镜像集群中触发目录拆分导致进程退出的问题
 
 - 改进
- 支持文件系统迁移到其他集群
 - 记住断开的客户端尚未提交的 slice,减少 warning
 
 - 多分区
- 改进元数据均衡,允许中断
 - 去掉子分区的容量限制
 - 修复内存中记录的跨区链接不对的问题
 - 修复递归删除时因权限不够导致文件不可见的问题
 - 允许当拆分后的子目录在其他分区时让 readdir 返回部分结果
 
 
JuiceFS 4.9.4 (2023/5/13)
- 
改进
- 修复从其他节点接收到错误数据导致 crash 的问题
 - 支持限制碎片合并的速度
 - 改进客户端的限速,使其更精确
 
 - 
多分区
- 支持使用 ZONE_IP2 配置内网 IP
 - 在多分区集群上限制某个文件系统只使用单分区
 
 
JuiceFS 4.9.3 (2023/4/25)
- 
改进
- 增加 CLIENT_MAX_PENDING_JOB=100 来控制单个客户端的并发后台任务数
 
 - 
Bug 修复
- 修复回收站文件的在启动时解压缩导致启动慢的问题
 - 修复 Linux 下非组内成员不能继承 SGID 的问题
 
 - 
多分区
- 将父目录迁移到大部分文件所在的分区
 
 
JuiceFS 4.9.2 (2023/4/19)
- 
改进
- 给 meta 服务增加 watchdog, 一旦发现卡死超过 5 分钟就自动重启
 
 - 
多分区
- 不要压缩迁移中的文件
 - 修复多分区时创建克隆可能失败的问题
 - 对 S3 接口的 COPY 请求,当克隆失败时降级到数据拷贝方式
 
 
JuiceFS 4.9.1 (2023/4/6)
- 
Bug 修复
- 修复导致 Go GC 报内存异常导致退出的问题(4.8.5 引入)
 - 修复从 JSON 导入文件部分属性
 - 修复恢复文件到被拆分目录的问题
 - 修复使用已经释放的内存的问题
 
 - 
改进
- 改进内存压缩,为部分文件提供快速访问
 - 改进集群的客户端很多的时候的性能
 - 减少快照落盘时导致死锁的情况
 
 
JuiceFS 4.9.0 (2023/3/8)
- 
Bug 修复
- 解决 Go 的 GC 报无效内存指针导致异常退出的问题
 
 - 
改变
- 解决合并的数据碎片引用计数不对的问题
 - 优化元数据服务的 CPU 和内存使用,提升性能
 - 增加控制回收站清理的参数
 - 拒绝客户端连接时打印日志
 - 修复老的客户端合并碎片时导致的空指针问题
 - 加快重启服务时 Raft 选举过程,缩短服务不可用时间
 - 修复访问被释放的内存导致异常退出的问题
 - 给磁盘上的数据和日志文件加上校验
 - 保证绝大部分操作的幂等性
 - 减少重放大量日志时的内存波动
 - 限制单次回收 inode 的个数以减少性能抖动
 - 增加内存分配和压缩的详细日志
 - 减少空闲集群的内存使用
 
 - 
多分区版本
- 清理指向回收站文件的 link,减少重复的无效请求
 - 忽略无效的元数据迁移指令(不要移动文件位置,避免误操作)
 - 修复跨分区的目录的某些操作会失败的问题
 - 优化被迁移的数据的内存使用
 - 改进元数据的数据均衡
 - 解决多分区时回收站路径不对的问题
 - 禁止命名为 /.jfszoneXXX
 - 修复清理 LINK 时的错误
 
 
JuiceFS 4.8.8 (2023/4/6)
- Bug 修正
- 修复导致 Go GC 报内存异常导致退出的问题(4.8.5 引入)
 
 
JuiceFS 4.8.7 (2023/2/28)
- Bug 修正
- 修复镜像文件系统的 flock/plock 失败的问题(应该返回 EROFS)。
 
 
JuiceFS 4.8.6 (2023/2/16)
- Bug 修复
- 修复某种情况下不能及时复制日志数据并选举出 leader 的问题
 - 修复访问释放后的内存导致异常退出的问题
 - 修复 copy file range 请求可能导致死循环的问题
 
 
JuiceFS 4.8.5 (2023/2/7)
- 
改变
- 默认使用堆外内存以减少内存波动
 - 避免重复尝试合并回收站的文件导致内存上涨
 - 支持 statfs 返回的 inode 容量超过 100 亿
 
 - 
Bug 修正
- 修复挂载点根目录的元数据缓存未及时失效的问题
 - 修复快照文件的 UID 不对的问题。
 
 
JuiceFS 4.8.4 (2023/1/9)
- 
改变
- 优化加载大日志文件。
 - 支持加载 4.9 产生的快照文件。
 
 - 
Bug 修复
- 当有重复的 ID 的元数据连接时,端口 IP 不在白名单里的那个,避免正常的节点反复断开连接。
 - 解决读取的日志文件中的空行。
 - 减少 fork 进程导致的死锁情况。
 
 
JuiceFS 4.8.3 (2022/11/30)
- Bug 修复
- 延迟删除所有可能被多个文件使用的数据片,避免引用计数不对导致数据丢失。
 
 
JuiceFS 4.8.2 (2022/11/24)
- 
改变
- 自动拆分超过 1000 个元数据的目录,降低元数据压缩导致的性能影响。
 - 改进内存压缩的效果。
 - 允许合并只有一个碎片的文件,以减低内存使用。
 
 - 
Bug 修复
- 解决反复尝试提升为 leader 失败的情况。
 - 解 决回收站文件清空不及时的问题(4.8.0 引入)。
 
 - 
多分区版本
- 修复数据迁移操作的幂等性,避免失败重试导致数据丢失的风险。
 - 忽略无效的元数据均衡操作,不要移动文件的位置。
 
 
JuiceFS 4.8.1 (2022/10/28)
- 
新增
- 增加调整碎片整理的参数,默认为 CHUNK_COMPACT_MIN_SLICE=1 TRY_COMPACT_RATIO=0
 - 增加配置项 CLEANUP_TRASH=0 来临时禁止清空回收站。
 - 增加配置项 CHUNK_FORCE_DELETE=1 来强制清空延迟删除的数据块。
 - 支持使用内网 IP(在访问规则上增添 internalip 参数)
 
 - 
改变
- 当磁盘空间不够时,删除不需要的元数据快照文件以释放空间
 - 在大量删除或者恢复文件时保持 Raft 心跳
 - 给恢复文件时创建的目录使用 0755 的权限。
 - 不再压缩使用的数据片段信息,避免引用计数错误导致的数据丢失。
 - 定时异步数据落盘时不再压缩回收站文件,否则可能因内存分配导致死锁。
 - 当关闭数据压缩时,启动时解压缩所有文件,并检查是否有数据库的引用计数错误。
 - 默认关闭无碎片文件的内存优化(PACK_FILE=0),避免老版本的客户端(4.7.2-)使用 copy_file_range 时引用计数不对导致数据丢失的问题。
 - 删除一个数据块前检查它是否仍被使用,避免其他 bug 导致的数据丢失。
 
 - 
Bug 修复
- 修复 summary 可能包含重复内容的问题。
 - 修复导出原数时包含 导入的文件时 会 crash 的问题 (4.8.0 的新功能)
 - 修复重复的碎片合并导致的空指针错误。
 - 修复下载数据失败后的空指针问题 (4.8.0 引入)。
 - 修复的挂载的子目录被拆分导致客户端查询失败的问题。
 - 修复导入文件到被拆分目录的问题。
 - 修复 fallocate 带 PUNCH_HOLE 时溢出的问题
 
 - 
多分区版本
- 修复当两次拆分后的目录中有跨区链接时导致客户端死循环的问题。
 - 修复在当一个分区的目录树过多导致不能被及时删除的问题。
 - 清理回收站内文件的跨区链接。
 
 
JuiceFS 4.8.0 (2022/08/25)
- 
改进大目录删除的性能,避免阻塞其他操作。
 - 
优化回收站的内存使用和删除操作的性能。
 - 
单个分区支持 3 个以上节点。
 - 
改进数据清理限制,CHUNK_DELETE_LIMIT=0 时完全不做清理。
 - 
上报 Quota 时忽略通配符匹配的目录(可能很多)。
 - 
减少内存中保留的事务日志数量以节省内存。
 - 
在日志中记录比较慢的定期任务,并将部分认为调整为异步执行。
 - 
修复挂载被拆分的子目录时导致卡主的问题。
 - 
支持加载社区版导出的 JSON 格式的元数据。
 - 
提升默认合并碎片的限制到每秒 2000 个(之前是 200 个)。
 - 
加速新建集群的第一次选举时间。
 - 
修复访问控制权限变更时没有立即断开无权限的客户端的问题。
 - 
多分区版本
- 支持在多分区集群设置配额。
 - 修复大集群中当单个分区的目录太多导致服务过载的问题。
 
 
JuiceFS 4.7.6 (2022/07/15)
- 修复请求 ID 溢出导致幂等性检查错误的问题。
 - 修复恢复回收站中的文件到被拆分的目录中。
 - 修复在被拆分的目录中创建快照的问题。
 - 修复删除磁盘上的快照文件导致服务卡顿的问题。
 - 记录心跳超时时主线程的调用栈用户分析性能问题。
 - 修复大数据集群在快照落盘时的服务卡顿问题。
 - 允许遍历待删除的数据块用户完整性检查。
 - 修复删除数据块时不严格遵守配置参数的问题。
 
多分区版本
- 支持加载 JuiceFS>=4.8 版本压缩的跨分区对象。
 - 修复在禁用后台任务后可能导致要删除的对象泄漏的问题。
 
JuiceFS 4.7.5 (2022/06/25)
- 支持加载 JuiceFS>=4.8 产生的快照文件。
 - 修复 Java SDK 中给同一个目录创建多个快照时可能错乱的问题。
 - 为所有删除的数据生成一个事务日志。
 
多分区版本
- 多分区版本中禁用小文件写入数据合并,当多个不同分区的文件数据被合并时可能导致数据丢失。
 
JuiceFS 4.7.4 (2022/05/27)
- 修复 Java SDK 中给同一个目录创建多个快照时可能错乱的问题。
 - 修复重新加载访问规则不生效的问题。
 - 清理遗漏的扩展属性和 ACL 规则。
 
JuiceFS 4.7.3 (2022/04/20)
- 修复部分内存中数据块的引用计数多 1 的问题(4.7.0 引入)。
 - 修复目录的部分标志位没有正确复制的问题(4.7.0 引入)。
 - 修复元数据服务从别的节点下载日志文件失败的问题(4.7.0 引入)。
 - 修复选举后自增 chunkid 状态没有被正确复制的问题(4.7.0 引入)。
 - 强行断开不符合规则的客户端连接。
 
JuiceFS 4.7.2 (2022/04/06)
- 修复 changelog 清理过于激进的问题。
 
多分区版本
- 当访问被拆分的目录部分不可用时,返回部分能访问的列表。
 
JuiceFS 4.7.1 (2022/03/14)
- 修复元数据服务的内存泄漏问题(4.7.0 引入)。
 - 自动拆分超过 10000 个元数据的目录,改进元数据服务的响应性。
 - 兼容 4.8 的元数据格式(允许版本回退)。
 - 修复压缩日志文件的问题(4.7.0 引入)。
 
JuiceFS 4.7.0 (2022/02/23)
- 改进 QoS 时带宽分配
 - 当元数据需要回滚时(新的日志跟内存中的不一致),一次性回滚更多以减少重启的次数
 - 改进小文件 (单个 chunk) 的内存使用
 - 减少 dump 时的内存消耗(压缩)。
 - 压缩日志文件。
 - 避免重复下载日志文件。
 - 在 快照中保留 term 和 zoneid
 - 可以去掉 快照目录检查(CHECK_SNAPSHOT=0)
 - 避免重复设置 quota
 - 允许使用只读的 AK 作为只读挂载使用。
 - 不给只读的客户端分配后台任务。
 - 在 info 命令中返回 Metaid
 - 缩短断开的 POSIX 挂载连接的保留时间到 60 秒(之前是 10 分钟)。
 - 使用集群的回收站时间作为默认值(不改变独立设置的单个文件系统的回收站时间)。
 
多分区版本
- 让大目录更分散(把子目录创建的别的分区中)
 - 改进元数据迁移,避免某个分区的部分目录不能迁移时影响整体进程。
 - 减少内存分配(大目录和消息合并)
 - 解决合并拆分过的目录的缓存失效问题。
 
JuiceFS 4.6.1 (2022/12/23)
- 改进 Readdir 时的性能(READDIR_WITH_CHUNK =0 不返回第一个 chunk)
 - 增大 GOGC 到 50
 - 当元数据空间不足时,删除不需要的日志文件以释放空间
 - 自动恢复镜像的元数据节点
 
多分区版本
- 不要压缩刚迁移的元数据(避免 chunk 的引用计数不对)
 - 选举后的一个小时后开始检查迁移的数据块
 
JuiceFS 4.6.0 (2021/12/09)
- 修复集群可能无法创建文件的问题。
 - 解决 S3 gateway 写入数据时导致 inode 泄漏的问题。需要重启一下 S3 网关。
 - 当所有元数据盘的剩余空间都不够 10GiB 且低于 5% 时,会自动清理必须要的 changelog 文件以释放空间给新写入数据,确保服务不受影响。
 
多分区版本
- 在回收站信息中包含路径信息,解决多分区时回收站的监控数据不对的问题。
 - 如果 10 分钟后还在访问被迁移的文件时,增加日志方便后续分析。
 - 延缓释放迁移的节点信息(新 leader 被选举后的 24 小时之后),确保这些节点信息不再被需要。
 - 合并共享的碎片以便于元数据迁移(不包含 snapshot 产生的文件)
 - 解决方向链接加载不正确的问题。
 - 确保所有的跨分区链接都指向最终的目标。
 - 修正使用多分区时客户端缓存的元数超过设定值的问题。
 - 解决目录拆分又合并了之后导致缓存的信息不对的问题。
 - 解决客户端可能无法使用新加分区的问题
 - 允许迁移包含碎片的文件。
 - 修复扩展分区的 文件数统计
 - 将分段上传的数据之间写入目标分区,减少不必要的数据迁移操作。
 - 修复扩展分区加载 chunk 信息的问题。
 - 修正使用多分区时客户端缓存的元数超过设定值的问题。
 - 使用 JFS_RANDOM_DIR=xx 来做多分区的元数据均衡时,不再考虑各分区的当前文件数量,是的新创建的目录能够随机分配。
 
JuiceFS 4.5.6 (2021/10/29)
- 改进 readdir 性能
 - 修正 meta 在均衡元数据时 CPU 使用过高的问题。
 - 改进同一个目录有大量硬链接时的性能。
 
JuiceFS 4.5.5 (2021/10/15)
- 优化符号链接的内存使用量。
 - 允许加载不连续的日志。
 - 限制压缩元数据所使用的 CPU 以保障性能。
 - 新增 LOAD_CHECKSUM=0 来忽略 快照文件中的 checksum
 
JuiceFS 4.5.4 (2021/09/07)
- 修复元数据均衡时可能导致无限循环的情况。
 - 解决当存储空间不足,挂载的 volume 用 df 看不到的问题。
 - 支持同时管理千万级文件的缓存状态。
 
JuiceFS 4.5.3 (2021/08/19)
- 允许集群的客户端缓存更多目录的元数据(从 1 万提升到 100 万)。
 - 避免文件碎片过多时 checksum 的计算占用 CPU 过高的问题。
 - 根据文件碎片的多少自动调整碎片整理的速度。
 - 解决当一个文件的 open 状态丢失导致 flock/POSIX lock 失败的问题。
 - 将元数据服务进程的 CPU 和内存使用量更新频率从一分钟降低到 5 秒。
 - 立即合并因有碎片不能被迁移的文件。
 - 允许迁移正在打开的文件。
 - 淘汰 5 分钟内没有任何方便的缓存目录。
 - 使用多线程来压缩 readdir 返回的结果,节省主线程的 CPU 占用。
 - 允许通过挂载点来恢复回收站中的文件。
 - 修复元数据迁移时缓存没有失效的问题。
 - 修复镜像模式下仍会请求更新目录统计信息的问题。
 - 支持快速 readdir 操作(更低 CPU 和内存消耗)。
 - 通过环境变量 JFS_REBALANCE=xx 来开启自动数据均衡。
 - 改进 readdir 的性能。
 - 在后台异步清理断开的连接。
 - 启动时支持 10 亿条边。
 - 支持限速 (QoS) 时使用浮点数。
 - 数据均衡时尽量让 Zone 0 的规模更小。
 - 默认在 一天后释放移动过的 Inode。
 - 加快释放移动过的 inodes。
 - 使用闲置的 CPU 来压缩元数据,减少对性能的影响。
 - 将元数据的压缩关闭时,逐渐解压缩内存中的数据。
 
JuiceFS 4.5.2 (2021/07/15)
- 限制单次回收的 Inode 为最多 100 万。
 - 不允许迁移 LINK 类型的 Inode。
 - 从内存池申请内存。
 - 在后台写入数据到磁盘时停止检查任务以减少内存的变更和消耗。
 - 在 日志模式下忽略 Raft 优先级(不用 尝试提升为 leader)。
 - 在不同的时间将数据写入磁盘。
 - 关掉子进程的日志(可能导致死锁)。
 - 使用 Raft 消息来维护心跳,放在不必要的超时切换。
 - 修复 .zonemap 中拆分的目录显示不正确的问题。
 - 默认是否 1 周前迁移过的 inode。
 
JuiceFS 4.5.1 (2021/06/17)
- 清理 7 天前备份的元数据防止磁盘空间泄漏。
 - 增加反向链接,解决悬空文件的问题。
 - 优先处理 Raft 消息以避免选举抖动。
 - 优化压缩页的内存分配。
 - 修复 .zonemap 中多层链接。
 - 修复元数据迁移时导致的反向链接不对的问题。
 - 允许指定以前内可以进行碎片整理的时间段。
 - 随机挑选磁盘来写入元数据以均衡 I/O。
 - 每分钟都尝试提升优先级高的 节点为 Leader,并打印日志。
 - 在发现更大的 term 时回滚日志。
 - 支持迁移被拆分的目录。
 - 减少被迁移 inode 的内存占用。
 - 拆分超过 100000 目录。
 - 限制碎片合并的速度,默认 100/秒。
 


