Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 means the root folder will be skipped, expect the one with the highest number.
For any other value > 0 the folder will be checked if enough free disk space is available then this folder will be used. The folder with the smallest number and enough free space will be used. see also https://kgs-software.atlassian.net/wiki/spaces/DOCUEN/pages/2339602437/Splitfilesystem#root-folder-selection-rules .

-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

Note

This value cannot be changed in an existing repository it will lead to data lost and inconsistency!

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.

Note

This value cannot be changed in an existing repository it will lead to data lost and inconsistency!

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/2339602437/Splitfilesystem#root-folder-selection-rules

12

...

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

...