On 24 Oct 2017, at 08:01, Evgeny Khramtsov <xramt...@gmail.com> wrote:
> 
> Mon, 23 Oct 2017 10:11:54 +0100
> Kevin Smith <kevin.sm...@isode.com> wrote:
> 
>> bin it and trust the new value
> 
> No. Let's imagine a situation: a cluster with 2 nodes, there is a
> transient partition between them. During this partition period, a client
> connects to different nodes with the *same* resource. When the cluster
> gets connected again you cannot just simply replace local session-id
> with remote session-id in your session table, you most likely need to
> apply last-write-wins strategy (or similar) and then kick the older
> resource.

You’re describing exactly the problem that the split-resource approach we’re 
talking about avoids. If you have nodes choose node-specific resources for the 
clients, it’s not possible for there to be a collision when the cluster merges 
after a partition.

You always need some mechanism for a node to know what all the resources of a 
JID is (by RPC, or by a global lookup table), but by having per-node resources, 
you can avoid conflicts in such a lookup table, and avoid needing a global lock 
during resource assignment.

/K

_______________________________________________
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
_______________________________________________

Reply via email to