var chanBufLen …
var maxWatchersPerSync …
type watchable …
type watchableStore …
type cancelFunc …
func New(lg *zap.Logger, b backend.Backend, le lease.Lessor, cfg StoreConfig) WatchableKV { … }
func newWatchableStore(lg *zap.Logger, b backend.Backend, le lease.Lessor, cfg StoreConfig) *watchableStore { … }
func (s *watchableStore) Close() error { … }
func (s *watchableStore) NewWatchStream() WatchStream { … }
func (s *watchableStore) watch(key, end []byte, startRev int64, id WatchID, ch chan<- WatchResponse, fcs ...FilterFunc) (*watcher, cancelFunc) { … }
func (s *watchableStore) cancelWatcher(wa *watcher) { … }
func (s *watchableStore) Restore(b backend.Backend) error { … }
func (s *watchableStore) syncWatchersLoop() { … }
func (s *watchableStore) syncVictimsLoop() { … }
func (s *watchableStore) moveVictims() (moved int) { … }
func (s *watchableStore) syncWatchers() int { … }
func kvsToEvents(lg *zap.Logger, wg *watcherGroup, revs, vals [][]byte) (evs []mvccpb.Event) { … }
func (s *watchableStore) notify(rev int64, evs []mvccpb.Event) { … }
func (s *watchableStore) addVictim(victim watcherBatch) { … }
func (s *watchableStore) rev() int64 { … }
func (s *watchableStore) progress(w *watcher) { … }
func (s *watchableStore) progressAll(watchers map[WatchID]*watcher) bool { … }
func (s *watchableStore) progressIfSync(watchers map[WatchID]*watcher, responseWatchID WatchID) bool { … }
type watcher …
func (w *watcher) send(wr WatchResponse) bool { … }