Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Next »

Splitfilesystem

Currently there are three different Versions with different features available. Splitfilesystem and SplitfilesystemV2 are in maintanace mode and can still be used in existing installations. For new installations or repositories SplitfilesystemV3 is recommended.

SplitfilesystemV3

Example:

<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

Folder separation is always / see Syntax rules for repository.cfg file

To use the splitfilesystemv3 the <repo>.contentservice.typeneeds to be splitfilesystemv3.

All parameters for splitfilesystemv3 must be configured within <repo>.contentservice.splitfilesystemv3 on a repository or template level.

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.

-

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/edit-v2/2339602437#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

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.

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

250

rootSelectionIntervalH

Timeintervall to find a new root directory, when freespace on disk is smaller than freespacegb. see https://kgs-software.atlassian.net/wiki/spaces/DOCUEN/pages/edit-v2/2339602437#root-folder-selection-behavior

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 ordernumber. 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 infos)

      • if the last root has -1 it will be written until IOEXCEPTION, means the root is “full“

  • the algorithm is triggered by:

    • if rootSelectionIntervalH is exceeded

    • if IOException had happen while IO operation

Example:

<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

In this example root.1 is skiped and only used for reading because freespacegb is not set and therefore -1.

root.2 is also skipped because freespacegb is -1.

root.3 is only used when C:/Doc_Base_Disk3 has more than 10 GB available space.
root.4 is only used when C:/Doc_Base_Disk4 has more than 50 GB available space.
Is root.3 and root.4 disk space exceeded storing documents is no longer possible only reading.

Be aware that SFSV3 tries to keep documents in same folder together, when a document is stored in the original root and later a second document or component should be added in the same folder even when root.4 is used at the moment, SFSV3 will store the document in root (C:/Doc_Base). Make sure that your not used disk have some space left otherwise modification is no longer possible.

SplitfilesystemV2

The files are stored within a filesystem in Base32 coded structures. The whole path is base 32 coded and divided into blocks.

C:\Doc_Base\FI\FZVW\O4Y\OJQX\O\GIYD\EMZQ\G4YT\GXZW\GEYW\GZJQ\G44C\2MRZ\GE2S\2NBS\GNSC\2OBR\HEYC\2YZX\GJSD\IMBT\GM3W\MZRZ\L5XG

The metadata and properties of the archived document are stored in a .info-File as JSON.

{
  "properties": {
    "contentDigestAlgorithm": "MD5",
    "creationUser": "LOCAL SERVICE",
    "creationTime": "2023-07-13T07:03:50.867280400Z[UTC]",
    "propertyLayoutVersion": "V02.00",
    "modificationTime": "2023-07-13T08:03:37.406140Z[UTC]",
    "modificationUser": "LOCAL SERVICE",
    "objectName": "20230713_611ce078-2915-423d-8190-c72d40337ff9_node",
    "contentLength": "1127",
    "repository": "FI",
    "contentDigest": "68FAB75EC1AC8D2820068CC95FAA5EDE",
    "contentStreamLength": "1127",
    "archiveLinkVersion": "0046"
  }
}

Configurationparameters

FI.contentservice.type     = splitfilesystemv2
FI.description             = Finance Repository
FI.saphttp.security        = 1
FI.accessmode              = rucd
FI.authentication.required = false
FI.authentication.user     = 
FI.authentication.pwdalias = 

#===== FI content service configuration (filesystem|splitfilesystemv2|splitfilesystemv3|azureblobstore|s3blobstore|kgsstore)
FI.contentservice.splitfilesystemv2.root = C:/Doc_Base
FI.contentservice.splitfilesystemv2.contrepinpath = true # default false

Folder separation is always / see Syntax rules for repository.cfg file

  • No labels