Release Notes
7.4.7
AVX enabled release.
Avoided restarting transaction-system recovery when an old-epoch backup worker fails. (PR #13939)
Moved
waitForShardReadyoutside 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
startMoveKeysfailures 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_errorcrash. (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
minRestorableVersionandmaxRestorableVersionupdates when mutation logs are missing. (PR #12710)Restricted
backup_worker_enabledconfiguration throughfdbcli. (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.