Log in

No account? Create an account
DJabberd Status Update - brad's life [entries|archive|friends|userinfo]
Brad Fitzpatrick

[ website | bradfitz.com ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

DJabberd Status Update [Mar. 17th, 2006|12:11 am]
Brad Fitzpatrick
[Tags|, , ]

With this commit to DJabberd, Artur and I finished s2s support, both in/out, with all the hook chains, filtering, switching, delivery, etc.

Artur was on my server, I was on jabber.org, and we chatted. OMG LOL.

Next up:
-- fix some lingering SSL bugs for some clients. easy, but boring.
-- presence. not done at all.
-- cleanup roster, roster pushes, etc, etc. very basic support now.
-- clean up auth. add SASL.


Anybody care to start hacking on this with us, now that it's starting to become useful? mart?

From: (Anonymous)
2006-03-17 04:19 pm (UTC)

Are there any guidelines or docs?


(btw, my first try to post this was using a typekey as an openID source and it gave errors on every try)

I've read the code, and I get most of it now, but writing the roster stuff, for example, requires thinking about the storage of the roster itself. Do we use flat files? mysql? Mogilefs?

Or should we just write something and latter after we know the problems we will be facing, we come back and see how to make it all work?

BTW, you plan to stick with CVS, right? is there a mailing list for commits or something like that, to keep track of the djabberd commits?


(Reply) (Thread)
[User Picture]From: brad
2006-03-17 05:48 pm (UTC)

Re: Are there any guidelines or docs?

Hi Melo,

And yes... looks like OpenID is broken. I see what it is. Sorry, we'll fix that.

Roster stuff:
-- the API in DJabberd isn't done. Quick hack only.
-- we need to separate out the XML parsing from the pure non-XML roster API
-- there should be many roster storage plugins... SQLite, MySQL, Pg, etc. And then LiveJournal will have one that has the same API but just does RPC to LJ.

But honestly I don't know what the Roster API will look like because I haven't read the XMPP-IM spec fully yet... just skimmed.

We hate CVS. Move to SVN/SVK is imminent. We'll probably move one module at a time, and starting with DJabberd.

I'll setup a mailing list for discussion and commits. I'd rather use Jabber for discussion than IRC, just to eat our own dogfood.

I'll post more to my journal when I have some of the above implemented.
(Reply) (Parent) (Thread)
[User Picture]From: visions
2006-03-21 03:20 pm (UTC)

Re: Are there any guidelines or docs?

Are you planning on using SVK for aggregation of your repo's or for something else? I checked it out at one point, but then just went with svn instead.

I am curious to hear your thoughts on them.
(Reply) (Parent) (Thread)
[User Picture]From: graceadieu
2006-03-17 04:41 pm (UTC)


Happy Saint Patrick's Day!
(Reply) (Thread)
[User Picture]From: bsdguru
2006-03-17 06:30 pm (UTC)

Re: :)

You mean Fitspatricks day ;)
(Reply) (Parent) (Thread)
From: ex_goryache
2006-03-18 10:40 am (UTC)
Hi, Brad.

How many concurrent users your server is going to handle?
(Reply) (Thread)
[User Picture]From: brad
2006-03-18 07:17 pm (UTC)
I can't give an accurate number now. However, given that:

-- The incremental memory cost of new connections is very small since it's event-based, not thread-based,

-- the cost of additional idle connections is zero with epoll and kqueue (both of which it supports, on Linux/FreeBSD respectively),

-- Jabber connections are primarily idle. (compared to, say, HTTP, where somebody's always doing something....)

-- we've seen Perlbal (our HTTP load balancer) do 10s of thousands of connections using the same base framework

I wouldn't be surprised to see DJabberd handle 20,- 30,000 connections without a problem, as long as the underlying operating system could handle it (Linux 2.6, enough memory, etc....), possibly a bunch more on nice hardware.

However, I don't want a single box handling all connections, because eventually we want 2 million connections, so DJabberd is being designed to work in a whole farm representing a single domain.

Also, I'm sure there will be some CPU profiling to do initially, and a few things that'll benefit from being written in C, but most the hard work is already being done in C.
(Reply) (Parent) (Thread)
[User Picture]From: ghewgill
2006-03-19 05:26 am (UTC)
You know, with an lj-based jabber server you'll be able to indicate jabber presence on userinfo pages, as long as the user agrees to share their presence with the lj jabber monitor. I can think of all kinds of potential applications for an xmpp server, things like friends page update notifications or comment post notifications. I'm looking forward to having this sort of thing available.
(Reply) (Thread)
[User Picture]From: brad
2006-03-19 08:38 am (UTC)
We have a huge growing list of ways we want to integrate it. It's going to get crazy... I can't wait.
(Reply) (Parent) (Thread)