nspcc-dev / nspcc-dev/neofs-node

Track progress in `control shards evacuate`

Open
#2,077 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement I3 neofs-cli neofs-storage S4 U4
Dominant language
Go
Stars
38
Forks
51
Avg merge
1d 20h
Merged PRs (30d)
38

Description

There is no ability to track the progress of the evacuate command and what the timeout duration should I specify according to the data on a shard?

I have 1.7G data on shard:
/dev/vdh1 20G 1.7G 17G 10% /srv/neofs/data6

And when I tried to evacuate objects I always get

root@az:/etc/neofs/storage/tatlin-object-sber-tfstate/vkarakozov# neofs-cli --wallet /etc/neofs/storage/wallet.json --endpoint localhost:8091 control shards evacuate --id XpwHq2ojz93WzZsct4TS7f -t 10m               
Enter password >
rpc error: context deadline exceeded

Just for proposal it would be great to always display status bar for this command and add someting like --no-progress option in case if no need to display. One more suggestion is in case if --no-progress is specified or session has been terminated and there is no way to track if evacuate is finished or not, we could display status 'evacuated' or 'evacuate in progress' for example in control shards list command or somewhere else.

Your Environment

Linux az 5.10.0-19-amd64 #1 SMP Debian 5.10.149-2 (2022-10-21) x86_64 GNU/Linux
Server setup and configuration:
cloud, 4 VMs, 4 SN, 4 http qw, 4 s3 gw

NeoFS Storage node
Version: v0.34.0-54-g402bbba1
GoVersion: go1.19.3

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the implementation of control shards evacuate and the output path for control shards list; reproduce the context deadline exceeded case with the reported timeout. Done should be defined as a progress display or explicit --no-progress behavior, plus a way to distinguish evacuated shards from evacuations still in progress.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cli, distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.