vector. In addition, we maintain a deleted record vector
(DRV) for each projection, which has one entry per
projection record, containing a 0 if the tuple has not been
deleted; otherwise, the entry contains the epoch in which
the tuple was deleted. Since the DRV is very sparse
(mostly zeros), it can be compactly coded using the type 2
algorithm described earlier. We store the DRV in the
WS, since it must be updatable. The runtime system can
now consult IV and DRV to make the visibility calculation
for each query on a record-by-record basis.