In this release, @proton-lisandro-pin re-engineered the EC operations! Thanks!
Seaweed Admin
A close-source SeaweedAdmin server for flexible metadata management:
- Flexible and efficient TTL management.
- Point-in-time recovery of any file to any point of time.
- Off-site continuous file metadata backup.
What's Changed
-
Erasure Coding
- Introduce logic to resolve volume replica placement within EC rebalancing. by @proton-lisandro-pin in #6254
- Unify usage of shell.EcNode.dc as DataCenterId. by @proton-lisandro-pin in #6258
- Improve EC shards rebalancing logic across racks by @proton-lisandro-pin in #6270
- fix EcVolumes sorting in volume UI by @trim21 in #6275
- Improve EC shards rebalancing logic across nodes by @proton-lisandro-pin in #6297
- Display details upon failures to re-balance EC shards racks. by @proton-lisandro-pin in #6299
- Resolve replica placement for EC volumes from master server defaults. by @proton-lisandro-pin in #6303
- Account for replication placement settings when balancing EC shards across racks. by @proton-lisandro-pin in #6316
- Account for replication placement settings when balancing EC shards within the same rack. by @proton-lisandro-pin in #6317
- Share common parameters for EC re-balancing functions under a single struct. by @proton-lisandro-pin in #6319
- Remove average constraints when selecting nodes/racks to balance EC shards into. by @proton-lisandro-pin in #6325
- Unify the re-balancing logic for
ec.encode
withec.balance
. by @proton-lisandro-pin in #6339 - Delete legacy balancing code for
ec.encode
. by @proton-lisandro-pin in #6344 - Limit EC re-balancing for
ec.encode
to relevant collections when a volume ID argument is provided. by @proton-lisandro-pin in #6347 - Begin implementing EC balancing parallelization support. by @proton-lisandro-pin in #6342
- Parallelize EC balancing for racks. by @proton-lisandro-pin in #6351
- Parallelize EC shards balancing across racks. by @proton-lisandro-pin in #6352
- Parallelize EC shards balancing within racks by @proton-lisandro-pin in #6354
- fatal error: concurrent map iteration and map write by @coffeecloudgit in #6358 #6359
- Rework
shell.EcBalance()
's waitgroup code into a standalone type. by @proton-lisandro-pin in #6373 - Parallelize volume replica operations within
ec.encode
. by @proton-lisandro-pin in #6374 - Allow configuring the maximum number of concurrent tasks for EC parallelization. by @proton-lisandro-pin in #6376
- Fix volume replica parallelization within
ec.encode
. by @proton-lisandro-pin in #6377
-
Shell
- [shell] add noLock param for volume.move by @kmlebedev in #6261
- [shell] don't require lock when there are no changes for volume.fix.replication by @kmlebedev in #6266
- [shell] use constant for hdd of type by @kmlebedev in #6337
- volume.list avoid output empty data center and rack and disk info by @kmlebedev in #6341
- [shell] volume.list show only writable volumes by @kmlebedev in #6338
- [shell] feat:stop vacuum immediately once volume.vacuum.disable was executed by @dsd2077 in #6375
- [shell] only apply the balancing for writable volumes by @kmlebedev in #6346
- Moving the warning report after the code sees if the file is on the source volume. by @bradmurray in #6406
-
Master
- [master] avoid crowded more writable for auto grow by @kmlebedev in #6214
- [master] Revert back automatic volume grow in case of compensate for crowded volumes by @kmlebedev in #6267
- fix missing register master metric MasterPickForWriteErrorCounter by @kmlebedev in #6277
- use ShouldGrowVolumesByDcAndRack by @kmlebedev in #6280
- [master] update LastLeaderChangeTime for hashicorp raft by @kmlebedev in #6292
- [master] avoid timeout when assigning for main request with filter by DC or rack by @kmlebedev in #6291
- [security] reload whiteList on http seerver by @kmlebedev in #6302
-
Filer Sync
-
S3 API
- fix: record and delete bucket metrics after inactive by @zouyixiong in #6349
- fix: filer may crash by bucketLastActiveTsNs concurrency access. by @zouyixiong in #6350
- Fix for DeleteMultipleObjectsHandler wrongly deleting parent folders by @warrenhodg in #6380
-
FUSE Mount
-
Volume Server
-
Filer WORM support
- worm grace period and retention time support by @27149chen in #6404
-
Misc
- ExclusiveLocker only create one renew goroutine by @Numblgw in #6269
- use readable bytes size string in shell output by @trim21 in #6288
- change comment for expect header by @CodeRusher in #6289
- Replaced https.client.enabled with false in scaffold/security by @vadimartynov in #6320
- Replace bolt dependency with bbolt by @hack3ric in #6387
- use same time format in volume volume UI and filter UI by @trim21 in #6395
- Update LICENSE, fix copyright license year by @JasonnnW3000 in #6405
New Contributors
- @trim21 made their first contribution in #6275
- @warrenhodg made their first contribution in #6380
- @hack3ric made their first contribution in #6387
- @JasonnnW3000 made their first contribution in #6405
Full Changelog: 3.80...3.81