"Give me the 100 most recent messages" / syncing channel posts in buddycloud
buddycloud.com
buddycloud.com
Even a poor estimate will reduce the amount of data you have to shuffle around a lot. Just a simple moving average of the last 5 posts would give great results.
something like
for(Channel c : channels)
{
messages = c.requestLastNMessages(estimateForChannel(c))
c.messagesPerHour = requestsPerHour(messages)
totalMessagesPerHour += c.messagesPerHour
}
for(Channel c : channels)
{
updateEstimate(c, Math.max(5,c.messagesPerHour/totalMessagesPerHour))
}
I think you want to keep the moving average in case something bad happens. a buddy might update once a week, but after an accident or something, might update very quickly. you'll want to track that.