Mnesia and Oracle

Ryan Rawson ryanobjc@REDACTED
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.

-ryan

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 ;-).
>
> V.
>
> ----- 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 mailing list