machi/edoc/machi_flu1.html

64 lines
3.2 KiB
HTML
Raw Normal View History

<!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_flu1</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_flu1</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>The Machi FLU file server + file location sequencer.
<h2><a name="description">Description</a></h2><p>The Machi FLU file server + file location sequencer.</p>
<p>This module implements only the Machi FLU file server and its
implicit sequencer.
Please see the EDoc "Overview" for details about the FLU as a
primitive file server process vs. the larger Machi design of a FLU
as a sequencer + file server + chain manager group of processes.</p>
<p>For the moment, this module also implements a rudimentary TCP-based
protocol as the sole supported access method to the server,
sequencer, and projection store. Conceptually, those three
services are independent and ought to have their own protocols. As
a practical matter, there is no need for wire protocol
compatibility. Furthermore, from the perspective of failure
detection, it is very convenient that all three FLU-related
services are accessed using the same single TCP port.</p>
<p>The FLU is named after the CORFU server "FLU" or "FLash Unit" server.</p>
TODO There is one major missing feature in this FLU implementation:
there is no "write-once" enforcement for any position in a Machi
file. At the moment, we rely on correct behavior of the client
&amp; the sequencer to avoid overwriting data. In the Real World,
however, all Machi file data is supposed to be exactly write-once
to avoid problems with bugs, wire protocol corruption, malicious
clients, etc.
<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="#start_link-1">start_link/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#stop-1">stop/1</a></td><td></td></tr>
</table>
<h2><a name="functions">Function Details</a></h2>
<h3 class="function"><a name="start_link-1">start_link/1</a></h3>
<div class="spec">
<p><tt>start_link(Rest) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="stop-1">stop/1</a></h3>
<div class="spec">
<p><tt>stop(Pid) -&gt; 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, Apr 8 2015, 17:31:11.</i></p>
</body>
</html>