Unistore : Ensure Watch works in HA mode. (#93428)

* Replace Watch with WatchNext

* remove watchset

* fix previous page and closing the channel

* Remove the broadcaster cache to prevent dupplicated events

* add watch bookmark

* add watch bookmark

* cleanup comments

* disable the tests for bookmarks for now

* Ensure we send previosu events

* lint

* re-introduce the cache

* load from cache

* disabling legacy test

* disabling legacy test

* Update pkg/storage/unified/resource/server.go

Co-authored-by: Diego Augusto Molina <diegoaugustomolina@gmail.com>

* Could not read previous events

* add proper migration

* Add previous_resource_version to both history and resource

* First event should have an RV of 2 and not 1

* Test both storage backends

* fix the inital RV for the sql backend

* ensure graceful stop of the stream decoder

* gocyclo

---------

Co-authored-by: Diego Augusto Molina <diegoaugustomolina@gmail.com>
This commit is contained in:
Georges Chaudy
2024-09-30 13:14:07 +02:00
committed by GitHub
parent e1146120f4
commit 0a26c9e9ae
28 changed files with 475 additions and 699 deletions

View File

@@ -70,6 +70,7 @@ func (r sqlResourceRequest) Validate() error {
type historyPollResponse struct {
Key resource.ResourceKey
ResourceVersion int64
PreviousRV int64
Value []byte
Action int
}
@@ -101,6 +102,7 @@ func (r *sqlResourceHistoryPollRequest) Results() (*historyPollResponse, error)
Name: r.Response.Key.Name,
},
ResourceVersion: r.Response.ResourceVersion,
PreviousRV: r.Response.PreviousRV,
Value: r.Response.Value,
Action: r.Response.Action,
}, nil