Scality sproxyd

sproxy driver requires Cassandra. Cassandra portions of the configuration (dictmap/refcounting) is explained in the Cassandra section.

Example sproxyd configuration:

mail_location = obox:%u:INDEX=~/:CONTROL=~/
plugin {
  obox_fs = fscache:1G:/var/cache/mails:compress:gz:6:dictmap:proxy:dict-async:cassandra ; sproxyd:http://sproxyd.scality.example.com/?class=2 ; refcounting-table:lockdir=/tmp:bucket-size=10000:bucket-cache=%h/buckets.cache:nlinks-limit=3
  obox_index_fs = compress:gz:6:dictmap:proxy:dict-async:cassandra ; sproxyd:http://sproxyd.scality.example.com/?class=2 ; diff-table
  fts_dovecot_fs = fts-cache:fscache:1G:/var/cache/mails: compress:gz:6:dictmap:proxy:dict-async:cassandra ; sproxyd:http://sproxyd.scality.example.com/?class=1 ; dict-prefix=%u/fts/
}

The class=2 specifies that Dovecot uses sproxyd with Class of Service value 2, which means that the objects are written to the Scality RING 3 times. This is generally the minimum allowable redundancy for mail and index objects.

FTS data is more easily reproducible, so losing those indexes is not as critical; Class of Service 1 (as used in example above) may be appropriate based on customer requirements.

Dovecot uses its own Scality key format, which encodes the object type also to the key itself.

Replace gz with maybe-gz if compression was not activated when the storage bucket was created. Ensure that zlib_save is not active if compress is active in obox plugin settings.