summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/docs/upgrading.dox
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/src/docs/upgrading.dox')
-rw-r--r--src/third_party/wiredtiger/src/docs/upgrading.dox952
1 files changed, 952 insertions, 0 deletions
diff --git a/src/third_party/wiredtiger/src/docs/upgrading.dox b/src/third_party/wiredtiger/src/docs/upgrading.dox
new file mode 100644
index 00000000000..e0239919f0b
--- /dev/null
+++ b/src/third_party/wiredtiger/src/docs/upgrading.dox
@@ -0,0 +1,952 @@
+/*! @page upgrading Upgrading WiredTiger applications
+
+@section version_271 Upgrading to Version 2.7.1
+<dl>
+<dt>Column-store bulk-load cursors</dt>
+<dd>
+Historically, bulk-load of a column-store object ignored any key set in
+the cursor and automatically assigned each inserted row the next
+sequential record number for its key. In the 2.7.1 release, column-store
+objects match row-store behavior and require the cursor key be set
+before an insert. (This also allows allows sparse tables to be created
+in column-store objects, any skipped records are created as
+already-deleted rows.) To match the previous behavior, specify the
+\c append configuration string when opening the column-store bulk-load
+cursor; this causes the cursor's key to be ignored and each inserted row
+will be assigned the next record number.
+</dd>
+
+<dt>Change to WT_SESSION::truncate with URI</dt>
+<dd>
+If using the WT_SESSION::truncate API with a file: URI for a full table
+truncate, underlying algorithmic changes result in some visible differences.
+This call can now return WT_ROLLBACK. Applications should be prepared to
+handle this error. This method no longer requires exclusive access to the
+table. Also the underlying disk space may not be immediately
+reclaimed when the call returns. The performance of this API may differ
+from earlier releases.
+</dd>
+
+</dl><hr>
+@section version_270 Upgrading to Version 2.7.0
+
+<dl>
+<dt>Change to config_base=false</dt>
+<dd>
+If \c config_base=false in the config passed directly to ::wiredtiger_open,
+any existing base configuration file will now be ignored. If an application
+was relying on this behavior, a connection will be opened with different
+settings after upgrading, which could lead to errors or unexpected behavior.
+</dd>
+
+<dt>Statistic change</dt>
+<dd>
+The statistic "pages split during eviction" was replaced. It has been
+replaced by a pair of statistics "internal pages split during eviction" and
+"leaf pages split during eviction".
+</dd>
+
+<dt>Change to WT_CURSOR::insert</dt>
+<dd>
+The WT_CURSOR::insert method in this release has slightly different semantics
+with respect to referencing application memory. In previous releases,
+WT_CURSOR::insert continued to reference application-memory specified to
+either WT_CURSOR::set_key or WT_CURSOR::set_value after a successful return,
+which could potentially lead to a core dump if the application freed that
+memory before a subsequent call to a WT_CURSOR:: method without an intermediate
+WT_CURSOR::set_key or WT_CURSOR::set_value call. In the 2.7.0 release,
+WT_CURSOR::insert behaves like the other cursor methods and does not reference
+application memory after a successful return. Applications depending on the
+previous semantic will require modifications to set the cursor's key and/or
+value after a successful WT_CURSOR::insert call.
+</dd>
+
+<dt>WT_SESSION.verify</dt>
+<dd>
+The WT_SESSION.verify method in this release has a new configuration
+option, \c strict. By default, with \c strict set to \c false,
+WT_SESSION.verify will no longer return an error for problems that do
+not impact the future use of the object (for example, if a leaked block
+were detected, the application can continue to run). WT_SESSION.verify
+will continue to output an error message whenever an error is detected,
+only the final return value is affected. This change allows
+applications to verify objects and continue if at all possible.
+Applications in development should configure \c strict to \c true in
+order to terminate the application whenever an error is detected.
+</dd>
+
+</dl><hr>
+@section version_261 Upgrading to Version 2.6.1
+
+<dl>
+<dt>Move the per transaction sync configuration</dt>
+<dd>
+Move the sync configuration setting from WT_SESSION::begin_transaction to
+WT_SESSION::commit_transaction. Change the configuration from a boolean to a
+string with options of on, off, background. Deprecated support for specifying
+the configuration to WT_SESSION::begin_transaction is maintained for now.
+</dd>
+
+</dl><hr>
+@section version_260 Upgrading to Version 2.6.0
+
+<dl>
+<dt>LZ4 compression</dt>
+<dd>
+The LZ4 compression support has been updated in this release in non-backward
+compatible ways; <b>tables and files compressed using LZ4 compression with
+WiredTiger 2.5.3 must be dumped then re-loaded using WiredTiger 2.6.0.</b>
+</dd>
+
+<dt>wiredtiger_open file manager configuration changes</dt>
+<dd>
+The configuration settings related to file handle management have changed
+significantly in this release. If your application uses the file_manager
+configuration setting, please refer to the API documentation for the latest
+settings.
+</dd>
+
+<dt>Statistic change</dt>
+<dd>
+The statistic "log read operations" was removed. The function that
+used that statistic was never called inside WiredTiger and was also
+removed.
+</dd>
+
+<dt>File handle closing</dt>
+<dd>
+In WiredTiger, a separate thread of control periodically reviews open
+objects, closing ones which have been idle for some period of time and
+discarding them from the cache. In previous WiredTiger releases, this
+review was independent of the number of open file handles. In this
+release, WiredTiger only reviews the file handles if at least 250 file
+handles are open. How often file handles are reviewed (the default is
+30 seconds), and how many file handles must be opened before review is
+triggered, can be configured using the \c file_manager configuration
+values to the ::wiredtiger_open call.
+</dd>
+
+<dt>Table drop changes</dt>
+<dd>
+There has been a functionality change to the WT_SESSION::drop API when the
+\c force configuration option is included. The table is now dropped in the
+background and does not flush data from cache.
+</dd>
+
+</dl><hr>
+@section version_253 Upgrading to Version 2.5.3
+<dl>
+
+<dt>Configuration string case-sensitivity</dt>
+<dd>
+In previous WiredTiger releases, there were several cases where configuration
+strings were treated in a case-sensitive manner (for example, it was possible
+to specify "True", "true" or even "tRuE" as a boolean value). For consistency,
+in this release all WiredTiger configuration strings are case-sensitive, and
+only "true" will be accepted.
+</dd>
+
+<dt>Statistics cursor refresh</dt>
+<dd>
+In previous releases of WiredTiger, a statistics cursor made a snapshot
+of the relevant statistics before the first statistics value was read,
+and those values remained unchanged from that point on, no matter how
+the cursor was used. In the WiredTiger 2.5.2 release, calling the
+WT_CURSOR::reset method to reset the cursor refreshes the statistics
+returned by the cursor.
+</dd>
+
+<dt>Buffer alignment on Linux</dt>
+<dd>
+In previous releases of WiredTiger, all buffers used for I/O were aligned
+to 4KB boundaries by default. In the WiredTiger 2.5.2 release, alignment
+is only enforced when direct I/O is configured.
+</dd>
+
+</dl><hr>
+@section version_252 Upgrading to Version 2.5.2
+
+There are no special upgrade steps required.
+
+@section version_251 Upgrading to Version 2.5.1
+<dl>
+
+<dt>Statistics cursors on data sources</dt>
+<dd>
+Opening a statistics cursor on a data source without a \c checkpoint name
+no longer aggregates statistics for all open checkpoints on that data
+source. The returned statistics will only be for the in-memory version of
+the data source.
+
+For applications that read and write from ordinary tables (without
+specifying a \c checkpoint), there will be no change. Applications that
+opened cursors on checkpoints and relied on their statistics being
+aggregated into a single statistics cursor will need to open statistics
+cursors on each checkpoint.
+</dd>
+
+</dl><hr>
+@section version_250 Upgrading to Version 2.5.0
+<dl>
+
+<dt>WT_STAT_CONN_LOG_BYTES_USER renamed WT_STAT_CONN_LOG_BYTES_PAYLOAD</dt>
+<dd>
+The statistic for the number of bytes written to the log minus the overhead of
+log record headers and padding was renamed to make the intent clearer. Any
+applications using the old name will need to be updated.
+</dd>
+
+<dt>"none" configuration for collators, compressors and extractors</dt>
+<dd>
+Collators, compressors and extractors can now be disabled with an explicit
+\c "none" value as an alternative to using an empty string. Any applications
+using the name \c "none" for a collator, compressor or extractor will need to
+be updated.
+</dd>
+
+<dt>maximum keys and value sizes
+<dd>
+The WT_SESSION::create \c internal_item_max and \c leaf_item_max
+configuration strings are now deprecated in favor of the
+\c internal_key_max, \c leaf_key_max, and \c leaf_value_max
+configuration strings. See @ref tune_page_sizes for more information.
+</dd>
+
+</dl><hr>
+@section version_241 Upgrading to Version 2.4.1
+<dl>
+
+<dt>WT_DEADLOCK renamed</dt>
+<dd>
+The \c WT_DEADLOCK error return has been deprecated in favor of ::WT_ROLLBACK
+to clarify that WT_SESSION::rollback_transaction should be called; no program
+changes are required.
+</dd>
+<dt>Statistics keys changed</dt>
+<dd>
+The names of WiredTiger statistics have been updated to be more consistently
+named, and simpler to categorize. Any application that was parsing the
+strings output by statistics will need to be updated.
+</dd>
+
+</dl><hr>
+@section version_240 Upgrading to Version 2.4.0
+<dl>
+
+<dt>Default configuration file changes</dt>
+<dd>
+WiredTiger creates a configuration file when a database is first created. This
+release adds a version number to that configuration file, and functionality
+to automatically translate configuration settings between versions moving
+forward.
+</dd>
+<dt>Cursors no longer reset on transaction begin or commit</dt>
+<dd>
+In previous versions of WiredTiger, all cursors in a session were reset at
+transaction boundaries (WT_SESSION::begin_transaction,
+WT_SESSION::commit_transaction and WT_SESSION::rollback_transaction).
+Now they are only reset by WT_SESSION::rollback_transaction.
+
+This change means that a cursor can be used to iterate through a table and
+perform transactional updates based on the visited records without the cursor
+losing its position.
+
+Applications relying on this behavior (for example, to avoid pinning the
+underlying cursor resources), should reset cursors explicitly when the
+position is no longer required.
+</dd>
+
+<dt>WT_COLLATOR interface changes</dt>
+<dd>
+Add a new WT_COLLATOR::customize callback that WiredTiger will call (if set)
+for each data source configured to use the collator. Applications using the
+existing WT_COLLATOR interface that do not require the new functionality should
+set this callback to \c NULL.
+</dd>
+<dt>::wiredtiger_open lsm_merge option changed</dt>
+<dd>
+The global lsm_merge configuration setting has been moved into
+the \c lsm_manager option group. To disable merges in all LSM
+trees pass \c lsm_manger=(merge=false) to ::wiredtiger_open.
+</dd>
+<dt>Java include path search changes</dt>
+<dd>
+We have updated the configure logic used to search for Java Native Interface
+files. This fixes problems building WiredTiger's Java API, particularly on
+OS X, but may introduce problems if your build procedure relied on the old
+search behavior.
+</dd>
+<dt>Default mutex implementation changed</dt>
+<dd>
+The default mutex implementation has been changed from adaptive pthread
+mutexes to non-adaptive pthread mutexes. Installations can explicitly
+select adaptive pthread mutexes by specifying
+\c --with-spinlock=pthread_adaptive at configuration time.
+</dd>
+<dt>LSM merge threads option change</dt>
+<dd>
+The WT_SESSION::create \c lsm=(merge_threads) configuration option has been
+replaced by the W::wiredtiger_open \c lsm_manager=(worker_thread_max) option.
+The new version specifies a set of LSM threads that are shared across all
+LSM trees in a database, the older configuration was per LSM table.
+</dd>
+
+</dl><hr>
+@section version_231 Upgrading to Version 2.3.1
+<dl>
+
+<dt>::wiredtiger_open eviction_workers configuration changed</dt>
+<dd>
+The \c eviction_workers configuration setting has been replaced by
+\c eviction=(threads_min) and \c eviction=(threads_max) settings.
+
+There is also a semantic change because \c eviction_workers used to
+configure additional threads whereas the new settings configure the total
+number of threads involved with eviction.
+</dd>
+
+</dl><hr>
+@section version_230 Upgrading to Version 2.3.0
+
+There are no special upgrade steps required.
+
+@section version_221 Upgrading to Version 2.2.1
+<dl>
+
+<dt>::wiredtiger_open configuration parsing order changed</dt>
+<dd>
+In the 2.2.1 release, the order that configuration strings are
+parsed and override earlier values changed. Applications using
+the \c Wiredtiger.config file or \c WIREDTIGER_CONFIG environment
+variable may need to change. The old order:
+<ol>
+<li> default ::wiredtiger_open configuration</li>
+<li> base configuration file, created with the database</li>
+<li> user configuration file \c Wiredtiger.config</li>
+<li> user environment variable \c WIREDTIGER_CONFIG</li>
+<li> configuration string passed in to ::wiredtiger_open</li>
+</ol>
+<p>In the new order the user's configuration settings override:</p>
+<ol>
+<li> default ::wiredtiger_open configuration</li>
+<li> base configuration file, created with the database</li>
+<li> configuration string passed in to ::wiredtiger_open</li>
+<li> user configuration file \c Wiredtiger.config</li>
+<li> user environment variable \c WIREDTIGER_CONFIG</li>
+</ol>
+
+</dd>
+<dt>\c os_cache_dirty_max off for LSM</dt>
+<dd>
+In some earlier versions of WiredTiger, creating an LSM table automatically
+configured \c os_cache_dirty_max, causing additional system calls that slowed
+some workloads. Applications that benefit from this setting should set it
+explicitly in WT_SESSION::create.
+</dd>
+
+<dt>\c transaction_sync setting change</dt>
+<dd>
+In the 2.2.1 release of WiredTiger the ::wiredtiger_open \c transaction_sync
+configuration setting has changed from a string value to a structure with two
+fields: \c method, which corresponds to the previous value (\c dsync, \c fsync
+or \c none), and \c enabled, which determines whether there is a sync on
+every transaction commit by default. Applications can enable or disable sync
+for a specific transaction with the \c sync setting to
+WT_SESSION::begin_transaction.
+</dd>
+
+</dl><hr>
+@section version_220 Upgrading to Version 2.2.0
+<dl>
+
+<dt>WT_SESSION::create prefix_compression disabled by default</dt>
+<dd>
+In the 2.2.0 release, prefix compression default to \c false. Applications
+that benefit from prefix compression will need to explicitly set
+\c prefix_compression=true when creating tables.
+</dd>
+
+<dt>wiredtiger_open verbose message changes</dt>
+<dd>
+In the 2.2.0 release it is now necessary to include \c --enable-verbose
+in the configure command to be able to use verbose messages.
+</dd>
+
+</dl><hr>
+@section version_212 Upgrading to Version 2.1.2
+<dl>
+
+<dt>::wiredtiger_open shared_cache configuration changes</dt>
+<dd>
+In the 2.1.2 release of WiredTiger the ::wiredtiger_open \c shared_cache
+configuration option group have changed. The option that was named \c enable is
+no longer available. To enable a \c shared_cache it is compulsory to name
+the pool being shared.
+We are now also enforcing that only one of \c cache_size and \c shared_cache
+are specified in the ::wiredtiger_open configuration string.
+</dd>
+
+</dl><hr>
+@section version_211 Upgrading to Version 2.1.1
+<dl>
+
+<dt>WT_EXTENSION_API::config methods</dt>
+<dd>
+In the 2.1.1 release of WiredTiger the configuration string parsing API
+has been changed and added to a new public handle. The
+WT_EXTENSION_API::config_strget, WT_EXTENSION_API::config_scan_begin,
+WT_EXTENSION_API::config_scan_next and WT_EXTENSION_API::config_scan_end
+have been removed. They have been replaced by a
+WT_EXTENSION_API::config_parser_open method, which can be used to parse
+configuration strings. See the WT_CONFIG_PARSER documentation for
+examples on how to use the updated API.
+</dd>
+
+</dl><hr>
+@section version_21 Upgrading to Version 2.1
+<dl>
+
+<dt>WT_ITEM::size type</dt>
+<dd>
+In the 2.1 release of WiredTiger WT_ITEM::size type has changed from
+\c uint32_t to \c size_t. Applications may require modifications to
+resolve compile-time errors.
+</dd>
+
+<dt>WT_COMPRESSOR::compress_raw signature</dt>
+<dd>
+In the 2.1 release of WiredTiger, the behavior of the compress_raw
+callback has changed so that it will only be retried if it returns
+\c EAGAIN. If it returns zero and sets \c result_slots to zero,
+WiredTiger will assume that raw compression has failed and will fall
+back to calling WT_COMPRESSOR::compress.
+</dd>
+
+<dt>Transaction sync default setting</dt>
+<dd>
+In the 2.1 release of WiredTiger the ::wiredtiger_open \c transaction_sync
+configuration setting default value has changed from "dsync" to "fsync".
+This is due to enhancements to the group commit implementation in
+WiredTiger - which mean that greater throughput can be achieved with
+explicit "fsync" calls than by enabling "dsync" on a file handle.
+Applications that don't execute concurrent transactions may see better
+throughput with transaction_sync set to "dsync".
+</dd>
+
+</dl><hr>
+@section version_20 Upgrading to Version 2.0
+<dl>
+
+<dt>File format changes</dt>
+<dd>
+The underlying file format is unchanged in 2.0
+</dd>
+
+<dt>WT_SESSION::create LSM configuration options</dt>
+<dd>
+In the 2.0 release of WiredTiger the LSM configuration options have been
+collected into a configuration option subgroup. All configuration options
+to WT_SESSION::create that previously had a prefix of \c lsm_ now belong to
+the \c lsm configuration group. If you are explicitly configuring any of the
+following options, you should review the WT_SESSION::create documentation for
+details of the updated syntax: lsm_auto_throttle, lsm_bloom, lsm_bloom_config,
+lsm_bloom_bit_count, lsm_bloom_hash_count, lsm_bloom_oldest, lsm_chunk_max,
+lsm_chunk_size, lsm_merge_max and lsm_merge_threads.
+</dd>
+
+</dl><hr>
+@section version_166 Upgrading to Version 1.6.6
+<dl>
+
+<dt>File format changes</dt>
+<dd>
+The underlying file formats changed in the 1.6.6 release; tables and files
+should be dumped and re-loaded into a new database.
+</dd>
+
+<dt>WT_SESSION::compact trigger configuration</dt>
+<dd>
+In previous releases, the \c trigger configuration string to the
+WT_SESSION::compact method specified a requirement to initiate compaction; in
+the 1.6.6 release, this configuration string has been removed, and compaction
+will be attempted if it seems likely at least 10% of the file can be recovered.
+Applications may require modifications to resolve run-time errors.
+</dd>
+
+<dt>Statistics configuration</dt>
+<dd>
+In previous releases, the ::wiredtiger_open function took a \c statistics
+configuration, which defaulted to false; when set to true, additional,
+generally performance-expensive statistics were maintained by the
+database, above and beyond a default set of statistics. In version
+1.6.6, the \c statistics configuration is a list which may be set to
+"all", "fast" or "none". When set to "none", no statistics are
+maintained by the database; when set to "fast", only relatively
+performance-inexpensive statistics are maintained, and when set to
+"all", all statistics are maintained, regardless of cost.
+
+In previous releases, the ::wiredtiger_open function took a \c statistics_log
+configuration which logged the performance-inexpensive database
+statistics to a file. In version 1.6.6, the \c statistics_log
+configuration logs whatever statistics are configured for the database.
+If the database is configured with \c statistics to "none", no
+statistics will be logged to the file; if the database is configured
+with "all" or "fast", the corresponding statistics will be logged to the
+file.
+
+In previous releases, the WT_SESSION::cursor method took
+\c statistics_clear and a \c statistics_fast configurations. The
+\c statistics_clear configuration defaulted to false; when set to true,
+statistics counters were reset after they were gathered by the cursor.
+The \c statistics_fast configuration defaulted to true; when set to
+true, the cursor only gathered performance-inexpensive statistics for
+the cursor, and when set to false, the cursor gathered all available
+statistics, regardless of cost.
+
+In version 1.6.6, these two configuration booleans have been replaced
+with a new configuration list \c statistics, which may be set from the
+values "clear", "fast" and "all". When "fast" is configured, only
+relatively performance-inexpensive statistics are gathered, and when
+"all" is configured, all statistics are gathered, regardless of cost.
+When "clear" is configured, statistics counters are reset after they are
+gathered.
+
+Additionally, in version 1.6.6, statistics cursors must be configured
+to agree with the database statistics configuration; when the database
+statistics are configured to "none", attempts to open a statistics
+cursor will fail; when the database statistics are configured to "fast",
+a statistics cursor must also be configured to "fast"; when the database
+statistics are configured to "all", a statistics cursor may be
+configured to either "fast" or "all". Opening a statistics cursor
+without configuring either "fast" or "all" will configure the cursor to
+be the same as the current database configuration.
+
+Applications may require modifications to resolve run-time errors;
+application statistics configuration and cursors should be reviewed to
+confirm they are configured for the desired behavior;
+</dd>
+
+<dt>WT_EVENT_HANDLER interface changes</dt>
+<dd>
+Add a new WT_EVENT_HANDLER::handle_close callback that WiredTiger will call
+any time it automatically closes an application session or cursor handle.
+
+Additionally add a WT_SESSION parameter into the existing
+WT_EVENT_HANDLER::handle_error, WT_EVENT_HANDLER::handle_message and
+WT_EVENT_HANDLER::handle_progress callback functions.
+</dd>
+
+</dl><hr>
+@section version_165 Upgrading to Version 1.6.5
+<dl>
+
+<dt>WT_CURSOR::insert behavior</dt>
+<dd>
+In previous releases, the WT_CURSOR::insert ended positioned at the inserted
+record. To minimize the cursor resources held by applications inserting many
+records, the WT_CURSOR::insert method has been changed to end without any
+position. Application insert cursors should be reviewed to confirm they do
+not attempt to iterate after an insert.
+</dd>
+
+<dt>WT_SESSION::open_cursor statistics_fast configuration</dt>
+<dd>
+In previous releases, the default \c statistics_fast configuration to
+the WT_SESSION::open_cursor method was \c false; in the 1.6.5 release,
+the default statistics_fast configuration is \c true. Applications
+opening statistics cursors should be reviewed to confirm they have the
+correct behavior.
+</dd>
+
+<dt>Synchronous checkpoint configuration</dt>
+<dd>
+The \c sync configuration key to ::wiredtiger_open has been renamed \c checkpoint_sync.
+</dd>
+
+</dl><hr>
+@section version_164 Upgrading to Version 1.6.4
+<dl>
+
+<dt>File format changes</dt>
+<dd>
+The underlying file formats changed in the 1.6.4 release; tables and files
+should be dumped and re-loaded into a new database.
+</dd>
+
+<dt>wt utility load command</dt>
+<dd>
+The default behavior of the \c wt utility's \c load command has been
+changed to overwrite existing data, by default, and the \c -o flag to
+the \c load command (overwrite existing data) has been replaced with the
+\c -n flag (do not overwrite existing data). Applications requiring
+the previous default behavior of not overwriting existing data should
+add the \c -n option to their command line configuration; applications
+previously using the \c -o option on their command line configurations
+should remove it.
+</dd>
+
+</dl><hr>
+@section version_163 Upgrading to Version 1.6.3
+<dl>
+
+<dt>Cursor overwrite configuration</dt>
+<dd>
+In previous releases, the WT_SESSION::open_cursor \c overwrite configuration
+string behaved inconsistently across Btree and LSM data sources. In Btree,
+\c overwrite was \c false by default and was limited to the WT_CURSOR::insert
+method, changing an insert to succeed regardless of whether or not the record
+previously existed. In LSM trees, \c overwrite was \c true by default, and
+applied to the WT_CURSOR::insert, WT_CURSOR::remove and WT_CURSOR::update
+methods, configuring all three methods to ignore the existing state of the
+record.
+
+In the 1.6.3 release, the \c overwrite configuration is consistent across both
+Btree and LSM tree data sources. For performance reasons, the default is the
+behavior previously described for LSM trees: in other words, \c overwrite is
+\c true by default, causing WT_CURSOR::insert, WT_CURSOR::remove and
+WT_CURSOR::update to ignore the current state of the record, and these methods
+will succeed regardless of whether or not the record previously exists. When
+an application configures \c overwrite to \c false, WT_CURSOR::insert will fail
+with ::WT_DUPLICATE_KEY if the record previously exists, and WT_CURSOR::update
+and WT_CURSOR::remove will fail with ::WT_NOTFOUND if the record does not
+previously exist.
+
+<b>This is a potentially serious API change that will not be detected by
+compilation.</b> Application cursors should be reviewed to confirm they are
+configured for the desired behavior.
+</dd>
+
+<dt>::wiredtiger_open no longer accepts a \c transactional configuration</dt>
+<dd>
+The \c transactional configuration key has been removed from
+::wiredtiger_open. Any application setting it should simply remove it,
+no change in application behavior is needed.
+</dd>
+
+</dl><hr>
+@section version_162 Upgrading to Version 1.6.2
+<dl>
+
+<dt>Table of WiredTiger extension methods</dt>
+<dd>
+New functionality was added to the list of WiredTiger extension methods;
+applications using the extension methods will require recompilation.
+</dd>
+
+<dt>WT_SESSION::create no longer accepts a "source" configuration</dt>
+<dd>
+The \c "source" configuration key has been removed from WT_SESSION::create.
+Normal applications should not have been using it, and there were a number of
+bugs associated with it.
+</dd>
+
+<dt>Default checksum configuration</dt>
+<dd>
+The default file checksum configuration was changed to \c uncompressed,
+which means blocks that are compressed will no longer also include a
+checksum, by default. Applications using compression insufficient for
+the purposes of corrupted block identification should change their file
+checksum configuration to \c on.
+</dd>
+
+</dl><hr>
+@section version_161 Upgrading to Version 1.6.1
+<dl>
+
+<dt>Default page sizes</dt>
+<dd>
+In the 1.6.1 release, the default for the WT_SESSION::create configuration
+string \c allocation_size changed from 512B to 4KB, and the default for the
+configuration string \c internal_page_max changed from 2KB to 4KB.
+Applications wanting to create files with smaller allocation or internal
+page sizes will need to set those configuration values explicitly.
+</dd>
+
+<dt>Shared cache configuration</dt>
+<dd>
+In the 1.6.1 release, an explicit shared_cache=(enable=boolean) option was
+added to the wiredtiger_open configuration options. Existing applications that
+use shared cache functionality will need to add the enable option to the
+configuration string. The default value for the option is false.
+</dd>
+
+<dt>WT_COMPRESSOR::compress_raw signature</dt>
+<dd>
+In the 1.6.1 release, the \c split_pct argument to the
+WT_COMPRESSOR::compress_raw function changed type from \c u_int to \c int,
+applications may require modification to avoid compiler warnings.
+</dd>
+
+</dl><hr>
+@section version_160 Upgrading to Version 1.6.0
+<dl>
+
+<dt>File format changes</dt>
+<dd>
+The underlying file formats changed in the 1.6.0 release; tables and files
+should be dumped and re-loaded into a new database.
+</dd>
+
+</dl><hr>
+@section version_153 Upgrading to Version 1.5.3
+<dl>
+
+<dt>Configuration strings</dt>
+<dd>
+An undocumented feature where configuration string case was ignored has
+been removed, and all configuration strings are now case-dependent.
+Applications may require modifications to resolve run-time errors.
+</dd>
+
+<dt>Loading extensions and WT_EXTENSION_API</dt>
+<dd>
+The following changes are only applicable to applications loading
+extensions and/or using the WiredTiger extension functions described in
+WT_EXTENSION_API.
+
+<ul>
+<li>
+The signature of ::wiredtiger_extension_init has changed
+from <code>(WT_SESSION *session, WT_EXTENSION_API *api)</code> to
+<code>(WT_CONNECTION *connection)</code>. As no WT_EXTENSION_API
+handle reference is passed to the function, the
+WT_CONNECTION::get_extension_api has been added to support retrieval of
+the extension API. Applications may require modifications.
+
+<li>
+The type of all configuration arguments to extension methods has changed
+from \c "const char *" to \c "WT_CONFIG_ARG *", and the WT_EXTENSION::config
+method added to support configuration parsing; applications may require
+modifications.
+
+<li>
+The undocumented \c wiredtiger_XXX defines for WT_EXTENSION_API extension
+methods have been removed from the \c wiredtiger_ext.h include file;
+applications should instead use the method handles referenced by the
+WT_EXTENSION_API handle to call extension functions.
+
+<li>
+The extension API methods have all changed to require an additional
+parameter, the WT_EXTENSION_API method handle; applications may require
+modifications.
+
+<li>
+The WT_SESSION::msg_printf method was replaced by WT_EXTENSION_API::msg_printf;
+applications may require modifications.
+</ul>
+</dd>
+
+<dt>WT_DATA_SOURCE</dt>
+<dd>
+The following changes are only applicable to applications providing new
+implementations of the WiredTiger WT_DATA_SOURCE class.
+
+<ul>
+<li>
+The WT_DATA_SOURCE class has three new methods: WT_DATA_SOURCE::compact,
+WT_DATA_SOURCE::salvage, and WT_DATA_SOURCE::verify; applications may
+require modifications to resolve compile errors.
+
+<li>
+The \c owner argument to the WT_DATA_SOURCE::open_cursor method has been
+removed; applications may require modifications to resolve compile errors.
+
+<li>
+The \c exclusive argument to the WT_DATA_SOURCE::create method has been
+removed; applications may require modifications to resolve compile errors.
+</ul>
+</dd>
+
+</dl><hr>
+@section version_143 Upgrading to Version 1.4.3
+<dl>
+
+<dt>Statistics</dt>
+<dd>
+WiredTiger statistics are no longer maintained by default; to configure
+statistics, use the \c statistics configuration string to the
+::wiredtiger_open function.
+</dd>
+
+</dl><hr>
+@section version_139 Upgrading to Version 1.3.9
+<dl>
+
+<dt>Compression</dt>
+<dd>
+A new member, WT_COMPRESSOR::compress_raw, was added to the WT_COMPRESSOR
+extension API. Applications using the WT_COMPRESSOR extension API should
+add a NULL as the second field of that structure.
+</dd>
+
+<dt>Checksums</dt>
+<dd>
+The WT_SESSION::create method's \c checksum configuration string has
+been changed from a boolean type to a string type. Applications using
+the checksum configuration string should change a value of \c true to
+the string \c on, and a value of \c false to the string \c off or the
+string \c uncompressed.
+</dd>
+
+<dt>File format changes</dt>
+<dd>
+The underlying file formats changed in the 1.3.9 release; tables and files
+should be dumped and re-loaded into a new database.
+</dd>
+
+</dl><hr>
+@section version_138 Upgrading to Version 1.3.8
+<dl>
+
+<dt>Statistics keys</dt>
+<dd>
+The @ref statistics_keys "statistics key constants" have been renamed to use
+all capitals, and use consistent prefixes to distinguish between connection
+statistics and statistics for data sources.
+</dd>
+
+</dl><hr>
+@section version_136 Upgrading to Version 1.3.6
+<dl>
+
+<dt>Installed library names</dt>
+<dd>
+The installed WiredTiger extension library names changed to limit
+namespace pollution:
+
+<table>
+@hrow{Library, Previous Name, New Name}
+@row{Bzip2 compression, bzip2_compress.a, libwiredtiger_bzip2.a}
+@row{, bzip2_compress.la, libwiredtiger_bzip2.la}
+@row{, bzip2_compress.so, libwiredtiger_bzip2.so}
+@row{Snappy compression, snappy_compress.a, libwiredtiger_snappy.a}
+@row{, snappy_compress.la, libwiredtiger_snappy.la}
+@row{, snappy_compress.so, libwiredtiger_snappy.so}
+@row{No-op compression, nop_compress.a, No longer installed}
+@row{, nop_compress.la, No longer installed}
+@row{, nop_compress.so, No longer installed}
+@row{Reverse order collator, reverse_collator.a, No longer installed}
+@row{, reverse_collator.la, No longer installed}
+@row{, reverse_collator.so, No longer installed}
+</table>
+</dd>
+
+<dt>Built-in compression names</dt>
+<dd>
+The built-in compression name arguments to the WT_SESSION:create
+\c block_compressor configuration string changed for consistency:
+
+<table>
+@hrow{Extension, Previous Name, New Name}
+@row{Bzip2 compression, "bzip2_compress", "bzip2"}
+@row{Snappy compression, "snappy_compress", "snappy"}
+</table>
+</dd>
+
+</dl><hr>
+@section version_135 Upgrading to Version 1.3.5
+<dl>
+
+<dt>File format changes</dt>
+<dd>
+The underlying file formats changed in the 1.3.5 release; tables and files
+should be dumped and re-loaded into a new database.
+</dd>
+
+</dl><hr>
+@section version_13 Upgrading to Version 1.3
+<dl>
+
+<dt>Checkpoint and Snapshot</dt>
+<dd>
+The checkpoint functionality supported by WT_SESSION::checkpoint and the
+snapshot functionality supported by WT_SESSION::sync have been merged
+into a single piece of functionality.
+
+<ul>
+<li>WT_SESSION.checkpoint<br>
+The WT_SESSION::checkpoint method's \c snapshot configuration string has
+been renamed to \c name. The name assigned to checkpoints without a
+specified \c name configuration is now \c "WiredTigerCheckpoint".
+
+<li>WT_SESSION.drop<br>
+In releases before 1.3, the WT_SESSION::drop method was used to delete
+snapshots. In 1.3, the functionality of deleting snapshots has been
+moved to the WT_SESSION::checkpoint method, specifically, snapshots are
+discarded using the WT_SESSION::checkpoint method's \c drop configuration
+string.
+
+<li>WT_SESSION.sync<br>
+The WT_SESSION::sync method has been removed from the 1.3 release; the
+functionality of creating an object snapshot has moved to the
+WT_SESSION::checkpoint method, specifically, creating a snapshot of a
+one or more objects is done using the WT_SESSION::checkpoint method's
+\c target configuration string.
+
+<li>wt drop -s<br>
+The \c -s option to the \c drop command for the \c wt command line
+utility has been removed, and object snapshots may no longer be removed
+from the command line.
+
+<li>wt dump, list -s<br>
+The \c -s options to the \c dump and \c list commands for the \c wt
+command line utility have been renamed to be \c -c.
+</ul>
+</dd>
+
+<dt>WT_SESSION.open_cursor</dt>
+<dd>
+In releases before 1.3, the WT_SESSION::open_cursor method could duplicate
+cursors that were not positioned in an object; in 1.3, a cursor must be
+positioned in order to be duplicated.
+</dd>
+
+<dt>Transactional cursors</dt>
+<dd>
+In releases before 1.3, ending a transaction by calling the
+WT_SESSION::commit_transaction or WT_SESSION::rollback_transaction methods
+implicitly closed all open cursors; in 1.3, the cursors remain open, but are
+reset (discarding their positions and cursor values). This means applications
+must change to either close cursors explicitly, or rely on an eventual
+WT_SESSION::close or WT_CONNECTION::close methods to implicitly close open
+cursors.
+</dd>
+
+<dt>Default transactional isolation level</dt>
+<dd>
+In releases before 1.3, the default isolation level for transaction was
+\c snapshot, and the default isolation level for non-transaction operations
+was \c read-uncommitted; in 1.3, the default isolation level for all
+operations is \c read-committed.
+
+The default can be overridden for a session using the \c isolation setting
+in WT_CONNECTION::open_cursor.
+</dd>
+
+<dt>WT_SESSION.truncate</dt>
+<dd>
+In releases before 1.3, the WT_SESSION::truncate method required cursors used
+for truncation of a cursor range to reference existing keys in the object;
+in 1.3, the WT_SESSION::truncate method has been changed to allow cursors to
+reference any valid key in the object's name space so applications may discard
+portions of the object name space without knowing exactly what records the
+object contains.
+</dd>
+
+<dt>WT_CURSOR.equals</dt>
+<dd>
+In releases before 1.3, the WT_CURSOR::equals method returned zero/non-zero
+to indicate cursor equality; in 1.3, the WT_CURSOR::equals method has
+been replaced with WT_CURSOR::compare, which compares two cursors and
+returns a cursor comparison status (less than 0, equal to 0, or greater than
+0) depending on the cursors' key order.
+</dd>
+
+<dt>File format changes</dt>
+<dd>
+The underlying file formats changed in the 1.3 release; tables and files
+should be dumped and re-loaded into a new database.
+</dd>
+
+</dl>
+*/