Every
proxy can
listen for
peer connections.
If there are
mutiple proxies
running on
one server,
each proxy
should listen
on different
ports for
example, 1000,
2000, 3000.
The Load Balancer
initates peer
connections
with source
ports that
are between
the port it
is listening
to and another
port number
that is 1000
greater. Peer
connections
are intiated
between port
numbers (n)000
and (n+1)000,
e.g. 1000
and 2000.
When
a peer receives
a connection,
it looks at
the 1000's
part of the
soruce port
to figure
out which
peer connected
to it. Any
server can
request connections
to others.
It will keep
trying periodically
until a connection
is established.
When
the Load Balancer
first comes
up, the number
of synchronized
records is
computed by
on both sides
and then,
each side
sends this
number to
its peer.
As well, any
time there
is a change
to the information
base, the
change is
sent to all
peers that
are currently
on-line. This
includes changes
learned through
peering so
the the
information
floods.
The
information
is all marked
with a timestamp
of when it
was first
created. This
requires loose
time syncornization
between the
machines.
NTP (Network
Time Protocol)
is assumed.
Conflicts
are resolved
by giving
precidence
to the latest
modification.
Synchronized
data is transmitted
in blocks
between peers
to minimize
the impact
on performance. |