Skip to main content

Release Notes

note

This is a release notes written for JuiceFS Cloud Service. If you want to know the release notes of JuiceFS community edition, please check GitHub.

JuiceFS 5.0.10 (2024/1/24)

  • New
    • Added --sor-dir to ensure the order for files returned by readdir to support nfsd.
    • Added --hide-internal to hide internal files.
  • Improved
    • Add metrics for the duration of background jobs.
    • Increased timeout to 60 seconds for disk operations.

JuiceFS 5.0.9 (2024/1/20)

  • Improved
    • Log all failed requests (except 404) in error log of gateway.
    • Added generated request ID into the access log of gateway.
  • Bugfix
    • Fixed the bug that we can't sync files with long names using jfs:// .
    • Fixed the bug that the PUT object request may fail in gateway under high concurrent workload.

JuiceFS 5.0.8 (2024/1/13)

  • Improved
    • Retry the new added cache peer up to 5 times.

JuiceFS 5.0.7 (2024/1/7)

  • New
    • Added --log to specify the path of error log for gateway and webdav.
    • Added --access-log-files to control the numbber of logging file for gateway.
  • Bugfix
    • Fixed the bug that mount may fail to generate endpoint for object store.
    • Fixed the bug that import command cannot access object store.

JuiceFS 5.0.6 (2023/12/21)

  • Bugfix
    • Fixed the symlink with absolute path using jfs://.
    • Used the passphrase in configuration.

JuiceFS 5.0.5 (2023/12/14)

  • New

    • Added mount option --initial-readahead to boost the performance for sequential read.
  • Improved

    • Support dummy interface for --group-network.
  • Bugfix

    • Fixed the bug that it may fail to sync a large file with long name to COS.
    • Fixed the bandwidth limit for background jobs.

JuiceFS 5.0.4 (2023/12/7)

  • Bugfix
    • Fixed the bandwidth limitation for background jobs.
    • Fixed the mount with subdir token.
    • Fixed upgrade when there is a mount point running in a container.
    • Fixed the crash when there is a corrupted block in disk.
    • Fixed repeated check for endpoint during mount.
    • Fixed the problem that -o background does not work in a container.
    • Fixed the cached gids when pid is reused.
    • Fixed the mount issue when mount point is the same as the volume name.
    • Fixed the attribute of cached directories.

JuiceFS 5.0.3 (2023/11/30)

  • New

    • Added --group-network and --group-port to specify the network interface and port.
    • Added juicefs.flip for Java SDK.
  • Improved

    • Increased the maximium readahead to 512 MiB for single file.
    • Download the version with Ceph support for all the commands.
    • Reduce the read amplification for small continious read.
    • Check cache-size before warmup, and give a warming when there is no enough space.
  • Bugfix

    • Fixed the bug that may crash when list from Ceph.
    • Fixed the bug that warmup may hang after client restart gracefully.
    • Fixed the bug that may cause deadlock when mount in background.
    • Fixed the bug that client will crash when fail to get the configuration after 10 tries.

JuiceFS 5.0.2 (2023/10/16)

  • New

    • Support JFS_NO_CHECK_OBJECT_STORAGE=1 to skip the test for object storage.
  • Improved

    • Speed up the mount process.
    • Support have a dedicated cache node on the same machine.
    • Reduce the frequency to check disk usage to avoid the high CPU usage when disk is full.
  • Bugfix

    • Fixed the wrong mode when chmod failed.
    • Invalidate the cache after link.
    • Fixed the fallocate and copy_file_range when there is holes in the file.

JuiceFS 5.0.1 (2023/10/30)

  • New

    • Support multi-attach block storage as writeback cache
    • Merges file blocks into a single object after specified period.
    • Support block cache for imported files.
    • Evict block cache for given files or directories.
    • Check the block cache for givin files or directories.
    • Support storage class as a mount option.
    • Support different weight for each cache node.
    • Decommission a cache node by given weight to 0.
    • Support eviction policy none (no eviction).
  • Improved

    • Balance between cache nodes.
    • Verify checksum for all block cache.
    • Remove broken cache disk after I/O or timeout.
    • Manage multiple cache disk using consistent hash.
    • Reduced the memory usage when list a huge directory.
    • Detect symlink loops in gateway and Java SDK.
    • Delete the cached block in distributed mode.
    • Improved the efficiency of compaction.
    • loging the request ID in error logging.

