On Fri, 22 Aug 2014, Gregory Farnum wrote: > On Thu, Aug 21, 2014 at 3:34 PM, Sage Weil <sweil@xxxxxxxxxx> wrote: > > Sam and Josh and I discussed the state of watch/notify a couple weeks > > back. Here are our notes: > > > > http://pad.ceph.com/p/watch-notify > > > > I've mapped most of these to tickets or bugs and noted them in the pad. > > > > Ignore the fact that these are in the v0.86 sprint currently; it's just > > easier to enter them that way. > > > > If there are other issues we're missing here, let's address them now. The > > API changes so far can be seen at > > > > https://github.com/ceph/ceph/commit/7ba30230505c6eede06cb2e2cb64210fdd4025a8 > > https://github.com/ceph/ceph/commit/d179dd970e52db8b0c07b20f69c9e3be6bc43f09 > > I'm not entirely up on how watch-notify is implemented right now > because it's been a bit of a mess, but this set of patches is a lot > smaller than I was expecting when I started hearing about reworking > it. The specific problem I remember remaining is: > 1) Notifiers can specify a timeout after which point the notify gets > completed regardless of the status of the watchers This is the error code patches. The notifier now gets -ETIMEDOUT. > 2) Watchers have a separate timeout (which is often larger) This is by design. I remember there was some suggestion that this was a problem, but when we talked a couple weeks back we couldn't figure out what it might be. The watch timeout is about client reconnects and failures. The notify timeout could be message or application dependent... it's just how long the notifier is willing to wait. > 3) There's no notification to either the watchers or the notifier if > the notify timeout is hit. The notifier gets the error. I opened tickets for the watcher to tell whether it may have missed notifies. The main change is that when a watch reconnects, it needs to be a different 'watch-reconnect' op so that the client (Objecter) gets an error code if the watch was disconnected (and therefore notifies may have been missed). sage -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html