Release Notes

7.4.7

AVX enabled release.

  • Avoided restarting transaction-system recovery when an old-epoch backup worker fails. (PR #13939)

  • Moved waitForShardReady outside the transaction used to finish data moves, preventing slow destination servers from exhausting the transaction lifetime and stalling data distribution. (PR #13642)

  • Fixed a use-after-free when cancelling S3 backup file copies. (PR #13916)

  • Fixed server knob overrides being silently skipped when a knob name is shared with client knobs. (PR #13932)

  • Added opt-in eviction of stale client connections to failed storage servers and proxies. (PR #13912)

  • Disabled data distribution global admission control by default. (PR #13917)

  • Fixed crashes and incorrect behavior in snapshot options, cancelled file reads, data distribution shutdown, and TLog minimum popped-version tracking. (PR #13871)

  • Fixed an incorrect shard assignment after an excluded server failed. (PR #13869)

  • Added a retry limit for repeated startMoveKeys failures to prevent infinite retries. (PR #13782)

  • Fixed exclusion tracking for data distribution. (PR #13766)

  • Fixed read and write overflow handling for snapshot manifests larger than 2 GB. (PR #13820)

  • Added GCM authentication tags to encrypted backup files and fixed encrypted restore block-size initialization. (PR #13777)

  • Dropped stale backup workers during recovery. (PR #13655)

  • Fixed successful automatic-idempotency replays not populating the committed version. (PR #13294)

  • Fixed read-ahead cache reads extending past the end of small or final blocks. (PR #13292)

  • Improved RocksDB memory accounting by charging write buffers and selected memory usage to the block cache. (PR #13371), (PR #13346)

  • Improved data distribution relocation backoff and admission control to reduce retry contention and pipeline pressure. (PR #13145), (PR #13280)

  • Added mutation-log-type configuration for backups. (PR #13127)

  • Fixed encrypted restore failures, including a platform_error crash. (PR #13118)

  • Made cluster status requests asynchronous so status retrieval can return before the timeout. (PR #13099)

  • Hardened S3 error handling for non-XML and HTTP 4xx responses. (PR #12996), (PR #13021)

  • Fixed minRestorableVersion and maxRestorableVersion updates when mutation logs are missing. (PR #12710)

  • Restricted backup_worker_enabled configuration through fdbcli. (PR #12711)

  • Enabled TLS hostname validation against certificate CN and SAN values. (PR #12730)

7.4.6

AVX enabled release.

  • Fixed a restore stuck bug where readLogData() errors were not propagated correctly. (PR #12433)

  • Fixed FdbDecode memory issues. (PR #12495)

  • Fixed decode range file keys and values interpretation bug. (PR #12420)

  • Fixed the flags used for opening the backup encryption key file. (PR #12424)

  • Fixed backup encryption on S3. (PR #12289)

  • Added support for backup encryption via fdbbackup modify command. (PR #12591)

  • Added support for backup worker to use proxy from command line to upload to S3. (PR #12566)

  • Added metadata for encrypted backups. (PR #12354)

  • Added FileLevelEncryption field to BackupDescription JSON output. (PR #12626)

  • Added encryption key info to status JSON. (PR #12657)

  • Added SNI in TLS handshake. (PR #12385)

  • Added ARM support for Docker images. (PR #12425)

  • Added restore validation feature allowing backup/restore validation in a single cluster. (PR #12648)

  • Downgraded RocksDB to 8.11.5. (PR #12651)

7.4.5

  • Same as 7.4.4 release with AVX enabled.

7.4.4

  • Fixed a race that could cause recovery to be stuck when purging old generations. (PR #12214)

  • Fixed TSS mismatch handling crashes. (PR #12330)

  • Fixed potential DatabaseContext leaks in multi-version client. (PR #12308)

  • Fixed double-encoding of URIs in requests to S3BlobStore. (PR #12302)

  • Fixed “Unknown error” when configuring regions. (PR #12314)

  • Improved TLS handshake process to avoid blocking main thread. (PR #12346)

  • Fixed an issue in TLog server code that was causing OOMs. (PR #12298)

7.4.3

  • Same as 7.4.2 release with AVX enabled.

7.4.2

  • Fixed a backup restore speed regression. (PR #12098)

  • Added backup URL validation for directory traversals. (PR #12143)

  • Fixed an issue where backup status update transaction would not retry in case of failure. (PR #12175)

  • Added various improvements to bulk dump/load. (PR #12135)

  • Turned off replica consistency check knobs by default which were overloading storage servers. (PR #12133), (PR #12136)

  • Fixed an issue where source storage server could be overloaded by data movements with replica consistency check. (PR #12176)

  • Added support for checkall command with DCID. (PR #12100)

  • Optimized keyInfo lookup in commit proxy. (PR #12106)

7.4.1

  • Same as 7.4.0 release with AVX enabled.

7.4.0

Features (Supported)

  • Added support to restore from new backup’s partitioned log files. (PR #11901)

  • Added LRU-like cache replacement for in-memory page checksums to save memory usage. (PR #11194)

  • Added gray failure features to track remote processes and allow complaints from storage servers. (PR #11717), (PR #11753)

  • Added network option to disable non-TLS connections. (PR #9984)

Features (Experimental)

  • Added support to bulk load TBs’ snapshot of key-values from S3 to an empty cluster. (Bulk Load User Guide), (PR #11369)

  • Added support to bulk dump TBs’ snapshot of key-values to S3 from an idle cluster. (Bulk Dump User Guide), (PR #11780)

  • Added support to upload/download to/from S3 (for bulk dump and bulk load). (PR #11899)

  • Added support to perform exclusive read range lock that blocks user write traffic to a specific range. (Range Lock User Guide), (PR #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)

  • Added support to detect hot shards and throttle commits to them. (PR #10970)

  • Added support to synthesize test data on a cluster. (PR #11107)

  • Added support to compare storage replicas on reads. (PR #11235)

  • Added gRPC integration with Flow. (PR #11782), (PR #11892), (PR #12023)

Performance

  • Improved storage performance with ptree optimizations. (PR #11435)

  • Added yields to backup agents to avoid slow tasks. (PR #10878)

Fixes

  • Fixed a fdbmonitor issue on FreeBSD where child processes continued to run after fdbmonitor termination. (PR #11361)

  • Fixed issues where backup workers missed mutations and caused assertion failures. (PR #11908), (PR #12026), (PR #12046)

  • Fixed AuditStorage empty range read error. (PR #12043)

  • Fixed an issue where failover was triggered even though remote storage servers were lagging behind. (PR #11054)

  • Fixed an issue where fdbserver was not being able to join the cluster during an upgrade. (PR #9814)

  • Fixed an assert in GetMappedRange that depends on the range read returning once it has at least one result. (PR #10522)

  • Fixed an issue where clients connecting to coordination server were never getting a response. (PR #10363)

  • Fixed an issue where describeBackup() never updated continousLogEnd property. (PR #10488)

  • Fixed an issue where watch was stuck due to races. (PR #11112)

  • Fixed an issue where ConnectionMonitor would incorrectly close connections. (PR #10495)

  • Fixed an issue where TSS conversion can be stuck sometimes. (PR #10711)

  • Fixed an issue where status timeout error on Cluster Controller was incorrectly triggering recovery. (PR #10791)

Status

  • Added RocksDB version to status JSON. (PR #11868)

  • Added support to fetch a specific group of status JSON fields. (PR #10927)

  • Added gray failure excluded processes to status JSON. (PR #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)

  • Fixed an issue causing SIGSEGV when network routine was started multiple times concurrently in Go bindings. (PR #11104)

  • Fixed an issue where user’s transaction function FoundationDB error was getting reset in Go bindings. (PR #11810)

  • Fixed an issue causing panic when connecting to database from multiple threads in Go bindings. (PR #10702)

  • Added support to cancel snapshots and R/O transactions in Go bindings. (PR #11614)

  • Added GetClientStatus method to database in Go bindings. (PR #11627)

Other Changes

  • Removed upgrade support from 6.2 and earlier TLogs and made xxhash checksum the default for TLog. (PR #11667)

  • Added rate keeper logs for zones with lowest tps. (PR #11067)

  • Added LOG_CONNECTION_ATTEMPTS_ENABLED and CONNECTION_LOG_DIRECTORY to log all incoming connections to an external file. (PR #11704)

  • Added exclude in progress signal to fdbcli. (PR #11569)

  • Added a sidecar container that refreshes S3 credentials. (PR #11945)

  • Fixed an issue where storage and tlog store types were not valid as part of configure command. (PR #10876)

  • Improved BytesWritten in MovingData trace event to account for non-overlapped server lists. (PR #10076)

Dependencies

  • Upgraded boost to version 1.86. (PR #11788)

  • Upgraded awssdk to version 1.11.473. (PR #11853)

  • Upgraded RocksDB to 9.7.3. (PR #11735)

  • Added support for GCC 13 and Clang 19 compilers.

Earlier release notes