1 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
2 <link rel="stylesheet" href="style.css" type="text/css"/>
3 <script src="code.js" type="text/javascript"></script>
5 <h1>Tradeoff: how much complexity</h1>
8 Tradeoffs in implementation complexity
11 <th style="width:8%;"></th>
12 <th>Lots of knobs in the NBD spec</th>
13 <th>Mandate all-or-none server implementation</th>
16 <td style="text-align:center;">Pro</td>
19 <li>Implement as much or as little as convenient for the
21 <li>Matches reality that no one resize solution fits all
26 <li>Easier interoperability testing
27 <li>Client can rely on all servers giving same response
32 <td style="text-align:center;">Con</td>
35 <li>More combinations requires more testing
36 <li>Odd or untested combinations could produce weird
37 behaviors or even CVEs
38 <li>Clients must be prepared for more fallbacks
39 <li>NBD protocol tries to be as simple as possible
44 <li>Not all tradeoffs map easily to existing implementation
45 <li>Open-ended structured replies requires more efforts for
46 writing a compliant server