Configurable block size: default is 4MB, could be configured to 64K - 16M.
For example, a smaller block size could improve the performance for random read (lower latency and higher IOPS).
Change:
Improved performance and stability of mounting, especially when the DNS is slow or non-repsonsive.
Improved support for KSYun, which can create the KS3 bucket as requested.
Improved the error messages when invalid command is provided.
Bugfix:
Fixed the bug that the upgrade version is not showed properly.
Fixed the duration between retry of connecting, which may cause IOError before.
Fixed the bug when JuiceFS is mounted to a relative path.
Data encryption: Objects are encrypted using AES-256-GCM with a random generated key.
The key is encrypted by a RSA private key and stored together with encrypted objects.
RSA private key could be managed separately, or by Juicedata (protected by passphrase).
Added argument to limit the QPS of deletion to object store.
Added argument to limit the bandwidth of writing to object store.
Support Baidu Cloud.
Support Digital Ocean.
Changes:
juicefs will not upgrade itself automatically, should be done manually by juicefs version –upgrade.
Support FUSE fallocate(): –fallocate=none is not needed when benchmarking with fio.
Global Mirroring: we could help user to setup read-only mirror of JuiceFS in any regions of cloud provider, they have near real-time copy of all data (delay in seconds).
Enabled cache sharing within group. A group name could be specified when mounting (–group-name), all the clients with the same group name will share cache with each other, greatly improve the performance for hot dataset.
Enabled Web UI for trash, user could restore the files in trash from web console, or clean them up to release space.
Support Jingdong Cloud.
Support Meituan Cloud.
Improvements:
Improvement performance of cache sharing, decrease CPU and memory usage.
Garbage collection: The client will scan all the objects to find out unused ones and clean them every week.
Add new attribute –gc to run garbage collection immediately.
Add P2P cache sharing for clients, they in the same intranet could share memory and disk cache to increase the hit ratio, improve the performance for hot data, decrease requests/cost of object storage.
Support zero-copy concat for files, see juicefs merge -h for details. This feature require all the clients to upgrade to 4.2.1+, otherwise the merged files can’t be read by older clients
Allow mounting a non-empty directory.
Improvement:
Improve the background replication to make sure that writing will not be slowed down when there is no enough bandwidth for replicaiton.
Add DNS cache in process for UFile, improve the performace and stability.
Bug Fix:
Fixed the issue that cached root can’t be invalidated correctly.
Change the nlink of directory to the number of inodes.
Change the quota from number of files to number of inodes. Each directory or symlink will also be billed as 256K.
Add operation time into oplog, add a syslog for operations which took longer than 10 seconds.
Make all the operations to be interruptable, which could allow the application could be killed or interrupted if metadata service or objct storage is not available.
Support Unix permissions based on username rather than local uid/gid. The clients tranlates local uid/gid to unique uid/gid based on username, make sure the users from different machines with same name works seamlessly like in same machines.
Improvement:
Support partitioning of objects to avoid the limitation in S3 that single partition can have limited qps. This should be specified when creating the filesystem, can’t be changed anymore.
Improve the performance to 10K+ QPS on metadata writing
Bug Fix:
Fixed the problem that causes wrong mtime on files after untar.
Support fast import from Object Storage, no data copy, more than 10K objects per second, see juicefs import -h
Improvement:
Cache the directories in client to enable faster lookup, which are tracked by metadata service and invalidate when needed. This is enabled by –dircache. The cached items expire after 5 minutes.
Don’t output log than quit when syslog is unavailable.
Decrease size of the client from 18MB to 4MB, download faster.
Improve the performance that copy to another object storage, reduce its impact on write performance.
Bug Fix:
Fix aborting issue when client can’t connect to the metadata service.
Replicate data to another object storage in different region or cloud.
Check and sychronize all the objects in the replicated two object stores (juicefs heal).
Change the size of directory to billing size rather than the logical sum of length of all files. nlink of directory means the number of files in that directory.
Bug Fix:
Fixed an overflow issue that causes the client to hang under heavy concurrent write workload.