...
SplitfilesystemV3 (from tia ContentServer 3.6.0 or newer)
The files are stored within a filesystem in Base32 coded structures. The whole path is base 32 coded and divided into blocks.
The size of the blocks for folders can be choosen as 4, 8 (default) or 16. The filename is splitted with a variable number of characters, with a default of 250 chars.
The blockSize setting is stored in the filesystem in .kgs/blockSize.
Example:
Code Block |
---|
FZVWO4Y\MNXW4ZTJ\M5SGC5DB\NVSXIYI\MNXW23LP\NY\MFSF643VOBYGYZLNMVXHIYLSPEXHQ3LM.Info |
Example:
Code Block |
---|
<repo>.contentservice.type = splitfilesystemv3 <repo>.description = Finance Repository <repo>.saphttp.security = 1 <repo>.accessmode = rucd <repo>.authentication.required = false <repo>.authentication.user = <repo>.authentication.pwdalias = #===== FI content service configuration (filesystem|splitfilesystemv2|splitfilesystemv3|azureblobstore|s3blobstore|kgsstore) <repo>.contentservice.splitfilesystemv3.root.1 = C:/Doc_Base <repo>.contentservice.splitfilesystemv3.root.2 = C:/Doc_Base_Disk2 <repo>.contentservice.splitfilesystemv3.contrepinpath = true <repo>.contentservice.splitfilesystemv3.maxfolderblocks=8 <repo>.contentservice.splitfilesystemv3.maxFileNameLength=200 <repo>.contentservice.splitfilesystemv3.rootSelectionIntervalH=24 |
...
Parameter | Description | Default | ||
---|---|---|---|---|
root.<n> | Folder(s) where the documents and all related data are stored, it is allowed to add folder with a higher number anytime, you should not remove folder unless you do not want to access the files anymore. Using the same path more than once as root directory is not allowed. | - | ||
root.<n>.freespacegb | with this value it is possible to control the behavior of selecting the root folder. | -1 | ||
contrepinpath | create a folder in root that has the same name as the repository | false | ||
maxfolderblocks | create subfolder from the base32 encoded folder name with this length, this parameter can reduce the folder depth . Available values 4, 8, 16
| 8 | ||
maxFileNameLength | the filename of the document encoded in base32 is maximum this long, otherwise it will be splitted in subfolders. Any number between 10 and 250 can be used.
| 250 | ||
rootSelectionIntervalH | Timeintervall Time interval to find a new root directory, when freespace free space on disk is smaller than freespacegb. see https://kgs-software.atlassian.net/wiki/spaces/DOCUEN/pages/edit-v22339602437/2339602437#rootSplitfilesystem#root-folder-selection-behaviorrules | 12 |
root folder selection rules
Multiple root directories are allowed in SFSV3 to spread repositories across different disk/shares and avoid limit of filesystems.
Multiple roots can be configured distinguished by a ordernumberorder number. e.g. root.1
,root.2
the algorithm tries in numbers order to pick the root
it checks the available space and compares it with the given limit. Default limit is -1.
If the algorithm finds out, that a root hasn’t enough space it tries the next.
with limit -1 a drive can be blocked. The space detection is skipped. It is then used in read only state (and / or only for adding components and infosinformations)
if the last root has -1 it will be written until IOEXCEPTIONI/O-exception, means the root is “full“
the algorithm is triggered by:
if rootSelectionIntervalH is exceeded
if IOException I/O-exception had happen while IO I/O-operation
Example:
Code Block |
---|
<repo>.contentservice.splitfilesystemv3.root.1 = C:/Doc_Base <repo>.contentservice.splitfilesystemv3.root.2 = C:/Doc_Base_Disk2 <repo>.contentservice.splitfilesystemv3.root.2.freespacegb=-1 <repo>.contentservice.splitfilesystemv3.root.3 = C:/Doc_Base_Disk3 <repo>.contentservice.splitfilesystemv3.root.3.freespacegb=10 <repo>.contentservice.splitfilesystemv3.root.4 = C:/Doc_Base_Disk4 <repo>.contentservice.splitfilesystemv3.root.4.freespacegb=50 |
...