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 life of the repository.
|
57
|
### Repositories containing large directories will benefit greatly.
|
58
|
### In rarely read repositories, the I/O overhead may be significant as
|
59
|
### cache hit rates will most likely be low
|
60
|
### directory deltification is disabled by default.
|
61
|
# enable-dir-deltification = false
|
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 disabled by default.
|
69
|
# enable-props-deltification = false
|
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
|
[packed-revprops]
|
103
|
### This parameter controls the size (in kBytes) of packed revprop files.
|
104
|
### Revprops of consecutive revisions will be concatenated into a single
|
105
|
### file up to but not exceeding the threshold given here. However, each
|
106
|
### pack file may be much smaller and revprops of a single revision may be
|
107
|
### much larger than the limit set here. The threshold will be applied
|
108
|
### before optional compression takes place.
|
109
|
### Large values will reduce disk space usage at the expense of increased
|
110
|
### latency and CPU usage reading and changing individual revprops. They
|
111
|
### become an advantage when revprop caching has been enabled because a
|
112
|
### lot of data can be read in one go. Values smaller than 4 kByte will
|
113
|
### not improve latency any further and quickly render revprop packing
|
114
|
### ineffective.
|
115
|
### revprop-pack-size is 64 kBytes by default for non-compressed revprop
|
116
|
### pack files and 256 kBytes when compression has been enabled.
|
117
|
# revprop-pack-size = 64
|
118
|
###
|
119
|
### To save disk space, packed revprop files may be compressed. Standard
|
120
|
### revprops tend to allow for very effective compression. Reading and
|
121
|
### even more so writing, become significantly more CPU intensive. With
|
122
|
### revprop caching enabled, the overhead can be offset by reduced I/O
|
123
|
### unless you often modify revprops after packing.
|
124
|
### Compressing packed revprops is disabled by default.
|
125
|
# compress-packed-revprops = false
|