About storage policies

A storage policy provides mapping to specific physical storage areas and is used to specify where content is stored for a given class or object with content (for example, a document). Content Engine supports the mapping of storage policies to one or more storage objects; therefore, each storage policy can have one or multiple storage areas as its assigned content storage target. This concept is known as "farming."

Farming

A storage area "farm" is a group of storage areas (a subset of the available storage areas) acting as a single logical target for content storage. With farming, Content Engine provides load-balancing capabilities for content storage by transparently spreading the content elements across multiple storage areas.

Therefore, the storage policy functions as both the mechanism for defining the membership of a storage area farm, and also the means for assigning documents to that farm.

Assigning storage areas to a storage policy

You can assign storage areas to a storage policy by either: 1) select storage areas from a list of available storage locations, or 2) create a filter expression to explicitly assign storage areas based on a customized string expression. If you choose to select storage areas from a list, Content Engine translates that list into a filter expression.

Storage policy filter expression

The storage policy filter expression is a string valued property that behaves in the same manner as a “WHERE” clause of a SQL SELECT statement. You can edit the filter expression directly to select storage areas that meet specific user requirements.

This filter expression always implicitly includes “AND AreaStatus=Open”. Note that it is not a requirement that the storage areas that satisfy the criteria are all the same type. The filter criteria, however, are restricted to the queryable properties of the StorageArea class and subclasses; thus, the statistical properties (displayed in red in the storage area properties grid) are excluded from consideration.

Examples of storage policy filter expressions
Filter Expression Value Result

(1>0)

Matches all Storage Areas

IsClass(Source,DatabaseStorageArea)

Matches only the single database storage area in an object store

IsClass(Source,FileStorageArea)

Matches all File Storage Areas

IsClass(Source,FixedStorageArea)

Matches all Fixed Storage Areas

Id IN ({A178B949-9B20-42EA-B58E-03175AD3879C})

Matches the Storage Area with ID = A178B949-9B20-42EA-B58E-03175AD3879C

Id IN ( {GUID1}, {GUID2} )

Matches a “farm” of multiple storage areas with IDs = GUID1 and GUID2

IsClass(Source,FixedStorageArea) AND DisplayName like 'DR550StorageArea%' AND RetentionPeriod > 2628000
(In this example, the retention of 2628000 is expressed in minutes.)

Matches DR550 storage with at least 5 years retention. (2628000 = 60 minutes per hour x 24 hours per day x 365 days per year x 5 years)

Storage policies, in general, are used primarily for farming documents to multiple storage areas. The storage policy filter expression gives you more control over how to specify which storage area or areas will be used. For example, if you want documents of a particular class to be farmed to any of three high speed network-attached storage (NAS) devices, then you can define a naming convention for the file storage areas (one for each NAS, such as FastNAS1, FastNAS2, and FastNAS3).

Then you can create a storage policy:

   ISCLASS(Source,FileStorageArea) AND DisplayName like 'FastNAS%'

This storage policy can then be assigned to the desired document class.

Default storage policy

When an object store is created, a default database storage area is created in the “open” state and is the default storage area for those classes that can store content. A default storage policy is also created, with no filter expression – so all “open” storage areas are available for content storage.

Create a storage policy

Enterprise Manager provides a wizard to guide you through the process of creating a new storage policy and assigning to it a list of storage areas. The available storage policies for a given object store are then displayed under the Storage Policies node.

After a storage policy is created, it can be assigned as the default storage policy for class objects, thus giving the class objects a pointer to a physical storage location for storing content.

NOTES: