apple / apple/foundationdb

Exclude failed UI improvements

Open
#4,329 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
C++
Stars
16.7k
Forks
1.6k
Avg merge
1d 20h
Merged PRs (30d)
126

Description

There are a couple things that I noticed while using the `fdbcli> exclude failed` command that could be changed to improve usability:

1. The command disallows excluding enough coordinators that you would lose a quorum, but this does not take into account previous exclusions. For example, if I have three coordinators and exclude failed two of them, it will give me an error. If I exclude failed one and then another, both operations will complete successfully. (See also #4328).
2. The include command requires specifying `failed` to re-include failed processes, and if you omit it nothing happens. Instead, if you try to include a process that had been exclude failed, it should print a warning describing why it didn't do anything.
3. The include command help and auto-completion doesn't mention the `failed` option.
4. The exclude command says the following in its help:

```
If 'failed' is set, the transaction log queue is dropped pre-emptively before
waiting
for data movement to finish and the server cannot be included again.
```

I'd recommend something like this, which avoids implementation details and is more precise about inclusion. If there is some other straightforward benefit to exclude failed, we could try to describe it instead or in addition to the below.

```
If 'failed' is set, the process(es) are immediately forgotten and their data can
no longer be used. This allows the cluster to discard any state kept by the
transaction logs for those processes. A failed process can be re-included
without its data using 'include failed'.
```

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the `fdbcli` `exclude failed` and `include` commands with multiple coordinators, then inspect the command handling, help, and auto-completion paths. Done means quorum checks account for prior exclusions, omitted `failed` produces a warning when appropriate, help and completion document the option, and the `exclude failed` description matches the requested behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cli, databases, distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.