Releases: juicedata/juicefs
v1.2.0-beta1
This is the first beta release for JuiceFS v1.2. Since v1.1 it has 354 commits from 41 contributors, thanks to @zhijian-pro @davies @zhoucheng361 @SandyXSD @jiefenghuang @polyrabbit @CaitinChen @yuhr123 @Hexilee @tangyoupeng @YunhuiChen @eryugey @timfeirg @Suave @solracsf @kyungwan-nam @xiaogaozi @1ambd4 @stefanb @XDTD @occupyhabit @menwenjun @li1213987842 @testwill @fengleng @deferdeter @camcui @uvletter @T-TRz879 @yuchen-sun @TechQuery @reAsOn2010 @mtnk2005 @kanemathers @JoJossd @sjp00556 @CodingPoeta @abserari @AChangFeng @feeyman @l0wl3vel !
Highlights
- Supports graceful restart for mount process (#4392, #4450, #4487, #4499, #4509, #4511, #4524, #4547, #4555)
- Supports POSIX ACL (#4421, #4437, #4443, #4490, #4503, #4518, #4522, #4523, #4516, #4551, #4640)
- Supports Identity and Access Management (IAM) and events notify for gateway (#4030, #4593)
New
- Added a new command
compact
to trigger compaction on a specified path (#4337) - Supports using NFS as object storage (#3823, #4101, #4105, #4111, #4147, #4163, #4718)
- Supports using Dragonfly as object storage (#4057)
- Supports using Bunny as object storage (#4719)
- cmd: add a new option
--log-id
to append user-specified ID in log (#4040) - cmd/format: add a new option
--enable-acl
to enable POSIX ACL (#4421, #4437, #4443, #4490, #4503, #4518, #4522, #4523, #4516, #4551, #4640) - cmd/mount: add a new option
--skip-dir-mtime
to eliminate burst mtime updates of a directory (#4189) - cmd/mount: add a new option
--upload-hours
to limit the period for background uploads (#4250) - cmd/mount: add a new option
--cache-expire
to set expired time for cached blocks (#4255, #4365, #4434) - cmd/mount: add a new option
--custom-labels
to set labels for metrics (#4312, #4612) - cmd/mount: add a new environment variable
JFS_MOUNT_TIMEOUT
to adjust timeout for checking mount point ready (#4219) - cmd/mount: supports restarting mount process gracefully (#4392, #4450, #4487, #4499, #4509, #4511, #4524, #4547, #4555)
- cmd/gateway: supports IAM and events notify (#4030, #4593, #4622)
- cmd/gateway&webdav: add a new option
--background
to support daemon running (#3993, #4631, #4708) - cmd/gateway: add a new option
--domain
to support virtual-host-style requests (#4462) - cmd/warmup: add a new option
--evict
to manually evict cached blocks (#4370) - cmd/warmup: and a new option
--check
to check the ratio of already warmed blocks (#4370) - cmd/dump: add a new option
--fast=false
to reduce memory usage with a slower dump process (#4253) - cmd/dump: add a new option
--skip-trash
to skip the trash directory when backing up metadata (#4479, #4563) - cmd/dump: add a new option
--threads
to adjust speed for dump (#4581) - cmd/sync: add a new option
--inpace
to put file in-place, eliminating the rename operation (#4104) - cmd/sync: supports two stars
**
and three stars***
to match all files recursively (#4422, #4448, #4460, #4468, #4474) - cmd/sync: add a new option
--match-full-path
to match the filter against full path (#4492) - cmd/sync: add p8s metrics to better monitor the sync progress (#4119)
- meta: supports Open File Description (OFD) lock (#4083)
- chunk: disk cache switch to consistent hash and add bad disk detection (#4543)
- object: add query string to disable md5 and crc verification when s3 compatible storage does not support them (#4606)
- object: add a new environment variable
JFS_S3_VHOST_STYLE=1
to enable vhost style (#4697) - hadoop: add
push-labels
option to set custom labels for metrics (#4312)
Changed
- cmd: support human friendly values for options (#4246, #4558, #4567, #4592, #4641, #4671)
- cmd/mount: only use
writeback_cache
to enable fuse writeback (#4632) - cmd/gateway: judge loop symbolic links rather than hard-code deep limit (#4045)
- cmd/gateway: create MinioMetaBucket when it doesn't exist (#4383)
- cmd/gateway: create
.minio.sys
directory even if multi-buckets are not enabled (#4367) - cmd/sync: limit the maximum memory size for multiple uploads (#4135)
- cmd/sync: speed up sync for huge file (#4456)
- cmd/sync: use larger io-size when writing to backends (#4546)
- cmd/sync: skip listing the destination in force mode (#4602)
- cmd/sync: use HEAD instead of LIST for a single object (#4623)
- meta: add mount time in session info (#3987)
- meta: export meta backup metrics (#4480)
- meta: force compaction when there are too many slices in one chunk (#4573)
- meta/tkv & meta/sql: speedup the dump process using multiple threads (#4501)
- meta/redis: reduce the memory usage when dumping large directories (#4481)
- meta/badger: upgrade to v4 (#4564)
- chunk: prefetch the whole block only on successful partial read (#4658)
- vfs: fuse ops metric supports showing method label (#4554, #4560)
- vfs: add errno label to fuse ops metric (#4656)
- object/tos: adjust min part size from 5 MiB to 4 MiB (#4688)
- object/ceph: allow delete when ceph cluster is full (#4131)
- object/ceph: speedup list for ceph (#4218)
- object/ceph: set default path for admin socket and log file (#4608)
- hadoop: support human friendly values for options (#4655)
Bugfix
- cmd/gateway: fix ListMultipartUploads sorting rule and support delimiter (#4297)
- cmd/gateway: fix HEAD directory returns 200 but expect 404 (#4486)
- cmd/gateway: fix the issue that memory is not released immediately after object downloaded (#4507)
- cmd/sync: fix the issue that empty files are always synchronized (#4223)
- cmd/sync: execute chmod after chown to avoid setuid/setgid failure (#4418)
- cmd/sync: fix the issue that setuid/setgid/sticky bits are not set when using
jfs
protocol (#4419) - meta: fix the issue that
df
may see negative values (#4591) - meta/sql: use upsert in Write() to avoid possible deadlock (#4529)
- vfs: fix the issue that file entry may still be returned if it's deleted during readdir (#4453)
- vfs: fix the issue that file length may not be updated immediately after fallocate & copyfilerange (#4427)
- hadoop: make libjfs singleton to avoid possible jnr weakhashmap infinity loop (#4407)
- hadoop: fix guid lookupGroup (#4532)
- hadoop: use auto-increment fs handle to avoid possible conflict (#4411)
- hadoop: fix the issue that
dfsio
does not work becausemapreduce.output.fileoutputformat.compress
is true (#4646)
v1.1.2
This is the second patch release for JuiceFS v1.1. It has 16 commits from 6 contributors, thanks to @zhijian-pro @davies @SandyXSD @tangyoupeng @mtnk2005 @AChangFeng !
Changed
- Build(deps): bump golang.org/x/crypto from 0.14.0 to 0.17.0 (#4287)
Bugfix
- cmd/sync: fix the issue that name of the temporary file may be too long (#4215)
- cmd/sync: fix the issue that password of source is not removed (#4390)
- cmd/sync: fix symlink when using jfs:// schema (#4286)
- cmd/bench: fix the issue that the final result of progress bar is not correct (#4388)
- meta: trigger compaction more aggresively when there are too many slices (#4309)
- meta: fix the issue that truncated slices may never be compacted (#4320)
- meta/redis: use TxPipelined() instead of Pipelined() (#4264)
- object: fix the issue that sometimes checksum is not verified (#4213)
- object/obs: don't decode the object key in list result (#4331)
- object/cos: fix multipart upload with long key (#4258)
- object/ceph: fix the issue that list with many threads may panic (#4216)
- hadoop: fix guid update (#4299)
- windows: fix the issue that truncate may return syscall.EBADF (#4238)
v1.0.7
This is the seventh patch release for JuiceFS v1.0. It has 12 commits from 5 contributors, thanks to @davies @SandyXSD @zhijian-pro @tangyoupeng @mtnk2005 !
Changed
- Build(deps): bump golang.org/x/crypto from 0.14.0 to 0.17.0 (#4287)
Bugfix
- cmd/sync: fix the issue that name of the temporary file may be too long (#4215)
- cmd/sync: fix the issue that password of source is not removed (#4390)
- meta: trigger compaction more aggresively when there are too many slices (#4309)
- meta: fix the issue that truncated slices may never be compacted (#4320)
- meta/redis: use TxPipelined() instead of Pipelined() (#4264)
- object/obs: don't decode the object key in list result (#4331)
- object/cos: fix multipart upload with long key (#4258)
- object/ceph: fix the issue that list with many threads may panic (#4216)
- hadoop: fix guid update (#4299)
v1.1.1
This is the first patch release for JuiceFS v1.1. It has 17 commits from 6 contributors, thanks to @zhijian-pro @davies @Hexilee @SandyXSD @tangyoupeng @fengleng !
Changed
- cmd/quota: set limitation before calculating the used stats (#4158)
- meta: increase inodeBatch & sliceIdBatch (#4188)
- meta: skip cleaning session when sid is 0 (#4133)
- deps: upgrade golang/x/net to 0.17 (#4136)
Bugfix
- cmd/gateway: create the parent directory of the target on demand when copying an object (#4058)
- cmd/restore: fix the issue that dirStats and quota are not properly set (#4095)
- cmd/sync: fix copying times, owner and mode of symlinks (#4151)
- cmd/sync: fix the issue that checksum are wrongly calculated for symlinks (#4082)
- cmd & object: fix incorrect paths in Windows (#4138)
- meta: allow flock converting current exclusive lock to a shared lock (#4179)
- meta: fix possible password leak when it contains the
@
symbol (#4071) - meta/mysql: don't escape the mysql password (#4069)
- meta/tkv: fix offset overflow in CopyFileRange (#4130)
- meta/tkv: fix the issue that
info
command may wrongly fail on read-only mountpoint (#4085) - object: skip listing directories with no permission (#4125)
- object/s3: fix nil when StorageClass is missing from List (#4183)
- hadoop: fix guid refresh by avoid using closed fs (#4180)
v1.0.6
This is the sixth patch release for JuiceFS v1.0. It has 8 commits from 4 contributors, thanks to @zhijian-pro @SandyXSD @fengleng @davies !
Changed
Bugfix
- cmd/gateway: create the parent directory of the target on demand when copying an object (#4058)
- meta: allow flock converting current exclusive lock to a shared lock (#4179)
- meta: fix possible password leak when it contains the
@
symbol (#4071) - meta/mysql: don't escape the mysql password (#4069)
- meta/tkv: fix offset overflow in CopyFileRange (#4130)
- object: skip listing directories with no permission (#4125)
v1.0.5
This is the fifth patch release for JuiceFS v1.0. It has 24 commits from 5 contributors, thanks to @zhijian-pro @SandyXSD @davies @Hexilee @eryugey !
Changed
- meta/redis: speed up
truncate
for large files (#3989) - object/sftp: try public keys before interactive password (#3886)
Bugfix
- cmd/format: fix parsing the parameter named
session-token
(#3519) - 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 arguments may be changed unexpectedly in cluster mode (#3516)
- meta: fix the issue that zero field of Format not applied in refreshSession (#4033)
- meta: fix the issue that file attribute may be overwritten in some cases (#3766)
- meta: delete hardlinks directly if there's already same entry in the trash (#3706)
- meta/sql: remove lock on edge to avoid deadlock (#3677)
- vfs: fix the issue that error from meta.Truncate is ignored (#3596)
- vfs: fix the deadlock under concurrent truncate and releases (#3457)
- object/ceph: fix the error handling to range get and get non-exist object (#3855)
- object/sftp: fix the issue that sftp schema is not properly parsed (#3847)
- object/gs: remove the invalid storage class setting (#3536)
- metrics: fix the calculation method of
stageBlockBytes
(#3462) - hadoop: fix the issue that the generated uid/gid may overflow int32 when using SQL metadata engines (#3680)
v1.1.0
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 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
--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
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/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.
v1.1.0-rc1
This is the first release candidate for JuiceFS v1.1. It has 55 commits from 14 contributors, thanks to @zhoucheng361 @zhijian-pro @CaitinChen @JoyLiuc @Hexilee @SandyXSD @timfeirg @yuhr123 @davies @tangyoupeng @chenjie4255 @leemingzixxoo @p1u3o @xiaogaozi !
New
- cmd/sync: add a new option
--manager-addr
to customize the IP and port of the manager node (#3912)
Changed
- cmd/sync: read large file from sftp in parallel (#3933)
- meta/redis: skip setting
maxmemory_policy
if this field does not exist (#3888) - utils: write syslog in background (#3967)
Bugfix
- 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) - meta: fix the issue that baseMeta.fmt is not atomically updated (#3956)
- meta/redis: pass all gids to the LUA script to check permission (#3902)
- vfs: fix ioctl result and newly support the
FS_IOC_FSGETXATTR
command (#3936) - fs: limit the maximum resolve depth for symlinks (#3896)
- object/gluster: fix the issue that
List
may return wrong result for symlinks (#3950) - hadoop: fix the method to obtain jarPath on Windows (#3907)
v1.1.0-beta2
This is the second beta release for JuiceFS v1.1. Since beta1 it has 62 commits from 12 contributors, thanks to @SandyXSD @zhijian-pro @zhoucheng361 @davies @Hexilee @tangyoupeng @timfeirg @leoliulei @kyungwan-nam @T-TRz879 @solracsf @arnoldberlin !
New
Changed
- cmd/format: add default MinClientVersion to prevent old clients (#3871)
- cmd/fsck: ignore chunks of deleted files (#3832)
- cmd/fsck: ignore
dirStats
if it's disabled (#3831) - meta: don't update quota in rename if both src & dst are under the same quota (#3872)
- meta/sql: add index to column refs in sliceRef to speed up the
doCleanupSlices
function (#3842) - object/hdfs: support using base64 encoded keytab for hdfs (#3818, #3874)
- object/sftp: try public keys before interactive password (#3886)
Bugfix
- cmd: fix the issue that some commands (e.g. warmup) fail when used on binded mount points (#3858)
- cmd: fix the issue that some commands (e.g. info) may fail if internal data is very large (#3850)
- 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 umask is not correctly applied (#3784)
- meta: fix the issue that files may be created under a directory that is already in trash (#3864)
- meta: fix the issue that atime is updated too frequently in relatime mode if opencache is disabled (#3819)
- 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)
- 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)
v1.1.0-beta1
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
--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
--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.