Logs for jdev

Show join/part/nick changes:

[00:54:55] * Florob left the chat.
[02:12:45] * Tobias left the chat.
[02:12:49] * Tobias joined the chat.
[03:23:35] * ermine joined the chat.
[06:14:40] * McKael joined the chat.
[07:04:06] * Guus joined the chat.
[07:34:11] * ermine left the chat.
[07:39:36] * Guus left the chat.
[08:05:50] * Tobias left the chat.
[08:08:23] * Tobias joined the chat.
[09:37:23] * Tobias_ joined the chat.
[09:44:56] * Tobias left the chat.
[10:10:42] * Irdis joined the chat.
[10:19:07] * Irdis left the chat.
[10:21:57] * westsibe joined the chat.
[10:22:17] * westsibe left the chat.
[10:50:55] * Guus joined the chat.
[11:11:07] * Guus left the chat.
[11:22:47] * ermine joined the chat.
[12:36:05] * Flow joined the chat.
[13:08:32] * Tobias joined the chat.
[13:24:17] * Tobias__ joined the chat.
[13:24:49] * darkrain left the chat.
[13:25:08] * darkrain joined the chat.
[13:57:08] * Tobias___ joined the chat.
[14:10:05] * Tobias___ left the chat.
[14:11:57] * Tobias___ joined the chat.
[14:16:15] * Tobias___ left the chat.
[14:16:27] * Tobias___ joined the chat.
[15:46:16] * Flow left the chat.
[16:00:16] * Tobias___ left the chat.
[16:08:48] * Tobias___ joined the chat.
[16:12:12] * Tobias left the chat.
[16:12:12] * Tobias_ left the chat.
[16:12:12] * Tobias__ left the chat.
[16:47:02] * vincent_v joined the chat.
[17:47:06] * vincent_v left the chat.
[18:16:17] * Kartik Rustagi joined the chat.
[18:16:18] * Kartik Rustagi left the chat.
[18:17:01] * Kartik Rustagi joined the chat.
[18:18:58] <Kartik Rustagi> Hi, I have a question regarding how to scale XMPP. When number of connected users is more than what a single instance of your server can handle, you need to run multiple instances of your server. Say I have two instances of server running: s1 and s2. And user A is connected to s1 and user B is connected to s2. How does routing of message happen from A to B
[18:20:11] <Kartik Rustagi> ? What data-structures etc. are maintained on s1 to recognize that B is connected to s2. Is this problem of scalability handled by S2S or is S2S just for inter opp purpose?
[18:20:35] * bear left the chat.
[18:20:44] * bear joined the chat.
[18:21:22] <Tobias___> Kartik Rustagi, this is know as clustering among XMPP servers and is mostly implementation specific
[18:22:27] <Kartik Rustagi> Tobias___: Any pointers/doc/tutorials on popular implementation? Also is S2S not used for this purpose?
[18:23:00] <Tobias___> ejabberd and m-link support clustering for sure
[18:23:08] <Tobias___> openfire might too, don't remember
[18:23:19] <Tobias___> ejabberd and openfire are both open source
[18:23:27] <Kartik Rustagi> I am unable to find any leads on how to get started with this. I am trying to build a server from scratch. I sa
[18:25:13] <Tobias___> Kartik Rustagi, basically you are trying to have multiple instance serve a signle domain..and depending how you design it clients and servers can connect to any node
[18:26:06] <Tobias___> so basically you'd need to handle your internal routing, etc....or redirect servers/clients to the instance which is supposed to deal with it
[18:29:40] <Kartik Rustagi> I am focusing on C2S connections only. And this is how I assume client will initially broker the connection with running instances: http://xmpp.org/rfcs/rfc6120.html#tcp-resolution-prefer
[18:30:13] <Kartik Rustagi> right?
[18:30:28] <Kev> Correct.
[18:31:24] <Kev> And how many sessions you'll be able to support per host is entirely down to your code and use case.
[18:31:38] <Kev> Sorry, I misread, you didn't ask that.
[18:32:25] <Kev> But if you're looking for things that are going to be fairly highly scalable, it would seem to make sense to look at people who are already experienced in this area and their software, rather than trying to write your own.
[18:32:30] <Kartik Rustagi> The part I am confused about is if client A (connected to s1) sends a message to client B (connected to s2), so how will s1 transfer this message to s2 for final delivery. Is their a well defined (already tested and in production) way to do this?
[18:33:00] <Kev> If s1 and s2 are logically distinct services (that is - they are serving different domains) then this is defined in 6120, and uses S2S.
[18:33:08] <Kartik Rustagi> Yes, looking at ejabberd's clustering module is indeed what I will look at
[18:33:31] <Kev> If s1 and s2 are both cluster nodes within the same server then it's up to the server how it manages those data.
[18:33:33] <Kartik Rustagi> So s1 ans s2 are serving the same domain. I have them to handle load
[18:34:17] <Kev> I think ejabberd have rewritten the clustering to scale better in 3.0, although I don't think 3.0 is Free any more?
[18:35:08] <Kartik Rustagi> I do not have much knowledge on their code base, I am trying to write one in nodejs (don't ask why :))
[18:39:25] <Kev> Be aware that it's GPL, so you have licensing implications if you borrow from them.
[18:39:38] <Kev> (I think it is, anyway)
[18:41:58] <Kartik Rustagi> Will keep that in mind. Off to looking at ejabberd's source code. Thanks :)
[18:54:01] * ermine left the chat.
[19:02:09] <Link Mauve> You could also look at other softwares with the same problems and how they solve them, for example some database servers.
[19:02:50] <Kev> DB replication is somewhat easier, because it doesn't involve routing.
[19:04:18] <Link Mauve> True.
[19:20:16] * scippio left the chat.
[20:05:02] * jabberjocke left the chat.
[20:21:43] * Kartik Rustagi left the chat.
[20:34:21] * Kev_ joined the chat.
[21:17:32] * Tobias___ left the chat.
[22:07:34] * Tobias joined the chat.
[22:14:38] * scippio joined the chat.
[23:01:29] * Kev_ left the chat.