linkend="high-availability-matrix"/> summarizes
the capabilities of the various solutions listed above.
</para>
<table id="high-availability-matrix">
<title>High Availability, Load Balancing, and Replication Feature Matrix</title>
<tgroup cols="9">
<colspec colname="col1" colwidth="1.1*"/>
<colspec colname="col2" colwidth="1*"/>
<colspec colname="col3" colwidth="1*"/>
<colspec colname="col4" colwidth="1*"/>
<colspec colname="col5" colwidth="1*"/>
<colspec colname="col6" colwidth="1*"/>
<colspec colname="col7" colwidth="1*"/>
<colspec colname="col8" colwidth="1*"/>
<colspec colname="col9" colwidth="1*"/>
<thead>
<row>
<entry>Feature</entry>
<entry>Shared Disk</entry>
<entry>File System Repl.</entry>
<entry>Write-Ahead Log Shipping</entry>
<entry>Logical Repl.</entry>
<entry>Trigger-&zwsp;Based Repl.</entry>
<entry>SQL Repl. Middle-ware</entry>
<entry>Async. MM Repl.</entry>
<entry>Sync. MM Repl.</entry>
</row>
</thead>
<tbody>
<row>
<entry>Popular examples</entry>
<entry align="center">NAS</entry>
<entry align="center">DRBD</entry>
<entry align="center">built-in streaming repl.</entry>
<entry align="center">built-in logical repl., pglogical</entry>
<entry align="center">Londiste, Slony</entry>
<entry align="center">pgpool-II</entry>
<entry align="center">Bucardo</entry>
<entry align="center"></entry>
</row>
<row>
<entry>Comm. method</entry>
<entry align="center">shared disk</entry>
<entry align="center">disk blocks</entry>
<entry align="center">WAL</entry>
<entry align="center">logical decoding</entry>
<entry align="center">table rows</entry>
<entry align="center">SQL</entry>
<entry align="center">table rows</entry>
<entry align="center">table rows and row locks</entry>
</row>
<row>
<entry>No special hardware required</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
</row>
<row>
<entry>Allows multiple primary servers</entry>
<entry align="center"></entry>
<entry align="center"></entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
</row>
<row>
<entry>No overhead on primary</entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center"></entry>
</row>
<row>
<entry>No waiting for multiple servers</entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">with sync off</entry>
<entry align="center">with sync off</entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
</row>
<row>
<entry>Primary failure will never lose data</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">with sync on</entry>
<entry align="center">with sync on</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
</row>
<row>
<entry>Replicas accept read-only queries</entry>
<entry align="center"></entry>