Skip to content

Commit cefeb71

Browse files
Improve comments based on PR review on #583
Rename KnownResources to ACKedResources to better reflect the change Signed-off-by: Valerian Roche <[email protected]>
1 parent 1c4abfb commit cefeb71

File tree

12 files changed

+49
-50
lines changed

12 files changed

+49
-50
lines changed

pkg/cache/v3/cache.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,16 @@ type Request = discovery.DiscoveryRequest
3636
// DeltaRequest is an alias for the delta discovery request type.
3737
type DeltaRequest = discovery.DeltaDiscoveryRequest
3838

39-
// SubscriptionState provides additional data on the client knowledge for the type matching the request
40-
// This allows proper implementation of stateful aspects of the protocol (e.g. returning only some updated resources)
39+
// SubscriptionState stores the server view of the client state for a given resource type.
40+
// This allows proper implementation of stateful aspects of the protocol (e.g. returning only some updated resources).
4141
// Though the methods may return mutable parts of the state for performance reasons,
42-
// the cache is expected to consider this state as immutable and thread safe between a watch creation and its cancellation
42+
// the cache is expected to consider this state as immutable and thread safe between a watch creation and its cancellation.
4343
type SubscriptionState interface {
44-
// GetKnownResources returns a list of resources that the client has ACK'd and their associated version.
44+
// GetACKedResources returns a list of resources that the client has ACK'd and their associated version.
4545
// The versions are:
4646
// - delta protocol: version of the specific resource set in the response
4747
// - sotw protocol: version of the global response when the resource was last ACKed
48-
GetKnownResources() map[string]string
48+
GetACKedResources() map[string]string
4949

5050
// GetSubscribedResources returns the list of resources currently subscribed to by the client for the type.
5151
// For delta it keeps track of subscription updates across requests

pkg/cache/v3/delta.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func createDeltaResponse(ctx context.Context, req *DeltaRequest, state Subscript
3636
// If we are handling a wildcard request, we want to respond with all resources
3737
switch {
3838
case state.IsWildcard():
39-
if len(state.GetKnownResources()) == 0 {
39+
if len(state.GetACKedResources()) == 0 {
4040
filtered = make([]types.Resource, 0, len(resources.resourceMap))
4141
}
4242
nextVersionMap = make(map[string]string, len(resources.resourceMap))
@@ -45,15 +45,15 @@ func createDeltaResponse(ctx context.Context, req *DeltaRequest, state Subscript
4545
// we can just set it here to be used for comparison later
4646
version := resources.versionMap[name]
4747
nextVersionMap[name] = version
48-
prevVersion, found := state.GetKnownResources()[name]
48+
prevVersion, found := state.GetACKedResources()[name]
4949
if !found || (prevVersion != version) {
5050
filtered = append(filtered, r)
5151
}
5252
}
5353

5454
// Compute resources for removal
5555
// The resource version can be set to "" here to trigger a removal even if never returned before
56-
for name := range state.GetKnownResources() {
56+
for name := range state.GetACKedResources() {
5757
if _, ok := resources.resourceMap[name]; !ok {
5858
toRemove = append(toRemove, name)
5959
}
@@ -63,7 +63,7 @@ func createDeltaResponse(ctx context.Context, req *DeltaRequest, state Subscript
6363
// state.GetResourceVersions() may include resources no longer subscribed
6464
// In the current code this gets silently cleaned when updating the version map
6565
for name := range state.GetSubscribedResources() {
66-
prevVersion, found := state.GetKnownResources()[name]
66+
prevVersion, found := state.GetACKedResources()[name]
6767
if r, ok := resources.resourceMap[name]; ok {
6868
nextVersion := resources.versionMap[name]
6969
if prevVersion != nextVersion {

pkg/cache/v3/delta_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ func TestDeltaRemoveResources(t *testing.T) {
144144
case out := <-watches[typ]:
145145
assertResourceMapEqual(t, cache.IndexRawResourcesByName(out.(*cache.RawDeltaResponse).Resources), snapshot.GetResources(typ))
146146
nextVersionMap := out.GetNextVersionMap()
147-
streams[typ].SetKnownResources(nextVersionMap)
147+
streams[typ].SetACKedResources(nextVersionMap)
148148
case <-time.After(time.Second):
149149
require.Fail(t, "failed to receive a snapshot response")
150150
}
@@ -181,7 +181,7 @@ func TestDeltaRemoveResources(t *testing.T) {
181181
assert.Equal(t, []string{"otherCluster"}, out.(*cache.RawDeltaResponse).RemovedResources)
182182
nextVersionMap := out.GetNextVersionMap()
183183
// make sure the version maps are different since we no longer are tracking any endpoint resources
184-
assert.NotEqual(t, nextVersionMap, streams[testTypes[0]].GetKnownResources(), "versionMap for the endpoint resource type did not change")
184+
assert.NotEqual(t, nextVersionMap, streams[testTypes[0]].GetACKedResources(), "versionMap for the endpoint resource type did not change")
185185
case <-time.After(time.Second):
186186
assert.Fail(t, "failed to receive snapshot response")
187187
}

pkg/cache/v3/linear_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ func createWildcardDeltaWatch(c *LinearCache, w chan DeltaResponse) error {
195195
return err
196196
}
197197
resp := <-w
198-
state.SetKnownResources(resp.GetNextVersionMap())
198+
state.SetACKedResources(resp.GetNextVersionMap())
199199
_, err := c.CreateDeltaWatch(&DeltaRequest{TypeUrl: testType}, &state, w) // Ensure the watch is set properly with cache values
200200
return err
201201
}
@@ -674,7 +674,7 @@ func TestLinearDeltaMultiResourceUpdates(t *testing.T) {
674674
validateDeltaResponse(t, resp, []resourceInfo{{"a", hashA}, {"b", hashB}}, nil)
675675
checkVersionMapSet(t, c)
676676
assert.Equal(t, 2, c.NumResources())
677-
state.SetKnownResources(resp.GetNextVersionMap())
677+
state.SetACKedResources(resp.GetNextVersionMap())
678678

679679
// Multiple updates
680680
_, err = c.CreateDeltaWatch(&DeltaRequest{TypeUrl: testType}, &state, w)
@@ -695,7 +695,7 @@ func TestLinearDeltaMultiResourceUpdates(t *testing.T) {
695695
validateDeltaResponse(t, resp, []resourceInfo{{"a", hashA}, {"b", hashB}}, nil)
696696
checkVersionMapSet(t, c)
697697
assert.Equal(t, 2, c.NumResources())
698-
state.SetKnownResources(resp.GetNextVersionMap())
698+
state.SetACKedResources(resp.GetNextVersionMap())
699699

700700
// Update/add/delete
701701
_, err = c.CreateDeltaWatch(&DeltaRequest{TypeUrl: testType}, &state, w)
@@ -715,7 +715,7 @@ func TestLinearDeltaMultiResourceUpdates(t *testing.T) {
715715
validateDeltaResponse(t, resp, []resourceInfo{{"a", hashA}}, []string{"b"})
716716
checkVersionMapSet(t, c)
717717
assert.Equal(t, 2, c.NumResources())
718-
state.SetKnownResources(resp.GetNextVersionMap())
718+
state.SetACKedResources(resp.GetNextVersionMap())
719719

720720
// Re-add previously deleted watched resource
721721
_, err = c.CreateDeltaWatch(&DeltaRequest{TypeUrl: testType}, &state, w)
@@ -732,7 +732,7 @@ func TestLinearDeltaMultiResourceUpdates(t *testing.T) {
732732
validateDeltaResponse(t, resp, []resourceInfo{{"b", hashB}}, nil) // d is not watched and should not be returned
733733
checkVersionMapSet(t, c)
734734
assert.Equal(t, 2, c.NumResources())
735-
state.SetKnownResources(resp.GetNextVersionMap())
735+
state.SetACKedResources(resp.GetNextVersionMap())
736736

737737
// Wildcard create/update
738738
require.NoError(t, createWildcardDeltaWatch(c, w))

pkg/cache/v3/simple.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ func (cache *snapshotCache) CreateWatch(request *Request, clientState Subscripti
408408
}
409409

410410
if exists {
411-
knownResourceNames := clientState.GetKnownResources()
411+
knownResourceNames := clientState.GetACKedResources()
412412
diff := []string{}
413413
for _, r := range request.GetResourceNames() {
414414
if _, ok := knownResourceNames[r]; !ok {

pkg/cache/v3/simple_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ func TestSnapshotCacheWithTTL(t *testing.T) {
149149
}
150150
// Update streamState
151151
for _, resource := range out.GetRequest().GetResourceNames() {
152-
streamState.GetKnownResources()[resource] = fixture.version
152+
streamState.GetACKedResources()[resource] = fixture.version
153153
}
154154
case <-time.After(2 * time.Second):
155155
t.Errorf("failed to receive snapshot response")
@@ -189,7 +189,7 @@ func TestSnapshotCacheWithTTL(t *testing.T) {
189189
updatesByType[typ]++
190190

191191
for _, resource := range out.GetRequest().GetResourceNames() {
192-
streamState.GetKnownResources()[resource] = fixture.version
192+
streamState.GetACKedResources()[resource] = fixture.version
193193
}
194194
case <-end:
195195
cancel()
@@ -321,7 +321,7 @@ func TestSnapshotCacheWatch(t *testing.T) {
321321
t.Errorf("get resources %v, want %v", out.(*cache.RawResponse).Resources, snapshot.GetResourcesAndTTL(typ))
322322
}
323323
for _, resource := range out.GetRequest().GetResourceNames() {
324-
streamState.GetKnownResources()[resource] = fixture.version
324+
streamState.GetACKedResources()[resource] = fixture.version
325325
}
326326
case <-time.After(time.Second):
327327
t.Fatal("failed to receive snapshot response")
@@ -501,7 +501,7 @@ func TestSnapshotCreateWatchWithResourcePreviouslyNotRequested(t *testing.T) {
501501
// Request additional resource with name=clusterName2 for same version
502502
go func() {
503503
state := stream.NewSubscriptionState(false, map[string]string{})
504-
state.SetKnownResources(map[string]string{clusterName: fixture.version})
504+
state.SetACKedResources(map[string]string{clusterName: fixture.version})
505505
_, err := c.CreateWatch(&discovery.DiscoveryRequest{TypeUrl: rsrc.EndpointType, VersionInfo: fixture.version,
506506
ResourceNames: []string{clusterName, clusterName2}}, &state, watch)
507507
require.NoError(t, err)
@@ -521,7 +521,7 @@ func TestSnapshotCreateWatchWithResourcePreviouslyNotRequested(t *testing.T) {
521521

522522
// Repeat request for with same version and make sure a watch is created
523523
state := stream.NewSubscriptionState(false, map[string]string{})
524-
state.SetKnownResources(map[string]string{clusterName: fixture.version, clusterName2: fixture.version})
524+
state.SetACKedResources(map[string]string{clusterName: fixture.version, clusterName2: fixture.version})
525525
if cancel, err := c.CreateWatch(&discovery.DiscoveryRequest{TypeUrl: rsrc.EndpointType, VersionInfo: fixture.version,
526526
ResourceNames: []string{clusterName, clusterName2}}, &state, watch); cancel == nil {
527527
t.Fatal("Should create a watch")

pkg/server/delta/v3/server.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func (s *server) processDelta(str stream.DeltaStream, reqCh <-chan *discovery.De
118118
watch := watches.deltaWatches[typ]
119119
watch.nonce = nonce
120120

121-
watch.state.SetKnownResources(resp.GetNextVersionMap())
121+
watch.state.SetACKedResources(resp.GetNextVersionMap())
122122
watches.deltaWatches[typ] = watch
123123
return nil
124124
}
@@ -285,7 +285,7 @@ func (s *server) unsubscribe(resources []string, streamState *stream.Subscriptio
285285
// To achieve that, we mark the resource as having been returned with an empty version. While creating the response, the cache will either:
286286
// * detect the version change, and return the resource (as an update)
287287
// * detect the resource deletion, and set it as removed in the response
288-
streamState.GetKnownResources()[resource] = ""
288+
streamState.GetACKedResources()[resource] = ""
289289
}
290290
delete(sv, resource)
291291
}

pkg/server/sotw/v3/ads.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ func (s *server) processADS(sw *streamWrapper, reqCh chan *discovery.DiscoveryRe
103103
}
104104

105105
typeURL := req.GetTypeUrl()
106-
streamState, ok := sw.streamStates[typeURL]
106+
streamState, ok := sw.streamState[typeURL]
107107
if !ok {
108108
// Supports legacy wildcard mode
109109
// Wildcard will be set to true if no resource is set
@@ -114,7 +114,7 @@ func (s *server) processADS(sw *streamWrapper, reqCh chan *discovery.DiscoveryRe
114114
if lastResponse, ok := sw.lastDiscoveryResponses[typeURL]; ok {
115115
if lastResponse.nonce == "" || lastResponse.nonce == nonce {
116116
// Let's record Resource names that a client has received.
117-
streamState.SetKnownResources(lastResponse.resources)
117+
streamState.SetACKedResources(lastResponse.resources)
118118
}
119119
}
120120

@@ -157,7 +157,7 @@ func (s *server) processADS(sw *streamWrapper, reqCh chan *discovery.DiscoveryRe
157157
})
158158
}
159159

160-
sw.streamStates[req.TypeUrl] = streamState
160+
sw.streamState[req.TypeUrl] = streamState
161161
}
162162
}
163163
}

pkg/server/sotw/v3/server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ type streamWrapper struct {
9191

9292
// The below fields are used for tracking resource
9393
// cache state and should be maintained per stream.
94-
streamStates map[string]stream.SubscriptionState
94+
streamState map[string]stream.SubscriptionState
9595
lastDiscoveryResponses map[string]lastDiscoveryResponse
9696
}
9797

pkg/server/sotw/v3/xds.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func (s *server) process(str stream.Stream, reqCh chan *discovery.DiscoveryReque
2727

2828
// a collection of stack allocated watches per request type.
2929
watches: newWatches(),
30-
streamStates: make(map[string]stream.SubscriptionState),
30+
streamState: make(map[string]stream.SubscriptionState),
3131
lastDiscoveryResponses: make(map[string]lastDiscoveryResponse),
3232
}
3333

@@ -110,7 +110,7 @@ func (s *server) process(str stream.Stream, reqCh chan *discovery.DiscoveryReque
110110
req.TypeUrl = defaultTypeURL
111111
}
112112

113-
streamState := sw.streamStates[req.TypeUrl]
113+
streamState := sw.streamState[req.TypeUrl]
114114

115115
if s.callbacks != nil {
116116
if err := s.callbacks.OnStreamRequest(sw.ID, req); err != nil {
@@ -121,7 +121,7 @@ func (s *server) process(str stream.Stream, reqCh chan *discovery.DiscoveryReque
121121
if lastResponse, ok := sw.lastDiscoveryResponses[req.GetTypeUrl()]; ok {
122122
if lastResponse.nonce == "" || lastResponse.nonce == nonce {
123123
// Let's record Resource names that a client has received.
124-
streamState.SetKnownResources(lastResponse.resources)
124+
streamState.SetACKedResources(lastResponse.resources)
125125
}
126126
}
127127

@@ -157,7 +157,7 @@ func (s *server) process(str stream.Stream, reqCh chan *discovery.DiscoveryReque
157157
})
158158
}
159159

160-
sw.streamStates[req.TypeUrl] = streamState
160+
sw.streamState[req.TypeUrl] = streamState
161161

162162
// Recompute the dynamic select cases for this stream.
163163
sw.watches.recompute(s.ctx, reqCh)

0 commit comments

Comments
 (0)