@@ -254,28 +254,29 @@ rate limiting to prevent cascading failure. I.e. `Retry-After` HTTP header (for
254
254
well-behaved clients) and [ Priority and Fairness] ( https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190228-priority-and-fairness.md ) .
255
255
256
256
In order to mitigate such problems, let's present how the system currently works
257
- in different cases.
258
-
259
- | ResourceVersion | ResourceVersionMatch | Continuation | Limit | etcd implementation | watchcache implementation |
260
- | -----------------| ----------------------| -------------------| ---------------| -----------------------------------------| ----------------------------------------------------|
261
- | _ unset_ | _ unset_ | _ unset_ | _ unset_ / _ N_ | Quorum read request | Delegated to etcd |
262
- | _ unset_ | _ unset_ | _ token_ | _ unset_ / _ N_ | Read request from RV encoded in _ token_ | Delegated to etcd |
263
- | _ unset_ | _ Exact_ | _ unset_ / _ token_ | _ unset_ / _ N_ | Fails [ validation] | Fails [ validation] |
264
- | _ unset_ | _ NotOlderThan_ | _ unset_ | _ unset_ / _ N_ | Quorum read request | Delegated to etcd |
265
- | _ unset_ | _ NotOlderThan_ | _ token_ | _ unset_ / _ N_ | Fails [ validation] | Fails [ validation] |
266
- | _ 0_ | _ unset_ | _ unset_ | _ unset_ / _ N_ | Quorum read request | List from cache ignoring _ limit_ |
267
- | _ 0_ | _ unset_ | _ token_ | _ unset_ / _ N_ | Quorum read request | Delegated to etcd |
268
- | _ 0_ | _ Exact_ | _ unset_ / _ token_ | _ unset_ / _ N_ | Fails [ validation] | Fails [ validation] |
269
- | _ 0_ | _ NotOlderThan_ | _ unset_ | _ unset_ / _ N_ | Quorum read request | List from cache ignoring _ limit_ |
270
- | _ 0_ | _ NotOlderThan_ | _ token_ | _ unset_ / _ N_ | Read request from RV encoded in _ token_ | Delegated to etcd |
271
- | _ RV_ | _ unset_ | _ unset_ | _ unset_ | Quorum read request | Wait for cache synced to _ RV_ + and list from cache |
272
- | _ RV_ | _ unset_ | _ unset_ | _ N_ | Read request from RV=_ RV_ | Delegated to etcd |
273
- | _ RV_ | _ unset_ | _ token_ | _ unset_ / _ N_ | Read request from RV encoded in _ token_ | Delegated to etcd |
274
- | _ RV_ | _ Exact_ | _ unset_ | _ unset_ / _ N_ | Read request from RV=_ RV_ | Delegated to etcd |
275
- | _ RV_ | _ Exact_ | _ token_ | _ unset_ / _ N_ | Fails [ validation] | Fails [ validation] |
276
- | _ RV_ | _ NotOlderThan_ | _ unset_ | _ unset_ | Quorum read request + check for _ RV_ | Wait for cache synced to _ RV_ + and list from cache |
277
- | _ RV_ | _ NotOlderThan_ | _ unset_ | _ N_ | Quorum read request + check for _ RV_ | Delegated to etcd |
278
- | _ RV_ | _ NotOlderThan_ | _ token_ | _ unset_ / _ N_ | Fails [ validation] | Fails [ validation] |
257
+ in different cases. In addition to that, we add column indicating whether a given
258
+ case will change how watchcache implementation will be handling the request.
259
+
260
+ | ResourceVersion | ResourceVersionMatch | Continuation | Limit | etcd implementation | watchcache implementation | changed |
261
+ | -----------------| ----------------------| -------------------| ---------------| -----------------------------------------| ----------------------------------------------------| ----------|
262
+ | _ unset_ | _ unset_ | _ unset_ | _ unset_ / _ N_ | Quorum read request | Delegated to etcd | Yes |
263
+ | _ unset_ | _ unset_ | _ token_ | _ unset_ / _ N_ | Read request from RV encoded in _ token_ | Delegated to etcd | |
264
+ | _ unset_ | _ Exact_ | _ unset_ / _ token_ | _ unset_ / _ N_ | Fails [ validation] | Fails [ validation] | |
265
+ | _ unset_ | _ NotOlderThan_ | _ unset_ | _ unset_ / _ N_ | Quorum read request | Delegated to etcd | Yes |
266
+ | _ unset_ | _ NotOlderThan_ | _ token_ | _ unset_ / _ N_ | Fails [ validation] | Fails [ validation] | |
267
+ | _ 0_ | _ unset_ | _ unset_ | _ unset_ / _ N_ | Quorum read request | List from cache ignoring _ limit_ | |
268
+ | _ 0_ | _ unset_ | _ token_ | _ unset_ / _ N_ | Quorum read request | Delegated to etcd | |
269
+ | _ 0_ | _ Exact_ | _ unset_ / _ token_ | _ unset_ / _ N_ | Fails [ validation] | Fails [ validation] | |
270
+ | _ 0_ | _ NotOlderThan_ | _ unset_ | _ unset_ / _ N_ | Quorum read request | List from cache ignoring _ limit_ | |
271
+ | _ 0_ | _ NotOlderThan_ | _ token_ | _ unset_ / _ N_ | Read request from RV encoded in _ token_ | Delegated to etcd | |
272
+ | _ RV_ | _ unset_ | _ unset_ | _ unset_ | Quorum read request | Wait for cache synced to _ RV_ + and list from cache | |
273
+ | _ RV_ | _ unset_ | _ unset_ | _ N_ | Read request from RV=_ RV_ | Delegated to etcd | |
274
+ | _ RV_ | _ unset_ | _ token_ | _ unset_ / _ N_ | Read request from RV encoded in _ token_ | Delegated to etcd | Deferred |
275
+ | _ RV_ | _ Exact_ | _ unset_ | _ unset_ / _ N_ | Read request from RV=_ RV_ | Delegated to etcd | |
276
+ | _ RV_ | _ Exact_ | _ token_ | _ unset_ / _ N_ | Fails [ validation] | Fails [ validation] | |
277
+ | _ RV_ | _ NotOlderThan_ | _ unset_ | _ unset_ | Quorum read request + check for _ RV_ | Wait for cache synced to _ RV_ + and list from cache | |
278
+ | _ RV_ | _ NotOlderThan_ | _ unset_ | _ N_ | Quorum read request + check for _ RV_ | Delegated to etcd | Deferred |
279
+ | _ RV_ | _ NotOlderThan_ | _ token_ | _ unset_ / _ N_ | Fails [ validation] | Fails [ validation] | |
279
280
280
281
[ validation ] : https://github.com/kubernetes/kubernetes/blob/release-1.30/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/validation/validation.go#L28
281
282
[ etcd resolution ] : https://github.com/kubernetes/kubernetes/blob/release-1.30/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go#L589-L627
0 commit comments