JuiceFS 4.9.23 (2023/10/18)

  • Bugfix
    • Fixed leaked file created by S3 gateway.

JuiceFS 4.9.22 (2023/9/20)

  • Improved
    • Fill the remote cache in writeback mode.

JuiceFS 4.9.21 (2023/9/14)

  • Improved
    • Reduce the data fragment for continious write.
    • Improve the performance for small write when buffer is running out.
    • Reduces used buffer when object storage is slow.
  • Bugfix
    • Fixed the deadlock when bandwidth limit is low

JuiceFS 4.9.19 (2023/8/31)

  • Improved
    • Interrupt the read/write requests after 5 minutes.
    • Interrupt all the FUSE operations after 6 minutes.
  • Bugfix
    • Fixed the deadlock during graceful upgrade.
    • Fixed the warning about UUID.

JuiceFS 4.9.18 (2023/8/25)

  • Improved
    • Retry the metadata requests after 1 minutes.
    • Avoid the DDOS from warning up metadata cache from lots of clients in the same time.
  • Bugfix
    • Fixed the deadlock during umount.

JuiceFS 4.9.17 (2023/8/21)

  • Bug 修复
    • Fixed the hang when updating mtab.

JuiceFS 4.9.15 (2023/8/7)

  • Bugfix
    • Fixed the bug that client crash when list a corrupted directory.

JuiceFS 4.9.14 (2023/7/27)

  • New
    • Support Gluster as an object storage
    • Support access symlink with absolute path under given mount point.

JuiceFS 4.9.11 (2023/6/29)

  • Improved
    • Added --prefix-internal to mount command to avoid conflict on internal files.

JuiceFS 4.9.10 (2023/6/26)

  • Bugfix
    • Fixed graceful restart which could be deadlock under heavy workload.
    • Fixed wrong length of files after merged small writes (introduced by 4.9.6).
    • Fixed the errno handling of quota command.

JuiceFS 4.9.9 (2023/6/19)

  • Improved
    • Removed unnecessary memset, speedup data reading.
    • Added options of JuiceFS client to sync command.

JuiceFS 4.9.8 (2023/6/15)

  • Improved
    • Reduce the warning when rebuild the block cache.

JuiceFS 4.9.7 (2023/6/12)

  • Improved

    • Added --inplace for sync to update files in JuiceFS inplace to reduced the number of files in trash and write traffic.
  • Bugfix

    • Fixed the bug that may cause deadlock (introduced by 4.9.5).
    • Fixed the bug that rename operation may crash (introduced by 4.9.3)

JuiceFS 4.9.6 (2023/6/1)

  • Improved
    • Supports umask when sync files into JuiceFS using jfs://.
    • Speedup compaction by reading files in parallel.
    • Reduce repeated compaction for first few slices.
    • Combined the small slices into bigger one by delay the flush when it's closed frequently.

JuiceFS 4.9.5 (2023/6/1)

  • Bugfix
    • Fixed the endpoint for KS3.
    • Fixed race for UID when it's changed.
    • Fixed use-after-free of context.
    • Fixed the wrong errno for getxattr on internal files.
  • improved
    • Reduced the warning on UID conflict.
    • Improved the accuracy on bandwidth limitation.
    • Scan deleted files for gc to reduce false-negative.

JuiceFS 4.9.4 (2023/4/19)

  • Improved

    • logging all the errors for meta connections.
  • Bugfix

    • Fixed warmup when mounted with subdir (introduced by 4.9.0)

JuiceFS 4.9.3 (2023/4/19)

  • Improved
    • Pass secrets into child process using PIPE.
    • Show capacity for the directory in df command.
    • Don't merge large directory when try to remove a non-empty directory.
  • Bugfix
    • Fixed permission check for CopyFileRange when user is in multiple groups.

