Release Notes
4.5.6
Fixes
Disabled debug SevError trace event when applyMutations is cancelled
Fixed problem skipping publishable files
Publish debug symbols for files for all platforms
4.5.5
Fixes
DR and backup restoration could stall when encountering transactions larger than 5 MB. <rdar://problem/28744048>
The
_valid
field in layer status was missing when the client couldn’t communicate with the cluster. <rdar://problem/27643333>Backup uploads to blobstore were not verifying their checksums. <rdar://problem/28417369>
4.5.4
Fixes
Creating transactions with the multi-version client was not thread safe. <rdar://problem/28546688>
The status latency probe is now performed separately from other status gathering code. <rdar://problem/28119480>
Watches could fire early needlessly and in rare cases may not fire when they should. <rdar://problem/27957628>
Change the type of the
query_queue_max
attribute in status from an object to an integer. <rdar://problem/26709846>fdbserver
arguments were not properly preserved in log output. <rdar://problem/28407513>Increase priority of getting read versions over commits on the master proxy.
Java: Inserting a non-Long number into a Tuple and reading it back out threw a ClassCastException. <rdar://problem/28260594>
4.5.3
Fdbcli
Fix: key and value output did not escape the backslash (’\’) character. <rdar://problem/27832343>
Spaces in key and value output are no longer escaped. <rdar://problem/27832343>
Java-completable
Fix: Range queries with a limit could sometimes return fewer items than requested. <rdar://problem/27879470>
Status
Fix: backup and DR
range_bytes_written
andmutation_log_bytes_written
are reset when backup or DR is restarted. <rdar://problem/27640774>Added
_valid
and_error
fields to layer status. <rdar://problem/27643333>
4.5.2
Fixes
Fixed thread safety issues with backup and DR.
Fixed a load balancing problem when a machine was already failed when a client starts.
Golang: adding an explicit conflict key included the key immediately following in the conflict range.
4.5.1
Features
When a process is added to a cluster, it will be given data at a much faster rate. <rdar://problem/24075759>
Improved the speed at which the cluster reacts to a failed process.
Fixes
Calculating status in large databases could cause slow tasks. <rdar://problem/25805251>
Fdbrestore printed an error when passed the
--help
flag. <rdar://problem/26126793>A multi-version API external client that was a duplicate could cause a crash at client shutdown. <rdar://problem/25838039>
A multi-version API external client that failed to load would cause a crash at client shutdown. <rdar://problem/26611919>
Status could report an incorrect database size in rare scenarios. <rdar://problem/25295683>
Data distribution would stop working (both exclude and new recruitment) if a call to commit on the storage server could hang indefinitely. <rdar://problem/26276166>
fdbcli
would quit on some commands that were not errors or continue after some real errors when run with--exec
. <rdar://problem/25755317>Trace files generated by clients using the multi-version API could have name collisions. <rdar://problem/25884486>
Fdbcli
Client issues are now aggregated by name and have an addresses list. Status details prints a truncated view of these. <rdar://problem/23469072>
Status json lists incompatible clients. <rdar://problem/24415680>
Status json includes processes that couldn’t be reached in the processes list. <rdar://problem/26703551>
Exclude does not run if it will drop free space below 10%. This check can be bypassed by adding the word
FORCE
as a parameter. <rdar://problem/22922266>Added write mode, which must be turned on to set or clear keys. <rdar://problem/25779641>
Added the
kill
command for killing processes.
Fdbmonitor
The restart logic for dead child processes now uses a backoff. <rdar://problem/26100711>
Added option to remove WD40 environment variables. <rdar://problem/26100669>
fdbmonitor
will create the lockfile directory if it doesn’t exist. <rdar://problem/26502883>Added support for monitoring symbolic link changes in the configuration file path. <rdar://problem/26100843>
Added an option to disable killing of child processes when the configuration changes. <rdar://problem/26100939>
Added support for larger process IDs. <rdar://problem/26350469>
Backup
Blobstore URLs can now contain multiple IP addresses, separated by commas, over which to load balance requests. <rdar://problem/23095572>
Bindings
API version updated to 450. There are no behavior changes in this API version. See the API version upgrade guide for upgrade details.
Add error predicate testing to client bindings. This new functionality should help complex use cases write correct transaction retry loops where dispatching on error classes is needed. <rdar://problem/24492860>
Other Changes
Maximum shard size increased from 100MB to 500MB. <rdar://problem/21225031>
Support backslash as an escape character for semicolons and backslashes when setting network options using environment variables. <rdar://problem/23902390>
Add
logGroup
attribute to rolled trace events. <rdar://problem/25726509>Calling get range with a begin key ==
\xff\xff/worker_interfaces
will return a list of serialized worker interfaces. Calling set with the key\xff\xff/reboot_worker
and a value which is a serialized worker interface will reboot that process. <rdar://problem/26101019>