github juicedata/juicefs v1.1.0

latest releases: v1.2.1, v1.1.4, v0.2.1...
14 months ago

This is the second major release of JuiceFS, and is an LTS version as well that will be maintained for 24 months.

Starting from v1.0 it has 876 commits from 62 contributors, thanks to @SandyXSD @zhijian-pro @davies @zhoucheng361 @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 @T-TRz879 @arnoldberlin @CaitinChen @leemingzixxoo @wzhallright !

Highlights

  • Supports setting quotas on directory level
  • Supports fast copying a tree with clone command
  • Supports using FoundationDB as metadata engine
  • Supports using GlusterFS as object storage

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 GlusterFS as object storage (#3840, #3869)
  • Supports using GETFLAGS & SETFLAGS in ioctl (#2346, #2859)
  • Supports using jfs:// as schema for the sync 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 --dir-stats 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 --manager-addr to customize the IP and port of the manager node (#3912)
  • 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 and tls-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/format: add default MinClientVersion to prevent old clients (#3871)
  • 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/fsck: ignore chunks of deleted files (#3832)
  • 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: read large file from sftp in parallel (#3933)
  • cmd/sync: list file systems in parallel (#3769, #3782)
  • meta/redis: skip setting maxmemory_policy if this field does not exist (#3888)
  • meta/sql: add index to column refs in sliceRef to speed up the doCleanupSlices function (#3842)
  • chunk: disable refreshCacheKeys if interval < 0 (#2865)
  • object/hdfs: support using base64 encoded keytab for hdfs (#3818, #3874)
  • object/sftp: try public keys before interactive password (#3886)
  • utils: write syslog in background (#3967)
  • 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: fix the issue that some commands (e.g. info) may fail if internal data is very large (#3850)
  • 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/gateway: fix the issue that List may fail if there's a symlink pointing to a file in another file system (#3879)
  • cmd/sync: fix the issue that for jfs schema customized endpoint is not passed to the worker (#3922)
  • cmd/sync: fix the issue that --links does not work for symlinks pointing to a directory (#3942)
  • cmd/sync: fix the issue that umask is not correctly applied (#3784)
  • cmd/sync: fix the issue that environments are not properly shared in cluster mode (#3254)
  • meta: fix the issue that baseMeta.fmt is not atomically updated (#3956)
  • meta: fix the issue that files may be created under a directory that is already in trash (#3864)
  • 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)
  • meta/redis: pass all gids to the LUA script to check permission (#3902)
  • meta/tkv: fix the issue that attr may be nil during dumping if the inode key is missing (#3833)
  • meta/memkv: fix the conflict between scan and write operations (#3838)
  • vfs: fix ioctl result and newly support the FS_IOC_FSGETXATTR command (#3936)
  • vfs: fix the deadlock under concurrent truncate and release (#3457)
  • fs: limit the maximum resolve depth for symlinks (#3896)
  • object/sql: fix the issue that MySQL may not properly handle some special characters (#3299, #3303)
  • object/ceph: fix the error handling to put empty file, range get and get non-exist object (#3835, #3855)
  • metrics: fix the issue that sometimes object metrics may be missing (#3853)
  • hadoop: fix the method to obtain jarPath on Windows (#3907)
  • 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.

Don't miss a new juicefs release

NewReleases is sending notifications on new releases.