JuiceFS 4.9.2 (2023/4/19)

  • New
    • Added command quota to manage quota for directories.
  • Improved
    • Limit the total bandwidth for data replication.

JuiceFS 4.9.1 (2023/4/6)

  • Improved

    • Improved robustness for data replication.
  • Bugfix

    • Fixed the bug that cause crash when data replication enabled.
    • Fixed the UID conflict in Java SDK.
    • Invalidates the stale length for fallocate.

JuiceFS 4.9.0 (2023/3/8)

  • New

    • Added sub-commands: gateway, WebDAV, debug, summary, clone, sync, stats, profile, status, destroy, bench, objbench, load, fsck, gc
    • Support using multiple buckets for data storage.
    • Check the command options of clients from Web console.
  • Improved

    • Compatible with S3A.
    • Reduce the 404 requests after data compaction.
    • Improve the management for trash from mount point (.trash/).
    • Bind to 127.0.0.1 rather than localhost for debug agent.
    • Use HTTP DNS as backup to discover the IP of metadata service.
    • Limit the wait for blocking write to 1 seconds.
    • Improved performance for cached metadata.
    • Reduce read amplification in distributed cache.
    • Use 0755 as mode for recovered directory.
    • Support encrypted OBS bucket.
  • Bugfix

    • Fixed the error code for not-existed objects.
    • Fixed list on empty directory.
  • Java SDK

    • Support user mapping rule in Kerberos
    • Support dedicated cache cluster for Hadoop
    • Support access rule which allow access from Java SDK only.
    • Redirect all the logging into Java logging.
    • Speed up read with smaller buffer (< 128KB).
    • Cleanup cached blocks while scanning.
    • Restricted access within subdir for S3 gateway and Java SDK.
    • Use JuiceFS to store list of nodes.
    • Fixed conflict on dependencies.

JuiceFS 4.8.7 (2023/2/28)

  • Bugfix
    • Huawei OBS returns wrong data when reading the last byte.

JuiceFS 4.8.6 (2023/2/16)

  • Bugfix
    • Fixed the write failure of EPERM when writeback_cache is enabled.

JuiceFS 4.8.5 (2023/2/7)

  • Bugfix
    • Fix writeback mode (since 4.8.1)

JuiceFS 4.8.4 (2023/1/9)

  • Changes

    • Switch to writethrough when the cache disk is almost full.
    • Allow use different scheme to access JuiceFS in Impala.
    • Reduced the CPU contension of FUSE threads in machines with many cores.
    • Improved stability of import command.
  • Bugfix

    • Fixed the crash of warmup command.
    • Don't rebalance the cached blocks in Java SDK.
    • Fixed the stale cache in readdir.
    • Fixed doubled duration of PUT object request.

JuiceFS 4.8.3 (2022/11/30)

  • Changes
    • Allow configure the number of retry on object storage.
    • Delay the deletion of slices after compaction by 60 seconds.

JuiceFS 4.8.2 (2022/11/24)

  • Bugfix
    • Downgrade Apache Ranger to 2.1.0 to fix compatibility.
    • Fix the conflict of jersey in Java SDK.
    • Fixed DNS of OBS in Javqa SDK.

JuiceFS 4.8.1 (2022/10/28)

  • New

    • Support Volcano Engine.
    • Support changing hash prefix for existing volume.
  • Changes

    • Added 5 seconds timeout for wmic in Windows.
    • Added more tracking for memory allocation once refcount is wrong.
    • Don't use writeback mode for compaction.
    • Use AWS_REGION to specify the region for KS3 on premise.
    • Adjust the timeout for download to make sure it will timeout under low bandwidth.
    • Limit the number of concurrent remote cache requests to 1000 to avoid fighting for bandwidth.
    • Don't count the memory used for cache migration under buffer-size.
  • Bugfix

    • Fixed the race for disconnected peers.
    • Fixed the bug that lookup fails in splitted root directory.
    • Fixed the low performance when more than 4 threads reading same file in Java SDK.
    • Invalidate the kernel entry cache after rmr in Linux.
    • Fixed the race on writing metadata requests.
    • Fixed that bug that readahead could be wrong in Java SDK.

