#############
Release Notes
#############

7.4.0
=====

Features (Supported)
--------------------
* Added support to restore from new backup's partitioned log files. `(PR #11901) <https://github.com/apple/foundationdb/pull/11901>`_
* Added LRU-like cache replacement for in-memory page checksums to save memory usage. `(PR #11194) <https://github.com/apple/foundationdb/pull/11194>`_
* Added gray failure features to track remote processes and allow complaints from storage servers. `(PR #11717) <https://github.com/apple/foundationdb/pull/11717>`_, `(PR #11753) <https://github.com/apple/foundationdb/pull/11753>`_
* Added network option to disable non-TLS connections. `(PR #9984) <https://github.com/apple/foundationdb/pull/9984>`_

Features (Experimental)
-----------------------
* Added support to bulk load TBs' snapshot of key-values from S3 to an empty cluster. `(Bulk Load User Guide) <https://github.com/apple/foundationdb/blob/main/documentation/sphinx/source/bulkload-user.rst>`_, `(PR #11369) <https://github.com/apple/foundationdb/pull/11369>`_
* Added support to bulk dump TBs' snapshot of key-values to S3 from an idle cluster. `(Bulk Dump User Guide) <https://github.com/apple/foundationdb/blob/main/documentation/sphinx/source/bulkdump.rst>`_, `(PR #11780) <https://github.com/apple/foundationdb/pull/11780>`_
* Added support to upload/download to/from S3 (for bulk dump and bulk load). `(PR #11899) <https://github.com/apple/foundationdb/pull/11899>`_
* Added support to perform exclusive read range lock that blocks user write traffic to a specific range. `(Range Lock User Guide) <https://github.com/apple/foundationdb/blob/main/documentation/sphinx/source/rangelock.rst>`_, `(PR #11693) <https://github.com/apple/foundationdb/pull/11693>`_
* Added multiple improvements to the version vector feature, so that commits are sent only to tlogs buddied with the storage server that will receive the mutations.
* Added support to compute mutation and accumulative checksums to conduct real-time detection of mutation corruptions on write path. `(PR #11255) <https://github.com/apple/foundationdb/pull/11255>`_
* Added support to detect hot shards and throttle commits to them. `(PR #10970) <https://github.com/apple/foundationdb/pull/10970>`_
* Added support to synthesize test data on a cluster. `(PR #11107) <https://github.com/apple/foundationdb/pull/11107>`_
* Added support to compare storage replicas on reads. `(PR #11235) <https://github.com/apple/foundationdb/pull/11235>`_
* Added gRPC integration with Flow. `(PR #11782) <https://github.com/apple/foundationdb/pull/11782>`_, `(PR #11892) <https://github.com/apple/foundationdb/pull/11892>`_, `(PR #12023) <https://github.com/apple/foundationdb/pull/12023>`_

Performance
-----------
* Improved storage performance with ptree optimizations. `(PR #11435) <https://github.com/apple/foundationdb/pull/11435>`_
* Added yields to backup agents to avoid slow tasks. `(PR #10878) <https://github.com/apple/foundationdb/pull/10878>`_

Fixes
-----
* Fixed a fdbmonitor issue on FreeBSD where child processes continued to run after fdbmonitor termination. `(PR #11361) <https://github.com/apple/foundationdb/pull/11361>`_
* Fixed issues where backup workers missed mutations and caused assertion failures. `(PR #11908) <https://github.com/apple/foundationdb/pull/11908>`_, `(PR #12026) <https://github.com/apple/foundationdb/pull/12026>`_, `(PR #12046) <https://github.com/apple/foundationdb/pull/12046>`_
* Fixed AuditStorage empty range read error. `(PR #12043) <https://github.com/apple/foundationdb/pull/12043>`_
* Fixed an issue where failover was triggered even though remote storage servers were lagging behind. `(PR #11054) <https://github.com/apple/foundationdb/pull/11054>`_
* Fixed an issue where fdbserver was not being able to join the cluster during an upgrade. `(PR #9814) <https://github.com/apple/foundationdb/pull/9814>`_
* Fixed an assert in GetMappedRange that depends on the range read returning once it has at least one result. `(PR #10522) <https://github.com/apple/foundationdb/pull/10522>`_
* Fixed an issue where clients connecting to coordination server were never getting a response. `(PR #10363) <https://github.com/apple/foundationdb/pull/10363>`_
* Fixed an issue where describeBackup() never updated continousLogEnd property. `(PR #10488) <https://github.com/apple/foundationdb/pull/10488>`_
* Fixed an issue where watch was stuck due to races. `(PR #11112) <https://github.com/apple/foundationdb/pull/11112>`_
* Fixed an issue where ConnectionMonitor would incorrectly close connections. `(PR #10495) <https://github.com/apple/foundationdb/pull/10495>`_
* Fixed an issue where TSS conversion can be stuck sometimes. `(PR #10711) <https://github.com/apple/foundationdb/pull/10711>`_
* Fixed an issue where status timeout error on Cluster Controller was incorrectly triggering recovery. `(PR #10791) <https://github.com/apple/foundationdb/pull/10791>`_

