Author: stefan2
Date: Tue Mar 25 23:12:02 2014
New Revision: 1581587
URL: http://svn.apache.org/r1581587
Log:
Document a few bits in our 1.9 release notes.
* publish/docs/release-notes/1.9.html
(): Add sections for FSFS format 7, FSX and svnadmin improvements.
Modified:
subversion/site/publish/docs/release-notes/1.9.html
Modified: subversion/site/publish/docs/release-notes/1.9.html
URL:
http://svn.apache.org/viewvc/subversion/site/publish/docs/release-notes/1.9.html?rev=1581587&r1=1581586&r2=1581587&view=diff
==============================================================================
--- subversion/site/publish/docs/release-notes/1.9.html (original)
+++ subversion/site/publish/docs/release-notes/1.9.html Tue Mar 25 23:12:02 2014
@@ -30,8 +30,10 @@
</h2>
<ul>
- <li><a href="#dwim-feature"
- >### Some new feature</a></li>
+ <li><a href="#fsfs-improvements"
+ >FSFS improvements</a></li>
+ <li><a href="#fsx"
+ >FSX - A new experimental repository backend</a></li>
<li><a href="#enhancements"
>Many enhancements and bug fixes</a></li>
<li><a href="#issues"
@@ -98,11 +100,11 @@ and what impact these changes may have.<
<th>Minimum Repository</th>
<th>Notes</th></tr>
<tr>
- <td><a href="#dwim-feature">### some cool feature</a></td>
- <td>1.9</td>
- <td>any</td>
+ <td><a href="#FSX">FSX</a></td>
<td>any</td>
- <td></td></tr>
+ <td>1.9</td>
+ <td>1.9</td>
+ <td>Will not be compatible with 1.10</td></tr>
<tr>
<td colspan="5"><sup>1</sup>Reminder: when using the <tt>file://</tt>
repository access method, the Subversion program is both the client
@@ -226,16 +228,258 @@ for erroneous settings lest they will be
title="Link to this section">¶</a>
</h2>
-<div class="h3" id="dwim-feature">
-<h3>### DWIM option
- <a class="sectionlink" href="#dwim-option"
+<div class="h3" id="fsfs-improvements">
+<h3>FSFS improvements
+ <a class="sectionlink" href="#ffsfs-improvements"
+ title="Link to this section">¶</a>
+</h3>
+
+<div class="h4" id="fsfs-format7">
+<h4>Format bump
+ <a class="sectionlink" href="#fsfs-format7"
+ title="Link to this section">¶</a>
+</h4>
+
+<p>The default repository format number is now 7. In contrast to previous
+releases, this one is a major overhaul with the general goal of I/O reduction.
+Major changes include:
+</p>
+
+<ul>
+ <li>Revision content is no longer addressed by physical location (offset)
+ within the rev file but by logical item numbers. Two index files provide
+ the necessary mapping information. You can no longer manipulate the
+ rev / pack file contents manually.</li>
+ <li><tt>svnadmin pack</tt> reorders the revision data such that related
+ information is put next to each other and everything can often be read
+ with a single I/O.</li>
+ <li>Block reads will now fetch data in larger blocks of configurable size
+ (64kB by default) and cache all their contents. This eliminates much of
+ the OS overhead.</li>
+ <li>Explicit flags for <tt>svn:mergeinfo</tt> changes speed up
+ mergeinfo-related operations like <tt>svn log -g</tt>.</li>
+ <li>Full checksum coverage of all revision data, including meta data and
+ structural information.</li>
+ <li>Additional index files for every revision or pack file. This doubles
+ the number of files in an unpacked repository. Therefore, pack
regularly.
+ </li>
+ <li>Support commits while packing is in progress.</li>
+</ul>
+
+<p>As with earlier releases, you may simply run <tt>svnadmin upgrade</tt> on
+your repository. The new format will then only be used for revision starting
+with the next shard (usually next multiple of 1000). For best performance,
+however, it is strongly recommended to perform a full
+<a
href="http://svnbook.red-bean.com/en/1.9/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate.svnadmin">dump
/ load</a> cycle.
+</p>
+
+<div class="notice">
+ <p>Make sure to run <tt>svnadmin pack</tt> on your format 7 repositories at
+ regular intervals. Otherwise, they may perform worse than previous formats.
+ </p>
+</div>
+
+</div> <!-- fsfs-format7 -->
+
+<div class="h4" id="format7-options">
+ <h4>Format 7 tuning options
+ <a class="sectionlink" href="#format7-options"
+ title="Link to this section">¶</a>
+ </h4>
+
+<p>New configuration options are available for tuning read block sizes (format
+7 only). They may be changed at any time without causing consistency issues
+with existing revisions. Changing them is rarely necessary, but may result in
+slightly improved performance with your specific storage backend or when
+dealing with multi-TB repositories. See the commentary in <tt>fsfs.conf</tt>
+for more information.
+
+<pre>
+ [io]
+ block-size = 256
+ l2p-page-size = 30000
+ p2l-page-size = 16384
+</pre>
+
+</div> <!-- fsfs-format7 -->
+
+<div class="h4" id="fsfs-compression">
+<h4>Zlib compresssion is now optional
+ <a class="sectionlink" href="#fsfs-compression"
+ title="Link to this section">¶</a>
+</h4>
+
+<p>FSFS uses a combination of two methods to reduce on-disk data size. First,
+we determine the changes (delta) against some previous version of the same
file.
+This process can be controlled by fsfs.conf settings since 1.8. The result
+would then be compressed using ZIP/deflate. That relatively costly operation
+limits commit speeds of large incompressible files. You may now specify the
+compression level in fsfs.conf or disable the ZIP step entirely:
+</p>
+
+<pre>
+ [deltification]
+ compression-level = 0
+</pre>
+
+</div> <!-- fsfs-compression -->
+
+<div class="h4" id="fsfs-defaults">
+<h4>Changed deltification defaults
+ <a class="sectionlink" href="#fsfs-defaults"
+ title="Link to this section">¶</a>
+</h4>
+
+<p>Directory and property deltification are now enabled by default for FSFS
+repositories in 1.6 format or newer. Various optimization were added to delta
+creation code to minimize the read amplification effect and to provide a net
+speedup when using deltification vs. not using it. Don't disable
+<a href="#fsfs-caching">txdelta caches</a> when using directories
+deltification.</p>
+
+<p>If you don't want Subversion 1.9 to deltify properties and directories in
+older format repositories, modify or add the following settings in the
+respository's fsfs.conf file:
+</p>
+
+<pre>
+ [deltification]
+ enable-dir-deltification = false
+ enable-props-deltification = false
+</pre>
+
+</div> <!-- fsfs-defaults -->
+
+<div class="h4" id="fsfs-caching">
+<h4>Changes to the caching
+ <a class="sectionlink" href="#fsfs-caching"
+ title="Link to this section">¶</a>
+</h4>
+
+<p>The caching logic has been enhanced to cope with the extra load caused by
+the access indirection introduced in FSFS format 7. While most of this simply
+means more net speed, some changes may affect your configuration settings.</p>
+
+<ul>
+ <li>Fulltext and txdelta caching are now enabled by default for all servers
+ as well as local repository access. Revision property caching is still
+ opt-in.</li>
+ <li>Directories 4x as large as in 1.8 can now be cached.</li>
+ <li>Caching is quasi-perfect on short time scales (requesting data equal or
+ less than approx. 10% of the cache size). This greately improves
+ performance when e.g. many clients check out the same project.</li>
+ <li>Long-term caching is now priority-based with text deltas having the
lowest
+ priority. This results in slower but more reliable heating up, i.e. it
+ takes multiple similar requests until all frequently used data is kept in
+ cache, but it will reach this point eventually while older release might
+ not. You may disable txdelta caching to reduce cache load and heat caches
+ more quickly.</li>
+</ul>
+
+</div> <!-- fsfs-caching -->
+
+</div> <!-- fsfs-improvements -->
+
+<div class="h3" id="fsx">
+<h3>FSX - A new experimental repository backend
+ <a class="sectionlink" href="#fsx"
title="Link to this section">¶</a>
</h3>
-<p><span style="color: red"><i>### Command line now supports the
-Do What I Mean (TM) flag.</i></span></p>
+<div class="h4" id="fsx-overview">
+<h4>Overview
+ <a class="sectionlink" href="#fsx-overview"
+ title="Link to this section">¶</a>
+</h4>
+
+<p>Since its inception 10 years ago, FSFS has been improved greately and the
+<a href="#fsfs-format7">improvements provided with format 7</a> are another
+major step forward. However, there are limits to what can be done in a
+meaningful and backward compatible way. FSX has been designed to overcome
+these limitations. Here some of the intended improvements:
+</p>
+
+<ul>
+ <li>90% reduction in metadata overhead.</li>
+ <li>Efficient handling of very large files.</li>
+ <li>Higher overall compression rates, in particular for office-style
+ documents.</li>
+ <li>Information required for log and merge operations is more readily
+ available.</li>
+ <li>O(1) handling of large directories.</li>
+ <li>Versioned revision properties.</li>
+ <li>Partitionable storage.</li>
+ <li>Arbitrary meta data storage and indexing facilities.</li>
+</ul>
+
+<p>Development of FSX has been started as a fork of FSFS to guarantee
+functional completeness and testability. The current code still contains
+remnants of FSFS legacy code and not all of the above improvements have been
+implemented, yet. Later releases will close the gap and remove trasitional
+code.
+</p>
+
+<div class="notice">
+ <p><span style="color: red"><b>WARNING:</b></span> FSX in NOT production
+ ready. DO NOT USE IT - unless you have read this section carefully and
+ agreed to the limitations that come with FSX in Subversion 1.9.</p>
+</div>
+
+</div> <!-- fsx-overview -->
+
+<div class="h4" id="fsx-usage-scennarios">
+<h4>Usage scennarios
+ <a class="sectionlink" href="#fsx-usage-scennarios"
+ title="Link to this section">¶</a>
+</h4>
+
+<p>FSX is nowhere near as stable and reliable as FSFS. Furthermore, there will
+be no support for 1.9-style FSX repositories in 1.10
+(see <a href="#fsx-incompatibility">Incompatibility</a>). Think, therefore,
+of all data in a FSX repository as being potentially corrupt. Due to its
+superior performance and storage efficiency, however, there are two use-cases
+where FSX might be a vaiable option:</p>
+
+<ul>
+ <li>Running analysis or reporting tools whose output does not need to be 100%
+ reliable. Use FSX as a high-speed data source in a read-only
mirror.</li>
+ <li>Investigate how FSX may fit into your future infrastructure. How well
+ does it perform with your data set concerning disk, I/O, RAM and CPU
+ usage?</li>
+</ul>
+
+<p></p>
+
+<div class="notice">
+ <p>If you experiment with FSX, please let us know of your findings. This
+ is your chance to get your use-case covered before storage format and
+ principles of operation are set in stone.</p>
+</div>
-</div> <!-- dwim-option -->
+</div> <!-- fsx-usage-scennarios -->
+
+<div class="h4" id="fsx-incompatibility">
+<h4>Incompatibility
+ <a class="sectionlink" href="#fsx-incompatibility"
+ title="Link to this section">¶</a>
+</h4>
+
+<p>The FSX code and storage representation is incomplete with respect to
+the feature set that its developers have in mind. For as long as it keeps
+its experimental status, there will be neither forward nor backward
+compatibility between FSX repositories of different Subversion feature
releases.
+You may use <a
href="http://svnbook.red-bean.com/en/1.9/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate.svnadmin">dump
and load</a> to upgrade an
+FSX repository from one release to another.</p>
+
+<p>Dump and load is also the only upgrade path between FSFS and FSX.</p>
+
+<p>Finall, there is no guarantee that FSX will eventually be released at all.
+That means even if you find it useful in your specific environment, we might
+decide to remvove FSX entirely from future releases.</p>
+
+</div> <!-- fsx-incompatibility -->
+
+</div> <!-- fsx -->
</div> <!-- new-features -->
@@ -248,15 +492,54 @@ Do What I Mean (TM) flag.</i></span></p>
<!-- Don't need to highlight every bugfix, just major ones which aren't in
any patch release. -->
-<div class="h3" id="new-lorem-ispum">
-<h3>### Introducing blind text
- <a class="sectionlink" href="#new-lorem-ispum"
- title="Link to this section">¶</a>
+<div class="h3" id="svnadmin-improvements">
+<h3><tt>svnadmin</tt> changes and improvements
+ <a class="sectionlink" href="#svnadmin-improvements"
+ title="Link to this section">¶</a>
</h3>
-<p><span style="color: red"><i>### Change this to non-random
text.</i></span></p>
+<div class="h4" id="svnadmin-pack">
+<h4><tt>svnadmin pack</tt>
+ <a class="sectionlink" href="#svnadmin-pack"
+ title="Link to this section">¶</a>
+</h4>
+
+<p>Packing now takes a cache size parameter (<tt>-M</tt>) which is needed for
+efficient operation on <a href="#fsfs-format7">FSFS format 7 repositories</a>.
+<p>
+
+<pre>
+ $ svnadmin pack -M 1000 /path/to/repository
+</pre>
+
+<p></p>
+
+<div class="notice">
+ <p>Packing is paramount to FSFS format 7 performance; do it often. To make
+ this feasible, packing FSFS format 7 repositories will also no longer block
+ commits for the whole time of its execution. Instead, individual commits may
+ now get delayed by much shorter periods of time, usually by less than one
+ second.</p>
+</div>
+
+</div> <!-- svnadmin-pack -->
+
+<div class="h4" id="svnadmin-verify">
+<h4><tt>svnadmin verify</tt>
+ <a class="sectionlink" href="#svnadmin-verify"
+ title="Link to this section">¶</a>
+</h4>
+
+<p>Verification will terminate by default once a problem has been found. The
+new <tt>--keep-going</tt> option instructs svnadmin to continue with the next
+revision such that multiple issues may be found in a single run. If a revision
+has multiple issues and depending on the verification logic, still only the
+first problem may be reported.
+<p>
+
+</div> <!-- svnadmin-verify -->
-</div> <!-- new-lorem-ispum -->
+</div> <!-- svnadmin-improvements -->
</div> <!-- enhancements -->