v0.13.0

juicedata/juicefsv0.13.0May 19, 2021by chnliyong

AI Summary

A major release introducing SQL databases (SQLite, MySQL, TiDB) as alternative meta engines, alongside new diagnostic and utility tools.

Key Highlights

  • Support for SQL databases (SQLite, MySQL, TiDB) as meta engines
  • Added `profile` and `warmup` commands for analysis and caching
  • Enabled Windows support for Java SDK
  • Added metrics collection for Java SDK

New Features

  • SQL meta engine support (SQLite, MySQL, TiDB)
  • `profile` command for access log analysis
  • `status` command for settings and status
  • `warmup` command for file/directory caching
  • Windows Java SDK build
  • Multiple buckets as object store
  • Metrics collection for Java SDK
  • Virtual `/.stats` file for internal metrics
  • Minimized binary build option

Full Release Notes

JuiceFS v0.13 arrived 1 month after v0.12.1, with more than 80 changes from 9 contributors (@davies, @Sandy4999 , @xiaogaozi,  @yuhr123, @polyrabbit, @suzaku,  @tangyoupeng, @angristan, @chnliyong), thanks to them.

The biggest feature in v0.13 is using SQL database as meta engine, SQLite, MySQL and TiDB are supported right now, we will add others later. Using SQL database will be slower than using Redis, but they have better persistency and scalability than Redis, is better in the cases that data safety and number of files are more important than performance, for example, backup.

## New

* Support SQL database (SQLite, MySQL and TiDB) as meta engine (#375).
* Added `profile` to analyze access log (#344).
* Added `status` to show the setting and status (#368).
* Added `warmup` to build cache for files/directory (#409).
* Build Java SDK for Windows (#362).
* Use multiple buckets as object store (#349). 
* Collect metrics for Java SDK (#327).
* Added virtual file `/.stats` to show the internal metrics (#314).
* Allow build a minimized binary without S3 gateway and other object storages (#324).

## Changed

* Enable checksum for Swift (a16b106808aa1).
* Added more buckets for object latency distribution (#321).
* Added a option (--no-agent) to disable debug agent (#328). 
* Added internal details at the end of benchmark (#352).
* More metrics for block cache(#387).
* Speed up path resolution for Java SDK and S3 gateway using Lua script (#394).
* Restart the Redis transaction after some known failures (#397).
* Remove the limit on the number of cached blocks (#401).

## Bugfix

* Fixed a bug in SetAttr to refresh new written data (429ce80100).
* Fixed overflow in StatFS (abcb5c652b). 
* Fixed a bug when use MinIO with `juicefs sync` (199b4d35b).
* Fixed a bug in CopyFileRange, which may affect multipart uploads and concat of Java SDK (fb611b0825).
* Fixed deadlock when truncate together with read (2f8a8d9).
* Fixed stale read after truncate (226b6a7e).
* Fixed downloading a directory using S3 gateway (#378).