[Standards] mobile optimizations

Pedro Melo melo at simplicidade.org
Thu Feb 28 10:57:46 UTC 2008


On Feb 28, 2008, at 9:50 AM, Dave Cridland wrote:
> On Wed Feb 27 18:19:13 2008, Alexander Gnauck wrote:
>> Dave Cridland wrote:
>>> 2) Client says "I have the roster as of this point in time".  
>>> Server says "Here's all the changes since then.".
>>> This is obviously the best option in terms of efficiency, but it,  
>>> too, has problems. The key issue is that roster entries won't die  
>>> - instead, they'll be maintained along with a timestamp when  
>>> deleted, in order that the server can tell a client it's gone.
>> yes I think the logic on the server will get very complicated.  
>> Util I have a mutual subscription to a contact the server updates  
>> the roster item several times(subscription=none,from or to,both  
>> +ask). This will be ~5 versions until the subscription is mutual.
> But that's fine. The server just stores a version number against  
> each entry - no need to remember what previous versions were. This  
> is also why remembering what got deleted is tricky, because you  
> break that simplicity.

Just keep the roster entry around, marked as deleted.

The cost really depends on how common roster deletion is, really.

Also you can keep a minimum version at the roster level. If a client  
sends a version below that, force a full sync. This way, you can,  
from time to time, clear old deleted entries, and increase the  
minimum version the MIN(version_id) of the resulting roster.

>>> I also have a fondness for modified strictly increasing  
>>> timestamps, but implementors need to appreciate that computer  
>>> clocks go backwards, so they need to remember to handle odd cases  
>>> like that by "letting time catch up" - just using a few ms later  
>>> than the last timestamp until the real time is greater than the  
>>> last timestamp.
>> for this reason I would prefer a versioning of the roster, so I  
>> client can just tell the server I have version 235241 of the  
>> roster, let me know if this is the current roster or send me the  
>> changes otherwise.
> As I said to Tony - just a fondness for modified strictly  
> increasing timestamps. I'd be happy with an otherwise meaningless  
> strictly increasing value.

I think the "always increasing" part is the most important feature.  
The rest can be left to the server authors.

Best regards,
Pedro Melo
Blog: http://www.simplicidade.org/notes/
XMPP ID: melo at simplicidade.org

More information about the Standards mailing list