It is clear that the containing phase overcontains the
damage in most cases. Many objects updated within the
containing time window can be undamaged. And we must
uncontain them as soon as possible to reduce the
corresponding availability loss. Accurate uncontainment
can be done based on the reports from the Damage Assessor,
which could be too slow due to the assessment latency. [24]
shows that transaction types can be exploited to do much
quicker uncontainment. In particular, assuming that (a)
each transaction Ti belongs to a transaction type type(Ti)
and (b) the profile for type(Ti) is known, the read set
template and write set template can be extracted from type(Ti)’s profile. The templates specify the kind of objects
that transactions of type(Ti) can read or write. As a result,
the approximate read-from dependency among a history of
transactions can be quickly captured by identifying the
read-from dependency among the types of these
transactions. Moreover, the type-based approach can be
made more accurate by materializing the templates of
transactions using their inputs before analyzing the
read-from dependency among the types.