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
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.
---
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
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
2009/11/4 Feng Yu <mryu...@gmail.com>