Release Notes

FoundationDB Alpha 5

Language support

  • FoundationDB now supports Ruby

  • FoundationDB now supports Node.js

  • FoundationDB now supports Java and other JVM languages.

Features

  • A new backup system allows scheduled backups of a snapshot of the FoundationDB database to an external filesystem.

  • Integrated HTML documentation

  • Snapshot reads allow API clients to selectively relax FoundationDB’s strong isolation guarantee. Appropriate use can of them can reduce Conflict ranges but makes reasoning about concurrency harder.

  • Streaming modes allow API clients to adjust how FoundationDB transfers data for range reads for improved performance.

  • Client APIs automatically detect the appropriate network interface (local address) when connecting to a cluster, and will look for a Default cluster file.

Compatibility

  • Tuples encoded with prior alpha versions are incompatible with the tuple layer in Alpha 5.

  • Databases created with Alpha 4 will be compatible. (See Upgrading from older versions for upgrade instructions)

  • Databases created before Alpha 4 will be incompatible. (See Upgrading from older versions for details)

Changes to all APIs

  • The API version has been updated to 14.

  • Snapshot reads (see Features, above).

  • Streaming modes (see Features, above).

  • Automatic network interface detection (see Features, above).

  • The tuple layer supports unicode strings (encoded as UTF-8), has a more compact encoding, and is not compatible with data from prior versions.

  • Reversed range reads are now exposed through a separate parameter rather than via a negative limit.

  • Extensible options are now exposed at the network, cluster, database and transaction levels. The parameters to fdb_setup_network() and fdb.init() have been replaced by network options.

  • Option enumerations are available in a machine-readable format for the benefit of third-party language binding developers.

Python API changes

  • fdb.open() can be called with no parameters to use the Default cluster file.

  • Waiting on a Future object has changed from .get() to .wait()

  • Reversed range reads can by specified by passing a slice object with a -1 step.

  • The convenience read methods on fdb.Database are now transactional.

C API changes