Mnesia and Oracle

Valentin Micic valentin@REDACTED
Fri Aug 11 10:48:48 CEST 2006


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