The Beta 3 release focuses on major improvements across our language APIs, including new capabilities for locality, watches, transaction cancellation and timeouts, explicit conflict ranges, and atomic operations. It also improves performance and removes known limitations.
Based on customer feedback and internal testing, the API has been significantly revised for increased performance and ease of use. This is a breaking API change. We will continue to make the previous JAR available for the time being.
com.foundationdb.async
). The library has a host of new members for greater flexibility and more predictable error handling.Database.run(...)
can now return an arbitrary object from user code, simplifying use of this recommended retry loop.Function
replaces several interfaces: Mapper
, Block
, Retryable
, and AsyncRetryable
.Future
instance, even one not backed with native resources.onSuccess()
and onFailure()
in favor of map()
and flatMap()
. If code needs simple triggering, onReady()
is still available.Transaction.getRange(...)
starts fetching data immediately upon invocation. This simplifies development of code that reads ranges in parallel.as_foundationdb_key()
method that returns a key. Likewise, methods that accept a value will also accept a Python object with an as_foundationdb_value()
method that returns a value.GetRange
request using a row limit and an end key selector that enters the system keyspace could return too few results.GetRange
could improperly cache too large a range of data when the end key selector resolved past the end of user keyspace, temporarily resulting in incorrect answers to read requests.