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 _______________________________________________