Skip to main content

元数据版本更新

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/秒。