Storage Repositories#
The spaces backend stores payload in one or multiple storage repositories. Currently supported are:
proxy
: meta-repository that can direct requests to other repositoriessfs
: simple file system, to be used on single node installationsstrongbox
: uses a separate strongbox-installation
An object can exist in only one repository at any time, with the exception of an ongoing migration.
Proxy repository#
The proxy must be used if more than one repositories are enabled. It will attempt to direct requests for existing objects to the repository where the object is stored. New objects are created in a preferred repository.
Configuration#
parameter | type | default value | allowed values |
---|---|---|---|
proxy.enabled | boolean | true | true, false |
proxy.preferredBackend | string | sfs | sfs, cassandra |
To use the proxy, at least one of the real backends must be enabled. The preferredBackend
value must reference an enabled backend.
Simple File System repository#
The SFS stores objects as chunks of 4MiB size in the file system of the application server.
/srv/spaces/data <-- config.getSfsBaseDir()
/{suffix}/{uid} <-- object home
/manifest.json <-- manifest location
/chunks <-- chunks home
/{partition}/{chunkId} <-- chunk location
uid
: object idsuffix
: last three characters ofuid
; used to reduce elements in a directorychunkId
: integer 0..{max}partition
:chunkId
/ 100
Configuration#
parameter | type | default value | allowed values |
---|---|---|---|
sfs.enabled | boolean | false | true, false |
sfs.baseDir | string | /srv/spaces/data | any existing directory in the file system |
sfs.chunkSize | number | 4194304 | 0 .. max file size |
sfs.minimumAvailableDiskspaceMB | number | 1000 | >0 |
The sfsBaseDir
must exist already, and the application server unix user must have ownership of the directory (or at least read/write permissions).