Copy avoidance is only partly automated, because it is unfortunately
infeasible for the runtime system to
infer all intentions automatically. Instead, it presents filters by default
with a conservatively
shared view together with interfaces for acquiring additional permissions.
The filter developer can use these to choose between data and metadata manipulation,
for instance. Similarly, state
has to be explicitly requested.
By default, a filter has read and write permissions on metadata, read permissions
on data and no state. This choice follows from the observation that metadata
updates are cheap and frequent, while data updates are expensive and -
thanks to the metadata channel - infrequent.
Subsections
willem
2010-02-03