JuiceFS 4.8.0 (2022/08/25)

  • New

    • Support Kerberos in Java SDK.
    • Support Apache Ranger in Java SDK.
    • Added dump command to dump metadata into JSON file.
    • Added --fsck argument to check data integrity.
    • Support Java SDK for Apple M1 chips.
    • Added --readdir-cache argument to enable readdir cache in kernel.
  • Changes

    • Allow warmup and rmr from inside of containers.
    • Shows the progresss of warmup and rmr.
    • Reduce the memory usage when listing lots of files.
    • Improved the performance to list files in trash.
    • Returns the status of ACL in Java SDK.
    • Reduced the lock contension for readdir.
    • Allow delay hflush to improve the performance for writing WAL in HBase.
    • Show .stats and .accesslog in mountpoints.
  • Bugfix

    • Fixed a bug for creating multiple snapshots for single directory using Java SDK.
    • Fixed putting objects ending with / in S3 gateway.
    • Fixed the checksum for files with special sizes in Java SDK.

JuiceFS 4.7.6 (2022/07/15)

  • Bugfix
    • Fixed the bug that the client may crash becaused of wrong requests for remote cache.

JuiceFS 4.7.5 (2022/06/24)

  • Bugfix
    • Don't reuse the fd in Java SDK.
    • Fixed the bug that it may read stale data after truncate and append (there is open fd).

JuiceFS 4.7.4 (2022/05/27)

  • Changes
    • Keep the metadata cache until expired.

JuiceFS 4.7.3 (2022/04/20)

  • Bugfix
    • verify length of pending blocks in writeback mode.

JuiceFS 4.7.2 (2022/04/06)

  • Changes
    • Verify the ETag returned from OBS.

JuiceFS 4.7.1 (2022/03/14)

  • Changes

    • Reduce the speed of rebalancing cached blocks to reduce impact.
  • Bugfix

    • Fixed unnecessary rebalancing between processes in the same host.
    • Fixed the connection leak related to distributed cache (introduced in 4.5.6).

JuiceFS 4.7.0 (2022/02/23)

  • New

    • Support Apache Ranger to manage file permission.
    • Added .accesslog (same as community version).
    • Moves cached blocks to new added nodes (1 hour after added).
    • Use S3 gateway to enumerate multiiple buckets.
  • Changes

    • Fail the mount faster when fail to connect to metadata service.
    • Reduced boot time for Java SDK.
    • Saves configuration in conf-dir (rather than the .juicefs subdirectory).
    • Improved memory efficiency for metadata cache.
    • Persistent UID mapping to fix conflicts.
    • Enable permission checking in kernel for ACL.
    • Fail the snapshot when permission denied.
    • Increased the default cache-size to 100GB.
    • Users in supergroup are super users.
    • Allow use read-only AK to mount JuiceFS in read-only mode.
  • Bugfix

    • Fixed the permission checking in concat of Java SDK.
    • Fixed a bug that could cause deadlock when truncating a file.
    • Fixed the nlink for empty directory.

JuiceFS 4.6.2 (2022/02/11)

  • Bugfix
    • Fixed a deadlock in distributed cache.
    • Fixed umask in Java SDK.
    • Fixed inconsistency of mtime in Java SDK.

JuiceFS 4.6.1 (2022/01/18)

  • Changed
    • Optimize metadata cache to reduce the overhead.
    • Increase max background jobs in FUSE to 200.
    • Allow --subdir without prefix /.
  • Bugfix
    • Fixed a race condition when get requests timeout (recovered panic).

