node.js powers comet for Asia's largest microblog

206 views
Skip to first unread message

amix

unread,
Jan 30, 2010, 8:18:41 AM1/30/10
to nodejs
Hi guys

I want to announce that node.js powers Plurk's new comet system. Plurk
is one of Asia's largest micro-blogs with millions of users.

We have rewritten to node.js from Java+JBoss Netty, because the old
solution had scalability problems. We have also been able to build a
very sophisticated messaging system given JavaScript expressiveness
and the simplicity of node.js. Generally, we have found node.js and V8
_very_ impressive - - and it uses about 10 times _less_ memory than
Java+Netty did.

Stats of this system:
* hundred thousands of online users at once
* huge amount of usage - to this day our users have posted over 1
billion unique messages
* uses only one server (a quad core with 32GB of RAM, but node.js uses
only a few GB)

I will probably wrap these up in a more detailed post in the future.

More info can be read here (along with links on comet related articles
that I have shared):
http://amix.dk/blog/post/19490#Plurk-Instant-conversations-using-comet

Like I announced here before I held a presentation on comet with
node.js and V8 to the Taipei Open Source group, it can be viewed here:
http://amix.dk/blog/post/19484

We may release our comet implementation in the future - but currently
it's very tied up to Plurk's architecture.

Kind regards,
amix - lead dev of Plurk

Marak Squires

unread,
Jan 30, 2010, 8:38:17 AM1/30/10
to nod...@googlegroups.com
woot!


--
You received this message because you are subscribed to the Google Groups "nodejs" group.
To post to this group, send email to nod...@googlegroups.com.
To unsubscribe from this group, send email to nodejs+un...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/nodejs?hl=en.


Sotonin

unread,
Jan 30, 2010, 11:27:18 AM1/30/10
to nod...@googlegroups.com
very impressive. I was just waiting for a big corporation / website to adopt node in a real world situation!

I am very amazed that you are able to support that much traffic on a single machine.

Kevin

András Bártházi

unread,
Jan 30, 2010, 11:32:02 AM1/30/10
to nod...@googlegroups.com
Hi,

> I want to announce that node.js powers Plurk's new comet system. Plurk
> is one of Asia's largest micro-blogs with millions of users.

Nice! Is it a public information what backend database are you using
for storing the messages? I guess it's not just in the memory of node.
:)

Bye,
Andras

amix

unread,
Jan 30, 2010, 1:34:10 PM1/30/10
to nodejs
Hi again guys

I have answered some questions here which have a relation to this:
http://news.ycombinator.com/item?id=1088699

Kind regards,
amix

amix

unread,
Jan 30, 2010, 1:42:31 PM1/30/10
to nodejs
Node in-memory in combination with some custom databases such as
Plurk's LightCloud ( http://opensource.plurk.com/LightCloud/ ), which
runs on Tokyo Tryant.

Kind regards,
amix

Chris Winberry

unread,
Jan 30, 2010, 2:01:57 PM1/30/10
to nod...@googlegroups.com
Very nice! What did you have to do to keep 200k+ connections open or
are you running multiple instances on the one server?

> --
> You received this message because you are subscribed to the Google Groups
> "nodejs" group.
> To post to this group, send email to nod...@googlegroups.com.
> To unsubscribe from this group, send email to
> nodejs+un...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en.
>
>

--
Sent from my mobile device

amix

unread,
Feb 1, 2010, 12:44:09 AM2/1/10
to nodejs
Running node.js multiple instances on one server.

The thing to note thought is that it's not that hard to keep many
connections open if they are inactive most of the time.
A more serious scalability problem is to have 200k+ _active_
connections at once (active defined as you are writing data to them
most of the time)... Luckily we don't have this problem ;-)

Kind regards,
amix

Felix Geisendörfer

unread,
Feb 1, 2010, 3:25:39 AM2/1/10
to nodejs
> A more serious scalability problem is to have 200k+ _active_
> connections at once (active defined as you are writing data to them

I have done some benchmarks along this lines. i.e. if you have 10k
open connections, how long does it take to send each client a message?

You'll find that at 10k connections it can take up to 1.5sec to get
the message to the last client:

https://gist.github.com/73631cd1ffaa957e017a

I'll publish more in-depth analysis after net2 is merged.

HTH,
-- fg

Reply all
Reply to author
Forward
0 new messages