Ethernet The Occasional Outsider
coondoggie writes to mention an article at NetworkWorld about the outsider status of Ethernet in some high-speed data centers. From the article: "The latency of store-and-forward Ethernet technology is imperceptible for most LAN users -- in the low 100-millisec range. But in data centers, where CPUs may be sharing data in memory across different connected machines, the smallest hiccups can fail a process or botch data results. 'When you get into application-layer clustering, milliseconds of latency can have an impact on performance,' Garrison says. This forced many data center network designers to look beyond Ethernet for connectivity options."
I don't think I need to read anymore, well, I did verify that the number really appears in the article.
This author does not understand the subject material.
(I suppose you could deliberatly overload a switch enough to get this number, maybe, but that would be silly, and your switch would need 1.25Mbytes of packet cache.)
"(By comparison, latency in standard Ethernet gear is measured in milliseconds, or one-millionth of a second, rather than nanoseconds, which are one-billionth of a second)"
That would be one-thousandth, not millionth (aka micro second). Not a good start...
There are only TWO reasons to use Store & Forward.
#1. You're running different speeds on the same switch (why?).
#2. You really want to cut down on broadcast storms (just fix the real problem, okay?)
Other than that, go for the speed! Full duplex!
For some people, that's cheap. If not, sorry.
The Internet has no garbage collection
On a Force10 switch, with 2 nodes on the same blade:
tg-c844:~ # ping tg-c845
PING tg-c845.ncsa.teragrid.org (141.142.57.161) from 141.142.57.160 : 56(84) bytes of data.
64 bytes from tg-c845.ncsa.teragrid.org (141.142.57.161): icmp_seq=1 ttl=64 time=0.148 ms
64 bytes from tg-c845.ncsa.teragrid.org (141.142.57.161): icmp_seq=2 ttl=64 time=0.146 ms
64 bytes from tg-c845.ncsa.teragrid.org (141.142.57.161): icmp_seq=3 ttl=64 time=0.145 ms
64 bytes from tg-c845.ncsa.teragrid.org (141.142.57.161): icmp_seq=4 ttl=64 time=0.144 ms
The same nodes using a myrinet connection:
tg-c844:~ # ping tg-c845-myri0
PING tg-c845-myri0.ncsa.teragrid.org (172.22.57.161) from 172.22.57.160 : 56(84) bytes of data.
64 bytes from tg-c845-myri0.ncsa.teragrid.org (172.22.57.161): icmp_seq=1 ttl=64 time=0.051 ms
64 bytes from tg-c845-myri0.ncsa.teragrid.org (172.22.57.161): icmp_seq=2 ttl=64 time=0.044 ms
64 bytes from tg-c845-myri0.ncsa.teragrid.org (172.22.57.161): icmp_seq=3 ttl=64 time=0.044 ms
64 bytes from tg-c845-myri0.ncsa.teragrid.org (172.22.57.161): icmp_seq=4 ttl=64 time=0.043 ms
The latency gets below 10 usec with the use of special drivers, this is just using the 2.4 Linux tcp stack. What's even scarier about the Myrinet is that I can have all 900+ machines talking at the same time with no drop in latency- we have that network spec'd for full bisection bandwidth. Try that on 900 nodes on a gige network, let alone a 100baseT.
As was mentioned here earlier, ethernet is nice for networks that change. Once you have a significant number of machines attached, and the number of switches and routers gets past 1, ethernet loses it's equivalence in latency.
The Internet has no garbage collection
I wonder what's happening to slashdot. That's as bad as technical news can get. Ethernet latency -- 100ms?? Typical Ethernet latencies are around a few hundred microseconds. Even the ping round-trip time from my machine to google.com is about 20ms.
$ ping google.com
PING google.com (64.233.167.99) 56(84) bytes of data.
64 bytes from 64.233.167.99: icmp_seq=1 ttl=241 time=20.1 ms
64 bytes from 64.233.167.99: icmp_seq=2 ttl=241 time=19.6 ms
64 bytes from 64.233.167.99: icmp_seq=3 ttl=241 time=19.5 ms
What a shame that such a post is on the front page of slashdot! Someone please s/milli/micro.
In the TOP500, it looks like ethernet is not yet an "outsider." Perhaps in the "top 100."
TO START
PRESS ANY KEY
Where's the 'ANY' key? I see Esk, Kitarl, and Pig-Up...
Most (all?) Ethernet hardware reads in an entire packet, looks at it, then sends it on to a destination. This makes building routers and switching hardware fairly easy but extremely slow.
If you go to a high-speed network, what you get is a packet being forwarded as it's being read. By the time the first few bits are through the switch, it should be able to figure out the next hop and have the packet moving in that direction. Phone companies have huge problems with the delays in Ethernet. This is why the ATM protocol was invented, it's hard to use, awkward and not too graceful, but it can fly through a switching network like nobody's business.
Ethernet is also extremely sloppy--Any switch along the way is allowed to throw a packet away and wait for the originator to resend causing a HUGE hiccupp in the communication stream (Most if not all routers do this whenever an address is not in it's forwarding table yet).
IIRC the faster protocols see a "Routing" packet in the stream and set up forwarding hardware before getting the actual packet/stream, then wait until the end of the packet (or entire stream) to tear the route down again.
Ethernet, however, due to it's simplicity is bridging the gaps. It's a pretty crappy protocol in general, but we keep throwing better, smarter hardware at it in an effort to brute-force it into the parameters we require. (I work for a company that makes Ethernet over fiber hardware, and have worked for companies based around ATM, SONET and other interesting solutions).
I guess the point of the article was to remind a world that is coming to believe that ethernet is the end-all be-all of networking that it was always just the simplest hack available and therefore the easiest to deal with.
Just like SNMP.