What's New
This release added a weed mini -dir=xxx command. It is a convenient command for beginners or test/dev environment. It would automatically starts a master, a volume server, a filer, a s3 server, a web DAV server, an admin server, and a worker. It would also automatically avoid already allocated ports and find another port to use.
The easiest way to get an object store up and running:
export AWS_ACCESS_KEY_ID=your-access-key
export AWS_SECRET_ACCESS_KEY=your-secret-key
weed mini -dir=/data
What's Changed
-
Mini
- Add 'weed mini' command for S3 beginners and small/dev use cases by @chrislusf in #7831
- feat: auto-configure optimal volume size limit based on available disk space by @chrislusf in #7833
- feat: add automatic port detection and fallback for mini command by @chrislusf in #7836
-
Shell
- Humanize output for
weed.serverby default by @proton-lisandro-pin in #7758 - Fix uncleanable size=0 orphans with volume.fsck -forcePurging by @chrislusf in #7783
- fix: sync replica entries before ec.encode and volume.tier.move by @chrislusf in #7798
- Give
cluster.statusdetailed file metrics for regular volumes by @proton-lisandro-pin in #7791 - Add cluster.raft.leader.transfer command for graceful leader change by @chrislusf in #7819
- fix: EC rebalance fails with replica placement 000 by @chrislusf in #7812
- Humanize output for
-
S3 API
- s3: fix PutObject ETag format for multi-chunk uploads by @chrislusf in #7771
- s3: warm bucket config cache on startup for multi-filer consistency by @chrislusf in #7772
- fix: add S3 bucket traffic sent metric tracking by @chrislusf in #7774
- feat: add S3 bucket size and object count metrics by @chrislusf in #7776
- s3: fix memory leak in ListObjectVersions with early termination by @chrislusf in #7785
- s3: add pagination to getObjectVersionList and reduce memory by @chrislusf in #7787
- s3: reduce ObjectVersion memory by not retaining full Entry by @chrislusf in #7786
- s3: fix remote object not caching by @G-OD in #7790
- Fix S3 server panic when -s3.port.https equals -s3.port by @chrislusf in #7794
- fix: ListBuckets returns empty for users with bucket-specific permissions by @chrislusf in #7799
- fix: use unique bucket name in TestS3IAMPresignedURLIntegration to avoid flaky test by @chrislusf in #7801
- fix: authenticate before parsing form in IAM API by @chrislusf in #7803
- fix: S3 versioning memory leak in ListObjectVersions pagination by @chrislusf in #7813
- fix: reduce N+1 queries in S3 versioned object list operations by @chrislusf in #7814
- fix: S3 remote storage cold-cache read fails with 'size reported but no content available' by @chrislusf in #7817
- s3api: fix bucket-root listing w/ delimiter by @chrislusf in #7827
- Fix SeaweedFS S3 bucket extended attributes handling by @chrislusf in #7854
- Fix: Eliminate duplicate versioned objects in S3 list operations by @chrislusf in #7850
-
Filer
- filer: improve FoundationDB performance by disabling batch by default by @chrislusf in #7770
- fix: JWT validation failures during replication (#7788) by @chrislusf in #7795
-
Volume Server
- fix: handle missing idx file for empty volumes during copy (#7777) by @chrislusf in #7778
- fix: correctly detect missing source file during volume copy by @chrislusf in #7784
- Fix volume repeatedly toggling between crowded and uncrowded by @chrislusf in #7793
-
Admin Server
- Fix EC Volumes page header styling to match admin theme by @chrislusf in #7780
- Fix admin GUI list ordering on refresh by @chrislusf in #7782
- Fix worker and admin CA by @MorezMartin in #7807
- fix: improve worker reconnection robustness and prevent handleOutgoing hang by @chrislusf in #7838
- Fix worker reconnection race condition causing context canceled errors by @chrislusf in #7825
- fix: prevent panic on close of closed channel in worker client reconnection by @chrislusf in #7837
-
FUSE Mount
- fix: improve mount quota enforcement to prevent overflow by @chrislusf in #7804
- mount: efficient file lookup in large directories, skipping directory caching by @chrislusf in #7818
-
Master
- fix: initialize missing MasterOptions fields in master.follower by @chrislusf in #7808
- fix: use consistent telemetryUrl default in master.follower by @chrislusf in #7809
- Upgrade raft to v1.1.6 to fix panic on log compaction by @chrislusf in #7811
-
Misc
- Add consistent -debug and -debug.port flags to commands by @chrislusf in #7816
- refactor: remove unused gRPC connection age parameters by @chrislusf in #7852
- Make lock_manager.RenewInterval configurable in LiveLock by @chrislusf in #7830
- fix: enable RetryForever for active-active cluster sync to prevent out-of-sync by @chrislusf in #7840
New Contributors
Full Changelog: 4.03...4.04