v0.15.2
juicedata/juicefsv0.15.2Jul 7, 2021by chnliyong
AI Summary
A performance and tooling focused release featuring metadata backup/restore capabilities and significant kernel page cache improvements.
Key Highlights
- Introduced `dump` and `load` commands for metadata backup and migration
- Improved performance for read/write heavy workloads using kernel page cache
- Added PostgreSQL as a supported meta engine
- Enabled writeback cache in kernel via mount option
New Features
- Metadata dump and load commands
- Read-only mount option (`--read-only`)
- Command auto-completion support
- Parallel benchmarking (`-p N`)
- PostgreSQL meta engine support
- Sub-directory mounting (`--subdir`)
- WebDAV as an object store
- Kernel writeback cache
- Background mode logging redirection
Full Release Notes
JuiceFS v0.15.2 arrived 1 month after v0.14.2, with more than 60+ changes from 8 contributors (@davies, @Sandy4999 , @xiaogaozi, @yuhr123, @Suave, @zzcclp , @tangyoupeng, @chnliyong, @yuhr123), thanks to them. This release introduced new tool to backup and restore metadata, which can also be used to migrate metadata between different meta engines, check [Backup and Restore Metadata](https://github.com/juicedata/juicefs/blob/main/docs/en/metadata_dump_load.md) for details. This release also improved the performance significantly for read/write heavy workload by utilizing page cache in kernel. This release is backward-compatible with previous releases, should be safe to upgrade. ## New * Added command `dump` and `load` to backup and restore metadata (#510, #521, #529, #535, #551). * Added an option (`--read-only`) to mount as read-only (#520). * Support command auto-completion (#530, #534). * Run benchmark in parallel (`-p N`) (#545). * Support PostgreSQL as meta engine (#542). * Added an option (`--subdir`) to mount a sub-directory (#550). * Support WebDAV as an object store (#573). * Allow enable writeback cache in kernel by `-o writeback_cache` (#576). * Added a option to redirect the logging into a file in background mode (#575). ## Changed * Changed the batch size of LIST request to 1000 (some object storage may fail with 400 for larger limit) (1385587). * Exclude log4j from Java SDK to avoid potential conflict (#501). * Exit when unknown option found (d6a39f11db). * Report type of meta engine and storage together with usage (#504). * Changed the default configuration of Java SDK and S3 gateway to be consistent with `juicefs mount` (#517). * Keep page cache in kernel when files opened without changes (#528, #537). * Change REDIS-URL to META-URL in docs (#552). ## Bugfix * Fixed the memory leak in B2 client (#500). * Handle BucketAlreadyExists error for all object storage (#561). * Fixed a bug with SQLite and PostgreSQL engine when high bit of lock owner is 1 (#588) * Fixed updating stats for MySQL engine (#590). * Fixed case sensitivity for MySQL engine (#591). * Fixed potential leak for files overwritten by rename (#594, #495)