Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > contrib > by-pkgid > 211238da6d926d1ca4390483bb29f586 > files > 98

coda-doc-5.2.0-4mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE> Venus Data Structures: Comms</TITLE>
 <LINK HREF="venus-ds-6.html" REL=next>
 <LINK HREF="venus-ds-4.html" REL=previous>
 <LINK HREF="venus-ds.html#toc5" REL=contents>
</HEAD>
<BODY>
<A HREF="venus-ds-6.html">Next</A>
<A HREF="venus-ds-4.html">Previous</A>
<A HREF="venus-ds.html#toc5">Contents</A>
<HR>
<H2><A NAME="s5">5. Comms</A></H2>

<P>
<P>The file comm.h contains definitions for the datastructures for
communication.  Key structures map the id's of replicated volumes to
servers, and volume storage groups to hosts. Currently this is hacked
into venusvol.cc; it would be better to make an rpc for this
information.
<P>First there is an umbrella structure:
<UL>
<LI>VSGDB -- VSG database       (persistent)</LI>
<LI>    contains vsgents</LI>
</UL>
<P>Entries are:
<UL>
<LI>vsgent -- VSG entry (persistent)</LI>
<LI>    maps VSG address to list of hosts</LI>
</UL>
<P>The transient structures holding connection information are stored in
connent structures. These document single connections between clients
and servers.
<P>
<UL>
<LI>connent -- connection entry (transient)</LI>
<LI>    host</LI>
<LI>    uid</LI>
<LI>    RPC2 conn id</LI>
<LI>    flags (authenticated connection? inuse? etc.)</LI>
</UL>
<P>Servers are held in srvent's.
<P>
<UL>
<LI>srvent -- server entry      (transient)</LI>
<LI>    name</LI>
<LI>    host</LI>
<LI>    RPC2 conn id (for callback connection)
tests for up/down rolled on this field</LI>
<LI>    bandwidth estimate</LI>
<LI>    flags (binding? need to probe?, etc.)</LI>
</UL>
<P>The data describing multirpc connections is held in mgrpent's:
<P>
<UL>
<LI>mgrpent -- multirpc connection entry        (transient)</LI>
<LI>    vsgaddr (should be link to vsgent?)</LI>
<LI>    uid</LI>
<LI>    hosts</LI>
<LI>    flags (authenticated? in use? etc.)</LI>
<LI>    RepOpCommCtxt
<UL>
<LI>RepOpCommCtxt -- replicated operation communication context (transient)</LI>
<LI>    number of servers</LI>
<LI>    list of conn ids</LI>
<LI>    list of hosts (actually participating in RPC)</LI>
<LI>    list of return codes</LI>
<LI>    primary host</LI>
<LI>    flags (per host)</LI>
</UL>
</LI>
</UL>
<P>The primary host should be used for load balancing. Currently the
algorithm is not satisfactory. The primary host is also (?) held in
the fso status block.
<P>
<HR>
<A HREF="venus-ds-6.html">Next</A>
<A HREF="venus-ds-4.html">Previous</A>
<A HREF="venus-ds.html#toc5">Contents</A>
</BODY>
</HTML>