# Release Notes

## FoundationDB Alpha 6

### Platform support

- FoundationDB now supports both clients and development servers on Mac OS X.
- FoundationDB now supports both clients and development servers on (64-bit) Windows.
- All language APIs are supported on Linux, Mac, and Windows (except for Ruby on Windows, because there is not a 64-bit Ruby for Windows.)

### Features

- The set of coordination servers can be safely changed on-the-fly via the CLI.
- Unintentional deletion of the coordination state files is now ACID-safe and self-correcting when a majority of the state files still exist.
- The foundationdb.conf file format has changed.
- A new more flexible and automatic system for network configuration. Common server setups will auto-configure using the cluster file. More advanced setups are supported via separate configurable listen and public addresses.
- The CLI now support tab-completion.
- The CLI now supports setting transaction options
- The CLI has a new command “getrangekeys” that returns the keys in a range and omits the values.
- The database size estimate shown in the CLI status is much more accurate.

### Performance

- Improved latency performance for intense workloads with range-read operations.
- Improved performance and decreased memory usage for certain intense write workloads targeting a small set of keys (such as sequential insert).

### Fixes

- An incorrect result could be returned by a range read when: (1) The range start was specified using a non-default “less than” type key selector; and (2) the range read started at the beginning of the database; and (3) the transaction also included a prior write to a key less than the key of the begin key selector.
- In certain cases a FoundationDB cluster would not correctly re-configure itself to achieve a more optimal usage of servers of specific machine classes.

### Changes to all APIs

- The API version has been updated from 14 to 16. (Thanks to our API versioning technology, programs requesting API version 14 will work unmodified.)
- Calling the `reset` method of a transaction now also resets transaction options.
- System keys (those beginning with the byte `0xFF`) are now inaccessible by default.
- Simpler network setup: The network connection options are no longer necessary and have been deprecated.
- Three new transaction options (`READ_AHEAD_DISABLE`, `READ_YOUR_WRITES_DISABLE`, and `ACCESS_SYSTEM_KEYS`) enable more control for advanced applications.

### Changes to the Java API

- A new construct AsyncUtil.whileTrue() simplifies writing loops using the asynchronous version of the Java FDB client.

### Earlier release notes

For changes in alpha 5, see Release Notes (Alpha 5).