[AssetCache]
    ;;
    ;; Options for FlotsamAssetCache
    ;;

    ; cache directory can be shared by multiple instances
    CacheDirectory = ./assetcache
    ; Other examples:
    ;CacheDirectory = /directory/writable/by/OpenSim/instance

    ; Log level
    ; 0 - (Error) Errors only
    ; 1 - (Info)  Hit Rate Stats + Level 0
    ; 2 - (Debug) Cache Activity (Reads/Writes) + Level 1
    ;
    LogLevel = 0

    ; How often should hit rates be displayed (given in AssetRequests)
    ; 0 to disable
    HitRateDisplay = 100

    ; Set to false for no memory cache
    ; assets can be requested several times in short periods
    ; so even a small memory cache is useful
    MemoryCacheEnabled = false

    ; If a memory cache hit happens, or the asset is still in memory
    ; due to other causes, update the timestamp on the disk file anyway.
    ; Don't turn this on unless you share your asset cache between simulators
    ; AND use an external process, e.g. cron job, to clean it up.
    UpdateFileTimeOnCacheHit = false

    ; Enabling this will cache negative fetches. If an asset is negative-cached
    ; it will not be re-requested from the asset server again for a while.
    ; Generally, this is a good thing.
    ;
    ; Regular expiration settings (non-sliding) mean that the asset will be
    ; retried after the time has expired. Sliding expiration means that
    ; the time the negative cache will keep the asset is refreshed each
    ; time a fetch is attempted. Use sliding expiration if you have rogue
    ; scripts hammering the asset server with requests for nonexistent
    ; assets.
    ;
    ; There are two cases where negative caching may cause issues:
    ;
    ; 1 - If an invalid asset is repeatedly requested by a script and that asset is
    ;     subsequently created, it will not be seen until fcache clear
    ;     is used. This is a very theoretical scenario since UUID collisions
    ;     are deemed to be not occuring in practice.
    ;     This can only become an issue with sliding expiration time.
    ;
    ; 2 - If the asset service is clustered, an asset may not have propagated
    ;     to all cluster members when it is first attempted to fetch it.
    ;     This may theoretically occur with networked vendor systems and
    ;     would lead to an asset not found message. However, after the
    ;     expiration time has elapsed, the asset will then be fetchable.
    ;
    ; The defaults below are suitable for all small to medium installations
    ; including grids.
    NegativeCacheEnabled = true
    NegativeCacheTimeout = 120
    NegativeCacheSliding = false

    ; Set to false for no file cache
    FileCacheEnabled = true

    ; How long {in hours} to keep assets cached in memory, .5 == 30 minutes
    ; even a few minutes may mean many assets loaded to memory, if not all.
    ; this is good if memory is not a problem.
    ; if memory is a problem then a few seconds may actually save same.
    ; see hit rates with console comand: fcache status
    MemoryCacheTimeout = .016 ; one minute

    ; How long {in hours} to keep assets cached on disk, .5 == 30 minutes
    ; Specify 0 if you do not want your disk cache to expire
    FileCacheTimeout = 48

    ; How often {in hours} should the disk be checked for expired files
    ; Specify 0 to disable expiration checking
    FileCleanupTimer = 0.0  ; disabled

    ; If WAIT_ON_INPROGRESS_REQUESTS has been defined then this specifies how
    ; long (in miliseconds) to block a request thread while trying to complete
    ; an existing write to disk.
    ; NOTE: THIS PARAMETER IS NOT CURRENTLY USED BY THE CACHE
    ; WaitOnInprogressTimeout = 3000

    ; Number of tiers to use for cache directories (current valid
    ; range 1 to 3)
    ;CacheDirectoryTiers = 1

    ; Number of letters per path tier, 1 will create 16 directories
    ; per tier, 2 - 256, 3 - 4096 and 4 - 65K
    ;CacheDirectoryTierLength = 3

    ; Warning level for cache directory size
    ;CacheWarnAt = 30000
