Add an API version upgrade guide that specifically documents what needs to change to client code when upgrading API versions.
This commit is contained in:
parent
bdc16def8e
commit
94dc152180
|
@ -617,6 +617,8 @@ To upgrade a FoundationDB cluster, you must install the updated version of Found
|
|||
|
||||
.. warning:: |development-use-only-warning|
|
||||
|
||||
.. note:: For information about upgrading client application code to newer API versions, see the :doc:`api-version-upgrade-guide`.
|
||||
|
||||
Install updated client binaries
|
||||
-------------------------------
|
||||
|
||||
|
|
|
@ -11,6 +11,8 @@ Versioning
|
|||
|
||||
FoundationDB supports a robust versioning system for both its API and binaries. This system allows clusters to be upgraded with minimal changes to both application code and FoundationDB binaries. The API and the FoundationDB binaries are each released in numbered versions. Each version of the binaries has a corresponding API version.
|
||||
|
||||
.. _api-versions:
|
||||
|
||||
API versions
|
||||
------------
|
||||
|
||||
|
|
|
@ -98,7 +98,7 @@ When you import the ``fdb`` module, it exposes only one useful symbol:
|
|||
|
||||
.. warning:: |api-version-multi-version-warning|
|
||||
|
||||
For API changes between version 13 and |api-version| (for the purpose of porting older programs), see :doc:`release-notes`.
|
||||
For API changes between version 13 and |api-version| (for the purpose of porting older programs), see :doc:`release-notes` and :doc:`api-version-upgrade-guide`.
|
||||
|
||||
Opening a database
|
||||
==================
|
||||
|
|
|
@ -87,7 +87,7 @@ When you require the ``FDB`` gem, it exposes only one useful method:
|
|||
|
||||
.. warning:: |api-version-multi-version-warning|
|
||||
|
||||
For API changes between version 14 and |api-version| (for the purpose of porting older programs), see :doc:`release-notes`.
|
||||
For API changes between version 14 and |api-version| (for the purpose of porting older programs), see :doc:`release-notes` and :doc:`api-version-upgrade-guide`.
|
||||
|
||||
Opening a database
|
||||
==================
|
||||
|
|
|
@ -0,0 +1,211 @@
|
|||
#########################
|
||||
API Version Upgrade Guide
|
||||
#########################
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
This document provides an overview of changes that an application developer may need to make or effects that they should consider when upgrading the API version in their code. For each version, a list is provided that details the relevant changes when upgrading to that version from a prior version. To upgrade across multiple versions, make sure you apply changes from each version starting after your start version up to and including your target version.
|
||||
|
||||
For more details about API versions, see :ref:`api-versions`.
|
||||
|
||||
.. _api-version-upgrade-guide-620:
|
||||
|
||||
API version 620
|
||||
===============
|
||||
|
||||
C bindings
|
||||
----------
|
||||
|
||||
* ``fdb_future_get_version`` has been renamed to ``fdb_future_get_int64``.
|
||||
|
||||
.. _api-version-upgrade-guide-610:
|
||||
|
||||
API version 610
|
||||
===============
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
* The concept of opening a cluster has been removed from the API. Instead, databases are opened directly. See binding specific notes for the details as they apply to your language binding.
|
||||
* The ``TIMEOUT``, ``MAX_RETRY_DELAY``, and ``RETRY_LIMIT`` transaction options are no longer reset by calls to ``onError``.
|
||||
* Calling ``onError`` with a non-retryable error will now put a transaction into an error state. Previously, this would partially reset the transaction.
|
||||
* The ``TRANSACTION_LOGGING_ENABLE`` option has been deprecated. Its behavior can be replicated by setting the ``DEBUG_TRANSACTION_IDENTIFIER`` and ``LOG_TRANSACTION`` options.
|
||||
|
||||
C bindings
|
||||
----------
|
||||
|
||||
* Creating a database is now done by calling ``fdb_create_database``, which is a synchronous operation.
|
||||
* The ``FDBCluster`` type has been eliminated and the following functions have been removed: ``fdb_create_cluster``, ``fdb_cluster_create_database``, ``fdb_cluster_set_option``, ``fdb_cluster_destroy``, ``fdb_future_get_cluster``, and ``fdb_future_get_database``.
|
||||
|
||||
Python bindings
|
||||
---------------
|
||||
|
||||
* ``fdb.open`` no longer accepts a ``database_name`` parameter.
|
||||
* Removed ``fdb.init``, ``fdb.create_cluster``, and ``fdb.Cluster``. ``fdb.open`` should be used instead.
|
||||
|
||||
Java bindings
|
||||
-------------
|
||||
|
||||
* ``FDB.createCluster`` and the ``Cluster`` class have been deprecated. ``FDB.open`` should be used instead.
|
||||
|
||||
Ruby bindings
|
||||
-------------
|
||||
|
||||
* ``FDB.open`` no longer accepts a ``database_name`` parameter.
|
||||
* Removed ``FDB.init``, ``FDB.create_cluster``, and ``FDB.Cluster``. ``FDB.open`` should be used instead.
|
||||
|
||||
Go bindings
|
||||
-----------
|
||||
|
||||
* Added ``fdb.OpenDatabase`` and ``fdb.MustOpenDatabase`` to open a connection to the database by specifying a cluster file.
|
||||
* Deprecated ``fdb.StartNetwork``, ``fdb.Open``, ``fdb.MustOpen``, and ``fdb.CreateCluster``. ``fdb.OpenDatabase`` or ``fdb.OpenDefault`` should be used instead.
|
||||
|
||||
.. _api-version-upgrade-guide-600:
|
||||
|
||||
API version 600
|
||||
===============
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
* The ``TLS_PLUGIN`` option is now a no-op and has been deprecated. TLS support is now included in the published binaries.
|
||||
|
||||
.. _api-version-upgrade-guide-520:
|
||||
|
||||
API version 520
|
||||
===============
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
* The ``SET_VERSIONSTAMPED_KEY`` atomic operation now uses four bytes instead of two to specify the versionstamp offset.
|
||||
* The ``SET_VERSIONSTAMPED_VALUE`` atomic operation now requires a four byte versionstamp offset to be specified at the end of the value, similar to the behavior with ``SET_VERSIONSTAMPED_KEY``.
|
||||
* The ``READ_AHEAD_DISABLE`` option has been deprecated.
|
||||
|
||||
Java and Python bindings
|
||||
------------------------
|
||||
|
||||
* Tuples packed with versionstamps will be encoded with four byte offsets instead of two.
|
||||
|
||||
.. _api-version-upgrade-guide-510:
|
||||
|
||||
API version 510
|
||||
===============
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
* The atomic operations ``AND`` and ``MIN`` have changed behavior when used on a key that isn't present in the database. Previously, these operations would set an unset key to a value of equal length with the specified value but containing all null bytes (0x00). Now, an unset key will be set with the value passed to the operation (equivalent to a set).
|
||||
|
||||
Java bindings
|
||||
-------------
|
||||
|
||||
* Note: the Java bindings as of 5.1 no longer support API versions older that 510.
|
||||
* The Java bindings have moved packages from ``com.apple.cie.foundationdb`` to ``com.apple.foundationdb``.
|
||||
* The version of the Java bindings using our custom futures library has been deprecated and is no longer being maintained. The Java bindings using ``CompletableFuture`` are the only ones that remain.
|
||||
* Finalizers now log a warning to ``stderr`` if an object with native resources is not closed. This can be disabled by calling ``FDB.setUnclosedWarning()``.
|
||||
* Implementers of the ``Disposable`` interface now implement ``AutoCloseable`` instead, with ``close()`` replacing ``dispose()``.
|
||||
* ``AutoCloseable`` objects will continue to be closed in object finalizers, but this behavior is being deprecated. All ``AutoCloseable`` objects should be explicitly closed.
|
||||
* ``AsyncIterator`` is no longer closeable.
|
||||
* ``getBoundaryKeys()`` now returns a ``CloseableAsyncIterable`` rather than an ``AsyncIterator``.
|
||||
|
||||
.. _api-version-upgrade-guide-500:
|
||||
|
||||
API version 500
|
||||
===============
|
||||
|
||||
Java bindings
|
||||
-------------
|
||||
|
||||
* Note: the Java bindings as of 5.0 no longer support API versions older than 500.
|
||||
* ``FDB.open`` and ``Cluster.openDatabase`` no longer take a DB name parameter.
|
||||
* ``Transaction.onError`` invalidates its transaction and asynchronously return a new replacement ``Transaction``.
|
||||
* ``Transaction.reset`` has been removed.
|
||||
|
||||
.. _api-version-upgrade-guide-460:
|
||||
|
||||
API version 460
|
||||
===============
|
||||
|
||||
There are no behavior changes in this API version.
|
||||
|
||||
.. _api-version-upgrade-guide-450:
|
||||
|
||||
API version 450
|
||||
===============
|
||||
|
||||
There are no behavior changes in this API version.
|
||||
|
||||
.. _api-version-upgrade-guide-440:
|
||||
|
||||
API version 440
|
||||
===============
|
||||
|
||||
There are no behavior changes in this API version.
|
||||
|
||||
.. _api-version-upgrade-guide-430:
|
||||
|
||||
API version 430
|
||||
===============
|
||||
|
||||
There are no behavior changes in this API version.
|
||||
|
||||
.. _api-version-upgrade-guide-420:
|
||||
|
||||
API version 420
|
||||
===============
|
||||
|
||||
There are no behavior changes in this API version.
|
||||
|
||||
.. _api-version-upgrade-guide-410:
|
||||
|
||||
API version 410
|
||||
===============
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
* Transactions no longer reset after a successful commit.
|
||||
|
||||
.. _api-version-upgrade-guide-400:
|
||||
|
||||
API version 400
|
||||
===============
|
||||
|
||||
Java bindings
|
||||
-------------
|
||||
|
||||
* The Java bindings have moved packages from ``com.foundationdb`` to ``com.apple.cie.foundationdb``.
|
||||
|
||||
.. _api-version-upgrade-guide-300:
|
||||
|
||||
API version 300
|
||||
===============
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
* Snapshot reads now see the effects of prior writes within the same transaction. The previous behavior can be achieved using the ``SNAPSHOT_RYW_DISABLE`` transaction option.
|
||||
* The transaction size limit now includes the size of conflict ranges in its calculation. The size of a conflict range is the sum of the lengths of its begin and end keys.
|
||||
* Adding conflict ranges or watches in the system keyspace (beginning with ``\xFF``) now requires setting the ``READ_SYSTEM_KEYS`` or ``ACCESS_SYSTEM_KEYS`` option.
|
||||
|
||||
.. _api-version-upgrade-guide-200:
|
||||
|
||||
API version 200
|
||||
===============
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
* Read version requests will now fail when the transaction is reset or has experienced another error.
|
||||
|
||||
.. _api-version-upgrade-guide-100:
|
||||
|
||||
API version 100
|
||||
===============
|
||||
|
||||
Java bindings
|
||||
-------------
|
||||
|
||||
* ``Transaction.clearRangeStartsWith`` has been deprecated. ``Transaction.clear(Range)`` should be used instead.
|
|
@ -18,6 +18,8 @@ FoundationDB supports language bindings for application development using the or
|
|||
|
||||
* :doc:`api-general` contains information on FoundationDB clients applicable across all language bindings.
|
||||
|
||||
* :doc:`api-version-upgrade-guide` contains information about upgrading client code to a new API version.
|
||||
|
||||
* :doc:`known-limitations` describes both long-term design limitations of FoundationDB and short-term limitations applicable to the current version.
|
||||
|
||||
.. toctree::
|
||||
|
@ -34,3 +36,4 @@ FoundationDB supports language bindings for application development using the or
|
|||
client-testing
|
||||
api-general
|
||||
known-limitations
|
||||
api-version-upgrade-guide
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
#######################
|
||||
Release Notes (Alpha 5)
|
||||
#######################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
FoundationDB Alpha 5
|
||||
====================
|
||||
|
||||
Language support
|
||||
-------------------------
|
||||
----------------
|
||||
|
||||
* FoundationDB now supports :doc:`Ruby </api-ruby>`
|
||||
|
||||
|
@ -17,7 +17,8 @@ Language support
|
|||
.. _alpha-5-rel-notes-features:
|
||||
|
||||
Features
|
||||
------------
|
||||
--------
|
||||
|
||||
* A new :doc:`backup </backups>` system allows scheduled backups of a snapshot of the FoundationDB database to an external filesystem.
|
||||
|
||||
* :doc:`Integrated HTML documentation </index>`
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
#######################
|
||||
Release Notes (Alpha 6)
|
||||
#######################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
FoundationDB Alpha 6
|
||||
====================
|
||||
|
||||
Platform support
|
||||
-------------------------
|
||||
----------------
|
||||
|
||||
* FoundationDB now supports both clients and development servers on :doc:`Mac OS X </getting-started-mac>`.
|
||||
|
||||
|
@ -15,7 +15,7 @@ Platform support
|
|||
* All language APIs are supported on Linux, Mac, and Windows (except for Ruby on Windows, because there is not a 64-bit Ruby for Windows.)
|
||||
|
||||
Features
|
||||
------------
|
||||
--------
|
||||
|
||||
* The set of coordination servers can be safely :ref:`changed <configuration-changing-coordination-servers>` on-the-fly via the CLI.
|
||||
|
||||
|
@ -34,14 +34,14 @@ Features
|
|||
* The database size estimate shown in the CLI status is much more accurate.
|
||||
|
||||
Performance
|
||||
--------------
|
||||
-----------
|
||||
|
||||
* Improved latency performance for intense workloads with range-read operations.
|
||||
|
||||
* Improved performance and decreased memory usage for certain intense write workloads targeting a small set of keys (such as sequential insert).
|
||||
|
||||
Fixes
|
||||
--------
|
||||
-----
|
||||
|
||||
* An incorrect result could be returned by a range read when: (1) The range start was specified using a non-default "less than" type key selector; and (2) the range read started at the beginning of the database; and (3) the transaction also included a prior write to a key less than the key of the begin key selector.
|
||||
|
||||
|
@ -61,7 +61,7 @@ Changes to all APIs
|
|||
* Three new transaction options (:py:meth:`READ_AHEAD_DISABLE <fdb.Transaction.options.set_read_ahead_disable>`, :py:meth:`READ_YOUR_WRITES_DISABLE <fdb.Transaction.options.set_read_your_writes_disable>`, and :py:meth:`ACCESS_SYSTEM_KEYS <fdb.Transaction.options.set_access_system_keys>`) enable more control for advanced applications.
|
||||
|
||||
Changes to the Java API
|
||||
------------------------
|
||||
-----------------------
|
||||
|
||||
* A new construct `AsyncUtil.whileTrue() <../javadoc/com/apple/cie/foundationdb/async/AsyncUtil.html#whileTrue-com.apple.foundationdb.async.Function->`_ simplifies writing loops using the asynchronous version of the Java FDB client.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
######################
|
||||
Release Notes (Beta 1)
|
||||
######################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
Beta 1
|
||||
======
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
######################
|
||||
Release Notes (Beta 2)
|
||||
######################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
Beta 2
|
||||
======
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
######################
|
||||
Release Notes (Beta 3)
|
||||
######################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
Beta 3
|
||||
======
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
###################
|
||||
Release Notes (1.0)
|
||||
###################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
1.0.1
|
||||
=====
|
||||
|
@ -20,19 +20,23 @@ There are only minor technical differences between this release and the 0.3.0 re
|
|||
|
||||
Java
|
||||
----
|
||||
|
||||
* ``clear(Range)`` replaces the now deprecated ``clearRangeStartsWith()``.
|
||||
|
||||
Python
|
||||
------
|
||||
|
||||
* Windows installer supports Python 3.
|
||||
|
||||
Node and Ruby
|
||||
-------------
|
||||
|
||||
* String option parameters are converted to UTF-8.
|
||||
|
||||
All
|
||||
---
|
||||
* API version changed to 100. Programs with lower versions continue to work.
|
||||
|
||||
* API version updated to 100. See the :ref:`API version upgrade guide <api-version-upgrade-guide-100>` for upgrade details.
|
||||
* Runs on Mac OS X 10.7.
|
||||
* Improvements to installation packages, including package paths and directory modes.
|
||||
* Eliminated cases of excessive resource usage in the locality API.
|
||||
|
@ -41,6 +45,7 @@ All
|
|||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* A few Python API entry points failed to respect the ``as_foundationdb_key()`` convenience interface.
|
||||
* ``fdbcli`` could print commit version numbers incorrectly in Windows.
|
||||
* Multiple watches set on the same key were not correctly triggered by a subsequent write in the same transaction.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
###################
|
||||
Release Notes (2.0)
|
||||
###################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
2.0.10
|
||||
======
|
||||
|
@ -49,12 +49,14 @@ Fixes
|
|||
|
||||
PHP
|
||||
---
|
||||
|
||||
* Package updated to support PHP 5.4+ (instead of 5.3+).
|
||||
* Fix: ``get_boundary_keys()`` could fail to complete successfully if certain retryable errors were encountered.
|
||||
* Fix: Bindings set error reporting level, which could interfere with clients that used alternate settings.
|
||||
|
||||
Java
|
||||
----
|
||||
|
||||
* Fix: Calling ``getRange`` on a ``Transaction`` could leak memory.
|
||||
|
||||
2.0.7
|
||||
|
@ -110,10 +112,12 @@ Release 2.0.5 is protocol-compatible with 2.0.0, 2.0.1, 2.0.2, 2.0.3, and 2.0.4.
|
|||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* Clients and servers that specified a cluster file as a filename only (without path) could crash when the coordinators were changed.
|
||||
|
||||
PHP
|
||||
---
|
||||
|
||||
* Directory layer partitions created with the PHP bindings were incompatible with other language bindings. Contact us if you have data stored in a directory partition created by PHP that can't easily be restored and needs to be migrated.
|
||||
|
||||
2.0.4
|
||||
|
@ -123,11 +127,13 @@ Release 2.0.4 is protocol-compatible with 2.0.0, 2.0.1, 2.0.2, and 2.0.3. Users
|
|||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* Clearing a key larger than the legal limit of 10 kB caused the database to crash and become unreadable.
|
||||
* Explicitly added write conflict ranges were ignored when read-your-writes was disabled.
|
||||
|
||||
Java
|
||||
----
|
||||
|
||||
* ``ByteArrayUtil.compareUnsigned()`` failed to return in some circumstances.
|
||||
|
||||
2.0.3
|
||||
|
@ -137,6 +143,7 @@ Release 2.0.3 is protocol-compatible with 2.0.0, 2.0.1, and 2.0.2. There are no
|
|||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* Updated FDBGnuTLS plugin with GnuTLS 3.2.12, incorporating fixes for `GNUTLS-SA-2014-1 <http://gnutls.org/security.html#GNUTLS-SA-2014-1>`_ and `GNUTLS-SA-2014-2 <http://gnutls.org/security.html#GNUTLS-SA-2014-2>`_.
|
||||
* When inserting a large number of keys close to the key size limit, server logs were unexpectedly verbose.
|
||||
|
||||
|
@ -147,6 +154,7 @@ Release 2.0.2 is protocol-compatible with 2.0.0 and 2.0.1. There are no updates
|
|||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* Windows: Possible database corruption when the FoundationDB service is stopped but unable to kill its child processes.
|
||||
|
||||
2.0.1
|
||||
|
@ -156,6 +164,7 @@ Release 2.0.1 is protocol-compatible with 2.0.0. There are no updates to the lan
|
|||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* In some cases, a server reincluded after previous exclusion would not participate in data distribution.
|
||||
* Clients could not reliably connect to multiple clusters.
|
||||
* The calculation of usable disk space on Linux and Mac OS X improperly included space reserved for superuser.
|
||||
|
@ -165,24 +174,29 @@ Fixes
|
|||
|
||||
New language support
|
||||
--------------------
|
||||
|
||||
* `Go <../godoc/fdb.html>`_
|
||||
* PHP
|
||||
|
||||
New layers available in all languages
|
||||
-------------------------------------
|
||||
|
||||
* The :ref:`Subspace <developer-guide-sub-keyspaces>` layer provides a recommended way to define subspaces of keys by managing key prefixes.
|
||||
* The :ref:`Directory <developer-guide-directories>` layer provides a tool to manage related subspaces as virtual directories. Recommended as a convenient and high-performance way to organize and layout different kinds of data within a single FoundationDB database.
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
* Added certificate-based :doc:`Transport Layer Security </tls>` to encrypt network traffic.
|
||||
|
||||
Monitoring
|
||||
----------
|
||||
|
||||
* The ``fdbcli`` command-line interface reports information and warnings about available memory.
|
||||
|
||||
Performance
|
||||
-----------
|
||||
|
||||
* Improved client CPU performance overall.
|
||||
* Greatly improved client CPU performance for range-read operations.
|
||||
* Greatly improved concurrency when issuing writes between reads.
|
||||
|
@ -192,6 +206,7 @@ Performance
|
|||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* In rare cases when many keys very close to the maximum key size are inserted, the database could become unavailable.
|
||||
* ``GetReadVersion`` did not properly throw ``transaction_cancelled`` when called on a transaction that had been cancelled.
|
||||
* When using the ``access_system_keys`` option, a ``get_range_startswith(\xff)`` would incorrectly return no results.
|
||||
|
@ -204,14 +219,20 @@ Fixes
|
|||
|
||||
Other changes
|
||||
-------------
|
||||
|
||||
* To avoid confusing situations, any use of a transaction that is currently committing will cause both the commit and the use to throw a ``used_during_commit`` error.
|
||||
* The ``FDB_CLUSTER_FILE`` environment variable can point to a cluster file that takes precedence over both the current working directory and (e.g., in Linux) ``/etc/foundationdb/fdb.cluster``.
|
||||
* Disabled unloading the ``fdb_c`` library to prevent consequent unavoidable race conditions.
|
||||
* Discontinued testing and support for Ubuntu 11.04. We continue to support Ubuntu 11.10 and later.
|
||||
|
||||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 200. See the :ref:`API version upgrade guide <api-version-upgrade-guide-200>` for upgrade details.
|
||||
|
||||
Java
|
||||
----
|
||||
* Support for API version 200 and backwards compatibility with previous API versions.
|
||||
|
||||
* New APIs for allocating and managing keyspace (:ref:`Directory <developer-guide-directories>`).
|
||||
* In most cases, exceptions thrown in synchronous-style Java programs will have the original calling line of code in the backtrace.
|
||||
* Native resources are handled in a safer and more efficient manner.
|
||||
|
@ -221,7 +242,7 @@ Java
|
|||
|
||||
Node
|
||||
----
|
||||
* Support for API version 200 and backwards compatibility with previous API versions.
|
||||
|
||||
* New APIs for allocating and managing keyspace (:ref:`Directory <developer-guide-directories>`).
|
||||
* Support for the Promise/A+ specification with supporting utilities.
|
||||
* Futures can take multiple callbacks. Callbacks can be added if the original function was called with a callback. The Future type is exposed in our binding.
|
||||
|
@ -235,7 +256,7 @@ Node
|
|||
|
||||
Ruby
|
||||
----
|
||||
* Support for API version 200 and backwards compatibility with previous API versions.
|
||||
|
||||
* New APIs for allocating and managing keyspace (:ref:`Directory <developer-guide-directories>`).
|
||||
* Tuple and subspace range assume the empty tuple if none is passed.
|
||||
* Added ``as_foundationdb_key`` and ``as_foundationdb_value`` support.
|
||||
|
@ -245,7 +266,7 @@ Ruby
|
|||
|
||||
Python
|
||||
------
|
||||
* Support for API version 200 and backwards compatibility with previous API versions.
|
||||
|
||||
* New APIs for allocating and managing keyspace (:ref:`Directory <developer-guide-directories>`).
|
||||
* Snapshot transactions can be used in retry loops.
|
||||
* Support for gevent 1.0.
|
||||
|
@ -255,15 +276,14 @@ Python
|
|||
|
||||
C
|
||||
-
|
||||
|
||||
* Support for API version 200 and backwards compatibility with previous API versions.
|
||||
|
||||
.NET
|
||||
----
|
||||
* Support for API version 200 and backwards compatibility with previous API versions.
|
||||
|
||||
* New APIs for allocating and managing keyspace (:ref:`Directory <developer-guide-directories>`).
|
||||
|
||||
|
||||
|
||||
Earlier release notes
|
||||
---------------------
|
||||
* :doc:`1.0 (API Version 100) <release-notes-100>`
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
###################
|
||||
Release Notes (3.0)
|
||||
###################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
3.0.8
|
||||
=====
|
||||
|
@ -13,6 +13,7 @@ Release 3.0.8 is protocol-compatible with all prior 3.0.x releases. All users sh
|
|||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* Backup: the backup agent could crash in some circumstances, preventing a backup from completing.
|
||||
* Linux: On some systems, disk space usage tracking could be inaccurate.
|
||||
* In rare cases, range reading could get stuck in an infinite past_version loop.
|
||||
|
@ -20,6 +21,7 @@ Fixes
|
|||
|
||||
Java
|
||||
----
|
||||
|
||||
* Fix: getBoundaryKeys could throw a NullPointerException.
|
||||
|
||||
3.0.7
|
||||
|
@ -32,6 +34,7 @@ Release 3.0.7 is protocol-compatible with all prior 3.0.x releases. All users sh
|
|||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* ``fdbcli`` would segmentation fault if there was a semicolon after a quoted string.
|
||||
* :ref:`Atomic operations <api-python-transaction-atomic-operations>` performed on keys that had been :ref:`snapshot read <api-python-snapshot-reads>` would be converted into a set operation.
|
||||
* Reading a key to which an atomic operation had already been applied would cause the read to behave as a snapshot read.
|
||||
|
@ -40,6 +43,7 @@ Fixes
|
|||
|
||||
Ruby
|
||||
----
|
||||
|
||||
* Fix: ``FDB`` objects could not be garbage collected.
|
||||
|
||||
3.0.6
|
||||
|
@ -51,16 +55,19 @@ Release 3.0.6 is protocol-compatible with all prior 3.0.x releases. All users sh
|
|||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* Read-latency probes for status incorrectly returned zero.
|
||||
* Commit-latency probe for status included the time to acquire its read version.
|
||||
* Client and server could crash when experiencing problems with network connections.
|
||||
|
||||
Node.js
|
||||
-------
|
||||
|
||||
* Fix: npm source package did not compile on Mac OS X 10.9 or newer.
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
* Added registry key during installation.
|
||||
|
||||
3.0.5
|
||||
|
@ -72,6 +79,7 @@ Release 3.0.5 is protocol-compatible with all prior 3.0.x releases. This release
|
|||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* Windows: fix Visual Studio 2013 code generation bug on older processors or versions of Windows that don't support the AVX instruction set (see https://connect.microsoft.com/VisualStudio/feedback/details/811093).
|
||||
|
||||
3.0.4
|
||||
|
@ -83,6 +91,7 @@ Release 3.0.4 is protocol-compatible with all prior 3.0.x releases. Users should
|
|||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* Mac OS X: backup agent used 100% CPU even when idle.
|
||||
* Backups were inoperative on databases with greater than 32-bit versions.
|
||||
* Backup agents were not started on Windows.
|
||||
|
@ -92,6 +101,7 @@ Fixes
|
|||
|
||||
Node.js
|
||||
-------
|
||||
|
||||
* Fixed a compilation problem on Linux and Mac OS X as distributed on ``npm``. (Note: The corrected binding is distributed as version 3.0.3.)
|
||||
|
||||
3.0.2
|
||||
|
@ -131,7 +141,7 @@ Fixes
|
|||
Client
|
||||
------
|
||||
|
||||
* Support for API version 300 and backwards compatible with previous API versions.
|
||||
* API version updated to 300. See the :ref:`API version upgrade guide <api-version-upgrade-guide-300>` for upgrade details.
|
||||
* By default, :ref:`snapshot reads <snapshot isolation>` see writes within the same transaction. The previous behavior can be achieved using transaction options.
|
||||
* The :ref:`transaction size limit <large-transactions>` includes conflict ranges.
|
||||
* Explicitly added read or write :ref:`conflict ranges <api-python-conflict-ranges>` and :ref:`watches <api-python-watches>` for keys that begin with ``\xFF`` require one of the transaction options ``access_system_keys`` or ``read_system_keys`` to be set.
|
||||
|
@ -150,6 +160,7 @@ Java
|
|||
|
||||
Node.js
|
||||
-------
|
||||
|
||||
* Fix: ``fdb.open``, ``fdb.createCluster``, and ``cluster.openDatabase`` didn't use the callback in API versions 22 or lower.
|
||||
* Tuple performance is improved.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
###################
|
||||
Release Notes (4.0)
|
||||
###################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
4.0.2
|
||||
=====
|
||||
|
@ -41,6 +41,11 @@ Fixes
|
|||
|
||||
* It was not safe to allocate multiple directories concurrently in the same transaction in the directory layer.
|
||||
|
||||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 400. See the :ref:`API version upgrade guide <api-version-upgrade-guide-400>` for upgrade details.
|
||||
|
||||
Java
|
||||
----
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
###################
|
||||
Release Notes (4.1)
|
||||
###################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
4.1.1
|
||||
=====
|
||||
|
@ -40,6 +40,11 @@ Fixes
|
|||
* A rare scenario could cause a crash when a master is recovering metadata from the previous generation of logs.
|
||||
* Streaming mode ``EXACT`` was ignoring the ``target_bytes`` parameter.
|
||||
|
||||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 410. See the :ref:`API version upgrade guide <api-version-upgrade-guide-410>` for upgrade details.
|
||||
|
||||
Earlier release notes
|
||||
---------------------
|
||||
* :doc:`4.0 (API Version 400) <release-notes-400>`
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
###################
|
||||
Release Notes (4.2)
|
||||
###################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
4.2.1
|
||||
=====
|
||||
|
@ -21,6 +21,11 @@ Features
|
|||
* Information on the versions of connected clients has been added to :doc:`Machine-Readable Status </mr-status>`.
|
||||
* Information on the status of running backups has been added to :doc:`Machine-Readable Status </mr-status>`.
|
||||
|
||||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 420. There are no behavior changes in this API version. See the :ref:`API version upgrade guide <api-version-upgrade-guide-420>` for upgrade details.
|
||||
|
||||
Earlier release notes
|
||||
---------------------
|
||||
* :doc:`4.1 (API Version 410) <release-notes-410>`
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
###################
|
||||
Release Notes (4.3)
|
||||
###################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
4.3.0
|
||||
=====
|
||||
|
@ -22,6 +22,11 @@ Fixes
|
|||
* Changed the blob restore read pattern to work around blob store issues.
|
||||
* External clients do not load environment variable options.
|
||||
|
||||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 430. There are no behavior changes in this API version. See the :ref:`API version upgrade guide <api-version-upgrade-guide-430>` for upgrade details.
|
||||
|
||||
Earlier release notes
|
||||
---------------------
|
||||
* :doc:`4.2 (API Version 420) <release-notes-420>`
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
###################
|
||||
Release Notes (4.4)
|
||||
###################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
4.4.2
|
||||
=====
|
||||
|
@ -44,6 +44,11 @@ Fixes
|
|||
* DR errors were not being reported properly in DR status.
|
||||
* Backup and DR layer status expiration and cleanup now use database read version instead of time. <rdar://problem/24805824>
|
||||
|
||||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 440. There are no behavior changes in this API version. See the :ref:`API version upgrade guide <api-version-upgrade-guide-440>` for upgrade details.
|
||||
|
||||
Java
|
||||
----
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
###################
|
||||
Release Notes (4.5)
|
||||
###################
|
||||
#############
|
||||
Release Notes
|
||||
#############
|
||||
|
||||
4.5.6
|
||||
=====
|
||||
|
@ -115,6 +115,7 @@ Backup
|
|||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 450. There are no behavior changes in this API version. See the :ref:`API version upgrade guide <api-version-upgrade-guide-450>` for upgrade details.
|
||||
* Add error predicate testing to client bindings. This new functionality should help complex use cases write correct transaction retry loops where dispatching on error classes is needed. <rdar://problem/24492860>
|
||||
|
||||
Other Changes
|
||||
|
|
|
@ -107,6 +107,11 @@ Fixes
|
|||
* Java: fix race condition when removing an empty directory which could lead to a NoSuchElementException <rdar://problem/28858833>
|
||||
* Fixed a source of potential crashes in fdbcli <rdar://problem/27063940>
|
||||
|
||||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 460. There are no behavior changes in this API version. See the :ref:`API version upgrade guide <api-version-upgrade-guide-460>` for upgrade details.
|
||||
|
||||
Status
|
||||
------
|
||||
|
||||
|
|
|
@ -141,7 +141,7 @@ Status
|
|||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 500.
|
||||
* API version updated to 500. See the :ref:`API version upgrade guide <api-version-upgrade-guide-500>` for upgrade details.
|
||||
* Tuples now support single- and double-precision floating point numbers, UUIDs, booleans, and nested tuples. <rdar://problem/30053926>
|
||||
* Add ``TRANSACTION_LOGGING_ENABLE`` transaction option that causes the details of a transaction's operations to be logged to the client trace logs. <rdar://problem/32074484>
|
||||
* Add ``USED_DURING_COMMIT_PROTECTION_DISABLE`` transaction option that prevents operations performed during that transaction's commit from causing the commit to fail. <rdar://problem/30378251>
|
||||
|
|
|
@ -159,7 +159,7 @@ Status
|
|||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 510.
|
||||
* API version updated to 510. See the :ref:`API version upgrade guide <api-version-upgrade-guide-510>` for upgrade details.
|
||||
* Add versionstamp support to the Tuple layer in Java and Python. <rdar://problem/25560444>
|
||||
|
||||
Java
|
||||
|
|
|
@ -85,7 +85,7 @@ Status
|
|||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 520.
|
||||
* API version updated to 520. See the :ref:`API version upgrade guide <api-version-upgrade-guide-520>` for upgrade details.
|
||||
* Java and Python: Versionstamp packing methods within tuple class now add four bytes for the offset instead of two if the API version is set to 520 or higher. `(Issue #148) <https://github.com/apple/foundationdb/issues/148>`_
|
||||
* Added convenience methods to determine if an API version has been set. `(PR #72) <https://github.com/apple/foundationdb/pull/72>`_
|
||||
* Go: Reduce memory allocations when packing tuples. `(PR #278) <https://github.com/apple/foundationdb/pull/278>`_
|
||||
|
|
|
@ -139,7 +139,7 @@ Status
|
|||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 600. There are no changes since API version 520.
|
||||
* API version updated to 600. See the :ref:`API version upgrade guide <api-version-upgrade-guide-600>` for upgrade details.
|
||||
* Several cases where functions in go might previously cause a panic now return a non-``nil`` error. `(PR #532) <https://github.com/apple/foundationdb/pull/532>`_
|
||||
* C API calls made on the network thread could be reordered with calls made from other threads. [6.0.2] `(Issue #518) <https://github.com/apple/foundationdb/issues/518>`_
|
||||
* The TLS_PLUGIN option is now a no-op and has been deprecated. [6.0.10] `(PR #710) <https://github.com/apple/foundationdb/pull/710>`_
|
||||
|
|
|
@ -134,7 +134,7 @@ Status
|
|||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 610.
|
||||
* API version updated to 610. See the :ref:`API version upgrade guide <api-version-upgrade-guide-610>` for upgrade details.
|
||||
* The API to create a database has been simplified across the bindings. All changes are backward compatible with previous API versions, with one exception in Java noted below. `(PR #942) <https://github.com/apple/foundationdb/pull/942>`_
|
||||
* C: ``FDBCluster`` objects and related methods (``fdb_create_cluster``, ``fdb_cluster_create_database``, ``fdb_cluster_set_option``, ``fdb_cluster_destroy``, ``fdb_future_get_cluster``) have been removed. `(PR #942) <https://github.com/apple/foundationdb/pull/942>`_
|
||||
* C: Added ``fdb_create_database`` that creates a new ``FDBDatabase`` object synchronously and removed ``fdb_future_get_database``. `(PR #942) <https://github.com/apple/foundationdb/pull/942>`_
|
||||
|
|
|
@ -129,6 +129,7 @@ Status
|
|||
Bindings
|
||||
--------
|
||||
|
||||
* API version updated to 620. See the :ref:`API version upgrade guide <api-version-upgrade-guide-620>` for upgrade details.
|
||||
* Add a transaction size limit as both a database option and a transaction option. `(PR #1725) <https://github.com/apple/foundationdb/pull/1725>`_.
|
||||
* Added a new API to get the approximated transaction size before commit, e.g., ``fdb_transaction_get_approximate_size`` in the C binding. `(PR #1756) <https://github.com/apple/foundationdb/pull/1756>`_.
|
||||
* C: ``fdb_future_get_version`` has been renamed to ``fdb_future_get_int64``. `(PR #1756) <https://github.com/apple/foundationdb/pull/1756>`_.
|
||||
|
|
Loading…
Reference in New Issue