############# Release Notes ############# 5.0.8 ===== Features -------- * Support upgrades from 3.0 versions. Fixes ----- * Blob backups didn't retry 429 errors. 429 errors do not count against the retry limit. * Status was not correctly populating all configuration fields. 5.0.7 ===== Fixes ----- * Blob backups became corrupt when handling non-retryable errors. * Blob backup did not retry all http errors correctly. 5.0.6 ===== 5.0.5 ===== Fixes ----- * Set a default memory limit of 8GB on all backup and DR executables. This limit is configurable on the command line. * The backup agent would keep attempting to write a file to blob for up to an hour after the task was cancelled. * Incorrect blob backup destination URLs could be parsed as correct but missing IP addresses. * Blob load balancing and per address connection limits have been improved. * Fdbmonitor now supports 0-parameter flags. * The read latencies reported in status were higher than what clients observed. 5.0.4 ===== Fixes ----- * Logs continued to make their data persistent to disk after being removed. * Removed logs did not delete their data before shutting down. * In rare scenarios, a disk error which occured during log recruitment could cause the recruitment to hang indefinately. 5.0.3 ===== Fixes ----- * In rare scenarios, recovery could get stuck for 10 minutes. * The consistency check did not work on locked databases. * In rare scenarios, backup, DR, or fdbcli could hang indefinitely. * Some transaction log metrics were not being reported. * Some network metrics were reported incorrectly as extremely large numbers. 5.0.2 ===== Fixes ----- * Functionality to slowly delete large files with incremental truncation was not enabled. * Fixed a source of crashes from fdbcli. * Data distribution was prematurely reporting that it had started. Bindings -------- * Go: Use fully-qualified import paths for fdb dependencies. Other ----- * Publish header files and static libraries for flow and flow bindings on Linux and macOS. 5.0.1 ===== Fixes ----- * Bytes input and bytes durable on the log would drift apart due to rounding errors. 5.0.0 ===== Features -------- * All recoveries no longer copy log data before completion. As a result, the fast_recovery_double and fast_recovery_triple configurations have been removed. * Added a new configuration ``three_data_hall`` where a single data hall failure cannot bring down a cluster. * Multiple log processes can be within the same zone. * Clients have access to sampled latency statistics for their operations. * Added network checksums. * Fault tolerance is restored much quicker after a storage server failure. Performance ----------- * Improved recovery speed after rebooting the cluster. * Improved saturation performance of write-heavy workloads. * We no longer require extra log durability for fast recoveries. * Backup/DR now use far less cluster resources while idle. * Improved load balancing performance. * Reduced conflict range sizes when performing get range queries with key selectors such that the resolved begin key is greater than or equal to the resolved end key. * Added functionality to slowly delete large files with incremental truncation. Fixes ----- * Fixed a pathology where multiple successive failures could lead to a long 30+ minute availability outage. * Updated status to have failures of old tlogs included in the failure tolerance calculation. * The fdbserver and fdbbackup processes could return a successful error code after a fatal error. * Fault tolerance did not reflect coordinators sharing the same machine ID. * Prevent the DR seconds behind measurement from potentially returning a negative amount. * Increased the priority of all cluster controller work to prevent the cluster controller from being starved by other work on the same process. * Fixed a rare crash in the DR agent. * fdbcli and fdb_c clients logs had 0 values for most ProcessMetrics log event fields. * DR could get stuck if the time required to copy range data was longer than the task timeout. Status ------ * Improved latency probe accuracy when the cluster is loaded. * Report GRV latencies at all priorities in the latency probe. * For the SSD storage engine, available disk space now includes space within data files that is not currently in use and can be reused. * Storage servers report how far they are lagging behind the logs. ``fdbcli`` now reports servers that are lagging sufficiently far behind. * Status json "incompatible_connections" did not work with multiversion clients. * Added connection counts and establish/close metrics to status json.  Bindings -------- * API version updated to 500. See the :ref:`API version upgrade guide ` for upgrade details. * Tuples now support single- and double-precision floating point numbers, UUIDs, booleans, and nested tuples. * Add ``TRANSACTION_LOGGING_ENABLE`` transaction option that causes the details of a transaction's operations to be logged to the client trace logs. * Add ``USED_DURING_COMMIT_PROTECTION_DISABLE`` transaction option that prevents operations performed during that transaction's commit from causing the commit to fail. * Add ``ENABLE_SLOW_TASK_PROFILING`` network option that logs backtraces for long running flow tasks. * ``getBoundaryKeys`` can be used on locked databases. * Flow: API versions prior to 500 are no longer supported. * Flow: ``Cluster::createDatabase`` no longer takes a DB name parameter. * Node: API versions prior to 500 are no longer supported. * Node: ``fdb.open`` and ``Cluster.openDatabase`` no longer take a DB name parameter. * Java: API versions prior to 500 are no longer supported. * Java: ``FDB.open`` and ``Cluster.openDatabase`` no longer take a DB name parameter. * Java: Removed ``Transaction.reset`` from the API. * Java: ``Transaction.onError`` invalidates its ``Transaction`` and asynchronously returns a new ``Transaction`` to replace it. * Java: Transactions always enable the ``USED_DURING_COMMIT_PROTECTION_DISABLE`` transaction option, preventing operations that occur during a commit from causing the commit to fail. * Java: There are now options to set the executor for async call backs at the database and transaction level. * Java: Static functions that perform async operations now have overloads that allow the user to specify an executor. * Java: Range class now implements equals, toString, and hashCode methods. * Java: Tuples now expose a "stream" method to get a stream of their objects and "fromStream" to convert streams back into tuples. * Java: Addressed a pathology that made AsyncUtil.whileTrue susceptible to long chains of futures. Other Changes ------------- * Added the ``-v``/``--version`` flag to report version information for the ``fdbcli`` binary * Introduced the ``data_filesystem`` command line argument for the ``fdbserver`` binary to prevent data from being written to the root drive. * Added a ``ClientStart`` trace event to client trace files with details about the client library being used. * fdbserver now rejects all unrecognized command-line arguments. * All fdbserver command-line options now have both short- and long-form equivalents. Earlier release notes --------------------- * :doc:`4.6 (API Version 460) ` * :doc:`4.5 (API Version 450) ` * :doc:`4.4 (API Version 440) ` * :doc:`4.3 (API Version 430) ` * :doc:`4.2 (API Version 420) ` * :doc:`4.1 (API Version 410) ` * :doc:`4.0 (API Version 400) ` * :doc:`3.0 (API Version 300) ` * :doc:`2.0 (API Version 200) ` * :doc:`1.0 (API Version 100) ` * :doc:`Beta 3 (API Version 23) ` * :doc:`Beta 2 (API Version 22) ` * :doc:`Beta 1 (API Version 21) ` * :doc:`Alpha 6 (API Version 16) ` * :doc:`Alpha 5 (API Version 14) `