v0.12.0

juicedata/juicefsv0.12.0Apr 12, 2021by chnliyong

AI Summary

A major feature release bringing full Windows support and introducing filesystem maintenance tools.

Key Highlights

  • Full Windows support added
  • Introduced `juicefs gc` for garbage collection
  • Introduced `juicefs fsck` for consistency checking
  • Introduced `juicefs info` for internal file/directory information

New Features

  • Windows support
  • Garbage collection tool (`juicefs gc`)
  • Filesystem check tool (`juicefs fsck`)
  • Info tool (`juicefs info`)
  • Prometheus metrics exposure
  • Path-style endpoint for S3 compatible storage
  • Background mode mount readiness check
  • Improved compaction to skip large slices
  • Disabled compression by default

Full Release Notes

JuiceFS v0.12 was arrived 1 month after v0.11, with more than 70 changes from 7 contributors (@davies @xiaogaozi @chnliyong @tangyoupeng @Arvintian @luohy15 @angristan), thanks to them.

### New

* Supports Windows (#195, #268 #271).
* Added `juicefs gc` to collect garbage in object store (#248, #290).
* Added `juicefs fsck` to check the consistency of file system (#253). 
* Added `juicefs info` to show internal information for file/directory (slow for large directory)(#288).

### Changes

* Added prefix (`juicefs_`) and labels (`vol_name` and `mp`) for exposed metrics.
* Support path-style endpoint for S3 compatible storage (#175).
* Added `--verbose` as an alias to `--debug`.
* Support proxy setting from environment variables for OBS (#245).
*  Wait for block to be persistent in disk in writeback mode (#255).
* Change the default number of prefetch threads to 1.
* Fail the mount if the mount point is not ready in 10 second in daemon mode.
* Speed up `juicefs rmr` by parallelizing it.
* Limit the used memory to 200% of `--buffer-size` (slow down if it's above 100%).
* Reload the Lua scripts after Redis is restarted.
* Improved compaction to skip first few large slices to reduce traffic to object store (#276).
* Added logging when operation is interrupted.
* Disable compression by default (#286).
* Limit the concurrent deletion of objects to 2 (#282).
* Accept named options after positional argument (#274).

### Bugfix

* Accepts malformed repsonse from UFile (f4f5f53).
* Fixed `juicefs umount` in Linux (#242).
* Fixed order of returned objects from listing on SCS (#240).
* Fixed fetching list of nodes in Java SDK when a customized URL handler is set (#247).
* Support IPv6 address for sftp(#259).
* Fixed build with librados (#260).
* Supports relative path  when mount in background (#266). 
* Fixed `juicefs rmr` with relative path. 
* Cleanup unused objects after failed compaction.
* Fixed updated files and permissions in sftp.