JuiceFS 4.6.0 (2021/12/09)

  • Changed
    • Added metrics for open fd and threads
    • Compatible with Apache Impala>=3.4
    • Added the address for debug in .jfsconfig.
    • Changed bsize and frsize in statvfs from 64K to 4K.
    • Resolve IPv4 address only for meta DNS.
    • Added more metrics for distributed cache.
    • Show the files and total size as the attribute of .trash.
  • Bugfix
    • Fixed the problem that total size of cached blocks is not accurate.
    • Client crashs when listing a directory with snapshot (created by Java SDK) in it.

JuiceFS 4.5.6 (2021/11/03)

  • New
    • Support using JuiceFS as a cache layer for NFSv3 backend.
    • Allow write files back into source storage when it's used as a cache layer.
    • Build the remote cache in other peers (can be disabled by juicefs.write-group-cache=false)
    • Support Kite.
  • Changed
    • delete the source files once concat() succeed (be compatible with HDFS).
    • Improve performance of concat in Java SDK.
    • Changed the number of prefetch threads from 3 to 1 to reduce the bandwidth contension.
  • Bugfix
    • Fixed the bug that stops overwrite objects from S3 gateway (introduced by 4.5.5).
    • Fixed the bug that copy_file_range failed with EACCES.

JuiceFS 4.5.5 (2021/10/15)

  • New
    • Allow gradeful upgrade and recovery for mountpoint, we can upgrade the running JuiceFS clients without stop the applications.
    • Added –block-interrupt to specify the period to mask interruption (an operation will not be interrupted before that).
  • Changes
    • Support Hadoop 2.6.
    • Logging all the failed operations.
    • Purge the parts for successful multipart uploads.
    • Enable kernel cache when –opencache is used.
    • Improved the performance for random read/write on big files.
    • Returns the unread bytes for current file (to be compatible with HDFS).
    • Order the entries from list in Java SDK (to be compatible with HDFS).
  • Bugfix
    • Allow disable BSD and POSIX separately.
    • Support secret key with / for KS3.
    • Fixed the bug that concat may generate wrong result in rare cases.
    • Allow failover for nfsd over JuiceFS.

JuiceFS 4.5.4 (2021/09/07)

  • New
    • Support adding quota using Java API.
    • Added --group-ip to specify the IP used by group cache.
  • Changed
    • Detech deadlock (EDEADLK) in POSIX lock.
    • Improve perforemance of warmup command.
  • Bugfix
    • Fixed the counter of read bytes in Java SDK.
    • Fixed the range of POSIX lock (off by one).
    • Fixed createing or replacing extened attributes.

JuiceFS 4.5.3 (2021/08/19)

  • New
    • The data migration tool supports Hive 3.
    • Rebuild the cached blocks after the disk is lost and replaced.
    • Added --log and --umask for S3 gateway.
    • Allow restore files from mount point (move the files out of .trash).
  • Improvements
    • Remove expired chunk faster to reduce memory usage.
    • Added the failed cached nodes back once it's healthy.
    • Speedup warmup by skipping existing cache blocks.
    • Supprot FUSE option nonempty.
  • Bugfix
    • Fixed the bug that could cause data loss in Huawei OBS SDK (retry failed request).
    • Fixed the bug that could overwrite existing data in mixed read/write workload.
    • Fixed the bug about multipart upload in S3 gateway.

JuiceFS 4.5.2 (2021/07/25)

  • New
    • Added a metric for the number of open files.
    • Allow changing the duration to block interruption using JFS_BLOCK_INTERRUPT=N.
    • Added a argument (--down-limit) to limit the download bandwith.
  • Improvements
    • Deduced the memory usage for cached blocks.
    • Decreased the scan frequence from once in 5 minutes to once in 24 hours.
    • Simplify the way to launch tools from Java SDK.
    • Reduced the memory usage for data encyrption and decryption.
    • Refresh the UID/GID list to recognized the changed UID.
  • Bugfix
    • Fixed the problem that the metric of used memory could be wrong.
    • Fixed the memory leak in reading.
    • Fixed the deadlock caused by low bandwidth.
    • Hided . and .. from List of WevDAV.
    • Fixed the memory leak in Backblaze client.

