Mnesia and Oracle
Fri Aug 11 20:21:53 CEST 2006
I'm going to have to agree with everything everyone says here about
non-reliable LANs. The other thing you should be aware is a "LAN" is
much much bigger than you might first think. Lets say this is a large
company datacenter with like thousands of machines, and dozens of
networks with switches and the like. If you have multiple data
centers, that .1ms ping link between them - is that LAN or WAN? What
happens when the central switch goes down?
Packet loss in the modern datacenter is a major problem and happens at
depressingly regular intervals.
On 8/11/06, Valentin Micic <valentin@REDACTED> wrote:
> Thank you, Matthias. There is a lot of greek mithology when it comes to
> networking in this part of the world (South Africa).
> We're doiing our best to overcome them, but it's not always easy ;-).
> ----- Original Message -----
> From: "Matthias Lang" <matthias@REDACTED>
> To: "Valentin Micic" <valentin@REDACTED>
> Cc: <erlang-questions@REDACTED>
> Sent: Friday, August 11, 2006 8:33 AM
> Subject: Re: Mnesia and Oracle
> > Valentin Micic writes:
> > > well these guys, for whatever reason, like to change the
> > > settings for the port -- thus, auto_negotiate flag that was set to
> > > false,
> > > end up being true, what used to be full duplex ends up being half... and
> > > as
> > > the traffic volume picks up, so do the error/collisions etc.
> > The problem you're describing is so pernicious that I can't resist
> > expanding on what's going on, even though it's only tenuously related
> > to Erlang.
> > Consider what happens on one cable in a switched ethernet. Assume the
> > cable goes from a server to a switch:
> > Switch set to Server set to Result
> > ----------------------------------------------------------------------
> > Autonegotiate Autonegotiate Both ends full duplex,
> > no collisions, perfect.
> > No autoneg. Autonegotiate Both ends half duplex,
> > half duplex Normal collisions. Good.
> > No autoneg. Autonegotiate Switch uses full duplex.
> > full duplex Server uses half duplex.
> > Hilarity ensues.
> > A collision, in spite of the name, is a normal thing that happens on
> > half-duplex ethernets. On a normal switched network, the effect on
> > performance is small and well-behaved.
> > But the third case above is special. It has one end of the wire using
> > "half duplex" rules and the other end using "full duplex" rules. The
> > "full duplex" end neither detects nor attempts to avoid collisions. At
> > the same time, the "half duplex" end *does* detect
> > collisions. Consider what happens during a collision:
> > 1. Switch transmits packet A to server.
> > 2. (overlaps with 1). Server transmits packet B to switch.
> > 3. In the switch's world, there is no collision. No further action taken.
> > 4. In the server's world, there was a collision.
> > Server aborts packet B by sending a 'jam' sequence.
> > Server discards packet A.
> > 5. Server retransmits packet B.
> > Note that packet A was discarded and never retransmitted. So suddenly
> > you have a LAN that loses packets. And the more traffic there is, the
> > more packets it loses. Lost packets wreak absolute havoc on TCP
> > throughput.
> > Matthias
More information about the erlang-questions