Document content consists of the content elements associated with documents (as specified by the
property on the
object). The cache receives new content in the following circumstances:
- Cache miss: When the cache receives a request for a file not currently residing in the cache, the cache receives a duplicate of that file as part of the document retrieval process.
- Content preloading: When content preloading has been enabled (via the
property), the cache receives duplicates of any new content added to the main storage area.PreloadOnCreate
In both circumstances, new content can be added to the cache only when its storage capacity (as defined by the
and
properties) exceeds the current amount of content (as indicated by the
and
properties). Cache content, however, can end up slightly exceeding the designated storage capacity, as statistics are managed on a delayed basis, and multiple servers can be adding content.
Cache pruning is the process of deleting the content least frequently requested from the cache. Pruning deletes three main categories of files: abandoned, expired, and old. An abandoned file is an incomplete file that has been not properly added to the cache as a result of a server failure of some sort (such as a power failure). An expired file is a file that has remained in an unaccessed state longer than the maximum-time-to-live (as specified by the
property). An old file is a file that, compared to other files in the same directory, has been accessed less recently. Note that these categories are not mutually exclusive; an abandoned file might also be an expired file, and an expired file an old file.
Pruning considers the most recent access time for a file equivalent to its time-of-last-use. This time gets updated to the current time when the file first gets added to the cache, and also whenever the file gets retrieved, provided more than 10 minutes have elapsed since the previous time-of-last-use update. Consequently, the accuracy of the time-of-last-use for a file is within 10 minutes.
Prune actions--specific instances of pruning--operate on the cache directory by directory. For a general discussion on the advantages of this approach, see the
Prune actions get triggered in three different ways:
- Mandatory Prune: Ensures that cache content remains under prune threshold levels. For more information, see the
PruneThresholdContentElements property. - Periodic Prune: Ensures that expired files get deleted on a timely basis. For more information, see the
MaximumTimeToLive property. - Sweeping: Ensures that the statistics concerning content element count (the
property) and content element size (theContentElementCount
property) remain reasonably accurate. A prune action occurs as part of this statistical update. For more information on the sweep action, see theContentElementKBytes ContentElementCount property.
Cache sweeping does not update the count of content element creations (the
property) or the count of content element deletions (the
property). These statistics can become inaccurate over time, but can be optionally reset by clearing the cache. For more information on cache clearing, see the
The following tables list the members exposed by IContentCacheArea.
Public Properties
Name | Description | |||||
---|---|---|---|---|---|---|
![]() | CacheStatus | The setting that enables or disables a cache area for active use. The Valid settings are:
| ||||
![]() | ContentElementCount | The number of content elements stored in this storage area. For a | ||||
![]() | ContentElementKBytes | The size of all content elements stored in this storage area (in kilobytes). For the | ||||
![]() | ContentElementsCreated | Total content elements created in a Storage Area. | ||||
![]() | ContentElementsDeleted | The number of content elements deleted from this storage area. For the | ||||
![]() | Creator | Indicates the name of the user assigned as the creator of the object. Settability of this property is read-only for most users. For users who have been granted privileged write access ( | ||||
![]() | DateCreated | Indicates the date and time the object was created. The Content Engine stores dates and times using Coordinated Universal Time (UTC). Settability of this property is read-only for most users. For users who have been granted privileged write access ( | ||||
![]() | DateLastModified | Indicates the date and time the object was last modified. The Content Engine stores dates and times using Coordinated Universal Time (UTC). Settability of this property is read-only for most users. For users who have been granted privileged write access ( | ||||
![]() | DeleteMethod | The setting that specifies the deletion method for content in this storage area. The class has constants defined for the deletion method settings. Valid settings are:
| ||||
![]() | DescriptiveText | User-readable text that describes an object. The text is not locale-specific to the retrieving user except for the following classes:
| ||||
![]() | DirectoryStructure | The setting that determines the directory structure type for this storage area. The class has constants defined for the directory structure type settings. Valid settings are:
For the | ||||
![]() | DisplayName | The user-readable, provider-specific name of an object. This property is usually the designated Name property of the object's class. | ||||
![]() | Id | A representation of the Globally Unique Identifier (GUID), a unique 128-bit number, that is assigned to this Content Engine object when the object is created. When converted to a string, the Id property is typically depicted as 32 hexadecimal characters enclosed by brackets in the following format: {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}. For example, {3F2504E0-4F89-11D3-9A0C-0305E82C3301}. For For a given property representation, the Id property has the following characteristics:
For a newly created document object, you can override the Id property of its associated | ||||
![]() | LastModifier | Indicates the name of the user who last modified the object. Settability of this property is read-only for most users. For users who have been granted privileged write access ( | ||||
![]() | MaximumContentElements | The maximum number of content elements designated for this storage area. For a content cache area, new content can be added to a cache only if the number-of-content-elements statistic (the | ||||
![]() | MaximumSizeKBytes | The maximum size of all content elements designated for this storage area (in kilobytes). For a content cache area, new content can be added to a cache only if the size-of-content-elements statistic (the | ||||
![]() | MaximumTimeToLive | The maximum number of minutes a content element can remain in an unaccessed state in the cache and not be considered an expired file. An expired file is subject to deletion during a prune action. Note that prune actions delete files for other reasons besides expiration. For an overview of pruning and a discussion of the categories of files deleted during a prune action, see the A periodic prune occurs at maximum-time-to-live half-intervals. For example, if the specified maximum-time-to-live is two weeks, a periodic prune occurs once a week. The purpose of this prune is to ensure that expired files get deleted on a timely basis. A periodic prune is always a full prune. For a definition of full prune and a detailed discussion of pruning, see the | ||||
![]() | PreloadOnCreate | A value indicating whether the cache receives duplicates of any new content added to the main storage area. When true, and when content normally gets cached (because the cache status is , cache capacity has not been exceeded, etc.), content newly added to the main storage area also gets added to the cache area. | ||||
![]() | PruneAmount | The percentage amount of cache content to delete during a cache prune action. The calculated amount determines the number of files to delete (based on the property) and also the total size of files to delete (based on the property). Specifically, a prune action begins by calculating two prune quotas: a number quota and a size quota. These quotas apply to each directory. The quota calculation takes into account the prune amount percentage (as specified by the
For example, for the number quota, suppose when the prune action begins the cache contains 100,100 files, the prune threshold is 100,000 files, the prune percentage is 5%, and the cache has 529 directories. The prune target, in this case, is 95,000: 100,000 minus 5,000 (5% of 100,000). The quota for each directory equals 10: 100,100 minus 95,000, divided by 529 (rounded up). The size quota gets calculated in a similar manner. A full prune action consists of two phases: an initial prune and a partial prune. An initial prune deletes all abandoned and expired files and also generates an LRU (least-recent-use) list for each directory. All files in the directory are put in ascending time-of-last-use order on this list; the first file listed has been accessed less recently than any other file (in other words, it is the oldest). A partial prune processes old files in LRU list order. As a file can be retrieved from the cache at any time--and thus might be younger than it was at LRU list generation time--a partial prune always checks the time-of-last-use for a file before deleting it. It skips any file with a time-of-last-use more recent than the LRU list creation time. The partial prune continues down the LRU list in this manner, taking files off the list as they are either deleted or skipped. All old and expired files deleted in a directory count towards the quotas for that directory, although the quotas only control the number of old files deleted during the partial prune (as all expired files get deleted during the initial prune). Note that in a full prune the prune quotas might be satisfied during the initial prune phase. In this case, the second phase of the full prune--the partial prune-- does not occur. Also, regardless of when the prune quotas might be satisfied during the course of the prune, an initial prune always generates a new LRU list. For an overview of pruning and a discussion of the categories of files deleted during a prune, see the | ||||
![]() | PruneThresholdContentElements | The minimum number of content elements in the cache area sufficient to trigger a cache prune action. Specifically, a background process periodically checks whether the content element count statistic (as indicated by the property) has exceeded this prune number threshold, or whether the content element size statistic (as indicated by the property) has exceeded the prune size threshold (as specified by the property). If so, a mandatory prune action gets launched; its purpose is to ensure that cache content remains under the prune threshold levels. With respect to any given directory, a mandatory prune can be either a full or partial prune (and so, with respect to the cache as a whole, a mandatory prune can be a mixture of full and partial prunes). It is a full prune only when the LRU list needs to be generated. Specifically, it is a full prune in these circumstances: this is the first pruning action for a new cache, and consequently no LRU list yet exists; the LRU list has expired (it is older than 1 day); or a previous prune action exhausted the LRU list. (Note that a partial prune can exhaust the LRU list without satisfying the prune quotas.) For an overview of cache pruning, see the Note that, as indicated above, the | ||||
![]() | PruneThresholdSizeKBytes | The minimum size of all content elements in the cache area sufficient to trigger a cache prune action (in kilobytes). Note that the | ||||
![]() | RootDirectoryPath | The fully qualified path to the root directory for this storage area. The path can be a local mount point, a local path, or a UNC path. The following information is specific to the use of
| ||||
![]() | Site | Identifies the site associated with a given object. A site represents a geographical area in the FileNet P8 domain. If you do not specify a site when creating the associated object, the value of that object's property defaults to the value of . |