James M Snell wrote:
If I understand Bob's solution correctly, it goes something like:
1) wake up
2) scratch whatever you need to scratch
3) turn on computer, launch feed reader
4) feed reader does some RFC3229+feed magic to catch up on what happened during the night 5) feed reader opens a XMPP connection to receive the active stream of new entries
This is precisely what I was describing and it is what we implement in the PubSub Sidebar clients. This hybrid combination gives you the best of both worlds. The result is the lowest possible bandwidth consumption as well as the lowest latency in delivering content to clients. The Push+Pull approach is particularly well suited to the kind of high volume application that James Snell describes -- particularly if the server has a large number of readers. While I've previously pointed out the benefit to the network (efficient utilization of bandwidth) and to clients (low latency), it is important to point out that the Push model offers real benefits for the server as well. In extremely high volume applications, it is important that the server be able to control and smooth load. Server based load control is most easily accomplished with a Push system. In a Pull based system, load is almost totally dependent on client-driven scheduling and thus load tends to be very bursty. Bursty load is the worst possible thing to have in a network-based system. In Push based systems, the server is able to eliminate load bursts by spreading delivery of entries over time -- without worrying about the need to service bursty client requests within the window of their request time-out limits. Even though there are all sorts of advantages to using Push-based and hybrid Push+Pull systems, the reality is that only a tiny percentage of all the millions of servers that support Atom feeds will have sufficient traffic or readership to benefit from these methods. As Joe Gregario suggests in his recent note: "99.99% of all syndication is done via HTTP" and this will probably remain the case in terms of a raw census of servers. However, it is also clear we are seeing significant growth in the use of feed aggregators like PubSub, FeedBurner and the other blog search and monitoring services. Also, we are seeing an increase in the use of feed-readers on mobile devices which require that feeds be consolidated and fed through proxies in order to reduce the amount of polling and other processing done by those mobile devices. As the use of these services increases, it will make sense for client developers to implement client-based support for Push+Pull and thus provide to their users the benefits of reduced bandwidth, reduced session management, and reduced latency. Broad client-based support makes sense even if similarly broad server-based support does not.

       bob wyman


Reply via email to