JuiceFS 4.5.1 (2021/06/17)

  • Improvements
    • Limit the used memory to 200% of --buffer-size.
    • Remove slf4j from bundles to avoid potential conflict.
    • Expire cached blocks faster to reclaim space.
  • Bugfix
    • Limt the number of returned items from List operation to 1000.

JuiceFS 4.5.0 (2021/05/26)

  • New
    • Allow distributed cache with fixed set of machines using --cache-group and --no-sharing.
    • Added --max-cached-inodes to specify the max number of cached inodes.
    • Support warmup a list of files from a text file.
    • Support Linode.
  • Improvements
    • Cleanup the cached block inmediately if it's full.
    • Improve warmup to make sure all files are cached.
    • Build Java SDK for Windows.
    • Improve the memory allocation to reduce CPU usage.
  • Bugfix
    • Fixed a bug that could cause deadlock under heavy workload and the connection to metadata server is closed.
    • Fixed downloading a directory in S3 gateway.
    • Fixed the bug that cause EINVAL for flock.
    • Fixed the nlink for a file in trash.

JuiceFS 4.4.10 (2020/04/02)

  • New
    • Support using JuiceFS as a cache layer for other POSIX file system (--source-dir).
    • Support Scaleway.
    • Added --disallow-list to disallow listing in WebDAV.
  • Improvements
    • Support macOS FUSE v4.x
    • Improve performane on read small files in Apache Spark and Hadoop MR.
    • Disallow interription for open/mkdir, which is handled by many application.
  • Bugfix
    • Fixed a bug that cause expected interruption on FUSE requests.
    • Fixed a bug that could hang a request under heavy contension.
    • Fixed a bug in gofuse that crash the client (close a closed channel).
    • Fixed the incorrect statvfs when no space left.
    • Fixed a bug that cause false negative cache for xattr.

JuiceFS 4.4.9 (2020/11/16)

  • New
    • Released a tool to migrate data from HDFS to JuiceFS gracefully.
    • Support IBM COS.
  • Change
    • Interrupt write operations in compatible mode.
    • Improve performance when librados was used to talk to Ceph.
    • Follows symlink when deleting files or directories using Hadoop SDK.
  • Bugfix
    • Fixed a bug when listing a directory with symlinks.
    • Fixed a bug in Hadoop SDK when file is closed twice.

JuiceFS 4.4.8 (2020/10/21)

  • New
    • Use JuiceFS as a transparent caching lay for HDFS.
  • Change
    • Added checksum for meta requests.
    • How used space for mounted subdir instead of whole volume.
    • Support symlink for all operations in Hadoop SDK.
    • Improve date locality when cache shareing is enabled.
    • Updated /etc/mtab with Go FUSE.
  • Bugfix
    • Fixed a bug that may cause crash during write operation.
    • Fixed a bug that may cause POSIX lock to fail.

JuiceFS 4.4.7 (2020/09/18)

  • New
    • A HTTP gateway compatible with S3 was beta released, which works with POSIX and Hadoop SDK.
    • The HTTP API embeded in client is compatible with WebDAV.
    • The bandwidth to object storage used by all clients can be controlled.
    • The FUSE module in Go was enabled by default, could be disabled using GOFUSE=0.
  • Change
    • Improved the performance of concurrent reading on the same big file.
    • Limit cached metadata to 5 millions of inodes (up to 5 minutes).
    • Dump all the goroutines once fail to flush data.
    • Limit getattr(1) and statvfs to 300ms, so df will not block.
  • Bugfix
    • Fixed the problem that initialization fail always once interruptted.

