Scality CDMI

Scality-specific CDMI driver.

plugin {
  # Basic configuration:
  obox_fs = scality:http://scality.example.com/?parameters
}

The parameters are:

Parameter

Description

Default

See HTTP-Based Object Storages for common parameters

preserve_objectid_prefix=<prefix>

Specifies the URL prefix, which is preserved before the cdmi_objectid/ in paths.

none

bulk_link_limit

Number of link operations supported within the same bulk link request.

New in version 2.2.36.

1000

bulk_link

Set to 1 to enable using bulk link requests

Deprecated since version 2.2.36.

v2.2: 0

use_listing

Use the Scality “listing” API rather than “readdir” API. This improves listing performance.

New in version 2.3.8.

none

CDMI paths should have two levels of hash directories:

mail_location = obox:%2Mu/%2.3Mu/%u:INDEX=~/:CONTROL=~/

We’ll use 2 + 3 chars of the MD5 of the username at the beginning of each object path to improve performance. These directories should be pre-created to CDMI.

Example configuration

mail_location = obox:%2Mu/%2.3Mu/%u:INDEX=~/:CONTROL=~/
plugin {
  obox_fs = fscache:512M:/var/cache/mails/%4Nu:compress:zstd:3:scality:http://scality.example.com/?addhdr=X-Dovecot-Hash:%2Mu/%2.3Mu&use_listing&timeout_msecs=65000
  obox_index_fs = compress:zstd:3:scality:http://scality.example.com/?addhdr=X-Dovecot-Hash:%2Mu/%2.3Mu&use_listing&timeout_msecs=65000
  fts_dovecot_fs = fts-cache:fscache:512M:/var/cache/fts/%4Nu:compress:zstd:3:scality:http://scality.example.com/%2Mu/%2.3Mu/%u/fts/?addhdr=X-Dovecot-Hash:%2Mu/%2.3Mu&use_listing&timeout_msecs=65000

  # With bulk-delete and bulk-link enabled, parallel operations can be large.
  # They should not be larger than bulk_delete_limit and bulk_link_limit.
  obox_max_parallel_copies = 1000
  obox_max_parallel_deletes = 1000
}

The X-Dovecot-Hash header is important for CDMI load balancer stickiness.

Use a slightly higher timeout for requests than Scality’s internal 60 second timeout.