source: db/fsfs.conf

Last change on this file was 18, checked in by rwerner, 3 years ago
File size: 10.8 KB
Line 
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
Note: See TracBrowser for help on using the repository browser.