-
Notifications
You must be signed in to change notification settings - Fork 9.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
improve watch feature #3848
Comments
The first points have discussed with xiang. The fifth point was mentioned before, and i also list it here. let me know if you have any thoughts or want to reorganize the list. |
The internal go chan is not the real issue. The real issue is for server-client interaction. The client uses one stream per watcher, which means one stream per multiple watches. The client needs to have a way to figure out which watch the received event belong to.
I think we can try batched events in one watch response first. Another thing we need to add is cancellation. |
This adds more tests on functions that updates synced and unsynced in watchable store. Preparatory change for etcd-io#3848.
This adds more tests on functions that updates synced and unsynced in watchable store. Preparatory change for etcd-io#3848.
This adds more tests on functions that updates synced and unsynced in watchable store. Preparatory change for etcd-io#3848.
This adds more tests on functions that updates synced and unsynced in watchable store. Preparatory change for etcd-io#3848.
This adds more tests on functions that updates synced and unsynced in watchable store. Preparatory change for etcd-io#3848.
This adds more tests on functions that updates synced and unsynced in watchable store. Preparatory change for etcd-io#3848.
This adds more tests on functions that updates synced and unsynced in watchable store. Preparatory change for etcd-io#3848.
This adds more tests on functions that updates synced and unsynced in watchable store. Preparatory change for etcd-io#3848.
This adds more tests on functions that updates synced and unsynced in watchable store. Preparatory change for etcd-io#3848.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848 to batch RangeHistory for all watchings at once.
This is for etcd-io#3848. It replaces RangeHistory method for more efficient event sending.
This is for etcd-io#3848. It replaces RangeHistory method for more efficient event sending.
Related to coreos#3848. remove interface type assertion use interface, Revision in storage.WatchResponse use interface raftTimer, and revision from WatchResponse use EtcdServer to get raft terms, remove new header function fix deadlock add interface
Related to coreos#3848. remove interface type assertion use interface, Revision in storage.WatchResponse use interface raftTimer, and revision from WatchResponse use EtcdServer to get raft terms, remove new header function fix deadlock add interface
Related to coreos#3848. remove interface type assertion use interface, Revision in storage.WatchResponse use interface raftTimer, and revision from WatchResponse use EtcdServer to get raft terms, remove new header function fix deadlock add interface fix cluster, memberID
@xiang90 This feels out of date. Should we close this? |
@gyuho Actually we have not finished the last two. |
Ok got it. thanks. |
To-do list
problem: One watcher includes multiple watches, and their events are sent out through one channel. For the received event, user would like to know which watch it belongs to.
- [x] the way to return watched events in one txn: https://github.com//pull/4091
problem: the changes in one txn should be observed by users at the same time, or users may get half-state.
- [x] remove ongoing transaction: https://github.com//pull/3817
- [x] one watch ID for multiple events: https://github.com//pull/4122, https://github.com//pull/4120
- [ ] inefficiency of event distribution through watch
problem: when reading value and sending out event through gRPC, we now unmarshal it first, then marshal it to byte slice again to distribute each time. This is inefficient.
- [ ] add progress notification on watch
problem: user wants to know whether the watch is still working and how far it has gone.
The text was updated successfully, but these errors were encountered: