Release Notes

JuiceFS 4.3.9 (2019/6/24)

  • New:
    • Hadoop client for JuiceFS is released as beta, is compatible with all Hadoop components.
    • New profiling tool for JuiceFS: juicefs profile.
  • Change:
    • Improve write performance by reducing RPC calls to metadata service.
    • Discover newly created user/group on client host.

JuiceFS 4.3.7 (2019/5/17)

  • New:
    • Supports using multiple directories for disk cache, by putting them in --cache-dir (separate by :).
    • Supports kernel writeback cache with -o writeback_cache (kernel 3.15+ required), which can boost the performance for random write.
    • Supports Wasabi.
  • Change:
    • Improved performance for random write (merge continious write together).
    • Change the fstype from fuse to fuse.juicefs, so we can stop mlocate from indexing files in JuiceFS by put fuse.juicefs into PRUNEFS.
    • Improved metadata cache for better performance.
    • Improved readahead for better reading performance.
    • Improved connection pool for OSS.
    • Reduces the HEAD request during GC.
    • Decreases the parallelism of compaction and synconization, reduces memory usage.
  • Bugfix:
    • Fixed a bug when importing a single object.
    • Added a workaround for kernel 3.1- which does not unflock the file before release.

JuiceFS 4.3.6 (2019/4/1)

  • New:
    • Supports Huawei Cloud OBS.
    • Supports Minio as object storage.
  • Bugfix:
    • Fixed the counter of packets sent to metadata service.
    • Fixed the problem that failed retry (fixed in 4.3.1) of appending causes broken file during failover. It’s recommanded to upgrade to latest version if the client is older than 4.3.1 .

JuiceFS 4.3.5 (2019/2/20)

  • New:
    • Supports 32-bit Linux。
    • Added lsof: List open files in last 10 minutes。
    • Added warmup: Download the blocks for all files in a directory in parallel, and fill them into local cache for future use.
    • Support Aliyun RAM role for ECS: Once a RAM role with OSS permissions attached to ECS, no AK is required during mounting (use empty string instead)
  • Change:
    • Improved writing performance in writeback mode (upload all the blocks in background).
    • Improved reading performance for small files when metadata cache is enabled.
  • Bugfix:
    • Fixed cache space overflow in writeback mode (–writeback).
    • Fixed permission error when metadata cache is enabled (–metacache)。
    • Fixed the IO error in batch mode (–batch).

JuiceFS 4.3.3 (2018/11/20)

  • New:
    • Added new options to tune meta cache in kernel:–attrcacheto, –entrycacheto, –direntrycacheto
    • Allow remember passphrase (could be empty) using juicefs auth –passphrase.
  • Change:
    • Improved counters of API calls in .stats, more acurate.
    • Remove the floating-point encoding for size of directory in command line (no upgrade required).
    • Added build date and git revision to version string.
    • Allow disable cache using –cache-size 0.
    • Disable the watch dog who checks the healthy of mount point.
    • Disable HTTP/2 for Azure to increase parallism.
  • Bugfix:
    • Allow access Qiniu with HTTP (default is HTTPS).
    • Fixed the problem which cause client crash when cleaning fragments in compatible mode.
    • Fixed problem with concurrent cache loading。
    • Fixed the AppID for COS.
    • Fixed juicefs grep -v for inverse match.

JuiceFS 4.3.2 (2018/10/07)

  • New
    • Configurable compresssion:Compressed by Zstandard by default, could be turned off for better random read performance.
    • Expose client metrics using APIs:The metrics (/.stats) from clients are exposed in JSON API and Prometheus API.
    • New metrics in clients: read_bytes、write_bytes、uptime、cpuusage、memusage
    • Added Append Only accessing rule: Allow read and write new data, deletion and modification on existing data are disallowed.

JuiceFS 4.3.1 (2018/09/14)

  • New:
    • 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.

JuiceFS 4.3.0 (2018/08/22)

  • New:
    • 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.
    • Speedup importing: Added inode cache, skip imported objects faster.
  • Bugfix:
    • For busy read/write/truncate operations, stale length may cause IO error.
    • IO error when decompressing objects with unpected more data.
    • FD leak when concurrent open() in compatible mode.
    • limit of LIST request for Tencent COS is over 1000.
    • High CPU usage when localhost can’t be resolved to
    • the tailing / can’t treat correctly.

