Where is the file stored?

When a document is imported into document the metadata goes into the database and the file goes into some content store, typically the filesystem. The users are not bothered about where the content server will store this file but the content server needs to make that decision.

A Documentum repository specifies various storage areas that are available via objects of type dm_store. Each dm_store object holds enough information for the content server to get to the physical location identified for the storage area. The relative path from there is figured out based on the object ID [of the content object as clarified in one of the comments]. Therefore the content server needs to identify the storage area to use before it can store the file.

Here is how it is decided:

  1. If Content Storage Services (CSS) are in use it tries to resolve this by applying the policies in place using the CSS algorithm. If CSS is not in use or if it fails to resolve the storage area using this algorithm it tries the next step.
  2. Default Storage Algorithm
    1. Primary Content
      1. If the file is primary content for the sysobject, this approach is used.
      2. If a storage type is set on the sysobject that is used. Otherwise,
      3. If a storage type is set on the format that is used. Otherwise,
      4. If a default storage type is set on the object type that is used. Otherwise,
      5. Turbo storage is used (stored in database)
    2. Rendition
      1. If the file is a rendition of a primary content this approach is used
      2. If the storage arg of addrendition is specified, that is used. Otherwise,
      3. If a storage type is set on the format that is used. Otherwise,
      4. Storage are for the primary content (dmr_content.rendition=0) is used

3 thoughts on “Where is the file stored?

  1. Good post. One slight correction/clarification.

    The filename/directory is based on the object id, but not of the actual object. Since an object can refer to multiple content files, and multiple objects can refer to the same content file, each file is made into a Content Object. Each file has a row in the dmr_content table, of which the column data_ticket tells you where it is.

    More details provided by Robin East on his blog: http://robineast.wordpress.com/2007/01/24/where-is-my-content-stored/

    To go from the data_ticket to the path, just do:

    1) Make the data ticket positive and convert to Hex.

    2) Subtract result from 0x100000000 (0x80000000 * 2).


  2. Thanks for the correction/clarification, I appreciate it very much.

    The focus of this post was selection of the content store so I did not delve into dm_sysobject and dmr_content definitions – I almost assumed that knowledge. When I mention primary content or rendition I am referring to dmr_content objects.

    However, your comment adds that useful information for anyone who is new to these concepts.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s