JuiceFS 4.4.6 (2020/08/14)

  • New
    • Added faster FUSE module (in Go), which could be enabled by GOFUSE=1.
    • Support copy_file_range() to allow faster copy.
    • Added a parameter to control the number of threads to prefetch caching blocks.
    • Supports MIPS64EL (Loongsun CPU).
    • Added performamce counters in .stats.
    • Supports internal endpoint for Qiniu.
  • Change
    • Show used space as 64KB instead of 0 when it's less than 64KB.
    • Avoid crash when running out of memory.
    • Check usage of inodes in caching disk to avoid running out.
    • Show name of volume in macOS Finder.
    • Free space earlier for removed blocks.
  • Bugfix
    • Fixed a bug with metadata cache, wrong attributes for resued inodes after 24 hours.
    • Fixed a compatibility issue between Presto and Hadoop SDK.
    • Fixed idempotency of putting a object to Qiniu.
    • Fixed mounting with GCS.

JuiceFS 4.4.5 (2020/07/2)

  • New
    • Windows client supports case insensitivity.
    • Hadoop SDK support symlink to other system, for example, HDFS://nm1:8080/xxxx
    • Added a configuration for grouping in Hadoop SDK (refreshed in every 2 minutes).
  • Changes
    • Show total of lengths instead of billing size in hadoop fs -du (same as HDFS).
    • Check permission of AK/SK with prefix during mounting.
  • Bugfix
    • Fixed I/O exception when read failed.
    • Fixed potential deadlock in compatible mode.

JuiceFS 4.4.4 (2020/06/14)

  • New
    • Added --ioretries to specify number of retry after metadata failure.
    • Added --cache-partial-only to only cache blocks for small files or partial read.
  • Changes
    • Improved performance of random write.
    • Improved performace of compacting.
    • Reduced the number of PUT requests when append on multiple files by combining them together.
  • Bugfix
    • Fixed the memory issue when compacting is too slow to catch up.
    • Fixed a issue that Hadoop SDK can not fetch node lists from YARN.
    • Fixed stale cache after inode is removed and reused again.

JuiceFS 4.4.3 (2020/05/20)

  • New
    • Windows client is available to enterprise customers, which supports Windows Server 2012, Windows 10.
    • Supports ARM64.
    • Supports caching data in memory, which could be enabled by --cache-dir memory.
    • Hadoop SDK supports p2p caching.
  • Changes
    • Random read support on p2p caching.
    • Improved performance for random read.
  • Bugfix
    • Fixed the problem that wrong data could be returned from Aliyun OSS when range is overflow.
    • Fixed the partial listing when empty result returned from Aliyun OSS bucket with multiple versions enabled.
    • Fixed a bug that backend is overloaded when many clients try to cleanup fail parts in the same time.
    • Fixed a compatibility issue with CDH 5.8.

JuiceFS 4.4.2 (2020/04/22)

  • Bugfix
    • Fixed the bug that could cause loss data during compacting under heavy write in writeback mode. The service is patched to workaround that by disallow compaction on buggy versions, which are 4.3.14, 4.4.0, 4.4.1 (build between 2/28/2020 and 4/09/2020). Please upgrade to 4.4.2 if you use writeback mode.

JuiceFS 4.4.1 (2020/04/12)

  • New
    • Supported TiKV as object storage.
    • Added a rule to disallow background job for some clients (see access control in web console).
    • Supported LZ4 as compression algorithm, faster than Zstandard, but lower compression ratio.
    • Supported all flags for fallocate.
  • Changes
    • Improved performance for sequential read on large files.
    • Improved performance in writeback mode.
    • Changed the algorithm to distribute the cache blocks within multiple caching directories.
    • Show PID in the logging.
    • Add a configuration to change the replica of cached blocks.
  • Bugfix
    • Fixed a bug that wildcast can only match some caching directories.
    • Fixed a bug in Hadoop SDK that fails to list files with more than 127 characters in the name.
    • Fixed confusing error message after read/write failure in Hadoop SDK.

JuiceFS 4.4.0 (2020/03/12)

  • New
    • Added --subdir to specify the subdirectory to mount (default: /).
    • Added --buffer-size to specify the memory used by read/write buffers, it's 300MB by default.
    • Added --free-space-ratio to specified the minimum free space for caching disk.
    • Added arguments to disable POSIX or BSD lock.
  • Change
    • Huge improvements on readahead and memory management, memory usage decreased signafically.
    • Added retries for write to reduce I/O Error.
    • Improved performance for disk cache.
  • Bugfix
    • Fixed a bug that could cause data corrupted under a random read pattern in Hadoop SDK .

