match the original object metadata. There are no transactional guarantees regarding ordering
of queries and delete operations that are occurring at the same time. If an object is being deleted
at the same time that a query that matches that object is being performed, then that object may
or may not show up in the query result set, with no guarantee either way.
Note – When all objects that share an underlying block of data storage been deleted, the
underlying block of data storage will itself be scavenged and returned to the supply of free disk
space. But all details of how objects are stored, and how and whether they ever share data — or
ever are scavenged — are outside of the scope of this API.
Delete operations are all-or-nothing,with some caveats. Specically, if a delete operation fails
with an error, it is possible that the object is not fully deleted but is temporarily not queryable.
Such an object is in an analogous state to a store index exception (see
“The 5800 System Query
Integrity Model” on page 21). The queryability of such an object will eventually be resolved by
automatic system healing. In addition, the queryability of such an object can be resolved under
program control by using the checkIndexed method. Alternatively, the customer application
may choose to re-execute the delete operation until it succeeds, or until it fails with an error that
indicates the object is already deleted.
5800SystemOverview
Chapter1 • SunStorageTek 5800SystemClientAPI 23