Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation: add roadmap #16279

Merged
merged 1 commit into from
Jul 26, 2023
Merged

Documentation: add roadmap #16279

merged 1 commit into from
Jul 26, 2023

Conversation

ahrtr
Copy link
Member

@ahrtr ahrtr commented Jul 21, 2023

Add a roadmap so that all contributors and users know the priorities of each major or minor release. Note that etcd community will continue to focus on technical debt over the next few major or minor releases.

Please read https://github.com/etcd-io/etcd/blob/main/CONTRIBUTING.md#contribution-flow.

@ahrtr
Copy link
Member Author

ahrtr commented Jul 21, 2023

cc @mitake @ptabor @serathius @spzala @wenjiaswe @etcd-io/members @logicalhan

cc @tbg @pavelkalinnikov @erikgrinaker FYI. I am planning to release raft 3.6.0 sometime this year.

Copy link
Member

@fuweid fuweid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@logicalhan
Copy link

cc @mitake @ptabor @serathius @spzala @wenjiaswe @etcd-io/members @logicalhan

cc @tbg @pavelkalinnikov @erikgrinaker FYI. I am planning to release raft 3.6.0 sometime this year.

I'm a little bit worried about releasing 3.6 without having the full downgrade story worked out for 3.4->3.5 first.

## v3.6.0
| Title | Priority | Note |
|--------------------------------------------------------------------|----------|--------------------------------------------------------------------------------------------------------------|
| Support downgrade | P0 | etcd will support downgrade starting from 3.6.0. But it will also support offline downgrade from 3.5 to 3.4. |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like online downgrade from 3.5 -> 3.4 to be backported.

Copy link
Member

@serathius serathius Jul 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's too much work and too risky. You would need to backport everything listed in #13168.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's also risky to upgrade to 3.5 without a fallback plan.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Offline downgrade is the fallback.

@ahrtr ahrtr force-pushed the roadmap_20230721 branch 2 times, most recently from 467f49c to b56c0f3 Compare July 22, 2023 05:28
Copy link
Member

@jmhbnz jmhbnz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@wenjiaswe wenjiaswe closed this Jul 22, 2023
@wenjiaswe wenjiaswe reopened this Jul 22, 2023
@wenjiaswe
Copy link
Contributor

cc Hitoshi Mitake Piotr Tabor Marek Siarkowicz Sahdev Zala Wenjia @etcd-io/members Han Kang
cc Tobias Grieger Pavel Kalinnikov Erik Grinaker FYI. I am planning to release raft 3.6.0 sometime this year.

I'm a little bit worried about releasing 3.6 without having the full downgrade story worked out for 3.4->3.5 first.

Agree, several cloud providers are still on etcd 3.4, releasing 3.6 means 3.4 will not be supported any more, but upgrading from 3.4 to 3.5 is too risky without having a downgrade support.

@ahrtr
Copy link
Member Author

ahrtr commented Jul 23, 2023

I'm a little bit worried about releasing 3.6 without having the full downgrade story worked out for 3.4->3.5 first.

thx for the feedback. Please see the discussion in #15878, and feel free to add comment in that ticket.

@fuweid
Copy link
Member

fuweid commented Jul 24, 2023

I revisited the existing pull requests. Since the compacted resource version might cause list-all request in Kubernetes, it's easy to cause OOM-Killed. IMO, we should consider to continue the work of #12343 and introduce max_bytes limit in one response #14810 in 3.6 or 3.7.

CC @linxiulei

@ahrtr
Copy link
Member Author

ahrtr commented Jul 24, 2023

IMO, we should consider to continue the work of #12343 and introduce max_bytes limit in one response #14810 in 3.6 or 3.7.

#12343 has already been stage/tracked. We will definitely evaluate both #12343 and #14810 separately in future when we have capacity.

|-----------------------------------------------------------|----------|------|
| Remove the dependency on grpc-go's experimental API | | |
| Protobuf: cleanup both golang/protobuf and gogo/protobuf | | |
| Proposals should include a merkle root | | |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merkele root for me is a P1 for v3.6.0 as proposed in https://github.com/etcd-io/etcd/blob/main/Documentation/postmortems/v3.5-data-inconsistency.md#action-items

I want to pick this up after robustness tests.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not see a clear or feasible solution so far. We can have more discussion in future.

Copy link
Member

@serathius serathius Jul 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have couple of ideas, just need to write down the design.

Copy link
Member

@serathius serathius left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, with strong recommendation to put in merkle tree on the table and some comments about giving more context.

@ahrtr
Copy link
Member Author

ahrtr commented Jul 24, 2023

with strong recommendation to put in merkle tree on the table and some comments about giving more context.

I do not have enough confidence to pick it up in 3.6 timeframe for now. But it's open for discussion, and we can evaluate it separately.

@serathius
Copy link
Member

with strong recommendation to put in merkle tree on the table and some comments about giving more context.

I do not have enough confidence to pick it up in 3.6 timeframe for now. But it's open for discussion, and we can evaluate it separately.

That's why it's not a P0, but a P1. We can start planning it in v3.6.0, but have a full feature available in v3.7.0

Copy link
Member

@spzala spzala left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thanks @ahrtr
LGMT but wondering about this:
The doc says, etcd 3.6.0 will depends on raft 3.6.0 and etcd 3.6.0 will depends on bbolt 1.3.8 then why they are P1 instead of P0? Aren't they pre-req/blocker for v3.6.0?

Signed-off-by: Benjamin Wang <[email protected]>
@ahrtr
Copy link
Member Author

ahrtr commented Jul 25, 2023

Good point. Just changed the priorities to P0 for the two items you mentioned. Thanks @spzala

@ahrtr
Copy link
Member Author

ahrtr commented Jul 26, 2023

With the approval from 3 maintainers and 3 members/contributors, merging this PR...

Just as discussed above, it isn't set in stone, it may shift over time. [But I don't expect too much change for 3.6]. The roadmap just gives a high level direction of the project for the next few major or minor releases. It doesn't mean we will never receive any features which are not included in the list.

@ahrtr ahrtr merged commit 326dab9 into etcd-io:main Jul 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

10 participants