JuiceFS 4.3.14 (2020/02/20)

  • New
    • Change the storage format of existing file system (compatible or optimized).
    • Added benchmark command (juicefs benchmark).
  • Change
    • Reduced memory usage when writing files.
  • Bugfix
    • Fixed the problem that warmup command that it could not warm up the whole big file.
    • Fixed the problem that it fail to create a GCS bucket when mounting for first time.

JuiceFS 4.3.13 (2020/01/20)

  • New
    • Added --max-space for mount command to limit the capacify of mount point.
    • Added --put-timeout to specify the timeout to upload a object, which will be retried.
    • Added a configuration (juicefs.superuser) for Hadoop SDK to specify the super user.
  • Change
    • Changed UserAgent to JuiceFS for requests to Tencent Cloud COS.
    • Supported Amazon S3 bucket with . in the name.
    • Support listing a directory with more than 10 millions of files.
    • No more syslog from Hadoop SDK.
  • Bugfix
    • Fixed the bug that posixlock/flock may fail with EIO.
    • Fixed the bug that the cached nlink is not invalidated properly.
    • Fixed that problem that temporate token for Aliyun OSS is not refreshed properly.
    • Fixed that problem that mtime is not updated properly in Hadoop SDK.

JuiceFS 4.3.12 (2019/11/14)

  • New
    • Supports POSIX ACL of Hadoop File System.
    • Supports file checksum in Hadoop File System, which is compatible with HDFS, allows DistCp to compare the checksum of files in JFS againt HDFS. It should be enabled by juicefs.file.checksum = true.
    • Added statistics for operations in Java client.
  • Change
    • Speedup rename() of Java client, only one RPC needed in common case.
    • Improved memory efficiency when read many files.
  • Bugfix
    • Fixed a bug which may hang the mount point during poor network condition.
    • Fixed a bug which cause wrong file syze for imported objects (since 4.3.11).

JuiceFS 4.3.11 (2019/10/17)

  • New
    • Supports Beansdb.
    • Supports extended attributes in Hadoop connector.
    • Cleanups files in Hadoop trash based on trash time.
    • Added --get-timeout to specify the max number of seconds to download a object.
  • Change
    • Improved the performance when metadata is not cached yet.
    • Interrupt timeouted read/write operations in close.
    • Added checksum for S3/OSS/COS for better data intergraty.
    • Allows more data (unlimited) to be cached in writeback mode.
    • Slowdown deletions to avoid spikes.
    • Create caching directories (matched with wildcast), could be turned off in Java client by juicefs.auto-create-cache-dir=false.
    • Cleanup cached blocks when free space ratio is low than 20%.
  • Bugfix
    • Fixed a bug that causes UID was mapped twice in snapshot/rmr.
    • Fixed a bug that causes block can not be recovered correctly.

JuiceFS 4.3.10 (2019/9/2)

  • New
    • Allows concurrent write on same file from multiple clients.
    • Allows use JuiceFS SDK with any schema, for example, s3://volume/path .
    • Added --opencache to speed up open operation.
    • For replicated volumes, writes will failover to secondary object storage in case of primary failure.
    • The operations are idempotent during retring after failover.
  • Change
    • Improved the consistence guarantee for metadata cache.
    • Improved write performance for compatible mode and random read performance for big files.
    • Improved the compatibility and performance for JuiceFS SDK.
    • Improved the performance when access JuiceFS via mount point in Hadoop (with JuiceFS SDK).
  • Bugfix
    • Fixed the problem that data could be corrupted if there are multiple flush during writes in compatible mode.
    • Fixed the problem that DigitalOcean bucket can't be created during mounting.

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 (needs Linux Kernel 3.15 and above), 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 recommended 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 I/O 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 I/O error.
    • I/O 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 127.0.0.1.
    • correctly handle the tailing /.

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 and above, 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.