Watch WithPrefix equivalent when replacing etcd with fdb

(Richard Lincoln) #1

What is the equivalent to calling Watch with the WithPrefix option argument when using fdb instead of etcd?

The fdb Watch function takes a single KeyConvertible.

I there a way the watch any key that has a particular prefix?


(Sam Pullara) #2

AFAIK, there isn’t a way to do this. What I have done in the past to implement behavior like this is to update another key, using an atomic increment, that represents the prefix whenever a transaction updates something with that prefix and then watch that other key. You would have to do something like this in a layer rather than a direct mapping from the etcd API to FDB api calls.

(David Scherer) #3

Until and unless range watches are implemented, the easiest approach is usually what Sam said: have a key at each “level” that you are interested in watching, and ensure that it is updated when anything “inside” is updated.

Other approaches are possible; for example, you could actually keep a table of range watches in an appropriate data structure in the database, check it on every potentially relevant write, and erase any range watch entries that are affected by a write. Then a watcher inserts an entry and watches for it to be removed.