This is the first beta release for JuiceFS v1.1. Since v1.0 it has 726 commits from 57 contributors, thanks to @zhijian-pro @SandyXSD @zhoucheng361 @davies @Hexilee @yuhr123 @tangyoupeng @timfeirg @sanwan @xiaogaozi @Suave @solracsf @tcodehuber @zyfjeff @kyungwan-nam @zwwhdls @Ziy1-Tan @pigletfly @qingyunha @rfyiamcool @201341 @rayw000 @shichanglin5 @AIXjing @Vigor-jpg @baifachuan @yongxie09 @tisonkun @neocxf @molei20021 @luohy15 @leoliulei @jomenxiao @divinerapier @cuishuang @cmmp6 @xiedeyantu @xyb @Karitham @aronsky @yqlbu @JoyLiuc @sjp00556 @shjwudp @jzcruiser @hamidzr @ggicci @gdams @eryugey @guaneryu @Erisa @p1u3o @CodeRusher @CaitinChen @dugusword @Arvintian @AChangFeng !
Highlights
- Supports setting quotas on directory level
- Supports fast copying a tree with
clone
command - Supports using FoundationDB as metadata engine
New
- Added a new command
quota
to manage directory quotas (#3268, #3371, #3374, etc.) - Added a new command
clone
to fast clone a directory tree (#3279, #3366, #3369, etc.) - Added a new command
debug
to collect a bunch of client information used for diagnosing problems (#2360, #2815, #2857, etc.) - Added a new command
restore
to batch restore files in trash (#3657) - Added a new command
summary
to show tree summary under a directory (#3381) - Supports using FoundationDB as metadata engine (#2581, #2824)
- Supports using GETFLAGS & SETFLAGS in
ioctl
(#2346, #2859) - Supports using
jfs://
as schema for thesync
command (#3161) - cmd/mount: add a new option
--update-fstab
to add/update fstab (#2462, #2997) - cmd/mount: add a new option
--verify-cache-checksum
to adjust the checksum strategy for cache files (#2626) - cmd/mount: add a new option
--cache-scan-interval
to customize the interval for large cache directories (#2692) - cmd/mount: add a new option
--skip-dir-nlink
to reduce transaction conflicts in certain cases (#3285, #3322) - cmd/mount: add a new option
--cache-eviction
to specify the eviction policy (#3478) - cmd/mount: add a new option
--prefix-internal
to prefix internal files by.jfs
(#3567) - cmd/mount: add a new option
--root-squash
to map root user to an unprivileged one (#3575, #3579) - cmd/mount: add a new option
--atime-mode
to specify the atime update policy (#3521, #3585, #3591) - cmd/umount: add a new option
--flush
to wait for all staging chunks to be flushed (#3224) - cmd/webdav: add new options
--cert-file
and--key-file
to support basic authentication and TLS (#3146, #3156) - cmd/format: add a new option
--encrypt-algo
to specify the encryption algorithm (aes256 or chacha20) for data objects (#2330) - cmd/format&mount: add a new option
--storage-class
to specify the storage class used for the object storage (#3534, #3588) - cmd/config: add a new option
--dirStat
to enable constantly track of directory usage (#3257, #3276, #3277, etc.) - cmd/config: add new options
--upload-limit
and--download-limit
to set default bandwidth limits for the volume (#3574, #3589) - cmd/fsck: add a new option
--repair
to repaire broken directories (#2654, #2785) - cmd/dump: add a new option
--keep-secret-key
to keep secret key intact during dumping (#2699) - cmd/status: add a new option
--more
to show information about trash files/slices and pending deleted files/slices (#2977, #3085, #3145) - cmd/sync: add a new option
--existing
to skip creating new files on the destination (#3566) - cmd/sync: add a new option
--ignore-existing
to skip updating files that already exist on the destination (#3566) - meta/redis: support specifying
tls-cert-file
,tls-key-file
andtls-ca-cert-file
in the META-URL query string (#3388, #3403) - meta/postgres: support specifying one schema by
search_path
in the META-URL query string to replace the default one (#2663) - chunk: add upload delay metrics (#2713)
- object: support listing with delimiter (#2813)
- object: add the Copy interface to copy an object within the object storage (#3581)
- object/hdfs: support configuring the number of replications by
dfs.replication
(#2680) - object/hdfs: support more formats of bucket path (#3517, #3528, #3577, #3713)
- hadoop: add an option
no-session
to disable session management (#3750)
Changed
- cmd/mount: don't mount again if the mount point is already mounted by the same juicefs volume (#2979, #3059)
- cmd/mount: allow setting heartbeat to 0 (used for embedded metadata engines) (#3471)
- cmd/mount: make the format configuration reloadable without re-mount (#2994)
- cmd/mount: remove gops agent (#2884)
- cmd/status: show detailed plock records for sessions (#2627)
- cmd/status: add IP addresses to the session info (#3464)
- cmd/info: show locks of a certain file (#3001)
- cmd/info: support fast mode to get recursive stats of a directory more quickly (#3296, #3317, #3340, #3423)
- cmd/gc: support cleaning expired trash files, delfiles and delslices (#3022)
- cmd/dump&load: support dumping to or loading from a gzip compressed JSON file (#2908)
- cmd/wamrup: warm up metadata as well when open cache is enabled (#3185)
- cmd/rmr: skip trash directories when removing entries (#3179)
- cmd/sync: list file systems in parallel (#3769, #3782)
- chunk: disable refreshCacheKeys if interval < 0 (#2865)
- hadoop: reduce memory usage (#2580, #2592, #2620)
- hadoop: treat user 'root' as an unprivileged user (#3213)
- hadoop: print go log messages to the Java log (#3420)
Bugfix
- cmd: set the correct GOMAXPROCS value when running inside container (#2935)
- cmd/mount: fix the issue that go-fuse log may not be printed when running in daemon mode (#3206)
- cmd/sync: fix the issue that environments are not properly shared in cluster mode (#3254)
- meta: fix the issue that mtime is not correctly updated during writing (#3552)
- meta: fix the issue that file attribute may be overwritten in some cases (#3766)
- vfs: fix the deadlock under concurrent truncate and release (#3457)
- object/sql: fix the issue that MySQL may not properly handle some special characters (#3299, #3303)
- hadoop: fix the issue that the generated uid/gid may overflow int32 when using SQL metadata engines (#3680)
Note: all bug fixes in v1.0.2, v1.0.3 and v1.0.4 are also included in this release.