machi/edoc/machi_basho_bench_driver.html
2015-07-01 18:33:21 +09:00

64 lines
3.1 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_basho_bench_driver</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_basho_bench_driver</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>A simple basho_bench driver for Machi.
<h2><a name="description">Description</a></h2><p>A simple basho_bench driver for Machi</p>
<p>Basho_bench was originally developed to stress test key-value
stores (as was YCSB and several other mechmarking tools). A person
can consider the UNIX file system to be a key-value store and thus
use basho_bench to measure its performance under a certain
workload. Machi is a bit different than most KV stores in that the
client has no direct control over the keys -- Machi servers always
assign the keys. The schemes typically used by basho_bench &amp; YCSB
to use/mimic key naming conventions used internally ... are
difficult to adapt to Machi.</p>
<p>So, we'll try to manage key reading by using a common ETS table
that is populated with:</p>
<p>1. Key: <code>non_neg_integer()`
2. Value: The `{File,Offset,Size}` for a chunk previously written.
At startup time, basho_bench can use the `list_files</code> and
<code>checksum_list</code> API operations to fetch all of the
<code>{File,Offset,Size}` tuples that currently reside in the cluster.
Also, optionally (?), each new `append</code> operation by the b_b driver
could add new entries to this ETS table.</p>
Now we can use various integer-centric key generators that are
already bundled with basho_bench.
<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="#new-1">new/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#run-4">run/4</a></td><td></td></tr>
</table>
<h2><a name="functions">Function Details</a></h2>
<h3 class="function"><a name="new-1">new/1</a></h3>
<div class="spec">
<p><tt>new(Id) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="run-4">run/4</a></h3>
<div class="spec">
<p><tt>run(X1, KeyGen, ValueGen, M) -&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, Jul 1 2015, 18:32:19.</i></p>
</body>
</html>