| Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
copyErr != nil (#6867)
|
|
|
|
|
|
Co-authored-by: akosov <a.kosov@kryptonite.ru>
|
|
commands supporting this option (#6788)
|
|
`weed shell` commands. (#6780)
Move `shell.ErrorWaitGroup` into a dedicated common file, to cleanly reuse across `weed shell` commands.
|
|
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.
|
|
|
|
* chore(deps): bump gocloud.dev from 0.40.0 to 0.41.0
Bumps [gocloud.dev](https://github.com/google/go-cloud) from 0.40.0 to 0.41.0.
- [Release notes](https://github.com/google/go-cloud/releases)
- [Commits](https://github.com/google/go-cloud/compare/v0.40.0...v0.41.0)
---
updated-dependencies:
- dependency-name: gocloud.dev
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* fix error
* fix printing errors
* Update go.mod
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: chrislu <chris.lu@gmail.com>
|
|
fix https://github.com/seaweedfs/seaweedfs/issues/6625
|
|
* 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.
|
|
Nit: remove missing newlines on `weed` commands output.
|
|
(#6516)
Effectively undoes c9399a68; with ff8bd862, a replica placement type `000`
will no longer break shards re-balancing.
Co-authored-by: Chris Lu <chrislusf@users.noreply.github.com>
|
|
(#6509)
Nit: fix missing newline on EC balancing warnings regarding replica settings.
See 79136812.
|
|
The replica placement type specifies numebr of _replicas_ on the same/different rack;
that means we can have one EC shard copy on each, even if the replica setting is zero.
This PR reworks replica placement parsing for EC rebalancing, so we check allow
(replica placement + 1) when selecting racks and nodes to balance EC shards into.
|
|
|
|
settings are found. (#6487)
|
|
* scaffold message queue agent
* adjust proto, add mq_agent
* add agent client implementation
* remove unused function
* agent publish server implementation
* adding agent
|
|
Add jwt authentication to fs.mergeVolumes command
|
|
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.
|
|
|
|
|
|
|
|
Signed-off-by: lou <alex1988@outlook.com>
|
|
|
|
|
|
See 826edd5d.
|
|
parallelization. (#6376)
Follow-up to b0210df0.
|
|
|
|
Rework `shell.EcBalance()`'s waitgroup with errors code into a standalone type.
We'll re-use this for other EC jobs - for example, volume creation. Also fixes
potential concurrency issues when collecting error results.
|
|
Parallelize EC shards balancing within racks.
|
|
|
|
|
|
|
|
* 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.
|
|
|
|
* show only writable volumes
* fix import
|
|
|
|
Among others, this enables recent changes related to topology aware
re-balancing at EC encoding time.
|
|
use constant for hdd of type
|
|
into. (#6325)
|
|
(#6319)
TODO cleanup for https://github.com/seaweedfs/seaweedfs/discussions/6179.
|
|
the same rack. (#6317)
* Account for replication placement settings when balancing EC shards within racks.
* Update help contents for `ec.balance`.
* Add a few more representative test cases for `pickEcNodeToBalanceShardsInto()`.
|