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

5.0.6

5.0.5

Fixes

5.0.4

Fixes

  • Logs continued to make their data persistent to disk after being removed. <rdar://problem/33852607>
  • Removed logs did not delete their data before shutting down. <rdar://problem/33852342>
  • In rare scenarios, a disk error which occured during log recruitment could cause the recruitment to hang indefinately.

5.0.3

Fixes

5.0.2

Fixes

  • Functionality to slowly delete large files with incremental truncation was not enabled. <rdar://problem/33550683>
  • Fixed a source of crashes from fdbcli. <rdar://problem/32933471>
  • Data distribution was prematurely reporting that it had started.

Bindings

Other

  • Publish header files and static libraries for flow and flow bindings on Linux and macOS. <rdar://problem/33191326>

5.0.1

Fixes

  • Bytes input and bytes durable on the log would drift apart due to rounding errors.

5.0.0

Features

Performance

Fixes

  • Fixed a pathology where multiple successive failures could lead to a long 30+ minute availability outage. <rdar://problem/30235865>
  • Updated status to have failures of old tlogs included in the failure tolerance calculation. <rdar://problem/30615411>
  • The fdbserver and fdbbackup processes could return a successful error code after a fatal error. <rdar://problem/31350017>
  • Fault tolerance did not reflect coordinators sharing the same machine ID. <rdar://problem/31195167>
  • Prevent the DR seconds behind measurement from potentially returning a negative amount. <rdar://problem/32235105>
  • Increased the priority of all cluster controller work to prevent the cluster controller from being starved by other work on the same process. <rdar://problem/32958023>
  • Fixed a rare crash in the DR agent. <rdar://problem/30766452>
  • fdbcli and fdb_c clients logs had 0 values for most ProcessMetrics log event fields. <rdar://problem/31017524>
  • DR could get stuck if the time required to copy range data was longer than the task timeout. <rdar://problem/32958570>

Status

  • Improved latency probe accuracy when the cluster is loaded. <rdar://problem/30465855>
  • Report GRV latencies at all priorities in the latency probe. <rdar://problem/30465855>
  • For the SSD storage engine, available disk space now includes space within data files that is not currently in use and can be reused. <rdar://problem/29998454>
  • Storage servers report how far they are lagging behind the logs. fdbcli now reports servers that are lagging sufficiently far behind. <rdar://problem/30166503>
  • Status json “incompatible_connections” did not work with multiversion clients. <rdar://problem/28396098>
  • Added connection counts and establish/close metrics to status json. <rdar://problem/28393970>

Bindings

  • API version updated to 500.
  • Tuples now support single- and double-precision floating point numbers, UUIDs, booleans, and nested tuples. <rdar://problem/30053926>
  • Add TRANSACTION_LOGGING_ENABLE transaction option that causes the details of a transaction’s operations to be logged to the client trace logs. <rdar://problem/32074484>
  • Add USED_DURING_COMMIT_PROTECTION_DISABLE transaction option that prevents operations performed during that transaction’s commit from causing the commit to fail. <rdar://problem/30378251>
  • Add ENABLE_SLOW_TASK_PROFILING network option that logs backtraces for long running flow tasks. <rdar://problem/30975759>
  • getBoundaryKeys can be used on locked databases. <rdar://problem/28760070>
  • Flow: API versions prior to 500 are no longer supported. <rdar://problem/32433458>
  • Flow: Cluster::createDatabase no longer takes a DB name parameter. <rdar://problem/32433458>
  • Node: API versions prior to 500 are no longer supported. <rdar://problem/32433437>
  • Node: fdb.open and Cluster.openDatabase no longer take a DB name parameter. <rdar://problem/32433437>
  • Java: API versions prior to 500 are no longer supported. <rdar://problem/30378251>
  • Java: FDB.open and Cluster.openDatabase no longer take a DB name parameter. <rdar://problem/32078379>
  • Java: Removed Transaction.reset from the API. <rdar://problem/32409970>
  • Java: Transaction.onError invalidates its Transaction and asynchronously returns a new Transaction to replace it. <rdar://problem/30378251>
  • 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. <rdar://problem/30378251>
  • Java: There are now options to set the executor for async call backs at the database and transaction level. <rdar://problem/31636701>
  • Java: Static functions that perform async operations now have overloads that allow the user to specify an executor. <rdar://problem/26143365>
  • Java: Range class now implements equals, toString, and hashCode methods. <rdar://problem/31790542>
  • Java: Tuples now expose a “stream” method to get a stream of their objects and “fromStream” to convert streams back into tuples. <rdar://problem/31767147>
  • Java: Addressed a pathology that made AsyncUtil.whileTrue susceptible to long chains of futures. <rdar://problem/30054445>

Other Changes

  • Added the -v/--version flag to report version information for the fdbcli binary <rdar://problem/31091644>
  • Introduced the data_filesystem command line argument for the fdbserver binary to prevent data from being written to the root drive. <rdar://problem/30716138>
  • 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. <rdar://problem/31853278>
  • All fdbserver command-line options now have both short- and long-form equivalents. <rdar://problem/31853278>