Closed tareksha closed 1 year ago
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle stale
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle rotten
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/reopen
/remove-lifecycle rotten
Please send feedback to sig-contributor-experience at kubernetes/community.
/close not-planned
@k8s-triage-robot: Closing this issue, marking it as "Not Planned".
Hi,
Current
List
functions in the clients use a bulk buffering: the whole payload is fetched into an an in-memory buffer and then the buffer is decoded into the result type. Example from pods client:This is very inefficient if there are many object to return, even worse when the objects themselves are big.
The underlying
RESTClient
already providesStream()
that can be used for streaming the payload without buffering everything in-memory. If we combine this with json stream decoding functionality we can practically eliminate the infamous memory peaks that are observed when controllers start a standard list-and-watch sequence. The short-lived huge buffers won't be needed.I would imagine the alternative approach to look like this:
This is a general problem in clients generated for custom resource types as well. The kubernetes clients as a whole are inefficient when it comes to listing data.