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

[Beta: 1.31] Consistent Reads from Cache #2340

Open
13 tasks done
shekhar-rajak opened this issue Jan 26, 2021 · 61 comments
Open
13 tasks done

[Beta: 1.31] Consistent Reads from Cache #2340

shekhar-rajak opened this issue Jan 26, 2021 · 61 comments
Assignees
Labels
lead-opted-in Denotes that an issue has been opted in to a release sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. stage/beta Denotes an issue tracking an enhancement targeted for Beta status tracked/yes Denotes an enhancement issue is actively being tracked by the Release Team
Milestone

Comments

@shekhar-rajak
Copy link
Contributor

shekhar-rajak commented Jan 26, 2021

Enhancement Description

  • One-line enhancement description : Consistent Reads from Cache
  • Kubernetes Enhancement Proposal:

Kubernetes Get and List requests are guaranteed to be "consistent reads" if the
resourceVersion parameter is not provided. Consistent reads are served from
etcd using a "quorum read".

But often the watch cache contains sufficiently up-to-date data to serve the
read request, and could serve it far more efficiently.

This KEP proposes a mechanism to serve most reads from the watch cache
while still providing the same consistency guarantees as serving the
read from etcd.

All tasks done for beta

@k8s-ci-robot k8s-ci-robot added the needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. label Jan 26, 2021
@shekhar-rajak
Copy link
Contributor Author

#2331 created for migrating the old keps into new template.

@LappleApple
Copy link
Contributor

/sig api-machinery

@k8s-ci-robot k8s-ci-robot added sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. and removed needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Apr 8, 2021
@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 7, 2021
@k8s-triage-robot
Copy link

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Aug 6, 2021
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

@k8s-ci-robot
Copy link
Contributor

@k8s-triage-robot: Closing this issue.

In response to this:

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@serathius
Copy link
Contributor

Reviving the KEP as agreed on SIG-Apimachinery meeting May 31st 2023. https://youtu.be/sueYXW89ZHg
/assign

PR #4047 to move KEP to implementable

@serathius serathius reopened this Jun 6, 2023
@serathius serathius removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Jun 7, 2023
@serathius
Copy link
Contributor

/stage alpha

@k8s-ci-robot k8s-ci-robot added the stage/alpha Denotes an issue tracking an enhancement targeted for Alpha status label Jun 7, 2023
@serathius
Copy link
Contributor

/milestone v1.28

@k8s-ci-robot k8s-ci-robot added this to the v1.28 milestone Jun 7, 2023
@jpbetz
Copy link
Contributor

jpbetz commented Jun 12, 2023

/lead opt-in

@serathius serathius added the lead-opted-in Denotes that an issue has been opted in to a release label Jun 12, 2023
@Atharva-Shinde
Copy link
Contributor

Hello @shekhar-rajak @serathius 👋, Enhancements team here.

Just checking in as we approach Enhancements freeze on Thursday, 16th June 2023.

Looks like this enhancement is targeting for stage alpha for v1.28

Here's where this enhancement currently stands:

  • KEP readme using the latest template has been merged into the k/enhancements repo.
  • KEP status is marked as implementable for latest-milestone:v1.28
  • KEP readme has an updated detailed test plan section filled out
  • KEP readme has up to date graduation criteria
  • KEP has a production readiness review that has been completed and merged into k/enhancements.

There are some nits remaining to be addressed:

I won't decline this KEP for enhancements freeze because of these minor changes but would be great to get a PR ready addressing them.

The status of this enhancement is marked as tracked. Please keep the issue description up-to-date with appropriate stages as well. Thank you :)

@serathius
Copy link
Contributor

Don't understand the unmarked points.

KEP readme using the latest template has been merged into the k/enhancements repo.
KEP readme has an updated detailed test plan section filled out

Tests follows the latest template (maybe roughly) and uses a detailed test plan. Please provide criteria that you used to decide that they are not.

@Atharva-Shinde
Copy link
Contributor

Hey @serathius , the second unmarked point is a subset of the first unmarked point.
As mentioned in my comment above, there is an acknowledgement at the start of the Test Plan section quoting:

[ ] I/we understand the owners of the involved components may require updates to
existing tests to make this code solid enough prior to committing the changes necessary
to implement this enhancement.

which this KEP currently doesn't have and we need that to be included so that the KEP is in compliance with the latest KEP readme template.

@serathius
Copy link
Contributor

serathius commented Jun 15, 2023

