Skip to main content

元数据版本更新

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 中多层链接。
  • 修复元数据迁移时导致的反向链接不对的问题。
  • 允许指定以前内可以进行碎片整理的时间段。
  • 随机挑选磁盘来写入元数据以均衡 IO。
  • 每分钟都尝试提升优先级高的 节点为 Leader,并打印日志。
  • 在发现更大的 term 时回滚日志。
  • 支持迁移被拆分的目录。
  • 减少被迁移 inode 的内存占用。
  • 拆分超过 100000 目录。
  • 限制碎片合并的速度,默认 100/秒。