more polish to 5000* demo
[eblake-techtalks.git] / 2000-introduction-cbt.html
blobe4f22d1bff8a1aee7d7d2fc8f1b2f85eb0842467
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>Change Block Tracking</h1>
7 <p>
8 Two common approaches to tracking changed blocks:
9 </p>
10 <table id="border">
11 <tr>
12 <th style="width: 20%">Approach</th>
13 <th>Trade-offs</th>
14 </tr>
15 <tr>
16 <td style="text-align:center; vertical-align:top;">Generation tag</td>
17 <td>
18 <ul>
19 <li>Monotonically increasing tag tracked for each
20 cluster</li>
21 <li>Set of changes since a point in time is all clusters with
22 generation id larger than the value at that point</li>
23 <li>Multiple points in time tracked by same amount of metadata</li>
24 </ul>
25 </td>
26 </tr>
27 <tr>
28 <td style="text-align:center; vertical-align:top;">Dirty bitmap</td>
29 <td>
30 <ul>
31 <li>Bitmap that gets updated with each changed cluster</li>
32 <li>Less metadata storage required for all changes since a
33 single point in time</li>
34 <li>Multiple bitmaps required to track changes since multiple
35 points in time</li>
36 </ul>
37 </td>
38 </tr>
39 </table>
40 <p>Both approaches also have to balance granularity: more precision on
41 what changed requires more metadata but can produce smaller
42 incremental backups.</p>