Skip to content

Commit 41381be

Browse files
committed
Propagate watch table
1 parent 3361c64 commit 41381be

File tree

1 file changed

+25
-0
lines changed
  • keps/sig-api-machinery/2340-Consistent-reads-from-cache

1 file changed

+25
-0
lines changed

keps/sig-api-machinery/2340-Consistent-reads-from-cache/README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,31 @@ case will change how watchcache implementation will be handling the request.
278278
| _RV_ | _NotOlderThan_ | _unset_ | _N_ | Quorum read request + check for _RV_ | Delegated to etcd | Deferred |
279279
| _RV_ | _NotOlderThan_ | _token_ | _unset_/ _N_ | Fails [validation] | Fails [validation] | |
280280

281+
For watch requests both `Continuation` and `Limit` parameters are ignored (we should
282+
have added validation rules for them in the past), but we have `SendInitialEvents` one.
283+
The table for watch requests look like the following
284+
285+
| ResourceVersion | ResourceVersionMatch | SendInitialEvents | etcd implementation | watchcache implementation | changed |
286+
|-----------------|----------------------|------------------------|------------------------------------------------|-----------------------------------------|----------|
287+
| _unset_ | _unset_ | _unset_ | Quorum list + watch stream | Delegate to etcd | Deferred |
288+
| _unset_ | _unset_ | false / true | Fails [validation] | Fails [validation] | |
289+
| _unset_ | _NotOlderThan_ | _unset_ | Fails [validation] | Fails [validation] | |
290+
| _unset_ | _NotOlderThan_ | false | Watch stream from etcd RV | Read etcd RV. Watch stream from it | |
291+
| _unset_ | _NotOlderThan_ | true | Quorum list + watch stream | Wait RV > etcd RV. List + watch stream | |
292+
| _unset_ | _Exact_ | _unset_ / false / true | Fails [validation] | Fails [validation] | |
293+
| _0_ | _unset_ | _unset_ | Quorum list + watch stream | List + watch stream | |
294+
| _0_ | _unset_ | false / true | Fails [validation] | Fails [validation] | |
295+
| _0_ | _NotOlderThan_ | _unset_ | Fails [validation] | Fails [validation] | |
296+
| _0_ | _NotOlderThan_ | false | Watch stream from etcd RV | Watch stream from current watchcache RV | |
297+
| _0_ | _NotOlderThan_ | true | Quorum list + watch stream | List + watch stream | |
298+
| _0_ | _Exact_ | _unset_ / false / true | Fails [validation] | Fails [validation] | |
299+
| _RV_ | _unset_ | _unset_ | Watch stream from RV | Watch stream from RV | |
300+
| _RV_ | _unset_ | false / true | Fails [validation] | Fails [validation] | |
301+
| _RV_ | _NotOlderThan_ | _unset_ | Fails [validation] | Fails [validation] | |
302+
| _RV_ | _NotOlderThan_ | false | Check RV > etcd RV. Watch stream from RV | Watch stream from RV | |
303+
| _RV_ | _NotOlderThan_ | true | Check RV > etcd RV. Quorum list + watch stream | Wait for RV. List + watch stream | |
304+
| _RV_ | _Exact_ | _unset_ / false / true | Fails [validation] | Fails [validation] | |
305+
281306
[validation]: https://github.com/kubernetes/kubernetes/blob/release-1.30/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/validation/validation.go#L28
282307
[etcd resolution]: https://github.com/kubernetes/kubernetes/blob/release-1.30/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go#L589-L627
283308

0 commit comments

Comments
 (0)