[erlang-questions] Unicast 40k messages, $1000 bounty

88 views
Skip to first unread message

Joel Reymont

unread,
Jul 17, 2009, 10:01:05 AM7/17/09
to Erlang Users' List
The last bounty was claimed by Cliff Moon but I'm not entirely
satisfied since getting under 1 second requires sending directly to
the socket. As discussed in the 20k thread, this can cause the
broadcasting loop to block on slow clients.

The new challenge is to broadcast to 40k clients in under 1s on Amazon
EC2 (small server instance) using a middleman. Same $1000 bounty.

Thanks, Joel

---
Mac hacker with a performance bent
http://www.linkedin.com/in/joelreymont


________________________________________________________________
erlang-questions mailing list. See http://www.erlang.org/faq.html
erlang-questions (at) erlang.org

Joel Reymont

unread,
Jul 17, 2009, 10:23:17 AM7/17/09
to Erlang Users' List
Just to clarify, this is a new 1K bounty,
in addition to the one that goes to Cliff.

On Jul 17, 2009, at 3:01 PM, Joel Reymont wrote:

> The last bounty was claimed by Cliff Moon but I'm not entirely
> satisfied since getting under 1 second requires sending directly to
> the socket. As discussed in the 20k thread, this can cause the
> broadcasting loop to block on slow clients.
>
> The new challenge is to broadcast to 40k clients in under 1s on
> Amazon EC2 (small server instance) using a middleman. Same $1000
> bounty.

---

Joel Reymont

unread,
Jul 18, 2009, 2:14:51 AM7/18/09
to Erlang Users' List
Folks,

Janus has been renamed to Hot Wheels and now lives at http://github.com/wagerlabs/hotwheels/tree/master
.

The goal is still to get a broadcast to 40k users in < 1s.

I'm making several protocol changes, e.g. {packet, 2}
and moving away from JSON to a simple protocol where
every packet has a 12 byte timestamp to measure latency,
1 byte for message type (1 = subscribe, 2 = unsubscribe),
and size + body for topic, event, etc.

Thanks, Joel

Feng Yu

unread,
Nov 4, 2009, 4:56:06 AM11/4/09
to Joel Reymont, Erlang Users' List
hi all,
I achieve the goal with my patched otp R13B02-1.
Server:
#taskset -c 1 /usr/src/xxx/bin/erl -pa ebin mochiweb/ebin -boot start_sasl
+A 8 +K true +P 1200000 -hotwheels cluster -hotwheels listen_port 8081
-name hotwheels@`hostname`s hotwheels start
publish,info: [{memory,757453},
{owner,<0.84.0>},
{heir,none},
{name,subs},
{size,50000},
{node,'hotwheels@nd-desktop'},
{named_table,false},
{type,set},
{keypos,1},
{protection,protected}]
cost time: 871.379

Client:
#taskset -c 0 /usr/src/xxx/bin/erl -boot start_sasl -pa ebin mochiweb/ebin
+A 8 +K true +P 1200000 -hotwheels cluster -hotwheels listen_port 8081
-name debug
(de...@nd-desktop.localdomain)8> bot:test(flashbot,50000).
setup connection...
setup done

=INFO REPORT==== 4-Nov-2009::17:41:32 ===
setup: 5843.08ms, good: 50000, bad: 0, total run: 8593.22ms
0.0510ms | min
500.0000ms | 15943 - 31.89%
1000.0000ms | 16949 - 33.90%
1500.0000ms | 17108 - 34.22%
1349.0090ms | max
ok

My machine hardware:

root@nd-desktop:/proc/sys/net/ipv4# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Pentium(R) Dual-Core CPU E5200 @ 2.50GHz
stepping : 6
cpu MHz : 1200.000
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc
arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm
lahf_lm
bogomips : 4986.70
clflush size : 64
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Pentium(R) Dual-Core CPU E5200 @ 2.50GHz
stepping : 6
cpu MHz : 1200.000
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc
arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm
lahf_lm
bogomips : 4987.44
clflush size : 64
power management:

Os:
# uname -a
Linux nd-desktop 2.6.31-14-generic #3 SMP Sun Nov 1 23:03:10 CST 2009 i686
GNU/Linux

专注 高性能容错分布式服务器的研究和实现
http://blog.yufeng.info

litao cheng

unread,
Nov 4, 2009, 5:20:12 AM11/4/09
to Erlang Users' List
wow, so cool, can you give me your OTP R13B02-1 patches ?
thanks!

2009/11/4 Feng Yu <mryu...@gmail.com>

Reply all
Reply to author
Forward
0 new messages