The vote servers exchange information in a fashion similar to the news servers. At regular intervals each vote server contacts its neighbors and offers to exchange packets of votes with them. Before contacting other vote servers, a server combines all the votes received from local users since the last information exchange into a single packet. The vote server then offers to send each neighbor the packet of new votes and any packets the server has recently received from other neighbors.
When a server receives a packet for the first time, the server combines the votes from the packet into the server's vote database. The server records the packet as having been accepted so the server will not accept the same packet twice. The server continues to store the packet however, so that the packet can be offered to the server's other neighbors. Once the server has offered the packet to all its neighbors, the packet will be deleted.
As a trivial implementation of this, the news system itself
can be used to exchange the votes. Consider two sites which wish to
exchange vote information. If these two sites do not already exchange
Net News, a simple change to their newsfeeds or sys file can
set up the news servers so that they exchange only one group, a new group
that will be created just for exchanging ratings. Another one line
addition to the newsfeeds or sys file can cause the news server
to hand off each article received in the votes group to a batcher
script which prepares the vote packets for input into the vote server. Since
the vote packets are processed and fed into the vote server as soon as they
are received, the expiration time on this votes group can be set to
the shortest possible time. Unlike the case described in
section , the votes group will be minimally
small as we are only co-opting the Net News system's transfer
mechanism, not its storage mechanism.
If a further reduction in network traffic is required, the system could again take advantage of the summarized nature of the exchanged votes and create a hierarchy of vote servers. In this arrangement, each vote server only sends votes to its parent node and the other children of the parent. The parent node would combine the summaries of its children to form a summary which represented all the nodes under the parent. This super-summary could then be transported up the tree in a repeat of the process.