Makes sense, suggestion for future. Separate questionnaire to KEP authors (also applies to PRR) from KEPs design document into separate file. Having agreements in the middle of the design makes it less readable, doesn't contribute to overall design and also cannot be automatically validated via ./hack/verify-kep.sh.

serathius added a commit to serathius/enhancements that referenced this issue Jun 15, 2023
serathius added a commit to serathius/enhancements that referenced this issue Jun 15, 2023
@sreeram-venkitesh
Copy link
Member

@serathius Since this KEP is planned for v1.31, I'm keeping the lead-opted-in label. It has already been added to the v1.31 enhancements tracking board. Please let me know if this works.

@serathius
Copy link
Contributor

Great, thanks @sreeram-venkitesh!

@serathius
Copy link
Contributor

serathius commented May 28, 2024

The performance comparison of scalability 5k performance tests with consistent list from cache enabled:

Consistent List From Cache kube-apiserver CPU [cores] kube-apiserver Memory [MB] etcd CPU [cores] etcd Memory [GB] LIST latency [ms] slowest resource (pods) LIST latency [ms] second slowest resource LIST latency [ms] second third resource
Enabled 50ile 6.305 42.18 1.1 4.68 200.00 55.00 38.00
90ile 11.99 47.78 1.426 5.40 1460 180 180
99ile 26.466 49.59 2.1847 6.26 1490.00 300.00 198.00
Disabled 50ile 9.085 43.90 1.5 4.84 3500 38 38
90ile 17.72 48.94 1.964 5.29 4850.00 92.70 92.70
99ile 27.132 50.39 2.5547 5.93 4990.00 274.00 272.00

Improvements summary

  • 30% improvement to kube-apiserver CPU usage
  • 3 % improvement to kube-apiserver Memory usage
  • 25% improvement to etcd CPU usage
  • 5s -> 1.5s reduction on 99%ile pods LIST request latency

Some degradations that might require parameter tuning/investigation.

  • 3% increase of etcd Memory usage - unexpected
  • 90ms -> 180ms increase on 90%ile LIST request latency for resources with no frequent updates. Expected, due to progress notifies being slower than LIST requests in this case.

cc @deads2k @MadhavJivrajani @p0lyn0mial

@dipesh-rawat
Copy link
Member

Hello @serathius 👋, 1.31 Enhancements team here.

Just checking in as we approach enhancements freeze on on 02:00 UTC Friday 14th June 2024 / 19:00 PDT Thursday 13th June 2024.

This enhancement is targeting for stage beta for 1.31 (correct me, if otherwise)

Here's where this enhancement currently stands:

  • KEP readme using the latest template has been merged into the k/enhancements repo.
  • KEP status is marked as implementable for latest-milestone: v1.31. KEPs targeting stable will need to be marked as implemented after code PRs are merged and the feature gates are removed.
  • KEP readme has up-to-date graduation criteria
  • KEP has a production readiness review that has been completed and merged into k/enhancements. (For more information on the PRR process, check here). If your production readiness review is not completed yet, please make sure to fill the production readiness questionnaire in your KEP by the PRR Freeze deadline so that the PRR team has enough time to review your KEP.

Nit: Update issue description to highlight Beta: 1.31

With all the KEP requirements in place and merged into k/enhancements, this enhancement is all good for the upcoming enhancements freeze. 🚀

The status of this enhancement is marked as tracked for enhancement freeze. Please keep the issue description up-to-date with appropriate stages as well. Thank you!

@serathius serathius changed the title Consistent Reads from Cache [Beta: 1.31] Consistent Reads from Cache Jun 5, 2024
@chanieljdan
Copy link

Hi @serathius 👋, 1.31 Docs Shadow here.

Does this enhancement work planned for 1.31 require any new docs or modification to existing docs?

If so, please follows the steps here to open a PR against dev-1.31 branch in the k/website repo. This PR can be just a placeholder at this time and must be created before Thursday June 27, 2024 18:00 PDT.

Also, take a look at Documenting for a release to get yourself familiarized with the docs requirement for the release.

Thank you!

Daniel

@serathius
Copy link
Contributor

Does this enhancement work planned for 1.31 require any new docs or modification to existing docs?

Yes, will create PR when I'm able.

@a-mccarthy
Copy link

a-mccarthy commented Jun 12, 2024

Hi @serathius!

👋 from the v1.31 Communications Team! We'd love for you to opt in to write a feature blog about your enhancement!
Some reasons why you might want to write a blog for this feature include (but are not limited to) if this introduces breaking changes, is important to our users, or has been in progress for a long time and is graduating.

