source: trunk/db/fsfs.conf @ 1582

Comments

    Last change on this file since 1582 was 1572, checked in by pg, 7 years ago
    File size: 10.1 KB
    RevLine 
    [1572]1### This file controls the configuration of the FSFS filesystem.
    2
    3[memcached-servers]
    4### These options name memcached servers used to cache internal FSFS
    5### data.  See http://www.danga.com/memcached/ for more information on
    6### memcached.  To use memcached with FSFS, run one or more memcached
    7### servers, and specify each of them as an option like so:
    8# first-server = 127.0.0.1:11211
    9# remote-memcached = mymemcached.corp.example.com:11212
    10### The option name is ignored; the value is of the form HOST:PORT.
    11### memcached servers can be shared between multiple repositories;
    12### however, if you do this, you *must* ensure that repositories have
    13### distinct UUIDs and paths, or else cached data from one repository
    14### might be used by another accidentally.  Note also that memcached has
    15### no authentication for reads or writes, so you must ensure that your
    16### memcached servers are only accessible by trusted users.
    17
    18[caches]
    19### When a cache-related error occurs, normally Subversion ignores it
    20### and continues, logging an error if the server is appropriately
    21### configured (and ignoring it with file:// access).  To make
    22### Subversion never ignore cache errors, uncomment this line.
    23# fail-stop = true
    24
    25[rep-sharing]
    26### To conserve space, the filesystem can optionally avoid storing
    27### duplicate representations.  This comes at a slight cost in
    28### performance, as maintaining a database of shared representations can
    29### increase commit times.  The space savings are dependent upon the size
    30### of the repository, the number of objects it contains and the amount of
    31### duplication between them, usually a function of the branching and
    32### merging process.
    33###
    34### The following parameter enables rep-sharing in the repository.  It can
    35### be switched on and off at will, but for best space-saving results
    36### should be enabled consistently over the life of the repository.
    37### 'svnadmin verify' will check the rep-cache regardless of this setting.
    38### rep-sharing is enabled by default.
    39# enable-rep-sharing = true
    40
    41[deltification]
    42### To conserve space, the filesystem stores data as differences against
    43### existing representations.  This comes at a slight cost in performance,
    44### as calculating differences can increase commit times.  Reading data
    45### will also create higher CPU load and the data will be fragmented.
    46### Since deltification tends to save significant amounts of disk space,
    47### the overall I/O load can actually be lower.
    48###
    49### The options in this section allow for tuning the deltification
    50### strategy.  Their effects on data size and server performance may vary
    51### from one repository to another.  Versions prior to 1.8 will ignore
    52### this section.
    53###
    54### The following parameter enables deltification for directories. It can
    55### be switched on and off at will, but for best space-saving results
    56### should be enabled consistently over the lifetime of the repository.
    57### Repositories containing large directories will benefit greatly.
    58### In rarely accessed repositories, the I/O overhead may be significant
    59### as caches will most likely be low.
    60### directory deltification is enabled by default.
    61# enable-dir-deltification = true
    62###
    63### The following parameter enables deltification for properties on files
    64### and directories.  Overall, this is a minor tuning option but can save
    65### some disk space if you merge frequently or frequently change node
    66### properties.  You should not activate this if rep-sharing has been
    67### disabled because this may result in a net increase in repository size.
    68### property deltification is enabled by default.
    69# enable-props-deltification = true
    70###
    71### During commit, the server may need to walk the whole change history of
    72### of a given node to find a suitable deltification base.  This linear
    73### process can impact commit times, svnadmin load and similar operations.
    74### This setting limits the depth of the deltification history.  If the
    75### threshold has been reached, the node will be stored as fulltext and a
    76### new deltification history begins.
    77### Note, this is unrelated to svn log.
    78### Very large values rarely provide significant additional savings but
    79### can impact performance greatly - in particular if directory
    80### deltification has been activated.  Very small values may be useful in
    81### repositories that are dominated by large, changing binaries.
    82### Should be a power of two minus 1.  A value of 0 will effectively
    83### disable deltification.
    84### For 1.8, the default value is 1023; earlier versions have no limit.
    85# max-deltification-walk = 1023
    86###
    87### The skip-delta scheme used by FSFS tends to repeatably store redundant
    88### delta information where a simple delta against the latest version is
    89### often smaller.  By default, 1.8+ will therefore use skip deltas only
    90### after the linear chain of deltas has grown beyond the threshold
    91### specified by this setting.
    92### Values up to 64 can result in some reduction in repository size for
    93### the cost of quickly increasing I/O and CPU costs. Similarly, smaller
    94### numbers can reduce those costs at the cost of more disk space.  For
    95### rarely read repositories or those containing larger binaries, this may
    96### present a better trade-off.
    97### Should be a power of two.  A value of 1 or smaller will cause the
    98### exclusive use of skip-deltas (as in pre-1.8).
    99### For 1.8, the default value is 16; earlier versions use 1.
    100# max-linear-deltification = 16
    101###
    102### After deltification, we compress the data through zlib to minimize on-
    103### disk size.  That can be an expensive and ineffective process.  This
    104### setting controls the usage of zlib in future revisions.
    105### Revisions with highly compressible data in them may shrink in size
    106### if the setting is increased but may take much longer to commit.  The
    107### time taken to uncompress that data again is widely independent of the
    108### compression level.
    109### Compression will be ineffective if the incoming content is already
    110### highly compressed.  In that case, disabling the compression entirely
    111### will speed up commits as well as reading the data.  Repositories with
    112### many small compressible files (source code) but also a high percentage
    113### of large incompressible ones (artwork) may benefit from compression
    114### levels lowered to e.g. 1.
    115### Valid values are 0 to 9 with 9 providing the highest compression ratio
    116### and 0 disabling it altogether.
    117### The default value is 5.
    118# compression-level = 5
    119
    120[packed-revprops]
    121### This parameter controls the size (in kBytes) of packed revprop files.
    122### Revprops of consecutive revisions will be concatenated into a single
    123### file up to but not exceeding the threshold given here.  However, each
    124### pack file may be much smaller and revprops of a single revision may be
    125### much larger than the limit set here.  The threshold will be applied
    126### before optional compression takes place.
    127### Large values will reduce disk space usage at the expense of increased
    128### latency and CPU usage reading and changing individual revprops.
    129### Values smaller than 4 kByte will not improve latency any further and
    130### quickly render revprop packing ineffective.
    131### revprop-pack-size is 4 kBytes by default for non-compressed revprop
    132### pack files and 16 kBytes when compression has been enabled.
    133# revprop-pack-size = 4
    134###
    135### To save disk space, packed revprop files may be compressed.  Standard
    136### revprops tend to allow for very effective compression.  Reading and
    137### even more so writing, become significantly more CPU intensive.
    138### Compressing packed revprops is disabled by default.
    139# compress-packed-revprops = false
    140
    141[io]
    142### Parameters in this section control the data access granularity in
    143### format 7 repositories and later.  The defaults should translate into
    144### decent performance over a wide range of setups.
    145###
    146### When a specific piece of information needs to be read from disk,  a
    147### data block is being read at once and its contents are being cached.
    148### If the repository is being stored on a RAID, the block size should be
    149### either 50% or 100% of RAID block size / granularity.  Also, your file
    150### system blocks/clusters should be properly aligned and sized.  In that
    151### setup, each access will hit only one disk (minimizes I/O load) but
    152### uses all the data provided by the disk in a single access.
    153### For SSD-based storage systems, slightly lower values around 16 kB
    154### may improve latency while still maximizing throughput.  If block-read
    155### has not been enabled, this will be capped to 4 kBytes.
    156### Can be changed at any time but must be a power of 2.
    157### block-size is given in kBytes and with a default of 64 kBytes.
    158# block-size = 64
    159###
    160### The log-to-phys index maps data item numbers to offsets within the
    161### rev or pack file.  This index is organized in pages of a fixed maximum
    162### capacity.  To access an item, the page table and the respective page
    163### must be read.
    164### This parameter only affects revisions with thousands of changed paths.
    165### If you have several extremely large revisions (~1 mio changes), think
    166### about increasing this setting.  Reducing the value will rarely result
    167### in a net speedup.
    168### This is an expert setting.  Must be a power of 2.
    169### l2p-page-size is 8192 entries by default.
    170# l2p-page-size = 8192
    171###
    172### The phys-to-log index maps positions within the rev or pack file to
    173### to data items,  i.e. describes what piece of information is being
    174### stored at any particular offset.  The index describes the rev file
    175### in chunks (pages) and keeps a global list of all those pages.  Large
    176### pages mean a shorter page table but a larger per-page description of
    177### data items in it.  The latency sweetspot depends on the change size
    178### distribution but covers a relatively wide range.
    179### If the repository contains very large files,  i.e. individual changes
    180### of tens of MB each,  increasing the page size will shorten the index
    181### file at the expense of a slightly increased latency in sections with
    182### smaller changes.
    183### For source code repositories, this should be about 16x the block-size.
    184### Must be a power of 2.
    185### p2l-page-size is given in kBytes and with a default of 1024 kBytes.
    186# p2l-page-size = 1024
    Note: See TracBrowser for help on using the repository browser.