Push/Pull

The web is mostly pull. For example last night when I was attempting to get a price match from a vendor via their online web based chat, the silly thing was designed to poll every 2 seconds; checking to see if they had added anything to the discussion. It didn’t work very well.

Lots of different words for the push/pull distinction. In programming languages folks talk abut lazy evaluation which is a kind of pull – rarely you even hear people talk about both eager and lazy evaluation. In rule based expert systems people talk about forward chaining and backward chaining.

Instant messaging is possibly the only major protocol that works with push; though email comes close.

Protocols are only half the issue of course. The arcs in the distributed data graph. The nodes are the other half; and there we find what in AI circles is called the “truth maintenance” problem. In source control circles (and some expert systems crowds) this is call conflict resolution. For example if two developers make conflicting changes to the shared code base then at some point that conflict will be pushed or pulled into view.

One thing I’d not seen exactly until today is how pull makes one presumption about how the conflict will spread. In a pull system the conflict sits until each of the distributed parties decides to accept the conflict for resolution. In push the conflict is dropped into the lap of the distribute party and he’s expected to juggle the resulting mess until it’s cleared up.

Systems with push or pull make differing assumptions about how the conflict resolution will get framed. Which I found interesting because in some discussions about push v.s. pull the discussion is framed more around which will be more thrifty about bandwidth or latency.

All this was triggered by thinking about Jabber and Growl (which is entirely Ted’ fault). At least in the data space things like Jabber help you get problems dropped faster into the laps of clients. It maybe that there really isn’t that much demand from clients for that; or it maybe that after you find willing clients for that kind of functionality they almost immediately run in the amazingly hard problems that all truth maintenance and conflict resolution systems encounter.

Well, that was fun, now I’ll go back to seeing if I can empty my email inbox.

Leave a Reply

Your email address will not be published.