v0.16.1
juicedata/juicefsv0.16.1Aug 16, 2021by chnliyong
AI Summary
A feature-rich release introducing TiKV as a distributed meta engine, bandwidth controls, and real-time performance monitoring tools.
Key Highlights
- Added TiKV as a distributed transactional meta engine
- Implemented bandwidth limits for uploads and downloads
- Added real-time performance metrics via the `stats` subcommand
- Introduced progress bars for maintenance tools like fsck and gc
Breaking Changes
- Changed the meaning of password in Redis Sentinel URL from Sentinel password to Redis server password
New Features
- TiKV meta engine support
- Bandwidth limits for upload/download
- Virtual `.config` file for configuration display
- `stats` subcommand for real-time metrics
- Progress bars for maintenance commands
- Disabled `updatedb` for JuiceFS
Full Release Notes
JuiceFS v0.16.1 arrived one month after 0.15.2, with 80+ commits from 11 contributors (@davies, @Sandy4999 , @xiaogaozi @tangyoupeng @zhijian-pro @chnliyong @Suave @themaxdavitt @xuhui-lu @201341 @zwwhdls ), thanks to them! The biggest feature is supporting [TiKV](https://tikv.org/) as the meta engine, which is a distributed transactional key-value database. With TiKV, JuiceFS can store trillions of files and exabytes of data, please . ## BREAKING CHANGE The meaning of password in Redis Sentinel URL is changed from Sentinel password to Redis server password, please update the password in the URL if you use sentinel and their password are different. ## New * Supports TiKV as meta engine and object store (#610 #629 #631 #636 #645 #633 #663 #666 #675 #704). * Added limit for upload/download bandwidth (#611). * Added a virtual file (.config) to show current configurations (#652). * Added a subcommand `stats` to watch performance metrics in realtime (#702 #721). * Added progress bar for fsck, gc, load and dump (#683 #684 #724) * Disabled updatedb for JuiceFS (#727). ## Changed * Speedup listing on file store (#593). * Upgrade KS3 SDK to 1.0.12 (#638). * Update mtime in fallocate (#602). * Improved performance for writing into file store (#621). * Changed the password in Redis URL to Redis Server (#620) * Support mixed read/write in Go/Java SDK (#647). * Enable debug agent for sync command (#659). * Improved stability for random write workload (#664). * Avoid some memory copy in block cache (#668). * disable fsync in writeback mode to be closer to local file system (#696). * profile: show final result when interval is set to 0 (#710). ## Bugfix * Fixed stats with MySQL engine (#590). * Fixed case insensitivity with MySQL engine(#591). * Fixed atime of file in Java SDK(#597). * Fixed a bug that block write when memory cache is enabled (#667). * Fixed fd leak in block cache (#672). * Fixed stale result for restarted transaction (#678) * Fixed a bug under mixed write and truncate (#677). * Fixed race condition under mixed read/write (#681). * Fixed compatibility with Redis clones. * Fixed data usage in read-only mode (#698). * Fixed key leak in Redis (#694). * Fixed a bug about collate with MySQL 5.6 (#697). * Fixed a bug that may cause crash when `writeback_cache` is used (#705). * Fixed pid of updated POSIX lock (#708). * Added a workaround for a data loss bug in Huawei OBS SDK (#720). * Fixed the metrics of uploaded bytes (#726). * Fixed a leak of chunk and sustained inode in SQL engine (#728). * Fixed a bug that may crash client (#729).