To opt in, let us know and open a Feature Blog placeholder PR against the website repository by 3rd July, 2024. For more information about writing a blog see the blog contribution guidelines.

Note: In your placeholder PR, use XX characters for the blog date in the front matter and file name. We will work with you on updating the PR with the publication date once we have a final number of feature blogs for this release.

@chanieljdan
Copy link

Hi @serathius 👋, 1.31 Docs Shadow here.

Does this enhancement work planned for 1.31 require any new docs or modification to existing docs?

If so, please follows the steps here to open a PR against dev-1.31 branch in the k/website repo. This PR can be just a placeholder at this time and must be created before Thursday June 27, 2024 18:00 PDT.

Also, take a look at Documenting for a release to get yourself familiarized with the docs requirement for the release.

Thank you!

Daniel

Hi @serathius 👋,

Just a reminder to open a placeholder PR against dev-1.31 branch in the k/website repo for this (steps available here). The deadline for this is a week away at Thursday June 27, 2024 18:00 PDT.

Thanks,

Daniel

@serathius
Copy link
Contributor

Done

@sreeram-venkitesh sreeram-venkitesh added the tracked/yes Denotes an enhancement issue is actively being tracked by the Release Team label Jun 24, 2024
@serathius
Copy link
Contributor

Visible impact on perfdash https://perf-dash.k8s.io/#/?jobname=gce-5000Nodes&metriccategoryname=APIServer&metricname=LoadResponsiveness_Prometheus&Resource=pods&Scope=namespace&Subresource=&Verb=LIST

@dipesh-rawat
Copy link
Member

Hey again @serathius👋, 1.31 Enhancements team here,

Just checking in as we approach code freeze at 02:00 UTC Wednesday 24th July 2024 / 19:00 PDT Tuesday 23rd July 2024.

Here's where this enhancement currently stands:

  • All PRs to the Kubernetes repo that are related to your enhancement are linked in the above issue description (for tracking purposes).
  • All PR/s are ready to be merged (they have approved and lgtm labels applied) by the code freeze deadline. This includes tests.

With all the implementation(code related) PRs merged as per the issue description:

@serathius To finalize the current status of the enhancement, could you please clarify if PR kubernetes/kubernetes#123472 needs to be tracked as part of this KEP, given this enhancement #2340 is mentioned in the description?

Additionally, please let me know if there are any other PRs in k/k not listed in the description that we should track for this KEP, so that we can maintain accurate status.

@serathius
Copy link
Contributor

Hey @dipesh-rawat, thanks for reaching out.
All the coding work has been completed for the Beta milestone.

The only work left is documentation and blogpost.

@dipesh-rawat
Copy link
Member

@serathius Thanks for the confirmation (here) that the coding work is complete.

With all the implementation(code related) PRs merged as per the issue description:

This enhancement is now marked as tracked for code freeze for the 1.31 Code Freeze!

@sreeram-venkitesh
Copy link
Member

@serathius Going through open PRs in k/k, I could find kubernetes/kubernetes#125605 which is related to this KEP. Can you please confirm if this PR is part of the implementation for this KEP? The only file change seems to be in a test file. If so, please make sure to get it merged before the test freeze deadline (01:00 UTC Wednesday 31st July 2024 / 19:00 PDT Tuesday 30th July 2024).

@serathius
Copy link
Contributor

No, this PR is not related, however we were kicked out of Beta with kubernetes/kubernetes#126139 :(

Working on a fix in kubernetes/kubernetes#126264, but due to limited capacity of reviews might not get in before code freeze.

@sreeram-venkitesh
Copy link
Member

Ohh :(

So with kubernetes/kubernetes#126139 merged, the feature gate is flipped back although all the code was merged, correct?

@serathius
Copy link
Contributor

So with kubernetes/kubernetes#126139 merged, the feature gate is flipped back although all the code was merged, correct?

Yes

@sreeram-venkitesh
Copy link
Member

/milestone clear

@k8s-ci-robot k8s-ci-robot removed this from the v1.31 milestone Jul 30, 2024
@sreeram-venkitesh
Copy link
Member

/milestone v1.31

@k8s-ci-robot k8s-ci-robot added this to the v1.31 milestone Jul 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lead-opted-in Denotes that an issue has been opted in to a release sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. stage/beta Denotes an issue tracking an enhancement targeted for Beta status tracked/yes Denotes an enhancement issue is actively being tracked by the Release Team
Projects
Status: Tracked
Status: Removed from Milestone
Status: Tracked for Doc Freeze
Status: No status
Development

No branches or pull requests