snapshotid integer primary key,
name text not null,
scheme text,
- timestamp real
+ timestamp real,
+ intent real
);
-- List of segments which have been created.
segment text unique not null,
path text,
checksum text,
+ mtime real,
size integer
);
segmentid integer not null,
utilization real
);
+create unique index segments_used_index
+ on segments_used(snapshotid, segmentid);
--- Index tracking which blocks are used by which snapshots.
-create table snapshot_contents (
- blockid integer,
- snapshotid integer
-);
-create unique index snapshot_contents_unique
- on snapshot_contents(blockid, snapshotid);
+-- Overall estimate of segment utilization, for all snapshots combined.
+create view segment_info as
+select segmentid, mtime, size, cast(size * utilization as integer) as used,
+ utilization
+from segments join
+ (select segmentid, max(utilization) as utilization
+ from segments_used group by segmentid)
+using (segmentid);