The5800 System Metadata Model
Metadatameans “data about the data”; it describes the data and helps to determine how the data
shouldbe interpreted. In addition, metadata can be used to facilitate querying the 5800 system
forobjects that match a particular set of search criteria.
Forthe 5800 system, the supported metadata option is in the form of name-value elds stored
witheach object. The set of possible elds is dened in the metadata schema. Setting up a
metadataschema is an important system administration task that is described in the 5800
SystemAdministration Guide, and is analogous to the process of database design that goes into
creatinga data management application. The metadata schema determines what eld names,
types,and lengths may be used with the metadata stored with each object. In addition, the
layoutof elds into tables within the schema, together with the denition of views that speed
certainsearches, determine which kinds of queries about that metadata will be both possible
andeective. As such, the metadata schema should match the characteristics of the expected
rangeof applications that will deal with the stored data. The underlying software is designed to
supportmultiple dierent kinds of metadata to aid in searching. For example, eventually there
mightbe a specialized index to facilitate full-text search within the data objects. This document
describesonly the API for dealing with the name-value metadata type.
Fieldsin the schema can be either queryable or non-queryable. The values for non-queryable
eldsmay be retrieved later but may not be used in queries. The 5800 system supports only
single-valuedelds. Each object can have only a single name-value pair of a given name. There
isno built-in support for multiple-valued elds, such as a list of authors of a book in the form of
multipleelds named 'author'.
Eachdata object is associated with a set of name-value pairs at the time the object is stored.
Somemetadata (system metadata) is assigned by the5800 system as each object is stored. For
example,each object contains an “object creation time” (system.object_ctime) and an OID
(system.object_id),both of which are assigned by the system at the time an object is created.
Somemetadata (the computed metadata) is implicit in the stored data, and is made explicit at
thetime of the object store. For example, the system exposes the object data length as a
metadataeld (system.object_size). In addition, the 5800 system computes a Secure Hash
Algorithm(SHA1) hash of the stored data as the data is stored and stores the hash as a metadata
eld(system.object_hash). There is also an associated eld (system.object_hash_alg)to
specifywhich hash algorithm was used in computing the system.object_hash. It is currently
alwaysset to “sha1.”
Finally,some metadata (the user metadata) is supplied by the customer application in the API
callat the time an object is stored. Each store operation is allowed to include a
NameValueRecordthat indicates a set of name-value pairs to be associated with the data object
asmetadata. Each name in the name-value record must match a eld name from the metadata
schema;in addition, the data value supplied for each eld must match the type and length for
theeld as specied in the schema. If the names or values supplied for the user metadata do not
matchthe active schema, then an exception is generated and the object is not stored.
5800SystemOver view
Chapter1 • Sun StorageTek 5800 System Client API 19