github juicedata/juicefs v1.0.0-rc1

latest releases: v1.2.1, v1.1.4, v0.2.1...
2 years ago

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 and juicefs 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)

Don't miss a new juicefs release

NewReleases is sending notifications on new releases.