| [18] | 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 to minimize on-disk size.
|
|---|
| 103 | ### This setting controls the compression algorithm, which will be used in
|
|---|
| 104 | ### future revisions. It can be used to either disable compression or to
|
|---|
| 105 | ### select between available algorithms (zlib, lz4). zlib is a general-
|
|---|
| 106 | ### purpose compression algorithm. lz4 is a fast compression algorithm
|
|---|
| 107 | ### which should be preferred for repositories with large and, possibly,
|
|---|
| 108 | ### incompressible files. Note that the compression ratio of lz4 is
|
|---|
| 109 | ### usually lower than the one provided by zlib, but using it can
|
|---|
| 110 | ### significantly speed up commits as well as reading the data.
|
|---|
| 111 | ### lz4 compression algorithm is supported, starting from format 8
|
|---|
| 112 | ### repositories, available in Subversion 1.10 and higher.
|
|---|
| 113 | ### The syntax of this option is:
|
|---|
| 114 | ### compression = none | lz4 | zlib | zlib-1 ... zlib-9
|
|---|
| 115 | ### Versions prior to Subversion 1.10 will ignore this option.
|
|---|
| 116 | ### The default value is 'lz4' if supported by the repository format and
|
|---|
| 117 | ### 'zlib' otherwise. 'zlib' is currently equivalent to 'zlib-5'.
|
|---|
| 118 | # compression = lz4
|
|---|
| 119 | ###
|
|---|
| 120 | ### DEPRECATED: The new 'compression' option deprecates previously used
|
|---|
| 121 | ### 'compression-level' option, which was used to configure zlib compression.
|
|---|
| 122 | ### For compatibility with previous versions of Subversion, this option can
|
|---|
| 123 | ### still be used (and it will result in zlib compression with the
|
|---|
| 124 | ### corresponding compression level).
|
|---|
| 125 | ### compression-level = 0 ... 9 (default is 5)
|
|---|
| 126 |
|
|---|
| 127 | [packed-revprops]
|
|---|
| 128 | ### This parameter controls the size (in kBytes) of packed revprop files.
|
|---|
| 129 | ### Revprops of consecutive revisions will be concatenated into a single
|
|---|
| 130 | ### file up to but not exceeding the threshold given here. However, each
|
|---|
| 131 | ### pack file may be much smaller and revprops of a single revision may be
|
|---|
| 132 | ### much larger than the limit set here. The threshold will be applied
|
|---|
| 133 | ### before optional compression takes place.
|
|---|
| 134 | ### Large values will reduce disk space usage at the expense of increased
|
|---|
| 135 | ### latency and CPU usage reading and changing individual revprops.
|
|---|
| 136 | ### Values smaller than 4 kByte will not improve latency any further and
|
|---|
| 137 | ### quickly render revprop packing ineffective.
|
|---|
| 138 | ### revprop-pack-size is 16 kBytes by default for non-compressed revprop
|
|---|
| 139 | ### pack files and 64 kBytes when compression has been enabled.
|
|---|
| 140 | # revprop-pack-size = 16
|
|---|
| 141 | ###
|
|---|
| 142 | ### To save disk space, packed revprop files may be compressed. Standard
|
|---|
| 143 | ### revprops tend to allow for very effective compression. Reading and
|
|---|
| 144 | ### even more so writing, become significantly more CPU intensive.
|
|---|
| 145 | ### Compressing packed revprops is disabled by default.
|
|---|
| 146 | # compress-packed-revprops = false
|
|---|
| 147 |
|
|---|
| 148 | [io]
|
|---|
| 149 | ### Parameters in this section control the data access granularity in
|
|---|
| 150 | ### format 7 repositories and later. The defaults should translate into
|
|---|
| 151 | ### decent performance over a wide range of setups.
|
|---|
| 152 | ###
|
|---|
| 153 | ### When a specific piece of information needs to be read from disk, a
|
|---|
| 154 | ### data block is being read at once and its contents are being cached.
|
|---|
| 155 | ### If the repository is being stored on a RAID, the block size should be
|
|---|
| 156 | ### either 50% or 100% of RAID block size / granularity. Also, your file
|
|---|
| 157 | ### system blocks/clusters should be properly aligned and sized. In that
|
|---|
| 158 | ### setup, each access will hit only one disk (minimizes I/O load) but
|
|---|
| 159 | ### uses all the data provided by the disk in a single access.
|
|---|
| 160 | ### For SSD-based storage systems, slightly lower values around 16 kB
|
|---|
| 161 | ### may improve latency while still maximizing throughput. If block-read
|
|---|
| 162 | ### has not been enabled, this will be capped to 4 kBytes.
|
|---|
| 163 | ### Can be changed at any time but must be a power of 2.
|
|---|
| 164 | ### block-size is given in kBytes and with a default of 64 kBytes.
|
|---|
| 165 | # block-size = 64
|
|---|
| 166 | ###
|
|---|
| 167 | ### The log-to-phys index maps data item numbers to offsets within the
|
|---|
| 168 | ### rev or pack file. This index is organized in pages of a fixed maximum
|
|---|
| 169 | ### capacity. To access an item, the page table and the respective page
|
|---|
| 170 | ### must be read.
|
|---|
| 171 | ### This parameter only affects revisions with thousands of changed paths.
|
|---|
| 172 | ### If you have several extremely large revisions (~1 mio changes), think
|
|---|
| 173 | ### about increasing this setting. Reducing the value will rarely result
|
|---|
| 174 | ### in a net speedup.
|
|---|
| 175 | ### This is an expert setting. Must be a power of 2.
|
|---|
| 176 | ### l2p-page-size is 8192 entries by default.
|
|---|
| 177 | # l2p-page-size = 8192
|
|---|
| 178 | ###
|
|---|
| 179 | ### The phys-to-log index maps positions within the rev or pack file to
|
|---|
| 180 | ### to data items, i.e. describes what piece of information is being
|
|---|
| 181 | ### stored at any particular offset. The index describes the rev file
|
|---|
| 182 | ### in chunks (pages) and keeps a global list of all those pages. Large
|
|---|
| 183 | ### pages mean a shorter page table but a larger per-page description of
|
|---|
| 184 | ### data items in it. The latency sweetspot depends on the change size
|
|---|
| 185 | ### distribution but covers a relatively wide range.
|
|---|
| 186 | ### If the repository contains very large files, i.e. individual changes
|
|---|
| 187 | ### of tens of MB each, increasing the page size will shorten the index
|
|---|
| 188 | ### file at the expense of a slightly increased latency in sections with
|
|---|
| 189 | ### smaller changes.
|
|---|
| 190 | ### For source code repositories, this should be about 16x the block-size.
|
|---|
| 191 | ### Must be a power of 2.
|
|---|
| 192 | ### p2l-page-size is given in kBytes and with a default of 1024 kBytes.
|
|---|
| 193 | # p2l-page-size = 1024
|
|---|
| 194 |
|
|---|
| 195 | [debug]
|
|---|
| 196 | ###
|
|---|
| 197 | ### Whether to verify each new revision immediately before finalizing
|
|---|
| 198 | ### the commit. This is disabled by default except in maintainer-mode
|
|---|
| 199 | ### builds.
|
|---|
| 200 | # verify-before-commit = false
|
|---|