Note– The format of records as stored in the reliable and scalable object archive is not suitable
forfast query. To enable searching, the queryable elds from the metadata are indexed in a
queryengine that can provide fast and exible query services. The query engine is basically an
SQLdatabase. This is why the 5800 system's query language can borrow so heavily from SQL. At
varioustimes, the data as indexed in the query engine can get out of date compared to what is
storedin the archive. When this happens, query result sets are not known to be complete until
thecontents of the query engine can be brought back up to date with the actual contents of the
archiveagain.
The5800 system concept of query integrity as actually implemented is somewhat looser than
thatof 100% query integrity. Even if a query result set indicates the result set is complete, the
5800system allows certain objects, known as store index exceptions, to be missing from the
queryresult set, as long as those exceptions were communicated to the customer application at
thetime the object was stored.
Astore index exception is an object for which the original store of the object into the archive
succeeded,but at least some part of the insert into the query engine (database) did not succeed.
Theobject may or may not show up in all of the queries that it matches. A store index exception
iscommunicated to the customer application at the time of store by means of a method
SystemRecord.isIndexed.A value of false from isIndexed means that the object is not
immediatelyavailable for query.
Astore index exception is said to be resolved when the object becomes available for query. The
checkIndexedmethod can be used to attempt to resolve a store index exception under program
control.The checkIndexed operation checks if the object has been added to the query engine,
andattempts to insert it if the object has not been added. If the insert into the query engine
succeeds,the object is thereby restored to full queryability.
Allstore index exceptions will also eventually be resolved automatically by ongoing system
healing.Each query result set also exports a method getQueryIntegrityTime that can be used
toget detailed status on which store index exceptions might still be unresolved. The query
integritytime is a time such that all store index exceptions from before that time have been
resolved.There is an “ideal” query integrity time, which is the time of the oldest still-unresolved
storeindex exception: an ideal implementation when asked for the query integrity time would
alwaysreport this ideal value. In actual implementation, the reported query integrity time
mightbe hours or even days earlier than the ideal query integrity time, depending on how far
theongoing system healing has progressed.
Deleting Objects from the 5800 System
The5800 system client API exports an operation to delete a specic object as specied by its
OID.Once a delete operation completes normally, subsequent attempts to retrieve that object
willfail with an exception. In addition, the object will stop showing up in query result sets that
5800SystemOver view
SunStorageTek5800 System Client API Reference Manual • June 200822