112 lines
5.3 KiB
HTML
112 lines
5.3 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title>Module machi_flu_psup</title>
|
|
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="EDoc">
|
|
</head>
|
|
<body bgcolor="white">
|
|
<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div>
|
|
<hr>
|
|
|
|
<h1>Module machi_flu_psup</h1>
|
|
<ul class="index"><li><a href="#description">Description</a></li><li><a href="#index">Function Index</a></li><li><a href="#functions">Function Details</a></li></ul>Supervisor for Machi FLU servers and their related support
|
|
servers.
|
|
|
|
<p><b>Behaviours:</b> <a href="supervisor.html"><tt>supervisor</tt></a>.</p>
|
|
|
|
<h2><a name="description">Description</a></h2><p>Supervisor for Machi FLU servers and their related support
|
|
servers.</p>
|
|
|
|
<p>Our parent supervisor, <a href="machi_flu_sup.html"><code>machi_flu_sup</code></a>, is responsible for
|
|
managing FLUs as a single entity. However, the actual
|
|
implementation of a FLU includes three major Erlang processes (not
|
|
including support/worker procs): the FLU itself, the FLU's
|
|
projection store, and the FLU's local chain manager. This
|
|
supervisor is responsible for managing those three major services
|
|
as a single "package", to be started & stopped together.</p>
|
|
|
|
<p>The illustration below shows the OTP process supervision tree for
|
|
the Machi application. Two FLUs are running, called <code>a</code> and <code>b</code>.
|
|
The chain is configured for a third FLU, <code>c</code>, which is not running
|
|
at this time.</p>
|
|
|
|
<p><img src="/machi//images/supervisor-2flus.png"></p>
|
|
|
|
<ul>
|
|
<li> The FLU process itself is named <code>a</code>.
|
|
</li>
|
|
<li> The projection store process is named <code>a_pstore</code>.
|
|
</li>
|
|
<li> The chain manager process is named <code>a_chmgr</code>. The three
|
|
linked subprocesses are long-lived <a href="machi_proxy_flu1_client.html"><code>machi_proxy_flu1_client</code></a> processes for communicating to all
|
|
chain participants' projection stores (including the local
|
|
store <code>a_pstore</code>).
|
|
</li>
|
|
<li> A fourth major process, <code>a_listener</code>, which is responsible for
|
|
listening on a TCP socket and creating new connections.
|
|
Currently, each listener has two processes handling incoming
|
|
requests, one from each chain manager proxy.
|
|
</li>
|
|
<li> Note that the sub-supervisor parent of <code>a</code> and <code>a_listener</code> does
|
|
not have a registered name.
|
|
</li>
|
|
</ul>
|
|
<h2><a name="index">Function Index</a></h2>
|
|
<table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#init-1">init/1</a></td><td></td></tr>
|
|
<tr><td valign="top"><a href="#make_mgr_supname-1">make_mgr_supname/1</a></td><td></td></tr>
|
|
<tr><td valign="top"><a href="#make_p_regname-1">make_p_regname/1</a></td><td></td></tr>
|
|
<tr><td valign="top"><a href="#make_package_spec-4">make_package_spec/4</a></td><td></td></tr>
|
|
<tr><td valign="top"><a href="#make_proj_supname-1">make_proj_supname/1</a></td><td></td></tr>
|
|
<tr><td valign="top"><a href="#start_flu_package-4">start_flu_package/4</a></td><td></td></tr>
|
|
<tr><td valign="top"><a href="#start_link-4">start_link/4</a></td><td></td></tr>
|
|
<tr><td valign="top"><a href="#stop_flu_package-1">stop_flu_package/1</a></td><td></td></tr>
|
|
</table>
|
|
|
|
<h2><a name="functions">Function Details</a></h2>
|
|
|
|
<h3 class="function"><a name="init-1">init/1</a></h3>
|
|
<div class="spec">
|
|
<p><tt>init(X1) -> any()</tt></p>
|
|
</div>
|
|
|
|
<h3 class="function"><a name="make_mgr_supname-1">make_mgr_supname/1</a></h3>
|
|
<div class="spec">
|
|
<p><tt>make_mgr_supname(MgrName) -> any()</tt></p>
|
|
</div>
|
|
|
|
<h3 class="function"><a name="make_p_regname-1">make_p_regname/1</a></h3>
|
|
<div class="spec">
|
|
<p><tt>make_p_regname(FluName) -> any()</tt></p>
|
|
</div>
|
|
|
|
<h3 class="function"><a name="make_package_spec-4">make_package_spec/4</a></h3>
|
|
<div class="spec">
|
|
<p><tt>make_package_spec(FluName, TcpPort, DataDir, Props) -> any()</tt></p>
|
|
</div>
|
|
|
|
<h3 class="function"><a name="make_proj_supname-1">make_proj_supname/1</a></h3>
|
|
<div class="spec">
|
|
<p><tt>make_proj_supname(ProjName) -> any()</tt></p>
|
|
</div>
|
|
|
|
<h3 class="function"><a name="start_flu_package-4">start_flu_package/4</a></h3>
|
|
<div class="spec">
|
|
<p><tt>start_flu_package(FluName, TcpPort, DataDir, Props) -> any()</tt></p>
|
|
</div>
|
|
|
|
<h3 class="function"><a name="start_link-4">start_link/4</a></h3>
|
|
<div class="spec">
|
|
<p><tt>start_link(FluName, TcpPort, DataDir, Props) -> any()</tt></p>
|
|
</div>
|
|
|
|
<h3 class="function"><a name="stop_flu_package-1">stop_flu_package/1</a></h3>
|
|
<div class="spec">
|
|
<p><tt>stop_flu_package(FluName) -> any()</tt></p>
|
|
</div>
|
|
<hr>
|
|
|
|
<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div>
|
|
<p><i>Generated by EDoc, Jun 25 2015, 16:39:10.</i></p>
|
|
</body>
|
|
</html>
|