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.