-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>DHCP Performance Guide</title><link rel="stylesheet" type="text/css" href="bind10-guide.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><meta name="description" content="BIND 10 is a framework that features Domain Name System (DNS) suite and Dynamic Host Configuration Protocol (DHCP) servers with development managed by Internet Systems Consortium (ISC). This document describes various aspects of DHCP performance, measurements and tuning. It covers BIND 10 DHCP (codename Kea), existing ISC DHCP4 software, perfdhcp (a DHCP performance measurement tool) and other related topics."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" title="DHCP Performance Guide"><div class="titlepage"><div><div><h1 class="title"><a name="idp94064"></a>DHCP Performance Guide</h1></div><div><h2 class="subtitle">Various aspects of DHCP Performance in BIND 10</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Tomasz</span> <span class="surname">Mrugalski</span></h3></div></div><div><p class="releaseinfo">This is a companion document for BIND 10 version
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>DHCP Performance Guide</title><link rel="stylesheet" type="text/css" href="bind10-guide.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><meta name="description" content="BIND 10 is a framework that features Domain Name System (DNS) suite and Dynamic Host Configuration Protocol (DHCP) servers with development managed by Internet Systems Consortium (ISC). This document describes various aspects of DHCP performance, measurements and tuning. It covers BIND 10 DHCP (codename Kea), existing ISC DHCP4 software, perfdhcp (a DHCP performance measurement tool) and other related topics."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" title="DHCP Performance Guide"><div class="titlepage"><div><div><h1 class="title"><a name="idp130336"></a>DHCP Performance Guide</h1></div><div><h2 class="subtitle">Various aspects of DHCP Performance in BIND 10</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Tomasz</span> <span class="surname">Mrugalski</span></h3></div></div><div><p class="releaseinfo">This is a companion document for BIND 10 version
20120405.</p></div><div><p class="copyright">Copyright © 2012 Internet Systems Consortium, Inc.</p></div><div><div class="abstract" title="Abstract"><p class="title"><b>Abstract</b></p><p>BIND 10 is a framework that features Domain Name System
(DNS) suite and Dynamic Host Configuration Protocol (DHCP)
servers with development managed by Internet Systems Consortium (ISC).
This document describes various aspects of DHCP performance,
measurements and tuning. It covers BIND 10 DHCP (codename Kea),
existing ISC DHCP4 software, perfdhcp (a DHCP performance
- measurement tool) and other related topics.</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="#idp67472">Preface</a></span></dt><dd><dl><dt><span class="section"><a href="#acknowledgements">1. Acknowledgements</a></span></dt></dl></dd><dt><span class="chapter"><a href="#intro">1. Introduction</a></span></dt><dt><span class="chapter"><a href="#dhcp4">2. ISC DHCP 4.x</a></span></dt><dt><span class="chapter"><a href="#kea">3. Kea</a></span></dt><dd><dl><dt><span class="section"><a href="#idp75840">3.1. Backend performance evaluation</a></span></dt><dt><span class="section"><a href="#mysql-backend">3.2. MySQL backend</a></span></dt><dd><dl><dt><span class="section"><a href="#idp99392">3.2.1. MySQL tweaks</a></span></dt></dl></dd><dt><span class="section"><a href="#sqlite-ubench">3.3. SQLite-ubench</a></span></dt><dd><dl><dt><span class="section"><a href="#sqlite-tweaks">3.3.1. SQLite tweaks</a></span></dt></dl></dd><dt><span class="section"><a href="#memfile-ubench">3.4. memfile-ubench</a></span></dt><dd><dl><dt><span class="section"><a href="#memfile-tweaks">3.4.1. memfile tweaks</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#perfdhcp">4. perfdhcp</a></span></dt></dl></div><div class="preface" title="Preface"><div class="titlepage"><div><div><h2 class="title"><a name="idp67472"></a>Preface</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#acknowledgements">1. Acknowledgements</a></span></dt></dl></div><div class="section" title="1. Acknowledgements"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="acknowledgements"></a>1. Acknowledgements</h2></div></div></div><p>ISC would like to acknowledge generous support for
+ measurement tool) and other related topics.</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="#idp103600">Preface</a></span></dt><dd><dl><dt><span class="section"><a href="#acknowledgements">1. Acknowledgements</a></span></dt></dl></dd><dt><span class="chapter"><a href="#intro">1. Introduction</a></span></dt><dt><span class="chapter"><a href="#dhcp4">2. ISC DHCP 4.x</a></span></dt><dt><span class="chapter"><a href="#kea">3. Kea</a></span></dt><dd><dl><dt><span class="section"><a href="#idp111648">3.1. Backend performance evaluation</a></span></dt><dt><span class="section"><a href="#mysql-backend">3.2. MySQL backend</a></span></dt><dd><dl><dt><span class="section"><a href="#idp135840">3.2.1. MySQL tweaks</a></span></dt></dl></dd><dt><span class="section"><a href="#sqlite-ubench">3.3. SQLite-ubench</a></span></dt><dd><dl><dt><span class="section"><a href="#sqlite-tweaks">3.3.1. SQLite tweaks</a></span></dt></dl></dd><dt><span class="section"><a href="#memfile-ubench">3.4. memfile-ubench</a></span></dt><dd><dl><dt><span class="section"><a href="#memfile-tweaks">3.4.1. memfile tweaks</a></span></dt></dl></dd><dt><span class="section"><a href="#idp157104">3.5. Performance measurements</a></span></dt></dl></dd><dt><span class="chapter"><a href="#perfdhcp">4. perfdhcp</a></span></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>3.1. <a href="#idp160272">Synchronous results:</a></dt><dt>3.2. <a href="#idp181344">Asynchronous results:</a></dt><dt>3.3. <a href="#idp201392">Estimated performance</a></dt></dl></div><div class="preface" title="Preface"><div class="titlepage"><div><div><h2 class="title"><a name="idp103600"></a>Preface</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#acknowledgements">1. Acknowledgements</a></span></dt></dl></div><div class="section" title="1. Acknowledgements"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="acknowledgements"></a>1. Acknowledgements</h2></div></div></div><p>ISC would like to acknowledge generous support for
BIND 10 development of DHCPv4 and DHCPv6 components provided
by <a class="ulink" href="http://www.comcast.com/" target="_top">Comcast</a>.</p></div></div><div class="chapter" title="Chapter 1. Introduction"><div class="titlepage"><div><div><h2 class="title"><a name="intro"></a>Chapter 1. Introduction</h2></div></div></div><p>
This document is in its early stages of development. It is
tools.
</p></div><div class="chapter" title="Chapter 2. ISC DHCP 4.x"><div class="titlepage"><div><div><h2 class="title"><a name="dhcp4"></a>Chapter 2. ISC DHCP 4.x</h2></div></div></div><p>
TODO: Write something about ISC DHCP4 here.
- </p></div><div class="chapter" title="Chapter 3. Kea"><div class="titlepage"><div><div><h2 class="title"><a name="kea"></a>Chapter 3. Kea</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#idp75840">3.1. Backend performance evaluation</a></span></dt><dt><span class="section"><a href="#mysql-backend">3.2. MySQL backend</a></span></dt><dd><dl><dt><span class="section"><a href="#idp99392">3.2.1. MySQL tweaks</a></span></dt></dl></dd><dt><span class="section"><a href="#sqlite-ubench">3.3. SQLite-ubench</a></span></dt><dd><dl><dt><span class="section"><a href="#sqlite-tweaks">3.3.1. SQLite tweaks</a></span></dt></dl></dd><dt><span class="section"><a href="#memfile-ubench">3.4. memfile-ubench</a></span></dt><dd><dl><dt><span class="section"><a href="#memfile-tweaks">3.4.1. memfile tweaks</a></span></dt></dl></dd></dl></div><p>
+ </p></div><div class="chapter" title="Chapter 3. Kea"><div class="titlepage"><div><div><h2 class="title"><a name="kea"></a>Chapter 3. Kea</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#idp111648">3.1. Backend performance evaluation</a></span></dt><dt><span class="section"><a href="#mysql-backend">3.2. MySQL backend</a></span></dt><dd><dl><dt><span class="section"><a href="#idp135840">3.2.1. MySQL tweaks</a></span></dt></dl></dd><dt><span class="section"><a href="#sqlite-ubench">3.3. SQLite-ubench</a></span></dt><dd><dl><dt><span class="section"><a href="#sqlite-tweaks">3.3.1. SQLite tweaks</a></span></dt></dl></dd><dt><span class="section"><a href="#memfile-ubench">3.4. memfile-ubench</a></span></dt><dd><dl><dt><span class="section"><a href="#memfile-tweaks">3.4.1. memfile tweaks</a></span></dt></dl></dd><dt><span class="section"><a href="#idp157104">3.5. Performance measurements</a></span></dt></dl></div><p>
- </p><div class="section" title="3.1. Backend performance evaluation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp75840"></a>3.1. Backend performance evaluation</h2></div></div></div><p>
+ </p><div class="section" title="3.1. Backend performance evaluation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp111648"></a>3.1. Backend performance evaluation</h2></div></div></div><p>
Kea will support several different database backends, using
both popular databases (like MySQL or SQLite) and
custom-developed solutions (like in-memory database). BIND 10
overwritten using command line switches. Although all benchmarks take
the same list of parameters, some of them are specific to a given backend
type. To get a list of supported parameters, run your benchmark with -h option:
-
+
</p><pre class="screen">$ <strong class="userinput"><code>./mysql_ubench -h</code></strong>
This is a benchmark designed to measure expected performance
of several backends. This particular version identifies itself
-v yes|no - verbose mode (MySQL, SQLite and memfile)
</pre><p>
- </p><div class="section" title="3.2.1. MySQL tweaks"><div class="titlepage"><div><div><h3 class="title"><a name="idp99392"></a>3.2.1. MySQL tweaks</h3></div></div></div><p>One parameter that has huge impact on performance is a a backend engine.
+ </p><div class="section" title="3.2.1. MySQL tweaks"><div class="titlepage"><div><div><h3 class="title"><a name="idp135840"></a>3.2.1. MySQL tweaks</h3></div></div></div><p>One parameter that has huge impact on performance is a a backend engine.
You can get a list of engines of your MySQL implementation by using
</p><pre class="screen">> <strong class="userinput"><code>show engines;</code></strong></pre><p>
</p><p>memfile can run in asynchronous or synchronous mode. This
mode can be controlled by using sync parameter. It uses
fflush() and fsync() in synchronous mode to make sure that
- data is not buffered and physically stored on disk.</p></div></div></div><div class="chapter" title="Chapter 4. perfdhcp"><div class="titlepage"><div><div><h2 class="title"><a name="perfdhcp"></a>Chapter 4. perfdhcp</h2></div></div></div><p>
+ data is not buffered and physically stored on disk.</p></div></div><div class="section" title="3.5. Performance measurements"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp157104"></a>3.5. Performance measurements</h2></div></div></div><p>This section contains sample results for backend performance measurements,
+ taken using microbenchmarks. Tests were conducted on reasonably powerful machine:
+ </p><pre class="screen">
+ CPU: Quad-core Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz (8 logical cores)
+ HDD: 1,5TB Seagate Barracude ST31500341AS 7200rpm (used only one of them), ext4 partition
+ OS: Ubuntu 12.04, running kernel 3.2.0-26-generic SMP x86_64
+ compilers: g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
+ MySQL version: 5.5.24
+ SQLite version: 3.7.9sourceid version is 2011-11-01 00:52:41 c7c6050ef060877ebe77b41d959e9df13f8c9b5e
+ </pre><p>
+ </p><p>Benchmarks were run in two series: synchronous and
+ asynchronous. As those modes offer radically different
+ performances, synchronous mode was conducted for 1000 (one
+ thousand) repetitions and asynchronous mode was conducted for
+ 100000 (hundred thousand) repetitions.</p><div class="table"><a name="idp160272"></a><p class="title"><b>Table 3.1. Synchronous results:</b></p><div class="table-contents"><table summary="Synchronous results:" border="1"><colgroup><col align="center" class="Backend"><col align="center" class="Num"><col align="center" class="Create"><col align="center" class="Search"><col align="center" class="Update"><col align="center" class="Delete"></colgroup><thead><tr><th align="center">Backend</th><th align="center">Operations</th><th align="center">Create</th><th align="center">Search</th><th align="center">Update</th><th align="center">Delete</th><th align="center">Average</th></tr></thead><tbody><tr><td align="center">MySQL</td><td align="center">1000</td><td align="center">31.603978s</td><td align="center"> 0.116612s</td><td align="center">27.964191s</td><td align="center">27.695209s</td><td align="center">21.844998s</td></tr><tr><td align="center">SQLite</td><td align="center">1000</td><td align="center">61.421356s</td><td align="center"> 0.033283s</td><td align="center">59.476638s</td><td align="center">56.034150s</td><td align="center">44.241357s</td></tr><tr><td align="center">memfile</td><td align="center">1000</td><td align="center">41.711886s</td><td align="center"> 0.000724s</td><td align="center">42.267578s</td><td align="center">42.169679s</td><td align="center">31.537467s</td></tr></tbody></table></div></div><br class="table-break"><p>Following parameters were measured for asynchronous mode.
+ MySQL and SQLite were run with 100 thousand repetitions. Memfile
+ was run for 1 million repetitions due to much larger performance.</p><div class="table"><a name="idp181344"></a><p class="title"><b>Table 3.2. Asynchronous results:</b></p><div class="table-contents"><table summary="Asynchronous results:" border="1"><colgroup><col align="center" class="Backend"><col align="center" class="Num"><col align="center" class="Create"><col align="center" class="Search"><col align="center" class="Update"><col align="center" class="Delete"></colgroup><thead><tr><th align="center">Backend</th><th align="center">Operations</th><th align="center">Create [s]</th><th align="center">Search [s]</th><th align="center">Update [s]</th><th align="center">Delete [s]</th><th align="center">Average [s]</th></tr></thead><tbody><tr><td align="center">MySQL</td><td align="center">100000</td><td align="center">10.584842s</td><td align="center">10.386402s</td><td align="center">10.062384s</td><td align="center"> 8.890197s</td><td align="center"> 9.980956s</td></tr><tr><td align="center">SQLite</td><td align="center">100000</td><td align="center"> 3.710356s</td><td align="center"> 3.159129s</td><td align="center"> 2.865354s</td><td align="center"> 2.439406s</td><td align="center"> 3.043561s</td></tr><tr><td align="center">memfile</td><td align="center">1000000 (sic!)</td><td align="center"> 6.084131s</td><td align="center"> 0.862667s</td><td align="center"> 6.018585s</td><td align="center"> 5.146704s</td><td align="center"> 4.528022s</td></tr></tbody></table></div></div><br class="table-break"><p>Estimated performance:</p><div class="table"><a name="idp201392"></a><p class="title"><b>Table 3.3. Estimated performance</b></p><div class="table-contents"><table summary="Estimated performance" border="1"><colgroup><col align="center" class="Backend"><col align="center" class="Create"><col align="center" class="Search"><col align="center" class="Update"><col align="center" class="Delete"><col align="center" class="Average"></colgroup><thead><tr><th align="center">Backend</th><th align="center">Create [oper/s]</th><th align="center">Search [oper/s]</th><th align="center">Update [oper/s]</th><th align="center">Delete [oper/s]</th><th align="center">Average [oper/s]</th></tr></thead><tbody><tr><td align="center">MySQL (async)</td><td align="center">9447.47</td><td align="center">9627.97</td><td align="center">9938.00</td><td align="center">11248.34</td><td align="center">10065.45</td></tr><tr><td align="center">SQLite (async)</td><td align="center">26951.59</td><td align="center">31654.29</td><td align="center">34899.70</td><td align="center">40993.59</td><td align="center">33624.79</td></tr><tr><td align="center">memfile (async)</td><td align="center">164362.01</td><td align="center">1159195.84</td><td align="center">166152.01</td><td align="center">194299.11</td><td align="center">421002.24</td></tr><tr><td align="center">MySQL (sync)</td><td align="center">31.64</td><td align="center">8575.45</td><td align="center">35.76</td><td align="center">36.11</td><td align="center">2169.74</td></tr><tr><td align="center">SQLite (sync)</td><td align="center">16.28</td><td align="center">20045.37</td><td align="center">16.81</td><td align="center">17.85</td><td align="center">7524.08</td></tr><tr><td align="center">memfile (sync)</td><td align="center">23.97</td><td align="center">1381215.47</td><td align="center">23.66</td><td align="center">23.71</td><td align="center">345321.70</td></tr></tbody></table></div></div><br class="table-break"></div></div><div class="chapter" title="Chapter 4. perfdhcp"><div class="titlepage"><div><div><h2 class="title"><a name="perfdhcp"></a>Chapter 4. perfdhcp</h2></div></div></div><p>
TODO: Write something about perfdhcp here.
</p></div></div></body></html>
<bookinfo>
<title>DHCP Performance Guide</title>
- <subtitle>Various aspects of DHCP Performance in BIND 10</subtitle>
+ <!-- <subtitle>Various aspects of DHCP Performance in BIND 10</subtitle> -->
<copyright>
- <year>2012</year><holder>Internet Systems Consortium, Inc.</holder>
+ <year>2012</year>
+ <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
<author>
<firstname>Tomasz</firstname>
<para>Memfile backend is custom developed prototype backend that
somewhat mimics operation of ISC DHCP4. It uses in-memory
storage using standard C++ and boost mechanisms (std::map and
- boost::shared_ptr><). All database changes are also
+ boost::shared_ptr<>). All database changes are also
written to a lease file. That file is strictly write-only. This
approach takes advantage of the fact that simple append is faster
than edition with potential whole file relocation.</para>
</section>
</section>
+ <section>
+ <title>Performance measurements</title>
+ <para>This section contains sample results for backend performance measurements,
+ taken using microbenchmarks. Tests were conducted on reasonably powerful machine:
+ <screen>
+ CPU: Quad-core Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz (8 logical cores)
+ HDD: 1,5TB Seagate Barracude ST31500341AS 7200rpm (used only one of them), ext4 partition
+ OS: Ubuntu 12.04, running kernel 3.2.0-26-generic SMP x86_64
+ compilers: g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
+ MySQL version: 5.5.24
+ SQLite version: 3.7.9sourceid version is 2011-11-01 00:52:41 c7c6050ef060877ebe77b41d959e9df13f8c9b5e
+ </screen>
+ </para>
+
+ <para>Benchmarks were run in two series: synchronous and
+ asynchronous. As those modes offer radically different
+ performances, synchronous mode was conducted for 1000 (one
+ thousand) repetitions and asynchronous mode was conducted for
+ 100000 (hundred thousand) repetitions.</para>
+
+ <!-- raw results sync -->
+ <table><title>Synchronous results:</title>
+ <tgroup cols='6' align='center' colsep='1' rowsep='1'>
+ <colspec colname='Backend'/>
+ <colspec colname='Num' />
+ <colspec colname='Create'/>
+ <colspec colname='Search'/>
+ <colspec colname='Update'/>
+ <colspec colname='Delete'/>
+ <colspec colname='Average'/>
+ <thead>
+ <row>
+ <entry>Backend</entry>
+ <entry>Operations</entry>
+ <entry>Create</entry>
+ <entry>Search</entry>
+ <entry>Update</entry>
+ <entry>Delete</entry>
+ <entry>Average</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>MySQL</entry>
+ <entry>1000</entry>
+ <entry>31.603978s</entry>
+ <entry> 0.116612s</entry>
+ <entry>27.964191s</entry>
+ <entry>27.695209s</entry>
+ <entry>21.844998s</entry>
+ </row>
+
+ <row>
+ <entry>SQLite</entry>
+ <entry>1000</entry>
+ <entry>61.421356s</entry>
+ <entry> 0.033283s</entry>
+ <entry>59.476638s</entry>
+ <entry>56.034150s</entry>
+ <entry>44.241357s</entry>
+ </row>
+
+ <row>
+ <entry>memfile</entry>
+ <entry>1000</entry>
+ <entry>41.711886s</entry>
+ <entry> 0.000724s</entry>
+ <entry>42.267578s</entry>
+ <entry>42.169679s</entry>
+ <entry>31.537467s</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Following parameters were measured for asynchronous mode.
+ MySQL and SQLite were run with 100 thousand repetitions. Memfile
+ was run for 1 million repetitions due to much larger performance.</para>
+
+ <!-- raw results async -->
+ <table><title>Asynchronous results:</title>
+ <tgroup cols='6' align='center' colsep='1' rowsep='1'>
+ <colspec colname='Backend'/>
+ <colspec colname='Num' />
+ <colspec colname='Create'/>
+ <colspec colname='Search'/>
+ <colspec colname='Update'/>
+ <colspec colname='Delete'/>
+ <colspec colname='Average'/>
+ <thead>
+ <row>
+ <entry>Backend</entry>
+ <entry>Operations</entry>
+ <entry>Create [s]</entry>
+ <entry>Search [s]</entry>
+ <entry>Update [s]</entry>
+ <entry>Delete [s]</entry>
+ <entry>Average [s]</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>MySQL</entry>
+ <entry>100000</entry>
+ <entry>10.584842s</entry>
+ <entry>10.386402s</entry>
+ <entry>10.062384s</entry>
+ <entry> 8.890197s</entry>
+ <entry> 9.980956s</entry>
+ </row>
+
+ <row>
+ <entry>SQLite</entry>
+ <entry>100000</entry>
+ <entry> 3.710356s</entry>
+ <entry> 3.159129s</entry>
+ <entry> 2.865354s</entry>
+ <entry> 2.439406s</entry>
+ <entry> 3.043561s</entry>
+ </row>
+
+ <row>
+ <entry>memfile</entry>
+ <entry>1000000 (sic!)</entry>
+ <entry> 6.084131s</entry>
+ <entry> 0.862667s</entry>
+ <entry> 6.018585s</entry>
+ <entry> 5.146704s</entry>
+ <entry> 4.528022s</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Estimated performance:</para>
+
+ <table><title>Estimated performance</title>
+ <tgroup cols='6' align='center' colsep='1' rowsep='1'>
+ <colspec colname='Backend'/>
+ <colspec colname='Create'/>
+ <colspec colname='Search'/>
+ <colspec colname='Update'/>
+ <colspec colname='Delete'/>
+ <colspec colname='Average'/>
+ <thead>
+ <row>
+ <entry>Backend</entry>
+ <entry>Create [oper/s]</entry>
+ <entry>Search [oper/s]</entry>
+ <entry>Update [oper/s]</entry>
+ <entry>Delete [oper/s]</entry>
+ <entry>Average [oper/s]</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>MySQL (async)</entry>
+ <entry>9447.47</entry>
+ <entry>9627.97</entry>
+ <entry>9938.00</entry>
+ <entry>11248.34</entry>
+ <entry>10065.45</entry>
+ </row>
+
+ <row>
+ <entry>SQLite (async)</entry>
+ <entry>26951.59</entry>
+ <entry>31654.29</entry>
+ <entry>34899.70</entry>
+ <entry>40993.59</entry>
+ <entry>33624.79</entry>
+ </row>
+
+ <row>
+ <entry>memfile (async)</entry>
+ <entry>164362.01</entry>
+ <entry>1159195.84</entry>
+ <entry>166152.01</entry>
+ <entry>194299.11</entry>
+ <entry>421002.24</entry>
+ </row>
+
+
+ <row>
+ <entry>MySQL (sync)</entry>
+ <entry>31.64</entry>
+ <entry>8575.45</entry>
+ <entry>35.76</entry>
+ <entry>36.11</entry>
+ <entry>2169.74</entry>
+ </row>
+
+ <row>
+ <entry>SQLite (sync)</entry>
+ <entry>16.28</entry>
+ <entry>20045.37</entry>
+ <entry>16.81</entry>
+ <entry>17.85</entry>
+ <entry>7524.08</entry>
+ </row>
+
+ <row>
+ <entry>memfile (sync)</entry>
+ <entry>23.97</entry>
+ <entry>1381215.47</entry>
+ <entry>23.66</entry>
+ <entry>23.71</entry>
+ <entry>345321.70</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+
+ </section>
+
</chapter>
<chapter id="perfdhcp">