Release Notes



  • Backup’s minimum unit of progress is now a single committed version, allowing progress to be made when the database is very unhealthy.


  • Options being disabled in fdbcli required an unnecessary parameter.

  • In rare situations, an incorrect backup index could be written. Contact us if you need to restore data from a v4.4.1 or earlier backup.

  • A crash could occur on startup in fdbbackup and fdbcli.

  • A data corruption bug observed on OS X was fixed. The issue has never been observed on other platforms.



  • Added support for streaming writes. This allows a client to load an ordered list of mutations into the database in parallel, and once they are all loaded, the mutations will be applied to the database in order.

  • DR uses streaming writes to significantly improve throughput.

  • Restore was rewritten so that many clients can partipate in restoring data, significantly improving restore speed. The command line restore tool interface has been updated to support this new capability.

  • Cluster files now support comments (using the ‘#’ character).

  • A wide variety of new client-side statistics are logged in client trace files every 5 seconds.

  • Status reports the generation of the system. The generation is incremented every time there is a failure (and recovery) in the transaction subsystem.

  • Added a new machine-wide identification token. This token is used in place of the user-supplied “machine ID” in instances where true physical machine is the unit of interest. This change will allow for reporting tools to output the actual number of physical machines present in a cluster.

  • Added per-process metrics for total disk capacity and free space to status json output that allow for more repeatable and expected reporting of host disk usage. These metrics are based on the “data-dir” parameter to fdbserver and will be reported without regard to whether the process is using the disk or not.

  • Added backup size estimates to status json output.

  • Added process uptime seconds to status json output.

  • Added a flag indicating whether the database is locked to status json output.


  • Only processes which can become logs are counted towards fault tolerance.

  • A long running process would have a local estimate of time which differed greatly from system clock of the machine the process was running on.

  • 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>


  • API version updated to 440. There are no behavior changes in this API version. See the API version upgrade guide for upgrade details.


  • The ReadTransaction interface supports the ability to set transaction options.

Other Changes

  • Removed support for the old log system (pre 3.0). To upgrade to 4.4+ from a version before 3.0, first upgrade to a version between 3.0 and 4.3.

  • Removed trace event spam in backup and DR.

  • Backup and DR only report the most recent error, rather than a list of errors.

  • Updated language binding ‘API version not supported’ error message to include the version requested and supported. <rdar://problem/23769929>

Earlier release notes