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