| Age | Commit message (Collapse) | Author | Files | Lines |
|
* Nit: have `ec.encode` exit immediately if no volumes are processed.
* Update weed/shell/command_ec_encode.go
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: Chris Lu <chrislusf@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
|
|
* support regular expression for collection selection
* refactor
* ordering
* fix exact match
* Update command_volume_balance_test.go
* simplify
* Update command_volume_balance.go
* comment
|
|
* add verbose ec encoding mode
* address comments
|
|
|
|
|
|
fix https://github.com/seaweedfs/seaweedfs/issues/6963
|
|
|
|
commands supporting this option (#6788)
|
|
Improve safety for weed shells `ec.encode`.
The current process for `ec.encode` is:
1. EC shards for a volume are generated and added to a single server
2. The original volume is deleted
3. EC shards get re-balanced across the entire topology
It is then possible to lose data between #2 and #3, if the underlying volume storage/server/rack/DC
happens to fail, for whatever reason. As a fix, this MR reworks `ec.encode` so:
* Newly created EC shards are spread across all locations for the source volume.
* Source volumes are deleted only after EC shards are converted and balanced.
|
|
Improve parallelization for `ec.encode`.
Instead of processing one volume at at time, perform all EC conversion
steps (mark readonly -> generate EC shards -> delete volume -> remount) in
parallel for all of them.
This should substantially improve performance when EC encoding
entire collections.
|
|
* Don't ignore empty (`""`) collection names when computing collections for a given volume ID.
* `ec.encode`: Fix resolution of target collections.
When no `volumeId` parameter is provided, compute volumes
based on the provided collection name, even if it's empty (`""`).
This restores behavior to before recent EC rebalancing rework. See also
https://github.com/seaweedfs/seaweedfs/blob/ec30a504bae6cad75f859964e14c60d39cc43709/weed/shell/command_ec_encode.go#L99 .
|
|
This guarantees EC shards are immediately available after encoding,
even if not affected by subsequent re-balancing.
|
|
conversion. (#6447)
This logic was originally part of `spreadEcShards()`, which got removed during
the unification effort with `ec.balance` (https://github.com/seaweedfs/seaweedfs/pull/6344),
accidentally breaking functionality in the process.
The commit restores the deletion code for EC'd volumes - with parallelization support.
|
|
See 826edd5d.
|
|
parallelization. (#6376)
Follow-up to b0210df0.
|
|
|
|
* Begin implementing EC balancing parallelization support.
Impacts both `ec.encode` and `ec.balance`,
* Nit: improve type naming.
* Make the goroutine workgroup handler for `EcBalance()` a bit smarter/error-proof.
* Nit: unify naming for `ecBalancer` wait group methods with the rest of the module.
* Fix concurrency bug.
* Fix whitespace after Gitlab automerge.
* Delete stray TODO.
|
|
ID argument is provided. (#6347)
Limit EC re-balancing for `ec.encode` to relevant collections when a volume ID is provided.
|
|
|
|
Among others, this enables recent changes related to topology aware
re-balancing at EC encoding time.
|
|
|
|
fix https://github.com/seaweedfs/seaweedfs/issues/6205#issuecomment-2465004586
|
|
unitest weed/shell fail
|
|
|
|
|
|
disk space available
fix https://github.com/seaweedfs/seaweedfs/issues/6163
|
|
|
|
|
|
* fix(volume): don't persist RO state in specific cases
* fix(volume): writable always persist
|
|
(ec.encode/volume.tier.upload) (#5635)
|
|
|
|
|
|
fix https://github.com/seaweedfs/seaweedfs/issues/4642
|
|
* use onlyEmpty for deleteVolume
https://github.com/seaweedfs/seaweedfs/issues/4559
* fix IsEmpty
* fix test
---------
Co-authored-by: Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.co>
|
|
fix https://github.com/seaweedfs/seaweedfs/issues/4193
|
|
|
|
|
|
If an EC shard is created but not spread to other servers, the masterclient would think this shard is not located here.
|
|
fix https://github.com/chrislusf/seaweedfs/issues/2637
|
|
streaming mode would create separate grpc connections for each call.
this is to ensure the long poll connections are properly closed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fix https://github.com/chrislusf/seaweedfs/issues/2048
|
|
|
|
|