Status
------
* Added RocksDB version to status JSON. `(PR #11868) <https://github.com/apple/foundationdb/pull/11868>`_
* Added support to fetch a specific group of status JSON fields. `(PR #10927) <https://github.com/apple/foundationdb/pull/10927>`_
* Added gray failure excluded processes to status JSON. `(PR #11758) <https://github.com/apple/foundationdb/pull/11758>`_

Bindings
--------
* Fixed an issue where not calling Close() on the db object would result in memory leak in Go bindings. This is a breaking change since clients are now expected to close their db to avoid memory leak. `(PR #11394) <https://github.com/apple/foundationdb/pull/11394>`_
* Fixed an issue causing SIGSEGV when network routine was started multiple times concurrently in Go bindings. `(PR #11104) <https://github.com/apple/foundationdb/pull/11104>`_
* Fixed an issue where user's transaction function FoundationDB error was getting reset in Go bindings. `(PR #11810) <https://github.com/apple/foundationdb/pull/11810>`_
* Fixed an issue causing panic when connecting to database from multiple threads in Go bindings. `(PR #10702) <https://github.com/apple/foundationdb/pull/10702>`_
* Added support to cancel snapshots and R/O transactions in Go bindings. `(PR #11614) <https://github.com/apple/foundationdb/pull/11614>`_
* Added GetClientStatus method to database in Go bindings. `(PR #11627) <https://github.com/apple/foundationdb/pull/11627>`_

Other Changes
-------------
* Removed upgrade support from 6.2 and earlier TLogs and made xxhash checksum the default for TLog. `(PR #11667) <https://github.com/apple/foundationdb/pull/11667>`_
* Added rate keeper logs for zones with lowest tps. `(PR #11067) <https://github.com/apple/foundationdb/pull/11067>`_
* Added LOG_CONNECTION_ATTEMPTS_ENABLED and CONNECTION_LOG_DIRECTORY to log all incoming connections to an external file. `(PR #11704) <https://github.com/apple/foundationdb/pull/11704>`_
* Added exclude in progress signal to fdbcli. `(PR #11569) <https://github.com/apple/foundationdb/pull/11569>`_
* Added a sidecar container that refreshes S3 credentials. `(PR #11945) <https://github.com/apple/foundationdb/pull/11945>`_
* Fixed an issue where storage and tlog store types were not valid as part of configure command. `(PR #10876) <https://github.com/apple/foundationdb/pull/10876>`_
* Improved BytesWritten in MovingData trace event to account for non-overlapped server lists. `(PR #10076) <https://github.com/apple/foundationdb/pull/10076>`_

Dependencies
------------
* Upgraded boost to version 1.86. `(PR #11788) <https://github.com/apple/foundationdb/pull/11788>`_
* Upgraded awssdk to version 1.11.473. `(PR #11853) <https://github.com/apple/foundationdb/pull/11853>`_
* Upgraded RocksDB to 9.7.3. `(PR #11735) <https://github.com/apple/foundationdb/pull/11735>`_
* Added support for GCC 13 and Clang 19 compilers.


Earlier release notes
---------------------
* :doc:`7.3 (API Version 730) </release-notes/release-notes-730>`
* :doc:`7.2 (API Version 720) </release-notes/release-notes-720>`
* :doc:`7.1 (API Version 710) </release-notes/release-notes-710>`
* :doc:`7.0 (API Version 700) </release-notes/release-notes-700>`
* :doc:`6.3 (API Version 630) </release-notes/release-notes-630>`
* :doc:`6.2 (API Version 620) </release-notes/release-notes-620>`
* :doc:`6.1 (API Version 610) </release-notes/release-notes-610>`
* :doc:`6.0 (API Version 600) </release-notes/release-notes-600>`
* :doc:`5.2 (API Version 520) </release-notes/release-notes-520>`
* :doc:`5.1 (API Version 510) </release-notes/release-notes-510>`
* :doc:`5.0 (API Version 500) </release-notes/release-notes-500>`
* :doc:`4.6 (API Version 460) </release-notes/release-notes-460>`
* :doc:`4.5 (API Version 450) </release-notes/release-notes-450>`
* :doc:`4.4 (API Version 440) </release-notes/release-notes-440>`
* :doc:`4.3 (API Version 430) </release-notes/release-notes-430>`
* :doc:`4.2 (API Version 420) </release-notes/release-notes-420>`
* :doc:`4.1 (API Version 410) </release-notes/release-notes-410>`
* :doc:`4.0 (API Version 400) </release-notes/release-notes-400>`
* :doc:`3.0 (API Version 300) </release-notes/release-notes-300>`
* :doc:`2.0 (API Version 200) </release-notes/release-notes-200>`
* :doc:`1.0 (API Version 100) </release-notes/release-notes-100>`
* :doc:`Beta 3 (API Version 23) </release-notes/release-notes-023>`
* :doc:`Beta 2 (API Version 22) </release-notes/release-notes-022>`
* :doc:`Beta 1 (API Version 21) </release-notes/release-notes-021>`
* :doc:`Alpha 6 (API Version 16) </release-notes/release-notes-016>`
* :doc:`Alpha 5 (API Version 14) </release-notes/release-notes-014>`