Releases: juicedata/juicefs
v1.0.0-rc3
JuiceFS v1.0.0-rc3 is the third release candidate for v1.0. It has 35 commits from 10 contributors, thanks to @zhijian-pro @SandyXSD @davies @tangyoupeng @sanwan @xiaogaozi @chenhaifengkeda @zhoucheng361 @201341 @Suave !
New
- Supports using unix socket for Redis (#2319)
Changed
- cmd/info: print objects for files, and add
--raw
option for slices (#2316) - fuse/context: ignore interrupt within one second (#2324)
Bugfix
- cmd/info: support get trash info (#2363)
- cmd/bench: fix bench display (#2322)
- cmd/objbench: fix skip functional test (#2341)
- meta/redis: fix unlock on not-existed lock (#2325)
- object: fix skip tls verify (#2317)
- object/ks3: use virtual hosted-style for ks3 (#2349)
- object/eos: using the Path style addressing in eos (#2344)
- object/ceph: fix the arguments of register function (#2306)
- vfs&fuse: Fix stale attribute cache in kernel (#2336)
- hadoop: checksum fix for files with size close to blockSize (#2333)
v1.0.0-rc2
JuiceFS v1.0.0-rc2 is the second release candidate for v1.0. It has 40 commits from 10 contributors, thanks to @davies @zhijian-pro @sanwan @zhoucheng361 @tangyoupeng @SandyXSD @201341 @chnliyong @solracsf @xiaogaozi !
New
- Supports using session token for object storage (#2261)
Changed
- cmd/info: make output more human friendly (#2303)
- meta: optimize output of format structure (#2250)
- meta/sql: support database without read-only transaction (#2259)
- object/webdav: replace webdav client (#2288)
- SDK: only release sdk jar (#2289)
Bugfix
- cmd: --backup-meta could be 0 to disable backup (#2275)
- cmd: fix concurrent rmr/warmup in mac (#2265)
- cmd/fsck: fix object name for Head method (#2281)
- cmd/info: Fix repeat path info when inode is 1 (#2294)
- meta: fix GetPaths for mount points with subdir specified (#2298)
- meta: don't treat trash as dangling inode (#2296)
- meta: fix index underflow in 32bit arch (#2239)
- meta/tkv: use absolute path for badgerDB as metadata engine (#2256)
- object/azure: fix azure list api and incorrect bucket URL (#2263)
- metrics: use separate metrics per volume (#2253)
v1.0.0-rc1
JuiceFS v1.0.0-rc1 is the first release candidate for v1.0. It has 184 commits from 17 contributors, thanks to @davies @zhoucheng361 @SandyXSD @zhijian-pro @sanwan @xiaogaozi @tangyoupeng @solracsf @showjason @rayw000 @AIXjing @helix-loop @Suave @zhouaoe @chnliyong @yuhr123 @liufuyang !
Highlights
- Dumping metadata from Redis has been improved, massively reducing the memory required to below 1/20 of that before. It also relieves the memory spike of a client when doing metadata backup. Dumping metadata from SQL and TiKV within a single transaction to ensure consistency.
- Loading metadata to all engines has been improved as well. Instead of loading the whole dumped file in one step, JuiceFS will now read it in a stream, and simultaneously import metadata to the engine. This saves a lot of memory when the dumped file is huge.
- Improved stability for SQL engine under heavy workload.
- Added a new command
juicefs objbench
that can be used to run basic function tests and benchmarks on object storage, making sure it works as expected.
New
- Supports using SQL databases, etcd as data storage (#2003, #2009)
- Supports finding all paths of an inode with
juicefs info
command (#2058, #2161, #2193) - Supports using Pyroscope to record JuiceFS profiling (#1952)
- Added progress bar for
juicefs rmr
andjuicefs warmup
commands (#2197) - Added a new command
juicefs objbench
to run basic benchmarks on object storage (#2055, #2091) - Added a new command
juicefs version
to print version, as an alternative to--version
(#2229)
Changed
- cmd: check the range of parameters (#2195)
- cmd: eliminate panic which is triggered by missing argument (#2183)
- cmd/mount: warn about the behavior of mounting the same directory multiple times (#2141)
- cmd/warmup: support warmup from inside of a container (#2056)
- meta: add delayed slice only when chunkid > 0 (#2231)
- meta: speed up and reduce memory for loading metadata (#2142, #2148)
- meta: add a pessimistic lock to reduce conflicted transactions in the database (#2111)
- meta: limit the number of scanned files in cleanup (#2157)
- meta: limit number of files when cleanup trash (#2061)
- meta: limit the number of coroutines to delete file data (#2042)
- meta: log last error if a transaction has been ever restarted (#2172)
- meta: log session info when cleaning up a stale one (#2045)
- meta: skip updating mtime/ctime of the parent if it's updated recently (#1960)
- meta/redis: check config 'maxmemory-policy' (#2059)
- meta/redis: Speedup dump for Redis and reduce memory usage (#2156)
- meta/tkv: Speedup dump for kv storage (#2140)
- meta/tkv: dump metadata using snapshot (#1961)
- meta/tkv: use scanRange to get delayed slices (#2057)
- meta/sql: dump metadata in a single transaction (#2131)
- chunk/store: keep cache after uploading staging blocks (#2168)
- object: reload the configuration for data storage (#1995)
- object/sftp: load default private keys for sftp (#2014)
- object/oss: add user agent for oss #1992 (#1993)
- vfs: hide .control from readdir (#1998)
- gateway: clean up expired temporary files (#2082)
- SDK: package amd64 and arm64 libjfs (#2198)
- SDK: don't reuse fd in Java SDK (#2122)
- Dependency: upgrade coredns for CVE-2019-19794 (#2190)
- Dependency: upgrade azblob sdk (#1962)
- meta: keep valid utf8 in dumped JSON (#1973)
- SDK: mvn shade some dependency to avoid class conflict (#2035)
- meta: truncate trash entry name if it's too long (#2049)
- meta/sql: use repeatable-read for transaction (#2128)
Bugfix
- cmd: fix not showing arguments for commands without META-URL (#2158)
- cmd/sync: fix sync lost file (#2106)
- cmd/warmup: fix warmup on read-only mount point (#2108)
- meta: skip updating sliceRef if id is 0 (#2096)
- meta: fix update xattr with the same value (#2078)
- meta/redis: handle lua result from Redis v7.0+ (#2221)
- meta/sql: fix dump with more than 10000 files (#2134)
- meta/sql: one transaction in SQLite at a time (#2126)
- meta/sql: fix rename with Postgres with repeatable read (#2109)
- meta/sql: fix deadlock in PG (#2104)
- meta/sql: ignore error about duplicated index (#2087)
- meta/sql: read database inside transaction (#2073, #2086)
- meta/sql: retry transaction on duplicated entry and concurrent update (#2077)
- meta/sql: fix the deadlock in rename (#2067)
- meta/sql: retry transaction for duplicate key in PG (#2071)
- meta/sql: fix update query in SQL transaction (#2024)
- meta/tkv: fix value of delSliceKey (#2054)
- meta/tkv: upgrade TiKV client to 2.0.1 to fix nil connection (#2050)
- chunk/store: fix stats of cached space in writeback mode (#2227)
- object: delete should be idempotent (#2034)
- object/file: Head of file should return File (#2133)
- object/s3: check prefix and marker with returned keys from S3 (#2040)
- object/prefix: fix with prefix returning nil error for unsupported ops (#2021)
- object/sftp: fix auth of sftp with multiple keys (#2186)
- object/sftp: fix prefix of sftp, support ssh-agent (#1954)
- vfs/backup: skip cleanup if list failed (#2044)
- SDK: handle atomic rename exception (#2192)
v1.0.0-beta3
JuiceFS v1.0.0-beta3 is the third beta release for v1.0. It has 247 commits from 22 contributors, thanks to @SandyXSD @zhoucheng361 @davies @zhijian-pro @yuhr123 @sanwan @AIXjing @rayw000 @xiaogaozi @Suave @showjason @tangyoupeng @201341 @solracsf @guo-sj @chnliyong @DeanThompson @zwwhdls @wph95 @lidaohang @sjp00556 @DEvmIb !
Highlights
- Supports etcd as a new metadata engine. It can be a handy choice when you only need a small volume but cares more about the data availability and persistence.
- Supports Redis Cluster and other compatible services (Amazon MemoryDB for Redis) as metadata engines.
- When using SQL metadata engines, file names not encoded by UTF-8 can now be properly handled after manual modification to the table schema, see details.
- A new session management format is introduced. Old clients are unable to detect sessions with version 1.0.0-beta3 or higher via
juicefs status
orjuicefs destroy
command, see details. - If trash is enabled, compacted slices are kept as well in case they are needed to recover file data. These slices will be cleaned up automatically after
trash-days
, and can be deleted manually viajuicefs gc
command. - A lot of improvements have been made to
juicefs sync
command. - A lot of protection checks against unintentional misuse have been added.
New
- Supports etcd as metadata engine (#1638)
- Supports Redis in cluster mode while using one slot for each file system (#1696)
- Supports handling file names not encoded by UTF-8 for SQL metadata engines (#1762)
- Supports TLS when using TiKV as metadata engine or object storage (#1653, #1778)
- Supports Oracle Object Storage as data storage (#1516)
- Supports setting umask for S3 Gateway (#1537)
- Java SDK now supports pushing metrics to Graphite (#1586)
- Added a new option
--heartbeat
for themount
command to adjust heartbeat interval (#1591, #1865) - Added many improvements for
sync
command to make it more handy (#1554, #1619, #1651, #1836, #1897, #1901) - Added a new option
--hash-prefix
for theformat
command to add a hashed prefix for objects (#1657) - Added a new client option
--storage
to allow customized storage type (#1912)
Changed
- compacted slices will be kept for
trash-days
if trash is enabled (#1790) - cmd: support using integer for duration flags (#1796)
- cmd: use homedir as default working directory for non-root users (#1869)
- cmd/format: create a uuid object in the target bucket (#1548)
- cmd/dump&load: dump load behavior supports non-ascii characters (#1691)
- cmd/dump: omit empty value in dumped JSON (#1676)
- cmd/dump: remove secret key (#1569)
- meta: encrypt the secret-key and encrypt-key in setting (#1562)
- meta: create subdir automatically (#1712)
- meta: specify the format field preventing update (#1776)
- meta: escape meta password from env (#1879)
- meta/redis: check redis version (#1584)
- meta/redis: use smaller retry backoff in sentinel mode (#1620)
- meta/redis: retry transaction for connection error or EXECABORT (#1637)
- meta/sql: retry transaction after too many connections (#1876)
- meta/sql: add primary key for all tables (#1913, #1919)
- meta&chunk: Set max retries of meta & chunk according to the config
io-retries
(#1713, #1800) - chunk: limit number of upload goroutines (#1625)
- chunk/store: limit max retry for async upload as well (#1673)
- object/obs: Verify Etag from OBS (#1715)
- object/redis: implement listAll api for redis (#1777)
- fuse: automatically add
ro
option if mount with--read-only
(#1661) - vfs/backup: reduce the limit for skipping backup (#1659)
- sync: reduce memory allocation when write into files (#1644)
- SDK: use uint32 for uid,gid (#1648)
- SDK: handle removeXAttr return code (#1775)
- Dependency: switch to Go 1.17 (#1594)
- Dependency: fix jwt replace (#1534)
- Dependency: upgrade golang-cross version to v1.17.8 (#1539)
- Dependency: upgrade tikv to v2.0.0 (#1643)
- Dependency: reduce dep from minio (#1645)
- Dependency: upgrade gjson to 1.9.3 (#1647)
- Dependency: upgrade sdk for object storage (#1665)
- Dependency: upgrade qiniu sdk (#1697)
Bugfix
- cmd/format: fix setting quota (#1658)
- cmd/mount: fix parsing of cache dir (#1758)
- cmd/warmup: fix handling of relative paths (#1735)
- cmd/sync: fix sync command not working when destination is webdav (#1636)
- cmd/gateway: fix s3 gateway DeleteObjects panic (#1527)
- meta: forbid empty name for dentry (#1687)
- meta: lock counters when loading entries (#1703)
- meta: fix snap not released if error occurs when dumping meta (#1669)
- meta: don't update parent attribute if it's a trash directory (#1580)
- meta/redis: fix loading large directory into Redis (#1858)
- meta/redis: update used space/inodes in memory whenever needed (#1573)
- meta/sql: use upsert to update xattr for PG (#1825)
- meta/sql: split insert batch (#1831)
- meta/sql: fix wrong result from scanning SQL database (#1854)
- chunk/cache: Fix read disk_cache not existed remove cache key (#1677)
- object: fallback to List only if ListAll is not supported (#1623)
- object/b2: check returned bucket from B2 (#1745)
- object/encrypt: fix parse rsa from pem (#1724)
- object/encrypt: Add JFS_RSA_PASSPHRASE environment variable prompt information (#1706)
- object/sharding: fix ListAll returning invalid objects (#1616)
- object/ceph: fix listAll hangs if there are many objects (#1891)
- vfs: write control file asynchronously (#1747)
- vfs: fix getlk in access log (#1788)
- sync: Fix copied and copiedBytes (#1801)
- utils: fix the problem that the progress bar loses the log (#1756)
- SDK: rename libjfs atomic (#1939)
v1.0.0-beta2
JuiceFS v1.0.0-beta2 is the second beta release for v1.0. It has 150+ commits from 16 contributors, thanks to @SandyXSD @zhijian-pro @yuhr123 @xiaogaozi @davies @sanwan @AIXjing @Suave @tangyoupeng @zwwhdls @201341 @zhexuany @chnliyong @liufuyang @rayw000 @fredchen2022 !
New
- Supports BadgerDB (an embeddable key-value database) as metadata engine (#1340)
- Supports WebDAV protocol to access JuiceFS files (#1444)
- Supports read-only clients connecting to a Redis Sentinel-controlled replica (#1433)
- Added version control of metadata and clients (#1469)
- Added categories and long descriptions for all commands (#1488, #1493)
- Added a new option
no-bgjob
for service commands to disable background jobs like clean-up, backup, etc. (#1472) - Added metrics for number of rawstaging blocks (#1341)
- Added cross-platform compile script (#1374)
Changed
- cmd: help command is removed; use --help/-h flag to get help information (#1488)
- cmd: print usage if not enough args (#1491)
- cmd/format: only try to create bucket when it really doesn't exist (#1289)
- cmd/format: prevend reusing object storage when formating a volume (#1420, #1449)
- cmd/destroy: show information of active sessions (#1377)
- cmd/config: add sanity check of new values (#1479)
- cmd/umount: ignore error from umount (#1425)
- meta: add progress bar for CompactAll (#1317)
- meta: hide password in meta-url (#1333, #1361)
- meta: use
META_PASSWORD
env and omit unnecessary characters (#1388) - meta: limit the number when scanning sessions/files (#1397)
- meta: limit the number of clients running background cleanup jobs (#1393)
- meta: continue dump when encountering non-fatal errors (#1462)
- meta/sql: increase max idle connections to CPU*2 for SQL engine (#1443)
- object: set ContentType when putting object (#1468)
- object: support skip https certificate verify (#1453)
- object/s3: format support pvc link (#1382)
- object/qingstor: support private cloud and replace the sdk repository (#1303)
- vfs: don't do backup for read-only clients (#1435)
- vfs: add
BackupMeta
in config (#1460) - utils: log now contains the exact line of caller, and is colorized in terminal (#1404, #1318, #1312)
- utils: simplify the usage of progress bar (#1325)
- utils: add SleepWithJitter to reduce collision of background jobs (#1412)
- SDK: upgrade Hadoop common to 3.1.4 (#1411)
- SDK: java sdk push gateway support multiple volumes (#1492)
- Other: update chart move it to a standalone repository (#1281, #1336, #1348)
- Improves documentation and coverage of tests
Bugfix
- cmd: fix buffer-size in gc and fsck (#1316)
- cmd/bench: convert PATH to absolute path (#1305)
- meta: return EROFS as soon as possible (#1477)
- meta/redis: fix leaked inodes in Redis (#1353)
- meta/tkv: fix divide by zero error when dumping meta (#1369)
- meta/tikv: fix scan of tikv, limiting the upperbound (#1455)
- meta/memkv: fix scanKeys, returning a sorted list (#1381)
- meta/sql: delete warning message for empty directory (#1442)
- meta/sql: fix return value of mustInsert (#1429)
- vfs: fixed deadlock when truncate a released file handle. (#1383)
- vfs/trash: fix access to trash dir (#1356)
- vfs/backup: skip dir objects when scanning meta backups (#1370)
- vfs/backup: fix incorrect inode number when using subdir (#1385)
- utils: fix the contention between progress bar and logger (#1436)
- Windows: fix rename fails because the chunk file is still open (#1315)
- Windows: fix mkdir on windows platform (#1327)
- SDK: hadoop: fix umask apply (#1338, #1394)
- SDK: hadoop: fix libjfs.so load bug (#1458)
- other: fix legend of "Operations" panel in Grafana template (#1321)
v1.0.0-beta1
JuiceFS v1.0.0-beta1 is the first beta release for v1.0, arrived three months after v0.17. It has 300+ commits from 22 contributors, thanks to @SandyXSD @davies @xiaogaozi @yuhr123 @zhijian-pro @sanwan @zwwhdls @tangyoupeng @Suave @chiyutianyi @201341 @suzaku @reusee @tisonkun @chenjie4255 @dragonly @nature1995 @fredchen2022 @shoothzj @nsampre @supermario1990 @sjp00556 !
JuiceFS v1.0.0-beta1 is released under the Apache License 2.0.
New
- Backups the whole metadata as a compressed JSON file into object storage in every hour by default, so we can get most of the data back in case of losing the entire meta database. (#975)
- Added trash bin: removed or overwritten file will be moved to trash bin, will be deleted after configured days. (#1066)
- Added
config
command to update configuration of an existing volume (#1137) - Added
destroy
command to clean up all data & metadata of a volume (#1164) - Added a option to limit the concurrent deletes (#917)
- Added a option to register prometheus metrics api to consul (#910)
- Added a option to S3 gateway to keep the etag information of uploaded objects (#1154)
- Added
--check-all
and--check-new
to verify data integrity (#1208) sync
command supports anonymous access to S3 (#1228)
Changed
- meta: don't return EINVAL when encountering unknown flags (#862)
- cmd/bench: remove default benchmark PATH (#864)
- hadoop: sort list res to compatible with hdfs (#889)
- expose metrics in S3 gateway (#897)
- cleanup broken mountpoint (#912)
- cmd/info: add '--recursive' flag to get summary of a tree (#935)
- cache: force sync upload if local disk is too full for writeback (#943)
- Speed up metadata dump&load for redis (#954)
- fsck: list broken files (#958)
- write to json file by stream (#970)
- speedup listing on file (#622)
- meta: unify transaction backoff for redis/tkv (#999)
- speed up metadata dumping and loading for Tikv V2 (#998)
- check AK and SK for gateway (#1001)
- add a option to provide customized bucket endpoint (#1008)
- change frsize to 4096 (#1016)
- Speed up dump for sql engine (#1006)
- format support provide only bucket name (#1022)
- meta/tkv: fix clean stale session (#1041)
- add namespace and label to existing metrics (#1056)
- release memory after dumping meta (#1093)
- meta: unify counters for all metadata engines (#1119)
- Keep SGID for directory (#1133)
- Speedup hadoop concat by delete src concurrently (#1163)
- change default cache-size to 100GB (#1169)
- metrics: expose only JuiceFS metrics to prometheus (#1185)
- cleanup reference of unused slice in gc command (#1249)
- Adjust log level for xorm and TiKV when they are in use (#1229)
- hadoop: Users in supergroup are superusers (#1202)
- Check permission with multiple groups (#1205)
- Ret the region of the object storage compatible with the s3 protocol from the env (#1171)
- Added prefix to metrics in gateway (#1189)
- improve s3 url parsing (#1234)
Bugfix
- go-fuse: return ENOSYS if xattr is disabled (#863)
- Fix WebDAV backend (#899)
- meta: always update cache after got newest attributes (#902)
- sql.go: fix delete file range error (#904)
- meta: update parent when rename (#905)
- sqlmeta: fix delete chunk sql error (#931)
- Fix the bug that file credential authentication fails when using GCS (#933)
- hadoop: compatible with kitedata in sqoop parquet use case (#941)
- Fix redis-sentinel addresses parsing (#953)
- utils: fix cond and its test (#983)
- workaround for List with marker (#984)
- sync: ignore broken symlink (#1015)
- meta/sql: fix delete condition (#1018)
- metadata: should not skip error if open a file not exist (#1035)
- Fix minio with sync (#1055)
- meta: remove xattr only when nlink <= 0 (#1078)
- meta/sql: fix parentDst nlink in rename (#1082)
- Fix upload bandwidth limit (#1086)
- Fix lua script handling big inode number (#1095)
- meta: fix lookup of corrupt entries (#1098)
- Fix potential metadata corrupt in Redis caused by gc (#1110)
- Fix fmtKey to sliceKey (#1143)
- Fix mkdir/rename/delete/rmr with trailing slash (#1149)
- Fix gateway GetObjectInfo http code 500 to 404 (#1158)
- meta: fix nlink of parentDst in rename (#1170)
- Sync: distinguish DeleteSrc from DeleteDSt (#1197)
- Fix subdir in S3 gateway (#1201)
v0.17.5
JuiceFS v0.17.5 is a patch release for v0.17, which has the following changes:
- Sync command crashes for broken symlinks (#1028).
- Fixed the returned code when open a non-existed file (#1035).
- Fixed the leaked key after cleanup stale sessions in TiKV (#1041).
- Fixed sync from/to some prefix of MinIO (#1055).
- Fixed the problem that extended attributes of hard links are removed unexpectedly (#1078).
- Fixed the wrong used space in
df
(introduced in v0.17.2) (#1096). - Fixed a bug in gc command that could corrupt file in Redis (#1110).
Thanks to @davies @SandyXSD @chiyutianyi for contributions!
v0.17.2
Changelog
JuiceFS v0.17.2 is the second patch release for v0.17, which has the following changes:
- Fixed potential data leak for SQL engine (#931 #1018).
- Fixed a bug in CopyFileRange() (77a3a62).
- Fixed authentication for GCS in container (#933).
- Don't fill all the disk space in writeback mode(#943).
- Fixed parsing address for Redis Sentinel (#953).
- Added a workaround to sync with object storages that are not compatible with S3 (#984).
- Increase backoff for Redis/TiKV to avoid potential failure under high contention (#999).
- Added a check for AK/SK for S3 gateway (#1001).
- Added an option to provide a customized endpoint for object storage (#1008).
- Chnaged frsize to 4096 to be compatible with local filesystem (#1016).
Thanks to @SandyXSD @davies @chiyutianyi @zhijian-pro @nsampre for contributions!
v0.17.1
JuiceFS v0.17.1 is a patch release for v0.17, which has the following changes:
- Return ENOSYS if attr is disabled (#863).
- Ignore unknown flags in setattr() (#862).
- Sort files when list a directory in Java SDK to be compatible with HDFS (#889).
- Upgrade nats-server to v2.2+ to address CVE-2021-3127 (#893).
- Enable metrics for S3 gateway (#897).
- Fixed WebDAV backend (#899).
- Refresh cache once new attributes found (#902).
- Upgrade dgrijalva/jwt-go to golang-jwt/jwt to address CVE-2020-26160 (#903)
- Fixed parent of renamed files/dirs (#905).
- Fixed chunk deletions for SQL engine (#904)
- Upgrade gjson to fix CVE-2021-42836 (#912).
Thanks to contributions from @SandyXSD @tangyoupeng @davies @zhijian-pro @chiyutianyi !
v0.17.0
JuiceFS v0.17 arrived one month after 0.16, with 80+ commits from 9 contributors (@SandyXSD, @davies, @xiaogaozi, @yuhr123, @Suave @tangyoupeng @201341 @zwwhdls @allwefantasy), thanks to them!
This release improved the performance when JuiceFS is used for temporary data by using an in-memory meta engine (memkv) and delayed uploading. For example, we can use JuiceFS as the shuffle and spill disk without worrying about running out of space.
Linux Test Project was used to verify the compatibility of JuiceFS, please checkout the current results here.
This release introduced metadata cache for Java SDK and S3 gateway (similar to metadata cache in kernel), which could be turned to improve performance significantly.
New
- Added a option to delay upload in writeback mode (#736 #743), which is useful for temporary data.
- Added an in-memory meta engine (memkv://) for temporary data (#751 #779).
- Support CREATE and REPLACE flag in setxattr (#770).
- Added metrics for in-memory cache (#776).
- Support rename flags (NoReplace and Exchange) (#787).
- New colorful result for bench command (#810).
- Added entry and attributes cache for Java SDK and S3 gateway (#835).
Changed
- Default logging directory in macOS was changed to user's home directory (#744).
- Limit the number of retry for listing to 3 to avoid infinite loop (#745).
- Show total size of valid objects in gc command (#746).
- Disable SHA256 checksum for S3 and other compatible object store to reduce CPU usage (#754).
- Hide operations on internal files from access log (#766).
- Require Go 1.15 to build JuiceFS and build the release with Go 1.16 (#771).
- Inherit gid of parent when SGID is set (#772).
- Keep SGID when file is non-group-executable (#773).
- Allow remove broken dir/file (#784).
- Retry transactions for TxnLockNotFound from TiKV (#789).
- Cleanup current session during umount (#796).
- Reduce memory allocation for OBS and Webdav backend (#800).
- Support escaped access key for KS3 (#830).
- Support lookup
.
and..
(#842). - No warning if compaction fail with missing objects(#844).
- Increase available inodes based on current usage (#851).
- Allow update access key and secret key with default compress algorithm (#855).
Bugfix
- Fixed a leak in SQL engine (#728).
- Fixed a bug that may crash client (#729).
- Fixed valid bytes of progress bar for
gc
command (#746). - Fixed warmup with a long list of files (#752).
- Fixed supporting of secured Redis connection (regression in v0.16) (#758).
- Fixed data corruption in SQL and TiKV engine when some slices are skipped during compaction (#759).
- Fixed metrics for read bytes in Hadoop SDK (#761).
- Fixed multipart upload in S3 gateway (#765).
- Fixed POSIX locks on interweaved regions (#769).
- Fixed latency metrics for libRADOS (#793).
- Fixed concat in Java SDK and multipart upload (#817).
- Fixed nlink of parent when rename directories (#839).
- Fixed transaction for read-only mount (#844).