JuiceFS 4.2.7 (2018/03/24)

  • New:
    • Add stats for List operations.
    • Support hardlink in compatible mode.
    • Allow modification on existing files in compatible mode (slow)。
  • Changes:
    • Disabled trash in compatible mode, which may cause data lose.
    • Improved performance on listing huge directory.
    • Wait for completion of file deletion in compatible mode.
    • Improved memory efficiency。
  • Bugfix:
    • Fixed availble space and inodes in vfsstat.
    • Fixed the pemission checking for rmr by non-root.
    • Fixed a potential deadlock when busy writing.

JuiceFS 4.2.6 (2018/03/05)

  • New:
    • Add compatible mode, files will be saved as single object with the full path as key, so they could be accessed using the RESTful API.
    • Small files could be combined into larger object to save PUT requests. This could be enabled by –writeback –batch.
    • Support Backblaze B2.
  • Changes:
    • When run in foreground (-f),DEBUG log will not go into syslog.

JuiceFS 4.2.5 (2018/01/31)

  • New:
    • Remove all files and subdirectories quickly, see juicefs rmr for details.
    • Add a option to serve files using HTTP when mounting.
    • Add statistics for object storage accessing into .stats
  • Improvements:
    • Improve performance and reduce memory usage.

JuiceFS 4.2.4 (2017/12/10)

  • New:
    • 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.

JuiceFS 4.2.3 (2017/11/15)

  • New Features:
    • 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.

JuiceFS 4.2.2 (2017/11/08)

  • New Features:
    • 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.

JuiceFS 4.2.1 (2017/11/02)

  • New Features:
    • Improve the performance of random write (ten times faster).
    • Support Kubernetes Flex Volume, juicefs could be driver, implement init, mount and unmount
    • Support Microsoft Azure.
    • Support Netease Cloud.
    • Forbideen xattr as default, could enable by –enable-xattr
    • Open transfer encrypted between metadata service and object storage as default.
    • Auto synchronize replicated object storage, one time per week, don’t run juicefs heal manually.
  • Improvement:
    • Compact small chunks of single files into bigger one in background。
    • Improve read performance for small files, reduce the latency for first byte.
    • Reuse the HTTP connections for better performance and stability。
    • Increase the duration between retry。
  • Bug Fix:
    • Fixed the issue that juicefs overwrite the symlink during upgrading。

JuiceFS 4.1.26 (2017/10/5)

  • New Features:
    • Auto create bucket in object storage at you first mounting.
    • Support non-root user mount
  • Improvement:
    • Use musl to replace glibc for static linking.
    • Decrease memory usage on random write.
    • Optimize Copy operation of the UFile, improve the performance and decrease the bandwidth requirement.
    • juicefs auto selects Python2 or Python3 environment, support almost Linux distribution.

JuiceFS 4.1.25 (2017/9/16)

  • New Features:
    • juicefs version to show client version.
    • Add limit for the client currency amount, 10 for free plan, 100 for stanard trial, 1000 fro standard, no limit in enterprise plan.
    • Support Tencent Cloud COS(V5 API).
    • Add slow operation log for object storage(> 10s).
  • Improvement:
    • Exit with non-zero if there is something wrong in juicefs.
    • Increase the parallism of upload to 50 to speed up performance for write.
    • Cleanup cached chunk in local disk, when there is no enough space.

JuiceFS 4.1.24 (2017/9/3)

  • New Features
    • 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.
  • Bug Fix:
    • Fix bug for the client aborting on write failure

JuiceFS 4.1.23 (2017/8/4)

  • Improvement:
    • Add local cache for uncompressed data block, highly improved random reading performance
    • Increase re-try times 3 to 10 for object storage operation
    • Exit after mount is successful

JuiceFS 4.1.21 (2017/7/17)

  • Improvement:
    • Optimize encrypted transportation.
    • Speed up the download in China.

JuiceFS 4.1.20 (2017/7/14)

  • Improvement:
    • Improve the performance on write with local cache.

JuiceFS 4.1.18 (2017/7/3)

  • Improvement:
    • Improve the performance of metadata service, support 300K+ QPS.

JuiceFS 4.1.17 (2017/6/20)

  • New Features:
    • Support Qiniu cloud storage.
  • Bug Fix:
    • Fix import file bug.

JuiceFS 4.1.15 (2017/6/2)

  • New Features:
    • 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.

JuiceFS 4.1.13 (2017/5/24)

  • New Features:
    • Support KSYun
    • 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.

JuiceFS 4.1.11 (2017/4/26)

  • New Features:
    • 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.