D6.5 High Volume Server

The High Volume Server (HVS) is a extension of the Content Server.


  1. Batch Operations
    In High‑Volume Server batch mode multiple items collects to one batch and execute as a whole.
  2. Currency Scoping
    The scope manager controls the checking of object currency, so that objects are checked once during the currently defined scope.
  3. Data Partitioning
    Splitting the repository across multiple partitions.
  4. Lightweight Sysobjects
    discussed in a detailed article

Batch Operations

Batching is a Content Server-to-Database enhancement to optimize the time to store the metadata. The batch mode optimize the communication to the database by storing the metadata of many objects in a single database operation (batch).


The scoping feature eleminates a lot of traffic between the Content Server and the client application. A high number of validating queries are redundantly. The scoping feature is aimed at simplifying this effort by allowing the developer to define execution scopes by which redundant queries will use local DFC provided caches rather than having to send the queries over to the Content Server. This eliminates much message and query traffic to the RDBMS. The scoping feature is administrated by the scope manager.


This figure was taken from the EMC D6.5 HVS Perfromance and Scalability documentation.


Oracle and SQL 2005 Server Databeses can be partitioned into hot (high frequncy) and cold (compressed and frozen) areas.  Frozen partitions are read-only partitions in an effort to reduce the amount of data that needs to be backed  up.

The Documentum 6.5 High Volume Server added a new attribute to facilitate range partitioning; the attribute called I_partition.

The benefit of object range partitioning is economizing the storage capability based on the frequency of access.

GENERATE_PARTITION_SCHEME_SQL is a method to generate a SQL script to run against the database that creates the partitioning scheme and specifies the ranges of i_partition values for objects that will reside in those partitions.
When a new repository is created with partitioning enabled, only a single partition exists, called the last partition. All partitionable objects are in this last partition, until partitions are added. When a partition are added, a new range of i_partition values are assigned to the new partition. Objects are placed in a partition when its i_partition value is in the range assigned to that partition. The last partition is used for any objects whose  i_partition value is greater than the assigned ranges.

Subtypes are partitionable if their supertypes are. If a supertype is partitioned, then all subtypes created from it are also partitionable. If a supertype is not partitioned, a subtype cannot be partitioned either.

If the SysObject is subsequently moved to a different partition, the change will be propagated to the related objects. Relation objects will be moved if the relationship is defined between objects in the same partition.