a | b/db/fsfs.conf | ||
---|---|---|---|
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 |