Fixed carriage return line endings

This commit is contained in:
Alvin Moore 2018-05-23 11:34:26 -07:00
parent 56535db613
commit bc47a4a23d
22 changed files with 5618 additions and 5618 deletions

View File

@ -1,474 +1,474 @@
{ {
"cluster":{ "cluster":{
"layers":{ "layers":{
"_valid":true, "_valid":true,
"_error":"some error description" "_error":"some error description"
}, },
"processes":{ "processes":{
"$map":{ "$map":{
"version":"3.0.0", "version":"3.0.0",
"machine_id":"0ccb4e0feddb5583010f6b77d9d10ece", "machine_id":"0ccb4e0feddb5583010f6b77d9d10ece",
"locality":{ "locality":{
"$map":"value" "$map":"value"
}, },
"class_source":{ "class_source":{
"$enum":[ "$enum":[
"command_line", "command_line",
"configure_auto", "configure_auto",
"set_class" "set_class"
] ]
}, },
"class_type":{ "class_type":{
"$enum":[ "$enum":[
"unset", "unset",
"storage", "storage",
"transaction", "transaction",
"resolution", "resolution",
"proxy", "proxy",
"master", "master",
"test" "test"
] ]
}, },
"roles":[ "roles":[
{ {
"query_queue_max":0, "query_queue_max":0,
"input_bytes":{ "input_bytes":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"roughness":0.0 "roughness":0.0
}, },
"stored_bytes":12341234, "stored_bytes":12341234,
"kvstore_used_bytes":12341234, "kvstore_used_bytes":12341234,
"kvstore_available_bytes":12341234, "kvstore_available_bytes":12341234,
"kvstore_free_bytes":12341234, "kvstore_free_bytes":12341234,
"kvstore_total_bytes":12341234, "kvstore_total_bytes":12341234,
"durable_bytes":{ "durable_bytes":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"roughness":0.0 "roughness":0.0
}, },
"queue_disk_used_bytes":12341234, "queue_disk_used_bytes":12341234,
"queue_disk_available_bytes":12341234, "queue_disk_available_bytes":12341234,
"queue_disk_free_bytes":12341234, "queue_disk_free_bytes":12341234,
"queue_disk_total_bytes":12341234, "queue_disk_total_bytes":12341234,
"role":{ "role":{
"$enum":[ "$enum":[
"master", "master",
"proxy", "proxy",
"log", "log",
"storage", "storage",
"resolver", "resolver",
"cluster_controller" "cluster_controller"
] ]
}, },
"data_version":12341234, "data_version":12341234,
"data_version_lag":12341234, "data_version_lag":12341234,
"id":"eb84471d68c12d1d26f692a50000003f", "id":"eb84471d68c12d1d26f692a50000003f",
"finished_queries":{ "finished_queries":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"roughness":0.0 "roughness":0.0
} }
} }
], ],
"command_line":"-r simulation", "command_line":"-r simulation",
"memory":{ "memory":{
"available_bytes":0, "available_bytes":0,
"limit_bytes":0, "limit_bytes":0,
"used_bytes":0 "used_bytes":0
}, },
"messages":[ "messages":[
{ {
"time":12345.12312, "time":12345.12312,
"type":"x", "type":"x",
"name":{ "name":{
"$enum":[ "$enum":[
"file_open_error", "file_open_error",
"incorrect_cluster_file_contents", "incorrect_cluster_file_contents",
"process_error", "process_error",
"io_error", "io_error",
"io_timeout", "io_timeout",
"platform_error", "platform_error",
"storage_server_lagging", "storage_server_lagging",
"(other FDB error messages)" "(other FDB error messages)"
] ]
}, },
"raw_log_message":"<stuff/>", "raw_log_message":"<stuff/>",
"description":"abc" "description":"abc"
} }
], ],
"fault_domain":"0ccb4e0fdbdb5583010f6b77d9d10ece", "fault_domain":"0ccb4e0fdbdb5583010f6b77d9d10ece",
"excluded":false, "excluded":false,
"address":"1.2.3.4:1234", "address":"1.2.3.4:1234",
"disk":{ "disk":{
"free_bytes":3451233456234, "free_bytes":3451233456234,
"reads":{ "reads":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"sectors":0 "sectors":0
}, },
"busy":0.0, "busy":0.0,
"writes":{ "writes":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"sectors":0 "sectors":0
}, },
"total_bytes":123412341234 "total_bytes":123412341234
}, },
"uptime_seconds":1234.2345, "uptime_seconds":1234.2345,
"cpu":{ "cpu":{
"usage_cores":0.0 "usage_cores":0.0
}, },
"network":{ "network":{
"current_connections":0, "current_connections":0,
"connections_established":{ "connections_established":{
"hz":0.0 "hz":0.0
}, },
"connections_closed":{ "connections_closed":{
"hz":0.0 "hz":0.0
}, },
"connection_errors":{ "connection_errors":{
"hz":0.0 "hz":0.0
}, },
"megabits_sent":{ "megabits_sent":{
"hz":0.0 "hz":0.0
}, },
"megabits_received":{ "megabits_received":{
"hz":0.0 "hz":0.0
} }
} }
} }
}, },
"old_logs":[ "old_logs":[
{ {
"logs":[ "logs":[
{ {
"id":"7f8d623d0cb9966e", "id":"7f8d623d0cb9966e",
"healthy":true, "healthy":true,
"address":"1.2.3.4:1234" "address":"1.2.3.4:1234"
} }
], ],
"log_replication_factor":3, "log_replication_factor":3,
"log_write_anti_quorum":0, "log_write_anti_quorum":0,
"log_fault_tolerance":2 "log_fault_tolerance":2
} }
], ],
"fault_tolerance":{ "fault_tolerance":{
"max_machine_failures_without_losing_availability":0, "max_machine_failures_without_losing_availability":0,
"max_machine_failures_without_losing_data":0 "max_machine_failures_without_losing_data":0
}, },
"qos":{ "qos":{
"worst_queue_bytes_log_server":460, "worst_queue_bytes_log_server":460,
"performance_limited_by":{ "performance_limited_by":{
"reason_server_id":"7f8d623d0cb9966e", "reason_server_id":"7f8d623d0cb9966e",
"reason_id":0, "reason_id":0,
"name":{ "name":{
"$enum":[ "$enum":[
"workload", "workload",
"storage_server_write_queue_size", "storage_server_write_queue_size",
"storage_server_write_bandwidth_mvcc", "storage_server_write_bandwidth_mvcc",
"storage_server_readable_behind", "storage_server_readable_behind",
"log_server_mvcc_write_bandwidth", "log_server_mvcc_write_bandwidth",
"log_server_write_queue", "log_server_write_queue",
"storage_server_min_free_space", "storage_server_min_free_space",
"storage_server_min_free_space_ratio", "storage_server_min_free_space_ratio",
"log_server_min_free_space", "log_server_min_free_space",
"log_server_min_free_space_ratio" "log_server_min_free_space_ratio"
] ]
}, },
"description":"The database is not being saturated by the workload." "description":"The database is not being saturated by the workload."
}, },
"transactions_per_second_limit":0, "transactions_per_second_limit":0,
"released_transactions_per_second":0, "released_transactions_per_second":0,
"limiting_queue_bytes_storage_server":0, "limiting_queue_bytes_storage_server":0,
"worst_queue_bytes_storage_server":0, "worst_queue_bytes_storage_server":0,
"limiting_version_lag_storage_server":0, "limiting_version_lag_storage_server":0,
"worst_version_lag_storage_server":0 "worst_version_lag_storage_server":0
}, },
"incompatible_connections":[ "incompatible_connections":[
], ],
"database_available":true, "database_available":true,
"database_locked":false, "database_locked":false,
"generation":2, "generation":2,
"latency_probe":{ "latency_probe":{
"read_seconds":7, "read_seconds":7,
"immediate_priority_transaction_start_seconds":0.0, "immediate_priority_transaction_start_seconds":0.0,
"batch_priority_transaction_start_seconds":0.0, "batch_priority_transaction_start_seconds":0.0,
"transaction_start_seconds":0.0, "transaction_start_seconds":0.0,
"commit_seconds":0.02 "commit_seconds":0.02
}, },
"clients":{ "clients":{
"count":1, "count":1,
"supported_versions":[ "supported_versions":[
{ {
"client_version":"3.0.0", "client_version":"3.0.0",
"connected_clients":[ "connected_clients":[
{ {
"address":"127.0.0.1:9898", "address":"127.0.0.1:9898",
"log_group":"default" "log_group":"default"
} }
], ],
"count" : 1, "count" : 1,
"protocol_version" : "fdb00a400050001", "protocol_version" : "fdb00a400050001",
"source_version" : "9430e1127b4991cbc5ab2b17f41cfffa5de07e9d" "source_version" : "9430e1127b4991cbc5ab2b17f41cfffa5de07e9d"
} }
] ]
}, },
"messages":[ "messages":[
{ {
"reasons":[ "reasons":[
{ {
"description":"Blah." "description":"Blah."
} }
], ],
"unreachable_processes":[ "unreachable_processes":[
{ {
"address":"1.2.3.4:1234" "address":"1.2.3.4:1234"
} }
], ],
"name":{ "name":{
"$enum":[ "$enum":[
"unreachable_master_worker", "unreachable_master_worker",
"unreadable_configuration", "unreadable_configuration",
"client_issues", "client_issues",
"unreachable_processes", "unreachable_processes",
"immediate_priority_transaction_start_probe_timeout", "immediate_priority_transaction_start_probe_timeout",
"batch_priority_transaction_start_probe_timeout", "batch_priority_transaction_start_probe_timeout",
"transaction_start_probe_timeout", "transaction_start_probe_timeout",
"read_probe_timeout", "read_probe_timeout",
"commit_probe_timeout", "commit_probe_timeout",
"storage_servers_error", "storage_servers_error",
"status_incomplete", "status_incomplete",
"layer_status_incomplete", "layer_status_incomplete",
"database_availability_timeout" "database_availability_timeout"
] ]
}, },
"issues":[ "issues":[
{ {
"name":{ "name":{
"$enum":[ "$enum":[
"incorrect_cluster_file_contents" "incorrect_cluster_file_contents"
] ]
}, },
"description":"Cluster file contents do not match current cluster connection string. Verify cluster file is writable and has not been overwritten externally." "description":"Cluster file contents do not match current cluster connection string. Verify cluster file is writable and has not been overwritten externally."
} }
], ],
"description":"abc" "description":"abc"
} }
], ],
"recovery_state":{ "recovery_state":{
"required_resolvers":1, "required_resolvers":1,
"required_proxies":1, "required_proxies":1,
"name":{ "name":{
"$enum":[ "$enum":[
"reading_coordinated_state", "reading_coordinated_state",
"locking_coordinated_state", "locking_coordinated_state",
"locking_old_transaction_servers", "locking_old_transaction_servers",
"reading_transaction_system_state", "reading_transaction_system_state",
"configuration_missing", "configuration_missing",
"configuration_never_created", "configuration_never_created",
"configuration_invalid", "configuration_invalid",
"recruiting_transaction_servers", "recruiting_transaction_servers",
"initializing_transaction_servers", "initializing_transaction_servers",
"recovery_transaction", "recovery_transaction",
"writing_coordinated_state", "writing_coordinated_state",
"fully_recovered" "fully_recovered"
] ]
}, },
"required_logs":3, "required_logs":3,
"missing_logs":"7f8d623d0cb9966e", "missing_logs":"7f8d623d0cb9966e",
"description":"Recovery complete." "description":"Recovery complete."
}, },
"workload":{ "workload":{
"operations":{ "operations":{
"writes":{ "writes":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"roughness":0.0 "roughness":0.0
}, },
"reads":{ "reads":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"roughness":0.0 "roughness":0.0
} }
}, },
"bytes":{ "bytes":{
"written":{ "written":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"roughness":0.0 "roughness":0.0
}, },
"read":{ "read":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"roughness":0.0 "roughness":0.0
} }
}, },
"keys":{ "keys":{
"read":{ "read":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"roughness":0.0 "roughness":0.0
} }
}, },
"transactions":{ "transactions":{
"started":{ "started":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"roughness":0.0 "roughness":0.0
}, },
"conflicted":{ "conflicted":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"roughness":0.0 "roughness":0.0
}, },
"committed":{ "committed":{
"hz":0.0, "hz":0.0,
"counter":0, "counter":0,
"roughness":0.0 "roughness":0.0
} }
} }
}, },
"cluster_controller_timestamp":1415650089, "cluster_controller_timestamp":1415650089,
"protocol_version":"fdb00a400050001", "protocol_version":"fdb00a400050001",
"configuration":{ "configuration":{
"resolvers":1, "resolvers":1,
"redundancy":{ "redundancy":{
"factor":{ "factor":{
"$enum":[ "$enum":[
"single", "single",
"double", "double",
"triple", "triple",
"custom", "custom",
"two_datacenter", "two_datacenter",
"three_datacenter", "three_datacenter",
"three_data_hall", "three_data_hall",
"fast_recovery_double", "fast_recovery_double",
"fast_recovery_triple" "fast_recovery_triple"
] ]
} }
}, },
"storage_policy":"(zoneid^3x1)", "storage_policy":"(zoneid^3x1)",
"tlog_policy":"(zoneid^2x1)", "tlog_policy":"(zoneid^2x1)",
"logs":2, "logs":2,
"storage_engine":{ "storage_engine":{
"$enum":[ "$enum":[
"ssd", "ssd",
"ssd-1", "ssd-1",
"ssd-2", "ssd-2",
"memory", "memory",
"custom" "custom"
] ]
}, },
"coordinators_count":1, "coordinators_count":1,
"excluded_servers":[ "excluded_servers":[
{ {
"address":"10.0.4.1" "address":"10.0.4.1"
} }
], ],
"proxies":5 "proxies":5
}, },
"data":{ "data":{
"least_operating_space_bytes_log_server":0, "least_operating_space_bytes_log_server":0,
"average_partition_size_bytes":0, "average_partition_size_bytes":0,
"state":{ "state":{
"healthy":true, "healthy":true,
"min_replicas_remaining":0, "min_replicas_remaining":0,
"name":{ "name":{
"$enum":[ "$enum":[
"initializing", "initializing",
"missing_data", "missing_data",
"healing", "healing",
"healthy_repartitioning", "healthy_repartitioning",
"healthy_removing_server", "healthy_removing_server",
"healthy_rebalancing", "healthy_rebalancing",
"healthy" "healthy"
] ]
}, },
"description":"" "description":""
}, },
"least_operating_space_ratio_storage_server":0.1, "least_operating_space_ratio_storage_server":0.1,
"max_machine_failures_without_losing_availability":0, "max_machine_failures_without_losing_availability":0,
"total_disk_used_bytes":0, "total_disk_used_bytes":0,
"total_kv_size_bytes":0, "total_kv_size_bytes":0,
"partitions_count":2, "partitions_count":2,
"moving_data":{ "moving_data":{
"total_written_bytes":0, "total_written_bytes":0,
"in_flight_bytes":0, "in_flight_bytes":0,
"in_queue_bytes":0 "in_queue_bytes":0
}, },
"least_operating_space_bytes_storage_server":0, "least_operating_space_bytes_storage_server":0,
"max_machine_failures_without_losing_data":0 "max_machine_failures_without_losing_data":0
}, },
"machines":{ "machines":{
"$map":{ "$map":{
"network":{ "network":{
"megabits_sent":{ "megabits_sent":{
"hz":0.0 "hz":0.0
}, },
"megabits_received":{ "megabits_received":{
"hz":0.0 "hz":0.0
}, },
"tcp_segments_retransmitted":{ "tcp_segments_retransmitted":{
"hz":0.0 "hz":0.0
} }
}, },
"memory":{ "memory":{
"free_bytes":0, "free_bytes":0,
"committed_bytes":0, "committed_bytes":0,
"total_bytes":0 "total_bytes":0
}, },
"contributing_workers":4, "contributing_workers":4,
"datacenter_id":"6344abf1813eb05b", "datacenter_id":"6344abf1813eb05b",
"excluded":false, "excluded":false,
"address":"1.2.3.4", "address":"1.2.3.4",
"machine_id":"6344abf1813eb05b", "machine_id":"6344abf1813eb05b",
"locality":{ "locality":{
"$map":"value" "$map":"value"
}, },
"cpu":{ "cpu":{
"logical_core_utilization":0.4 "logical_core_utilization":0.4
} }
} }
} }
}, },
"client":{ "client":{
"coordinators":{ "coordinators":{
"coordinators":[ "coordinators":[
{ {
"reachable":true, "reachable":true,
"address":"127.0.0.1:4701" "address":"127.0.0.1:4701"
} }
], ],
"quorum_reachable":true "quorum_reachable":true
}, },
"database_status":{ "database_status":{
"available":true, "available":true,
"healthy":true "healthy":true
}, },
"messages":[ "messages":[
{ {
"name":{ "name":{
"$enum":[ "$enum":[
"inconsistent_cluster_file", "inconsistent_cluster_file",
"unreachable_cluster_controller", "unreachable_cluster_controller",
"no_cluster_controller", "no_cluster_controller",
"status_incomplete_client", "status_incomplete_client",
"status_incomplete_coordinators", "status_incomplete_coordinators",
"status_incomplete_error", "status_incomplete_error",
"status_incomplete_timeout", "status_incomplete_timeout",
"status_incomplete_cluster", "status_incomplete_cluster",
"quorum_not_reachable" "quorum_not_reachable"
] ]
}, },
"description":"The cluster file is not up to date." "description":"The cluster file is not up to date."
} }
], ],
"timestamp":1415650089, "timestamp":1415650089,
"cluster_file":{ "cluster_file":{
"path":"/etc/foundationdb/fdb.cluster", "path":"/etc/foundationdb/fdb.cluster",
"up_to_date":true "up_to_date":true
} }
} }
} }

View File

@ -1,27 +1,27 @@
# #
# brokenrole.py # brokenrole.py
# #
# This source file is part of the FoundationDB open source project # This source file is part of the FoundationDB open source project
# #
# Copyright 2013-2018 Apple Inc. and the FoundationDB project authors # Copyright 2013-2018 Apple Inc. and the FoundationDB project authors
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
# You may obtain a copy of the License at # You may obtain a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
# #
# Unless required by applicable law or agreed to in writing, software # Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, # distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# #
def setup(app): def setup(app):
app.add_role('broken', broken_role) app.add_role('broken', broken_role)
def broken_role(name, rawtext, text, lineno, inliner, options={}, content=[]): def broken_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
msg = inliner.reporter.error('Broken role invoked', line=lineno) msg = inliner.reporter.error('Broken role invoked', line=lineno)
prb = inliner.problematic(rawtext,rawtext,msg) prb = inliner.problematic(rawtext,rawtext,msg)
return [prb],[msg] return [prb],[msg]

View File

@ -1,48 +1,48 @@
# #
# relativelink.py # relativelink.py
# #
# This source file is part of the FoundationDB open source project # This source file is part of the FoundationDB open source project
# #
# Copyright 2013-2018 Apple Inc. and the FoundationDB project authors # Copyright 2013-2018 Apple Inc. and the FoundationDB project authors
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
# You may obtain a copy of the License at # You may obtain a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
# #
# Unless required by applicable law or agreed to in writing, software # Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, # distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# #
from sphinx.addnodes import toctree from sphinx.addnodes import toctree
# This extension cruelly monkey patches sphinx.environment.BuildEnvironment so # This extension cruelly monkey patches sphinx.environment.BuildEnvironment so
# that toctree entries can contain relative internal links, using the syntax # that toctree entries can contain relative internal links, using the syntax
# Name <relative://relative/path> # Name <relative://relative/path>
# This is translated into an href="relative/path" # This is translated into an href="relative/path"
# Relative links already work fine outside the toctree: # Relative links already work fine outside the toctree:
# Name <relative/path>_ # Name <relative/path>_
def setup(app): def setup(app):
import sphinx.environment import sphinx.environment
from docutils import nodes from docutils import nodes
old_resolve = sphinx.environment.BuildEnvironment.resolve_toctree old_resolve = sphinx.environment.BuildEnvironment.resolve_toctree
def resolve_toctree(self, docname, builder, toctree, prune=True, maxdepth=0, def resolve_toctree(self, docname, builder, toctree, prune=True, maxdepth=0,
titles_only=False, collapse=False, includehidden=False): titles_only=False, collapse=False, includehidden=False):
result = old_resolve(self, docname, builder, toctree, prune=True, maxdepth=0, result = old_resolve(self, docname, builder, toctree, prune=True, maxdepth=0,
titles_only=False, collapse=False, includehidden=False) titles_only=False, collapse=False, includehidden=False)
if result == None: if result == None:
return result return result
for node in result.traverse( nodes.reference ): for node in result.traverse( nodes.reference ):
if not node['internal'] and node['refuri'].startswith("relative://"): if not node['internal'] and node['refuri'].startswith("relative://"):
node['refuri'] = node['refuri'][len("relative://"):] node['refuri'] = node['refuri'][len("relative://"):]
return result return result
sphinx.environment.BuildEnvironment.resolve_toctree = resolve_toctree sphinx.environment.BuildEnvironment.resolve_toctree = resolve_toctree

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,77 +1,77 @@
####################### #######################
Release Notes (Alpha 5) Release Notes (Alpha 5)
####################### #######################
FoundationDB Alpha 5 FoundationDB Alpha 5
==================== ====================
Language support Language support
------------------------- -------------------------
* FoundationDB now supports :doc:`Ruby </api-ruby>` * FoundationDB now supports :doc:`Ruby </api-ruby>`
* FoundationDB now supports :doc:`Node.js </api-node>` * FoundationDB now supports :doc:`Node.js </api-node>`
* FoundationDB now supports `Java </javadoc/index.html>`_ and other JVM languages. * FoundationDB now supports `Java </javadoc/index.html>`_ and other JVM languages.
.. _alpha-5-rel-notes-features: .. _alpha-5-rel-notes-features:
Features Features
------------ ------------
* A new :doc:`backup </backups>` system allows scheduled backups of a snapshot of the FoundationDB database to an external filesystem. * A new :doc:`backup </backups>` system allows scheduled backups of a snapshot of the FoundationDB database to an external filesystem.
* :doc:`Integrated HTML documentation </index>` * :doc:`Integrated HTML documentation </index>`
* :ref:`Snapshot reads <snapshot isolation>` allow API clients to selectively relax FoundationDB's strong isolation guarantee. Appropriate use can of them can reduce :ref:`conflict-ranges` but makes reasoning about concurrency harder. * :ref:`Snapshot reads <snapshot isolation>` allow API clients to selectively relax FoundationDB's strong isolation guarantee. Appropriate use can of them can reduce :ref:`conflict-ranges` but makes reasoning about concurrency harder.
* :ref:`Streaming modes <streaming-mode-python>` allow API clients to adjust how FoundationDB transfers data for range reads for improved performance. * :ref:`Streaming modes <streaming-mode-python>` 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 :ref:`default-cluster-file`. * Client APIs automatically detect the appropriate network interface (local address) when connecting to a cluster, and will look for a :ref:`default-cluster-file`.
Compatibility Compatibility
------------- -------------
* Tuples encoded with prior alpha versions are incompatible with the tuple layer in Alpha 5. * Tuples encoded with prior alpha versions are incompatible with the tuple layer in Alpha 5.
* Databases created with Alpha 4 will be compatible. (See :ref:`Upgrading from older versions <upgrading-from-older-versions>` for upgrade instructions) * Databases created with Alpha 4 will be compatible. (See :ref:`Upgrading from older versions <upgrading-from-older-versions>` for upgrade instructions)
* Databases created before Alpha 4 will be incompatible. (See :ref:`Upgrading from older versions <upgrading-from-older-versions>` for details) * Databases created before Alpha 4 will be incompatible. (See :ref:`Upgrading from older versions <upgrading-from-older-versions>` for details)
Changes to all APIs Changes to all APIs
------------------- -------------------
* The API version has been updated to 14. * The API version has been updated to 14.
* :ref:`Snapshot reads <snapshot isolation>` (see :ref:`Features <alpha-5-rel-notes-features>`, above). * :ref:`Snapshot reads <snapshot isolation>` (see :ref:`Features <alpha-5-rel-notes-features>`, above).
* :ref:`Streaming modes <streaming-mode-python>` (see :ref:`Features <alpha-5-rel-notes-features>`, above). * :ref:`Streaming modes <streaming-mode-python>` (see :ref:`Features <alpha-5-rel-notes-features>`, above).
* Automatic network interface detection (see :ref:`Features <alpha-5-rel-notes-features>`, above). * Automatic network interface detection (see :ref:`Features <alpha-5-rel-notes-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. * 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``. * 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 :c:func:`fdb_setup_network` and :py:func:`fdb.init` have been replaced by network options. * Extensible options are now exposed at the network, cluster, database and transaction levels. The parameters to :c:func:`fdb_setup_network` and :py:func:`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. * Option enumerations are available in a machine-readable format for the benefit of third-party language binding developers.
Python API changes Python API changes
------------------ ------------------
* :py:func:`fdb.open` can be called with no parameters to use the :ref:`default-cluster-file`. * :py:func:`fdb.open` can be called with no parameters to use the :ref:`default-cluster-file`.
* Waiting on a Future object has changed from ``.get()`` to :py:meth:`.wait() <fdb.Future.wait>` * Waiting on a Future object has changed from ``.get()`` to :py:meth:`.wait() <fdb.Future.wait>`
* Reversed range reads can by specified by passing a slice object with a -1 step. * Reversed range reads can by specified by passing a slice object with a -1 step.
* The convenience read methods on :py:class:`fdb.Database` are now transactional. * The convenience read methods on :py:class:`fdb.Database` are now transactional.
C API changes C API changes
------------- -------------
* Byte limits exposed in :c:func:`fdb_transaction_get_range`. These are not currently exposed by any of the higher level clients (and usually streaming modes should be preferred). * Byte limits exposed in :c:func:`fdb_transaction_get_range`. These are not currently exposed by any of the higher level clients (and usually streaming modes should be preferred).
* :c:func:`fdb_future_get_keyvalue_array` returns an explicit flag indicating whether there is more data in the range beyond the limits passed to :c:func:`fdb_transaction_get_range`. * :c:func:`fdb_future_get_keyvalue_array` returns an explicit flag indicating whether there is more data in the range beyond the limits passed to :c:func:`fdb_transaction_get_range`.
* ``fdb_transaction_get_range_selector`` has been eliminated - :c:func:`fdb_transaction_get_range` always takes key selectors. * ``fdb_transaction_get_range_selector`` has been eliminated - :c:func:`fdb_transaction_get_range` always takes key selectors.

View File

@ -1,71 +1,71 @@
####################### #######################
Release Notes (Alpha 6) Release Notes (Alpha 6)
####################### #######################
FoundationDB Alpha 6 FoundationDB Alpha 6
==================== ====================
Platform support Platform support
------------------------- -------------------------
* FoundationDB now supports both clients and development servers on :doc:`Mac OS X </getting-started-mac>`. * FoundationDB now supports both clients and development servers on :doc:`Mac OS X </getting-started-mac>`.
* FoundationDB now supports both clients and development servers on (64-bit) Windows. * 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.) * 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 Features
------------ ------------
* The set of coordination servers can be safely :ref:`changed <configuration-changing-coordination-servers>` on-the-fly via the CLI. * The set of coordination servers can be safely :ref:`changed <configuration-changing-coordination-servers>` 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. * Unintentional deletion of the coordination state files is now ACID-safe and self-correcting when a majority of the state files still exist.
* The :ref:`foundationdb.conf <foundationdb-conf>` file format has changed. * The :ref:`foundationdb.conf <foundationdb-conf>` file format has changed.
* A new more flexible and automatic system for :ref:`network configuration <foundationdb-conf-fdbserver>`. Common server setups will auto-configure using the cluster file. More advanced setups are supported via separate configurable listen and public addresses. * A new more flexible and automatic system for :ref:`network configuration <foundationdb-conf-fdbserver>`. 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 support tab-completion.
* The CLI now supports setting transaction options * 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 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. * The database size estimate shown in the CLI status is much more accurate.
Performance Performance
-------------- --------------
* Improved latency performance for intense workloads with range-read operations. * 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). * Improved performance and decreased memory usage for certain intense write workloads targeting a small set of keys (such as sequential insert).
Fixes 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. * 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. * 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 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.) * 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 :py:meth:`reset <fdb.Transaction.reset>` method of a transaction now also resets transaction options. * Calling the :py:meth:`reset <fdb.Transaction.reset>` method of a transaction now also resets transaction options.
* :ref:`System keys <system-keys>` (those beginning with the byte ``0xFF``) are now inaccessible by default. * :ref:`System keys <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. * Simpler network setup: The network connection options are no longer necessary and have been deprecated.
* Three new transaction options (:py:meth:`READ_AHEAD_DISABLE <fdb.Transaction.options.set_read_ahead_disable>`, :py:meth:`READ_YOUR_WRITES_DISABLE <fdb.Transaction.options.set_read_your_writes_disable>`, and :py:meth:`ACCESS_SYSTEM_KEYS <fdb.Transaction.options.set_access_system_keys>`) enable more control for advanced applications. * Three new transaction options (:py:meth:`READ_AHEAD_DISABLE <fdb.Transaction.options.set_read_ahead_disable>`, :py:meth:`READ_YOUR_WRITES_DISABLE <fdb.Transaction.options.set_read_your_writes_disable>`, and :py:meth:`ACCESS_SYSTEM_KEYS <fdb.Transaction.options.set_access_system_keys>`) enable more control for advanced applications.
Changes to the Java API Changes to the Java API
------------------------ ------------------------
* A new construct `AsyncUtil.whileTrue() <../javadoc/com/apple/cie/foundationdb/async/AsyncUtil.html#whileTrue-com.apple.foundationdb.async.Function->`_ simplifies writing loops using the asynchronous version of the Java FDB client. * A new construct `AsyncUtil.whileTrue() <../javadoc/com/apple/cie/foundationdb/async/AsyncUtil.html#whileTrue-com.apple.foundationdb.async.Function->`_ simplifies writing loops using the asynchronous version of the Java FDB client.
Earlier release notes Earlier release notes
--------------------- ---------------------
For changes in alpha 5, see :doc:`Release Notes (Alpha 5) <release-notes-014>`. For changes in alpha 5, see :doc:`Release Notes (Alpha 5) <release-notes-014>`.

View File

@ -1,85 +1,85 @@
###################### ######################
Release Notes (Beta 1) Release Notes (Beta 1)
###################### ######################
Beta 1 Beta 1
====== ======
Platform support Platform support
---------------- ----------------
* Added AWS CloudFormation support for FoundationDB. * Added AWS CloudFormation support for FoundationDB.
Features Features
-------- --------
* Servers can be safely :ref:`removed <removing-machines-from-a-cluster>` from the cluster. * Servers can be safely :ref:`removed <removing-machines-from-a-cluster>` from the cluster.
* :ref:`Improved status <administration-monitoring-cluster-status>` with information about database configuration, health, workload, and performance. * :ref:`Improved status <administration-monitoring-cluster-status>` with information about database configuration, health, workload, and performance.
* Improved resiliency against low disk space conditions. * Improved resiliency against low disk space conditions.
* The CLI can automatically choose :ref:`coordination servers <configuration-changing-coordination-servers>`. * The CLI can automatically choose :ref:`coordination servers <configuration-changing-coordination-servers>`.
* The CLI allows multiple semicolon separated commands per line; a new --exec flag was added to the CLI to pass commands to the CLI and quit when done. * The CLI allows multiple semicolon separated commands per line; a new --exec flag was added to the CLI to pass commands to the CLI and quit when done.
* Old :ref:`log files <administration-managing-trace-files>` are automatically deleted. * Old :ref:`log files <administration-managing-trace-files>` are automatically deleted.
* More specific :ref:`error codes <developer-guide-error-codes>`. * More specific :ref:`error codes <developer-guide-error-codes>`.
Performance Performance
----------- -----------
* Reduced latency of getRange when iterating through large amounts of data. * Reduced latency of getRange when iterating through large amounts of data.
* Reduced idle CPU usage. * Reduced idle CPU usage.
* Java API: Join in ArrayUtil is efficient for all container types. * Java API: Join in ArrayUtil is efficient for all container types.
* Java API: Optimized tuple creation. * Java API: Optimized tuple creation.
Changes to all APIs Changes to all APIs
------------------- -------------------
* The API version has been updated from 16 to 21. (Thanks to our API versioning technology, programs requesting earlier API versions will work unmodified.) There are no changes required to migrate from version 16 to 21. * The API version has been updated from 16 to 21. (Thanks to our API versioning technology, programs requesting earlier API versions will work unmodified.) There are no changes required to migrate from version 16 to 21.
Fixes Fixes
----- -----
* Commit could return the error commit_conflict (renamed to not_committed) after the transaction successfully committed. (This was previously documented as a known limitation.) * Commit could return the error commit_conflict (renamed to not_committed) after the transaction successfully committed. (This was previously documented as a known limitation.)
* If a call to commit returned an error, but onError was not called, the transaction would not be reset. * If a call to commit returned an error, but onError was not called, the transaction would not be reset.
* The memory storage engine was too aggressive in reserving disk space. * The memory storage engine was too aggressive in reserving disk space.
* If a key selector in a getRange resolved to the beginning or the end of the database, then its transaction may not have correctly conflicted with other transactions. * If a key selector in a getRange resolved to the beginning or the end of the database, then its transaction may not have correctly conflicted with other transactions.
* Ranges passed to clearRange and getRange with the begin key larger than the end could incorrectly cause client API errors. * Ranges passed to clearRange and getRange with the begin key larger than the end could incorrectly cause client API errors.
* Databases with small amounts of data in them (~20000 bytes) would sometimes slowly move data back and forth between the servers. * Databases with small amounts of data in them (~20000 bytes) would sometimes slowly move data back and forth between the servers.
* Large network latencies (> ~250 ms) could impede data balancing between servers. * Large network latencies (> ~250 ms) could impede data balancing between servers.
* Setting callbacks or calling ``blockUntilReady`` on a future from multiple threads resulted in an error. * Setting callbacks or calling ``blockUntilReady`` on a future from multiple threads resulted in an error.
* If a machine running the memory storage engine was killed multiple times in close succession, data loss might occur. * If a machine running the memory storage engine was killed multiple times in close succession, data loss might occur.
* C: The headers were not standards compliant and would not compile in some environments. * C: The headers were not standards compliant and would not compile in some environments.
* Ruby: API versions were not checked for validity. * Ruby: API versions were not checked for validity.
* Windows: The server could crash on non-English versions of Windows. * Windows: The server could crash on non-English versions of Windows.
* Windows: Manually running fdbserver.exe could fail because of overly restrictive permissions set on shared resources. * Windows: Manually running fdbserver.exe could fail because of overly restrictive permissions set on shared resources.
* OS X: Java client had an extraneous linker dependency. * OS X: Java client had an extraneous linker dependency.
* Java: In multithreaded conditions, getRange and AsyncUtil.whileTrue() could sometimes never return. * Java: In multithreaded conditions, getRange and AsyncUtil.whileTrue() could sometimes never return.
* Python/Ruby: In multithreaded conditions, the client worker thread could crash. * Python/Ruby: In multithreaded conditions, the client worker thread could crash.
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`Alpha 6 (API Version 16) <release-notes-016>` * :doc:`Alpha 6 (API Version 16) <release-notes-016>`
* :doc:`Alpha 5 (API Version 14) <release-notes-014>` * :doc:`Alpha 5 (API Version 14) <release-notes-014>`

View File

@ -1,65 +1,65 @@
###################### ######################
Release Notes (Beta 2) Release Notes (Beta 2)
###################### ######################
Beta 2 Beta 2
====== ======
Features Features
-------- --------
* ``fdbcli`` history is stored between sessions; consecutive duplicate commands are stored as a single history entry * ``fdbcli`` history is stored between sessions; consecutive duplicate commands are stored as a single history entry
* The ``fdbcli`` tool prints a minimal cluster status message if an operation does not complete in 5 seconds. * The ``fdbcli`` tool prints a minimal cluster status message if an operation does not complete in 5 seconds.
Performance Performance
----------- -----------
* Support for databases up to 100TB (aggregate key-value size). We recommend you contact us for configuration suggestions for databases exceeding 10TB. * Support for databases up to 100TB (aggregate key-value size). We recommend you contact us for configuration suggestions for databases exceeding 10TB.
* Reduced client CPU usage when returning locally cached values. * Reduced client CPU usage when returning locally cached values.
* Clients do not write to the database if a value is set to its known current value. * Clients do not write to the database if a value is set to its known current value.
* Improved transaction queuing behavior when a significant portion of transactions are "System Immediate" priority. * Improved transaction queuing behavior when a significant portion of transactions are "System Immediate" priority.
* Reduced downtime in certain server-rejoin situations. * Reduced downtime in certain server-rejoin situations.
Language APIs Language APIs
------------- -------------
* All * All
* The API version has been updated from 21 to 22. (Thanks to our API versioning technology, programs requesting earlier API versions will work unmodified.) There are no changes required to migrate from version 21 to 22. * The API version has been updated from 21 to 22. (Thanks to our API versioning technology, programs requesting earlier API versions will work unmodified.) There are no changes required to migrate from version 21 to 22.
* The ``open()`` call blocks until the client can communicate with the cluster. * The ``open()`` call blocks until the client can communicate with the cluster.
* Node.js * Node.js
* Support for Node.js v0.10.x. * Support for Node.js v0.10.x.
* Functions throw errors of type ``FDBError``. * Functions throw errors of type ``FDBError``.
* Removed some variables from the global scope. * Removed some variables from the global scope.
* Java * Java
* Compiles class files with 1.6 source and target flags. * Compiles class files with 1.6 source and target flags.
* Single-jar packaging for all platforms. (In rare cases, setting the ``FDB_LIBRARY_PATH_FDB_JAVA`` environment variable will be requried if you previously relied on loading the library from a system path.) * Single-jar packaging for all platforms. (In rare cases, setting the ``FDB_LIBRARY_PATH_FDB_JAVA`` environment variable will be requried if you previously relied on loading the library from a system path.)
* Ruby * Ruby
* Support for Ruby on Windows. Requires Ruby version at least 2.0.0 (x64). * Support for Ruby on Windows. Requires Ruby version at least 2.0.0 (x64).
* Added implementation of ``on_ready()``. * Added implementation of ``on_ready()``.
Fixes Fixes
----- -----
* Coordinators could fail to respond if they were busy with other work. * Coordinators could fail to respond if they were busy with other work.
* Fixed a rare segmentation fault on cluster shutdown. * Fixed a rare segmentation fault on cluster shutdown.
* Fixed an issue where CLI status could sometimes fail. * Fixed an issue where CLI status could sometimes fail.
* Status showed the wrong explanation when performance was limited by system write-to-read latency limit. * Status showed the wrong explanation when performance was limited by system write-to-read latency limit.
* Fixed a rare issue where a "stuck" process trying to participate in the database could run out of RAM. * Fixed a rare issue where a "stuck" process trying to participate in the database could run out of RAM.
* Increased robustness of FoundationDB server when loaded with large data sets. * Increased robustness of FoundationDB server when loaded with large data sets.
* Eliminated certain cases where the data distribution algorithim could do unnecessary splitting and merging work. * Eliminated certain cases where the data distribution algorithim could do unnecessary splitting and merging work.
* Several fixes for rare issues encountered by our fault simulation framework. * Several fixes for rare issues encountered by our fault simulation framework.
* Certain uncommon usage of on_ready() in Python could cause segmentation faults. * Certain uncommon usage of on_ready() in Python could cause segmentation faults.
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`Beta 1 (API Version 21) <release-notes-021>` * :doc:`Beta 1 (API Version 21) <release-notes-021>`
* :doc:`Alpha 6 (API Version 16) <release-notes-016>` * :doc:`Alpha 6 (API Version 16) <release-notes-016>`
* :doc:`Alpha 5 (API Version 14) <release-notes-014>` * :doc:`Alpha 5 (API Version 14) <release-notes-014>`

View File

@ -1,64 +1,64 @@
###################### ######################
Release Notes (Beta 3) Release Notes (Beta 3)
###################### ######################
Beta 3 Beta 3
====== ======
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. 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.
Features Features
-------- --------
* Discover where keys are physically stored using the new :ref:`locality <api-python-locality>` API. * Discover where keys are physically stored using the new :ref:`locality <api-python-locality>` API.
* Create :ref:`watches <api-python-watches>` that asynchronously report changes to the values of specified keys. * Create :ref:`watches <api-python-watches>` that asynchronously report changes to the values of specified keys.
* :ref:`Cancel <api-python-cancel>` transactions or set them to automatically :ref:`timeout <api-python-timeout>` and cancel. * :ref:`Cancel <api-python-cancel>` transactions or set them to automatically :ref:`timeout <api-python-timeout>` and cancel.
* Explicitly add read or write :ref:`conflict ranges <api-python-conflict-ranges>`. * Explicitly add read or write :ref:`conflict ranges <api-python-conflict-ranges>`.
* Perform :ref:`atomic operations <api-python-transaction-atomic-operations>` that transform a value (e.g. incrementing it) without client reads to avoid transaction conflicts. * Perform :ref:`atomic operations <api-python-transaction-atomic-operations>` that transform a value (e.g. incrementing it) without client reads to avoid transaction conflicts.
* API version updated to 23. * API version updated to 23.
Java Java
---- ----
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 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. available for the time being.
* The asynchronous programming library has been moved to its own package (``com.foundationdb.async``). The library has a host of new members for greater flexibility and more predictable error handling. * The asynchronous programming library has been moved to its own package (``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. * ``Database.run(...)`` can now return an arbitrary object from user code, simplifying use of this recommended retry loop.
* The new interface ``Function`` replaces several interfaces: ``Mapper``, ``Block``, ``Retryable``, and ``AsyncRetryable``. * The new interface ``Function`` replaces several interfaces: ``Mapper``, ``Block``, ``Retryable``, and ``AsyncRetryable``.
* Added the ability to cancel any ``Future`` instance, even one not backed with native resources. * Added the ability to cancel any ``Future`` instance, even one not backed with native resources.
* Removed ``onSuccess()`` and ``onFailure()`` in favor of ``map()`` and ``flatMap()``. If code needs simple triggering, ``onReady()`` is still available. * Removed ``onSuccess()`` and ``onFailure()`` in favor of ``map()`` and ``flatMap()``. If code needs simple triggering, ``onReady()`` is still available.
* Range iteration via ``Transaction.getRange(...)`` starts fetching data immediately upon invocation. This simplifies development of code that reads ranges in parallel. * Range iteration via ``Transaction.getRange(...)`` starts fetching data immediately upon invocation. This simplifies development of code that reads ranges in parallel.
* Many other changes that facilitate writing fast, efficient, and correct Java applications! * Many other changes that facilitate writing fast, efficient, and correct Java applications!
Python Python
------ ------
* Python API methods that :ref:`accept a key <api-python-keys>` will also accept a Python object with an ``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. * Python API methods that :ref:`accept a key <api-python-keys>` will also accept a Python object with an ``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.
Performance Performance
----------- -----------
* Clients can preferentially communicate with servers on the same machine or in the same datacenter for :ref:`location-aware load balancing <api-python-database-options>`. * Clients can preferentially communicate with servers on the same machine or in the same datacenter for :ref:`location-aware load balancing <api-python-database-options>`.
* Removed from the client library debugging code included in versions up through Beta 2, leading to higher, more predictable performance. * Removed from the client library debugging code included in versions up through Beta 2, leading to higher, more predictable performance.
* Improved data distribution algorithms to optimize data movement during failure scenarios. * Improved data distribution algorithms to optimize data movement during failure scenarios.
* Improved range-read iterators in Node.js using lazy evaluation. * Improved range-read iterators in Node.js using lazy evaluation.
* Improved client-side range-read prefetching in Node.js, Ruby, and Python. * Improved client-side range-read prefetching in Node.js, Ruby, and Python.
* Incrementally improved performance across all language bindings. * Incrementally improved performance across all language bindings.
Fixes Fixes
----- -----
* A storage node could be prevented from rejoining the cluster until the process was restarted. * A storage node could be prevented from rejoining the cluster until the process was restarted.
* A reverse ``GetRange`` request using a row limit and an end key selector that enters the system keyspace could return too few results. * A reverse ``GetRange`` request using a row limit and an end key selector that enters the system keyspace could return too few results.
* A machine power loss immediately following a process restart could result in an invalid transaction log. * A machine power loss immediately following a process restart could result in an invalid transaction log.
* ``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. * ``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.
* In Node.js, reusing a range iterator for a second request could result in an incomplete result set. * In Node.js, reusing a range iterator for a second request could result in an incomplete result set.
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`Beta 2 (API Version 22) <release-notes-022>` * :doc:`Beta 2 (API Version 22) <release-notes-022>`
* :doc:`Beta 1 (API Version 21) <release-notes-023>` * :doc:`Beta 1 (API Version 21) <release-notes-023>`
* :doc:`Alpha 6 (API Version 16) <release-notes-016>` * :doc:`Alpha 6 (API Version 16) <release-notes-016>`
* :doc:`Alpha 5 (API Version 14) <release-notes-014>` * :doc:`Alpha 5 (API Version 14) <release-notes-014>`

View File

@ -1,55 +1,55 @@
################### ###################
Release Notes (1.0) Release Notes (1.0)
################### ###################
1.0.1 1.0.1
===== =====
* Fix segmentation fault in client when there are a very large number of dependent operations in a transaction and certain errors occur. * Fix segmentation fault in client when there are a very large number of dependent operations in a transaction and certain errors occur.
1.0.0 1.0.0
===== =====
After a year and a half of Alpha and Beta testing, FoundationDB is now commercially available. Thanks to the help of the thousands of Alpha and Beta testers in our community, we believe that this release is highly robust and capable. After a year and a half of Alpha and Beta testing, FoundationDB is now commercially available. Thanks to the help of the thousands of Alpha and Beta testers in our community, we believe that this release is highly robust and capable.
You can now find pricing and order enterprise licenses online. You can now find pricing and order enterprise licenses online.
The new Community License now permits free-of-charge use for production systems with up to 6 server processes and for non-production systems with an unlimited number of processes. The new Community License now permits free-of-charge use for production systems with up to 6 server processes and for non-production systems with an unlimited number of processes.
There are only minor technical differences between this release and the 0.3.0 release of August 7, 2013: There are only minor technical differences between this release and the 0.3.0 release of August 7, 2013:
Java Java
---- ----
* ``clear(Range)`` replaces the now deprecated ``clearRangeStartsWith()``. * ``clear(Range)`` replaces the now deprecated ``clearRangeStartsWith()``.
Python Python
------ ------
* Windows installer supports Python 3. * Windows installer supports Python 3.
Node and Ruby Node and Ruby
------------- -------------
* String option parameters are converted to UTF-8. * String option parameters are converted to UTF-8.
All All
--- ---
* API version changed to 100. Programs with lower versions continue to work. * API version changed to 100. Programs with lower versions continue to work.
* Runs on Mac OS X 10.7. * Runs on Mac OS X 10.7.
* Improvements to installation packages, including package paths and directory modes. * Improvements to installation packages, including package paths and directory modes.
* Eliminated cases of excessive resource usage in the locality API. * Eliminated cases of excessive resource usage in the locality API.
* Watches are disabled when read-your-writes functionality is disabled. * Watches are disabled when read-your-writes functionality is disabled.
* Fatal error paths now call ``_exit()`` instead instead of ``exit()``. * Fatal error paths now call ``_exit()`` instead instead of ``exit()``.
Fixes Fixes
----- -----
* A few Python API entry points failed to respect the ``as_foundationdb_key()`` convenience interface. * A few Python API entry points failed to respect the ``as_foundationdb_key()`` convenience interface.
* ``fdbcli`` could print commit version numbers incorrectly in Windows. * ``fdbcli`` could print commit version numbers incorrectly in Windows.
* Multiple watches set on the same key were not correctly triggered by a subsequent write in the same transaction. * Multiple watches set on the same key were not correctly triggered by a subsequent write in the same transaction.
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`Beta 3 (API Version 23) <release-notes-023>` * :doc:`Beta 3 (API Version 23) <release-notes-023>`
* :doc:`Beta 2 (API Version 22) <release-notes-022>` * :doc:`Beta 2 (API Version 22) <release-notes-022>`
* :doc:`Beta 1 (API Version 21) <release-notes-021>` * :doc:`Beta 1 (API Version 21) <release-notes-021>`
* :doc:`Alpha 6 (API Version 16) <release-notes-016>` * :doc:`Alpha 6 (API Version 16) <release-notes-016>`
* :doc:`Alpha 5 (API Version 14) <release-notes-014>` * :doc:`Alpha 5 (API Version 14) <release-notes-014>`

View File

@ -1,194 +1,194 @@
################### ###################
Release Notes (3.0) Release Notes (3.0)
################### ###################
3.0.8 3.0.8
===== =====
Release 3.0.8 is protocol-compatible with all prior 3.0.x releases. All users should continue to employ the bindings released with 3.0.2, with the exception of the following: Release 3.0.8 is protocol-compatible with all prior 3.0.x releases. All users should continue to employ the bindings released with 3.0.2, with the exception of the following:
* Node.js - updated to 3.0.6 * Node.js - updated to 3.0.6
* Ruby - updated to 3.0.7 * Ruby - updated to 3.0.7
* Java - updated to 3.0.8 * Java - updated to 3.0.8
Fixes Fixes
----- -----
* Backup: the backup agent could crash in some circumstances, preventing a backup from completing. * Backup: the backup agent could crash in some circumstances, preventing a backup from completing.
* Linux: On some systems, disk space usage tracking could be inaccurate. * Linux: On some systems, disk space usage tracking could be inaccurate.
* In rare cases, range reading could get stuck in an infinite past_version loop. * In rare cases, range reading could get stuck in an infinite past_version loop.
* Range reading with a begin key selector that resolved to the end of the database might not set the correct conflict range. * Range reading with a begin key selector that resolved to the end of the database might not set the correct conflict range.
Java Java
---- ----
* Fix: getBoundaryKeys could throw a NullPointerException. * Fix: getBoundaryKeys could throw a NullPointerException.
3.0.7 3.0.7
===== =====
Release 3.0.7 is protocol-compatible with all prior 3.0.x releases. All users should continue to employ the bindings released with 3.0.2, with the exception of the following: Release 3.0.7 is protocol-compatible with all prior 3.0.x releases. All users should continue to employ the bindings released with 3.0.2, with the exception of the following:
* Node.js - updated to 3.0.6 * Node.js - updated to 3.0.6
* Ruby - updated to 3.0.7 * Ruby - updated to 3.0.7
Fixes Fixes
----- -----
* ``fdbcli`` would segmentation fault if there was a semicolon after a quoted string. * ``fdbcli`` would segmentation fault if there was a semicolon after a quoted string.
* :ref:`Atomic operations <api-python-transaction-atomic-operations>` performed on keys that had been :ref:`snapshot read <api-python-snapshot-reads>` would be converted into a set operation. * :ref:`Atomic operations <api-python-transaction-atomic-operations>` performed on keys that had been :ref:`snapshot read <api-python-snapshot-reads>` would be converted into a set operation.
* Reading a key to which an atomic operation had already been applied would cause the read to behave as a snapshot read. * Reading a key to which an atomic operation had already been applied would cause the read to behave as a snapshot read.
* In rare scenarios, it was possible for the memory holding the result of a read to be released when a transaction was reset. * In rare scenarios, it was possible for the memory holding the result of a read to be released when a transaction was reset.
* If available RAM was negative, it was reported as a very large number in status. * If available RAM was negative, it was reported as a very large number in status.
Ruby Ruby
---- ----
* Fix: ``FDB`` objects could not be garbage collected. * Fix: ``FDB`` objects could not be garbage collected.
3.0.6 3.0.6
===== =====
Release 3.0.6 is protocol-compatible with all prior 3.0.x releases. All users should continue to employ the bindings released with 3.0.2, with the exception of the following: Release 3.0.6 is protocol-compatible with all prior 3.0.x releases. All users should continue to employ the bindings released with 3.0.2, with the exception of the following:
* Node.js - updated to 3.0.6 * Node.js - updated to 3.0.6
Fixes Fixes
----- -----
* Read-latency probes for status incorrectly returned zero. * Read-latency probes for status incorrectly returned zero.
* Commit-latency probe for status included the time to acquire its read version. * Commit-latency probe for status included the time to acquire its read version.
* Client and server could crash when experiencing problems with network connections. * Client and server could crash when experiencing problems with network connections.
Node.js Node.js
------- -------
* Fix: npm source package did not compile on Mac OS X 10.9 or newer. * Fix: npm source package did not compile on Mac OS X 10.9 or newer.
Windows Windows
------- -------
* Added registry key during installation. * Added registry key during installation.
3.0.5 3.0.5
===== =====
Release 3.0.5 is protocol-compatible with all prior 3.0.x releases. This release contains only a bug fix for Windows packages; Linux and Mac OS X packages for 3.0.5 are identical to those for 3.0.4. All users should continue to employ the bindings released with 3.0.2, with the exception of the following: Release 3.0.5 is protocol-compatible with all prior 3.0.x releases. This release contains only a bug fix for Windows packages; Linux and Mac OS X packages for 3.0.5 are identical to those for 3.0.4. All users should continue to employ the bindings released with 3.0.2, with the exception of the following:
* Node.js - updated to 3.0.3 if downloaded from ``npm``. * Node.js - updated to 3.0.3 if downloaded from ``npm``.
Fixes Fixes
----- -----
* Windows: fix Visual Studio 2013 code generation bug on older processors or versions of Windows that don't support the AVX instruction set (see https://connect.microsoft.com/VisualStudio/feedback/details/811093). * Windows: fix Visual Studio 2013 code generation bug on older processors or versions of Windows that don't support the AVX instruction set (see https://connect.microsoft.com/VisualStudio/feedback/details/811093).
3.0.4 3.0.4
===== =====
Release 3.0.4 is protocol-compatible with all prior 3.0.x releases. Users should continue to employ the bindings released with 3.0.2, with the exception of the following: Release 3.0.4 is protocol-compatible with all prior 3.0.x releases. Users should continue to employ the bindings released with 3.0.2, with the exception of the following:
* Node.js - updated to 3.0.3 if downloaded from ``npm``. * Node.js - updated to 3.0.3 if downloaded from ``npm``.
Fixes Fixes
----- -----
* Mac OS X: backup agent used 100% CPU even when idle. * Mac OS X: backup agent used 100% CPU even when idle.
* Backups were inoperative on databases with greater than 32-bit versions. * Backups were inoperative on databases with greater than 32-bit versions.
* Backup agents were not started on Windows. * Backup agents were not started on Windows.
* Restore required write permissions on files. * Restore required write permissions on files.
* The backup client did not report errors properly in all scenarios. * The backup client did not report errors properly in all scenarios.
* ``fdbserver -v`` did not print the version. * ``fdbserver -v`` did not print the version.
Node.js Node.js
------- -------
* Fixed a compilation problem on Linux and Mac OS X as distributed on ``npm``. (Note: The corrected binding is distributed as version 3.0.3.) * Fixed a compilation problem on Linux and Mac OS X as distributed on ``npm``. (Note: The corrected binding is distributed as version 3.0.3.)
3.0.2 3.0.2
===== =====
Upgrades Upgrades
-------- --------
* When upgrading from version 2.0.x to 3.0.x, you should consult :ref:`Upgrading to 3.0 <upgrading-from-older-versions>`. * When upgrading from version 2.0.x to 3.0.x, you should consult :ref:`Upgrading to 3.0 <upgrading-from-older-versions>`.
Features Features
-------- --------
* Status information provided in :doc:`machine-readable JSON </mr-status>` form. * Status information provided in :doc:`machine-readable JSON </mr-status>` form.
* Differential backups and backup of selective keyspaces added to :ref:`backup tool <backup-wait>`. * Differential backups and backup of selective keyspaces added to :ref:`backup tool <backup-wait>`.
* Clients may retrieve :ref:`machine-readable status <mr-status-key>`, :ref:`cluster filepath, and cluster file contents <cluster-file-client-access>` by reading designated system keys from the database. * Clients may retrieve :ref:`machine-readable status <mr-status-key>`, :ref:`cluster filepath, and cluster file contents <cluster-file-client-access>` by reading designated system keys from the database.
* Two new :ref:`atomic operations <api-python-transaction-atomic-operations>`: max and min. * Two new :ref:`atomic operations <api-python-transaction-atomic-operations>`: max and min.
Performance Performance
----------- -----------
* Increased maximum writes per second from 200,000 to 11,000,000. * Increased maximum writes per second from 200,000 to 11,000,000.
* Improved latencies, particularly on underutilized clusters. * Improved latencies, particularly on underutilized clusters.
* Improved performance of backup and restore. * Improved performance of backup and restore.
* Improved client CPU usage. * Improved client CPU usage.
* Better rate-limiting when committing very large transactions. * Better rate-limiting when committing very large transactions.
* Improved performance while servers rejoin the cluster. * Improved performance while servers rejoin the cluster.
Fixes Fixes
----- -----
* B-tree vacuuming could exhibit poor performance after large deletions of data. * B-tree vacuuming could exhibit poor performance after large deletions of data.
* Computation of memory availability was not correct on newer Linux versions. * Computation of memory availability was not correct on newer Linux versions.
* Integers could overflow when setting range limits. * Integers could overflow when setting range limits.
* With the memory storage engine, a key could be lost after multiple reboots in quick succession. * With the memory storage engine, a key could be lost after multiple reboots in quick succession.
Client Client
------ ------
* Support for API version 300 and backwards compatible with previous API versions. * Support for API version 300 and backwards compatible with previous API versions.
* By default, :ref:`snapshot reads <snapshot isolation>` see writes within the same transaction. The previous behavior can be achieved using transaction options. * By default, :ref:`snapshot reads <snapshot isolation>` see writes within the same transaction. The previous behavior can be achieved using transaction options.
* The :ref:`transaction size limit <large-transactions>` includes conflict ranges. * The :ref:`transaction size limit <large-transactions>` includes conflict ranges.
* Explicitly added read or write :ref:`conflict ranges <api-python-conflict-ranges>` and :ref:`watches <api-python-watches>` for keys that begin with ``\xFF`` require one of the transaction options ``access_system_keys`` or ``read_system_keys`` to be set. * Explicitly added read or write :ref:`conflict ranges <api-python-conflict-ranges>` and :ref:`watches <api-python-watches>` for keys that begin with ``\xFF`` require one of the transaction options ``access_system_keys`` or ``read_system_keys`` to be set.
* New network options for ``trace_max_logs_size`` and ``trace_roll_size`` for an individual client's trace files. * New network options for ``trace_max_logs_size`` and ``trace_roll_size`` for an individual client's trace files.
* New transaction options: max_retry_delay, read_system_keys. * New transaction options: max_retry_delay, read_system_keys.
* All errors cause :ref:`watches <api-python-watches>` to trigger. * All errors cause :ref:`watches <api-python-watches>` to trigger.
* All errors cause a transaction to reset (previously true only of some errors). * All errors cause a transaction to reset (previously true only of some errors).
Java Java
---- ----
* ``ReadTransactionContext`` added next to ``TransactionContext``, allowing ``read()`` and ``readAsync()`` composable read-only operations on transactions. * ``ReadTransactionContext`` added next to ``TransactionContext``, allowing ``read()`` and ``readAsync()`` composable read-only operations on transactions.
* The ``Future`` interface adds ``getInterruptibly()`` and ``blockInterruptibly()``, which propagate ``InterruptedExcetption`` to the calling code. * The ``Future`` interface adds ``getInterruptibly()`` and ``blockInterruptibly()``, which propagate ``InterruptedExcetption`` to the calling code.
* Exception-handling logic is reworked in ``map()``, ``flatMap()``, and ``rescue()`` to propagate ``OutOfMemoryError`` and ``RejectedExecutionException`` instead of the spurious ``SettableAlreadySet`` exception. * Exception-handling logic is reworked in ``map()``, ``flatMap()``, and ``rescue()`` to propagate ``OutOfMemoryError`` and ``RejectedExecutionException`` instead of the spurious ``SettableAlreadySet`` exception.
* Performance is improved for applications that use many blocking-style ``get()`` calls. * Performance is improved for applications that use many blocking-style ``get()`` calls.
Node.js Node.js
------- -------
* Fix: ``fdb.open``, ``fdb.createCluster``, and ``cluster.openDatabase`` didn't use the callback in API versions 22 or lower. * Fix: ``fdb.open``, ``fdb.createCluster``, and ``cluster.openDatabase`` didn't use the callback in API versions 22 or lower.
* Tuple performance is improved. * Tuple performance is improved.
PHP PHP
--- ---
* Snapshot reads have a ``transact`` function. * Snapshot reads have a ``transact`` function.
Python Python
------ ------
* Bindings work in Cygwin. * Bindings work in Cygwin.
* The :ref:`transactional decorator <api-python-transactional-decorator>` no longer warns of a transaction approaching the 5 second limit. * The :ref:`transactional decorator <api-python-transactional-decorator>` no longer warns of a transaction approaching the 5 second limit.
Ruby Ruby
---- ----
* Fix: ``db.get``, ``get_key``, and ``get_and_watch`` returned Futures instead of actual values. * Fix: ``db.get``, ``get_key``, and ``get_and_watch`` returned Futures instead of actual values.
Other changes Other changes
------------- -------------
* Versions increase by 1 million per second instead of 1 thousand per second. * Versions increase by 1 million per second instead of 1 thousand per second.
* Removed support for Ubuntu 11.10. * Removed support for Ubuntu 11.10.
* Python binding has been removed from Linux packages. * Python binding has been removed from Linux packages.
* In ``fdbcli``, ``getrange`` does a prefix range read if no end key is specified. * In ``fdbcli``, ``getrange`` does a prefix range read if no end key is specified.
* In ``fdbcli``, added an option to disable the initial status check. * In ``fdbcli``, added an option to disable the initial status check.
Note on version numbers Note on version numbers
----------------------- -----------------------
Version 3.0.2 is the first publicly released version in the 3.0.x series. Versions 3.0.0-1 were limited-availability releases with the same feature set. Version 3.0.2 is the first publicly released version in the 3.0.x series. Versions 3.0.0-1 were limited-availability releases with the same feature set.
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`2.0 (API Version 200) <release-notes-200>` * :doc:`2.0 (API Version 200) <release-notes-200>`
* :doc:`1.0 (API Version 100) <release-notes-100>` * :doc:`1.0 (API Version 100) <release-notes-100>`
* :doc:`Beta 3 (API Version 23) <release-notes-023>` * :doc:`Beta 3 (API Version 23) <release-notes-023>`
* :doc:`Beta 2 (API Version 22) <release-notes-022>` * :doc:`Beta 2 (API Version 22) <release-notes-022>`
* :doc:`Beta 1 (API Version 21) <release-notes-021>` * :doc:`Beta 1 (API Version 21) <release-notes-021>`
* :doc:`Alpha 6 (API Version 16) <release-notes-016>` * :doc:`Alpha 6 (API Version 16) <release-notes-016>`
* :doc:`Alpha 5 (API Version 14) <release-notes-014>` * :doc:`Alpha 5 (API Version 14) <release-notes-014>`

View File

@ -1,69 +1,69 @@
################### ###################
Release Notes (4.0) Release Notes (4.0)
################### ###################
4.0.2 4.0.2
===== =====
Fixes Fixes
----- -----
* Streaming mode ``EXACT`` was ignoring the ``target_bytes`` parameter. * Streaming mode ``EXACT`` was ignoring the ``target_bytes`` parameter.
Java Java
---- ----
* Added a ``toString`` method to the Tuple class. * Added a ``toString`` method to the Tuple class.
4.0.1 4.0.1
===== =====
Fdbcli Fdbcli
------ ------
* Added a "configure auto" command which will recommend a setting for proxies and logs (not resolvers) along with machine class changes. * Added a "configure auto" command which will recommend a setting for proxies and logs (not resolvers) along with machine class changes.
* Added a "setclass" command which can change a processes machine class from the cli. * Added a "setclass" command which can change a processes machine class from the cli.
Performance Performance
----------- -----------
* Improved the recovery speed of the transaction subsystem. * Improved the recovery speed of the transaction subsystem.
* Improved the stability of the transaction rate under saturating workloads. * Improved the stability of the transaction rate under saturating workloads.
* Made the transaction log more memory efficient. * Made the transaction log more memory efficient.
Features Features
-------- --------
* Added support for Versionstamp atomic operations. * Added support for Versionstamp atomic operations.
Fixes Fixes
----- -----
* It was not safe to allocate multiple directories concurrently in the same transaction in the directory layer. * It was not safe to allocate multiple directories concurrently in the same transaction in the directory layer.
Java Java
---- ----
* Changed the package for the Java bindings from com.foundationdb to com.apple.cie.foundationdb. * Changed the package for the Java bindings from com.foundationdb to com.apple.cie.foundationdb.
Python Python
------ ------
* Tuple support for integers up to 255 bytes. * Tuple support for integers up to 255 bytes.
Other changes Other changes
------------- -------------
* Added detailed metric logging available through Scope. * Added detailed metric logging available through Scope.
* An optional configuration parameter has been added that allows you to specify a seed cluster file. * An optional configuration parameter has been added that allows you to specify a seed cluster file.
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`3.0 (API Version 300) <release-notes-300>` * :doc:`3.0 (API Version 300) <release-notes-300>`
* :doc:`2.0 (API Version 200) <release-notes-200>` * :doc:`2.0 (API Version 200) <release-notes-200>`
* :doc:`1.0 (API Version 100) <release-notes-100>` * :doc:`1.0 (API Version 100) <release-notes-100>`
* :doc:`Beta 3 (API Version 23) <release-notes-023>` * :doc:`Beta 3 (API Version 23) <release-notes-023>`
* :doc:`Beta 2 (API Version 22) <release-notes-022>` * :doc:`Beta 2 (API Version 22) <release-notes-022>`
* :doc:`Beta 1 (API Version 21) <release-notes-021>` * :doc:`Beta 1 (API Version 21) <release-notes-021>`
* :doc:`Alpha 6 (API Version 16) <release-notes-016>` * :doc:`Alpha 6 (API Version 16) <release-notes-016>`
* :doc:`Alpha 5 (API Version 14) <release-notes-014>` * :doc:`Alpha 5 (API Version 14) <release-notes-014>`

View File

@ -1,53 +1,53 @@
################### ###################
Release Notes (4.1) Release Notes (4.1)
################### ###################
4.1.1 4.1.1
===== =====
Fixes Fixes
----- -----
* Many short-lived file access metrics were being created. * Many short-lived file access metrics were being created.
* A completed backup could be improperly marked as incomplete. * A completed backup could be improperly marked as incomplete.
* In rare scenarios the resolvers could fail to make progress. * In rare scenarios the resolvers could fail to make progress.
4.1.0 4.1.0
===== =====
Performance Performance
----------- -----------
* Significantly improved cluster performance in a wide variety of machine failure scenarios. * Significantly improved cluster performance in a wide variety of machine failure scenarios.
Features Features
-------- --------
* Clients can now load multiple versions of the client library, and will gracefully switch to the appropriate version when the server is upgraded. * Clients can now load multiple versions of the client library, and will gracefully switch to the appropriate version when the server is upgraded.
* A new operating mode for ``fdbbackup`` writes backup data files into the blob store. * A new operating mode for ``fdbbackup`` writes backup data files into the blob store.
* Transactions no longer automatically reset after a successful commit. * Transactions no longer automatically reset after a successful commit.
* Added ability to set network options with environment variables. * Added ability to set network options with environment variables.
* Added a new API function for determining the value to which atomic versionstamp operations in a transaction were transformed or would have been transformed. * Added a new API function for determining the value to which atomic versionstamp operations in a transaction were transformed or would have been transformed.
* Improved logic for integrating manually-assigned machine classes with other constraints on role locations. * Improved logic for integrating manually-assigned machine classes with other constraints on role locations.
* Added a new machine class ``stateless`` which is the top priority location for resolvers, proxies, and masters. * Added a new machine class ``stateless`` which is the top priority location for resolvers, proxies, and masters.
* Added a new machine class ``log`` which is the top priority location for transaction logs. * Added a new machine class ``log`` which is the top priority location for transaction logs.
* Trace events are now event metrics that are exposed in Scope. * Trace events are now event metrics that are exposed in Scope.
Fixes Fixes
----- -----
* A log could attempt to recover from a partially recovered set of logs when fast recovery was enabled. * A log could attempt to recover from a partially recovered set of logs when fast recovery was enabled.
* A rare scenario could cause a crash when a master is recovering metadata from the previous generation of logs. * A rare scenario could cause a crash when a master is recovering metadata from the previous generation of logs.
* Streaming mode ``EXACT`` was ignoring the ``target_bytes`` parameter. * Streaming mode ``EXACT`` was ignoring the ``target_bytes`` parameter.
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`4.0 (API Version 400) <release-notes-400>` * :doc:`4.0 (API Version 400) <release-notes-400>`
* :doc:`3.0 (API Version 300) <release-notes-300>` * :doc:`3.0 (API Version 300) <release-notes-300>`
* :doc:`2.0 (API Version 200) <release-notes-200>` * :doc:`2.0 (API Version 200) <release-notes-200>`
* :doc:`1.0 (API Version 100) <release-notes-100>` * :doc:`1.0 (API Version 100) <release-notes-100>`
* :doc:`Beta 3 (API Version 23) <release-notes-023>` * :doc:`Beta 3 (API Version 23) <release-notes-023>`
* :doc:`Beta 2 (API Version 22) <release-notes-022>` * :doc:`Beta 2 (API Version 22) <release-notes-022>`
* :doc:`Beta 1 (API Version 21) <release-notes-021>` * :doc:`Beta 1 (API Version 21) <release-notes-021>`
* :doc:`Alpha 6 (API Version 16) <release-notes-016>` * :doc:`Alpha 6 (API Version 16) <release-notes-016>`
* :doc:`Alpha 5 (API Version 14) <release-notes-014>` * :doc:`Alpha 5 (API Version 14) <release-notes-014>`

View File

@ -1,35 +1,35 @@
################### ###################
Release Notes (4.2) Release Notes (4.2)
################### ###################
4.2.1 4.2.1
===== =====
Fixes Fixes
----- -----
* The Java bindings had an incorrectly named native extension on Linux. * The Java bindings had an incorrectly named native extension on Linux.
4.2.0 4.2.0
===== =====
Features Features
-------- --------
* A new utility allows :doc:`Backups </backups>` of a cluster directly into another FoundationDB database. It is designed also to support asynchronous replication and disaster recovery. * A new utility allows :doc:`Backups </backups>` of a cluster directly into another FoundationDB database. It is designed also to support asynchronous replication and disaster recovery.
* A new version of the `Java bindings <../javadoc-completable/index.html>`_ adds support for Java 8 Completable Futures. * A new version of the `Java bindings <../javadoc-completable/index.html>`_ adds support for Java 8 Completable Futures.
* Information on the versions of connected clients has been added to :doc:`Machine-Readable Status </mr-status>`. * Information on the versions of connected clients has been added to :doc:`Machine-Readable Status </mr-status>`.
* Information on the status of running backups has been added to :doc:`Machine-Readable Status </mr-status>`. * Information on the status of running backups has been added to :doc:`Machine-Readable Status </mr-status>`.
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`4.1 (API Version 410) <release-notes-410>` * :doc:`4.1 (API Version 410) <release-notes-410>`
* :doc:`4.0 (API Version 400) <release-notes-400>` * :doc:`4.0 (API Version 400) <release-notes-400>`
* :doc:`3.0 (API Version 300) <release-notes-300>` * :doc:`3.0 (API Version 300) <release-notes-300>`
* :doc:`2.0 (API Version 200) <release-notes-200>` * :doc:`2.0 (API Version 200) <release-notes-200>`
* :doc:`1.0 (API Version 100) <release-notes-100>` * :doc:`1.0 (API Version 100) <release-notes-100>`
* :doc:`Beta 3 (API Version 23) <release-notes-023>` * :doc:`Beta 3 (API Version 23) <release-notes-023>`
* :doc:`Beta 2 (API Version 22) <release-notes-022>` * :doc:`Beta 2 (API Version 22) <release-notes-022>`
* :doc:`Beta 1 (API Version 21) <release-notes-021>` * :doc:`Beta 1 (API Version 21) <release-notes-021>`
* :doc:`Alpha 6 (API Version 16) <release-notes-016>` * :doc:`Alpha 6 (API Version 16) <release-notes-016>`
* :doc:`Alpha 5 (API Version 14) <release-notes-014>` * :doc:`Alpha 5 (API Version 14) <release-notes-014>`

View File

@ -1,37 +1,37 @@
################### ###################
Release Notes (4.3) Release Notes (4.3)
################### ###################
4.3.0 4.3.0
===== =====
Features Features
-------- --------
* Improved DR thoughput by having mutations copied into the DR database before applying them. * Improved DR thoughput by having mutations copied into the DR database before applying them.
* Renamed db_agent to dr_agent. * Renamed db_agent to dr_agent.
* Added more detailed DR and backup active task detail into layer status. * Added more detailed DR and backup active task detail into layer status.
Fixes Fixes
----- -----
* Backup seconds behind did not update in continuous mode. * Backup seconds behind did not update in continuous mode.
* DR layer status did not report correctly. * DR layer status did not report correctly.
* The Java bindings had an incorrectly named native extension on Linux. * The Java bindings had an incorrectly named native extension on Linux.
* DR status would crash if called before a DR had been started. * DR status would crash if called before a DR had been started.
* Changed the blob restore read pattern to work around blob store issues. * Changed the blob restore read pattern to work around blob store issues.
* External clients do not load environment variable options. * External clients do not load environment variable options.
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`4.2 (API Version 420) <release-notes-420>` * :doc:`4.2 (API Version 420) <release-notes-420>`
* :doc:`4.1 (API Version 410) <release-notes-410>` * :doc:`4.1 (API Version 410) <release-notes-410>`
* :doc:`4.0 (API Version 400) <release-notes-400>` * :doc:`4.0 (API Version 400) <release-notes-400>`
* :doc:`3.0 (API Version 300) <release-notes-300>` * :doc:`3.0 (API Version 300) <release-notes-300>`
* :doc:`2.0 (API Version 200) <release-notes-200>` * :doc:`2.0 (API Version 200) <release-notes-200>`
* :doc:`1.0 (API Version 100) <release-notes-100>` * :doc:`1.0 (API Version 100) <release-notes-100>`
* :doc:`Beta 3 (API Version 23) <release-notes-023>` * :doc:`Beta 3 (API Version 23) <release-notes-023>`
* :doc:`Beta 2 (API Version 22) <release-notes-022>` * :doc:`Beta 2 (API Version 22) <release-notes-022>`
* :doc:`Beta 1 (API Version 21) <release-notes-021>` * :doc:`Beta 1 (API Version 21) <release-notes-021>`
* :doc:`Alpha 6 (API Version 16) <release-notes-016>` * :doc:`Alpha 6 (API Version 16) <release-notes-016>`
* :doc:`Alpha 5 (API Version 14) <release-notes-014>` * :doc:`Alpha 5 (API Version 14) <release-notes-014>`

View File

@ -1,73 +1,73 @@
################### ###################
Release Notes (4.4) Release Notes (4.4)
################### ###################
4.4.2 4.4.2
===== =====
Features Features
-------- --------
* Backup's minimum unit of progress is now a single committed version, allowing progress to be made when the database is very unhealthy. * Backup's minimum unit of progress is now a single committed version, allowing progress to be made when the database is very unhealthy.
Fixes Fixes
-------- --------
* Options being disabled in fdbcli required an unnecessary parameter. * Options being disabled in fdbcli required an unnecessary parameter.
* In rare situations, an incorrect backup index could be written. Contact us if you need to restore data from a v4.4.1 or earlier backup. * In rare situations, an incorrect backup index could be written. Contact us if you need to restore data from a v4.4.1 or earlier backup.
* A crash could occur on startup in fdbbackup and fdbcli. * A crash could occur on startup in fdbbackup and fdbcli.
* A data corruption bug observed on OS X was fixed. The issue has never been observed on other platforms. * A data corruption bug observed on OS X was fixed. The issue has never been observed on other platforms.
4.4.1 4.4.1
===== =====
Features Features
-------- --------
* Added support for streaming writes. This allows a client to load an ordered list of mutations into the database in parallel, and once they are all loaded, the mutations will be applied to the database in order. * Added support for streaming writes. This allows a client to load an ordered list of mutations into the database in parallel, and once they are all loaded, the mutations will be applied to the database in order.
* DR uses streaming writes to significantly improve throughput. * DR uses streaming writes to significantly improve throughput.
* Restore was rewritten so that many clients can partipate in restoring data, significantly improving restore speed. The command line restore tool interface has been updated to support this new capability. * Restore was rewritten so that many clients can partipate in restoring data, significantly improving restore speed. The command line restore tool interface has been updated to support this new capability.
* Cluster files now support comments (using the '#' character). * Cluster files now support comments (using the '#' character).
* A wide variety of new client-side statistics are logged in client trace files every 5 seconds. * A wide variety of new client-side statistics are logged in client trace files every 5 seconds.
* Status reports the generation of the system. The generation is incremented every time there is a failure (and recovery) in the transaction subsystem. * Status reports the generation of the system. The generation is incremented every time there is a failure (and recovery) in the transaction subsystem.
* Added a new machine-wide identification token. This token is used in place of the user-supplied "machine ID" in instances where true physical machine is the unit of interest. This change will allow for reporting tools to output the actual number of physical machines present in a cluster. * Added a new machine-wide identification token. This token is used in place of the user-supplied "machine ID" in instances where true physical machine is the unit of interest. This change will allow for reporting tools to output the actual number of physical machines present in a cluster.
* Added per-process metrics for total disk capacity and free space to status json output that allow for more repeatable and expected reporting of host disk usage. These metrics are based on the "data-dir" parameter to fdbserver and will be reported without regard to whether the process is using the disk or not. * Added per-process metrics for total disk capacity and free space to status json output that allow for more repeatable and expected reporting of host disk usage. These metrics are based on the "data-dir" parameter to fdbserver and will be reported without regard to whether the process is using the disk or not.
* Added backup size estimates to status json output. * Added backup size estimates to status json output.
* Added process uptime seconds to status json output. * Added process uptime seconds to status json output.
* Added a flag indicating whether the database is locked to status json output. * Added a flag indicating whether the database is locked to status json output.
Fixes Fixes
----- -----
* Only processes which can become logs are counted towards fault tolerance. * Only processes which can become logs are counted towards fault tolerance.
* A long running process would have a local estimate of time which differed greatly from system clock of the machine the process was running on. * A long running process would have a local estimate of time which differed greatly from system clock of the machine the process was running on.
* DR errors were not being reported properly in DR status. * DR errors were not being reported properly in DR status.
* Backup and DR layer status expiration and cleanup now use database read version instead of time. <rdar://problem/24805824> * Backup and DR layer status expiration and cleanup now use database read version instead of time. <rdar://problem/24805824>
Java Java
---- ----
* The `ReadTransaction` interface supports the ability to set transaction options. * The `ReadTransaction` interface supports the ability to set transaction options.
Other Changes Other Changes
------------- -------------
* Removed support for the old log system (pre 3.0). To upgrade to 4.4+ from a version before 3.0, first upgrade to a version between 3.0 and 4.3. * Removed support for the old log system (pre 3.0). To upgrade to 4.4+ from a version before 3.0, first upgrade to a version between 3.0 and 4.3.
* Removed trace event spam in backup and DR. * Removed trace event spam in backup and DR.
* Backup and DR only report the most recent error, rather than a list of errors. * Backup and DR only report the most recent error, rather than a list of errors.
* Updated language binding 'API version not supported' error message to include the version requested and supported. <rdar://problem/23769929> * Updated language binding 'API version not supported' error message to include the version requested and supported. <rdar://problem/23769929>
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`4.3 (API Version 430) <release-notes-430>` * :doc:`4.3 (API Version 430) <release-notes-430>`
* :doc:`4.2 (API Version 420) <release-notes-420>` * :doc:`4.2 (API Version 420) <release-notes-420>`
* :doc:`4.1 (API Version 410) <release-notes-410>` * :doc:`4.1 (API Version 410) <release-notes-410>`
* :doc:`4.0 (API Version 400) <release-notes-400>` * :doc:`4.0 (API Version 400) <release-notes-400>`
* :doc:`3.0 (API Version 300) <release-notes-300>` * :doc:`3.0 (API Version 300) <release-notes-300>`
* :doc:`2.0 (API Version 200) <release-notes-200>` * :doc:`2.0 (API Version 200) <release-notes-200>`
* :doc:`1.0 (API Version 100) <release-notes-100>` * :doc:`1.0 (API Version 100) <release-notes-100>`
* :doc:`Beta 3 (API Version 23) <release-notes-023>` * :doc:`Beta 3 (API Version 23) <release-notes-023>`
* :doc:`Beta 2 (API Version 22) <release-notes-022>` * :doc:`Beta 2 (API Version 22) <release-notes-022>`
* :doc:`Beta 1 (API Version 21) <release-notes-021>` * :doc:`Beta 1 (API Version 21) <release-notes-021>`
* :doc:`Alpha 6 (API Version 16) <release-notes-016>` * :doc:`Alpha 6 (API Version 16) <release-notes-016>`
* :doc:`Alpha 5 (API Version 14) <release-notes-014>` * :doc:`Alpha 5 (API Version 14) <release-notes-014>`

View File

@ -1,143 +1,143 @@
################### ###################
Release Notes (4.5) Release Notes (4.5)
################### ###################
4.5.6 4.5.6
===== =====
Fixes Fixes
----- -----
* Disabled debug SevError trace event when applyMutations is cancelled * Disabled debug SevError trace event when applyMutations is cancelled
* Fixed problem skipping publishable files * Fixed problem skipping publishable files
* Publish debug symbols for files for all platforms * Publish debug symbols for files for all platforms
4.5.5 4.5.5
===== =====
Fixes Fixes
----- -----
* DR and backup restoration could stall when encountering transactions larger than 5 MB. <rdar://problem/28744048> * 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> * 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> * Backup uploads to blobstore were not verifying their checksums. <rdar://problem/28417369>
4.5.4 4.5.4
===== =====
Fixes Fixes
----- -----
* Creating transactions with the multi-version client was not thread safe. <rdar://problem/28546688> * 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> * 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> * 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> * 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> * ``fdbserver`` arguments were not properly preserved in log output. <rdar://problem/28407513>
* Increase priority of getting read versions over commits on the master proxy. * 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> * Java: Inserting a non-Long number into a Tuple and reading it back out threw a ClassCastException. <rdar://problem/28260594>
4.5.3 4.5.3
===== =====
Fdbcli Fdbcli
------ ------
* Fix: key and value output did not escape the backslash ('\\') character. <rdar://problem/27832343> * 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> * Spaces in key and value output are no longer escaped. <rdar://problem/27832343>
Java-completable Java-completable
---------------- ----------------
* Fix: Range queries with a limit could sometimes return fewer items than requested. <rdar://problem/27879470> * Fix: Range queries with a limit could sometimes return fewer items than requested. <rdar://problem/27879470>
Status Status
------ ------
* Fix: backup and DR ``range_bytes_written`` and ``mutation_log_bytes_written`` are reset when backup or DR is restarted. <rdar://problem/27640774> * Fix: backup and DR ``range_bytes_written`` and ``mutation_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> * Added ``_valid`` and ``_error`` fields to layer status. <rdar://problem/27643333>
4.5.2 4.5.2
===== =====
Fixes Fixes
----- -----
* Fixed thread safety issues with backup and DR. * Fixed thread safety issues with backup and DR.
* Fixed a load balancing problem when a machine was already failed when a client starts. * 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. * Golang: adding an explicit conflict key included the key immediately following in the conflict range.
4.5.1 4.5.1
===== =====
Features Features
-------- --------
* When a process is added to a cluster, it will be given data at a much faster rate. <rdar://problem/24075759> * 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. * Improved the speed at which the cluster reacts to a failed process.
Fixes Fixes
----- -----
* Calculating status in large databases could cause slow tasks. <rdar://problem/25805251> * Calculating status in large databases could cause slow tasks. <rdar://problem/25805251>
* Fdbrestore printed an error when passed the ``--help`` flag. <rdar://problem/26126793> * 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 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> * 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> * Status could report an incorrect database size in rare scenarios. <rdar://problem/25295683>
* Data distribution would stopped working (both exclude and new recruitment) if a call to commit on the storage server could hang indefinitely. <rdar://problem/26276166> * Data distribution would stopped 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> * ``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> * Trace files generated by clients using the multi-version API could have name collisions. <rdar://problem/25884486>
Fdbcli Fdbcli
------ ------
* Client issues are now aggregated by name and have an addresses list. Status details prints a truncated view of these. <rdar://problem/23469072> * 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 lists incompatible clients. <rdar://problem/24415680>
* Status json includes processes that couldn't be reached in the processes list. <rdar://problem/26703551> * 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> * 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 write mode, which must be turned on to set or clear keys. <rdar://problem/25779641>
* Added the ``kill`` command for killing processes. * Added the ``kill`` command for killing processes.
Fdbmonitor Fdbmonitor
---------- ----------
* The restart logic for dead child processes now uses a backoff. <rdar://problem/26100711> * The restart logic for dead child processes now uses a backoff. <rdar://problem/26100711>
* Added option to remove WD40 environment variables. <rdar://problem/26100669> * Added option to remove WD40 environment variables. <rdar://problem/26100669>
* ``fdbmonitor`` will create the lockfile directory if it doesn't exist. <rdar://problem/26502883> * ``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 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 an option to disable killing of child processes when the configuration changes. <rdar://problem/26100939>
* Added support for larger process IDs. <rdar://problem/26350469> * Added support for larger process IDs. <rdar://problem/26350469>
Backup Backup
------ ------
* Blobstore URLs can now contain multiple IP addresses, separated by commas, over which to load balance requests. <rdar://problem/23095572> * Blobstore URLs can now contain multiple IP addresses, separated by commas, over which to load balance requests. <rdar://problem/23095572>
Bindings Bindings
-------- --------
* 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> * 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 Other Changes
------------- -------------
* Maximum shard size increased from 100MB to 500MB. <rdar://problem/21225031> * 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> * 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> * 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> * 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>
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`4.4 (API Version 440) <release-notes-440>` * :doc:`4.4 (API Version 440) <release-notes-440>`
* :doc:`4.3 (API Version 430) <release-notes-430>` * :doc:`4.3 (API Version 430) <release-notes-430>`
* :doc:`4.2 (API Version 420) <release-notes-420>` * :doc:`4.2 (API Version 420) <release-notes-420>`
* :doc:`4.1 (API Version 410) <release-notes-410>` * :doc:`4.1 (API Version 410) <release-notes-410>`
* :doc:`4.0 (API Version 400) <release-notes-400>` * :doc:`4.0 (API Version 400) <release-notes-400>`
* :doc:`3.0 (API Version 300) <release-notes-300>` * :doc:`3.0 (API Version 300) <release-notes-300>`
* :doc:`2.0 (API Version 200) <release-notes-200>` * :doc:`2.0 (API Version 200) <release-notes-200>`
* :doc:`1.0 (API Version 100) <release-notes-100>` * :doc:`1.0 (API Version 100) <release-notes-100>`
* :doc:`Beta 3 (API Version 23) <release-notes-023>` * :doc:`Beta 3 (API Version 23) <release-notes-023>`
* :doc:`Beta 2 (API Version 22) <release-notes-022>` * :doc:`Beta 2 (API Version 22) <release-notes-022>`
* :doc:`Beta 1 (API Version 21) <release-notes-021>` * :doc:`Beta 1 (API Version 21) <release-notes-021>`
* :doc:`Alpha 6 (API Version 16) <release-notes-016>` * :doc:`Alpha 6 (API Version 16) <release-notes-016>`
* :doc:`Alpha 5 (API Version 14) <release-notes-014>` * :doc:`Alpha 5 (API Version 14) <release-notes-014>`

View File

@ -1,130 +1,130 @@
############# #############
Release Notes Release Notes
############# #############
4.6.5 4.6.5
===== =====
Bindings Bindings
-------- --------
* Java bindings now perform marshaling off of the network thread. <rdar://problem/32413365> * Java bindings now perform marshaling off of the network thread. <rdar://problem/32413365>
4.6.4 4.6.4
===== =====
Features Features
-------- --------
* Added ability to use --io_trust_seconds in a warn-only mode, which logs a trace event rather than failing the process when a disk operation takes a long time. This is enabled with --io_trust_warn_only. <rdar://problem/32344389> * Added ability to use --io_trust_seconds in a warn-only mode, which logs a trace event rather than failing the process when a disk operation takes a long time. This is enabled with --io_trust_warn_only. <rdar://problem/32344389>
Fixes Fixes
----- -----
* Disk operation timeouts now cause the process to restart rather than hang indefinitely. <rdar://problem/31888796> * Disk operation timeouts now cause the process to restart rather than hang indefinitely. <rdar://problem/31888796>
* ``fdbdr switch`` did not start the DR in the opposite direction correctly, resulting in mutations being lost. <rdar://problem/32598128> * ``fdbdr switch`` did not start the DR in the opposite direction correctly, resulting in mutations being lost. <rdar://problem/32598128>
* Lowered backup and DR batch sizes to avoid large packet warnings. <rdar://problem/30933203> * Lowered backup and DR batch sizes to avoid large packet warnings. <rdar://problem/30933203>
* Remove partial pipelining of tlog commits. * Remove partial pipelining of tlog commits.
4.6.3 4.6.3
===== =====
Features Features
-------- --------
* Added the ability to run a consistency check of a database using a new server role. <rdar://problem/30903086> * Added the ability to run a consistency check of a database using a new server role. <rdar://problem/30903086>
Fixes Fixes
----- -----
* Added the ability to automatically shutdown processes if a disk operation takes a long time to complete. This is enabled with --io_trust_seconds. <rdar://problem/31229332> * Added the ability to automatically shutdown processes if a disk operation takes a long time to complete. This is enabled with --io_trust_seconds. <rdar://problem/31229332>
* Too many outstanding storage recruitment requests causes the cluster controller to hang. <rdar://problem/30271581> * Too many outstanding storage recruitment requests causes the cluster controller to hang. <rdar://problem/30271581>
* Corrected issue with Ubuntu installer package on Ubuntu 16.04 not starting daemon. <rdar://problem/27752324> * Corrected issue with Ubuntu installer package on Ubuntu 16.04 not starting daemon. <rdar://problem/27752324>
* Package non-Linux builds of JNI component into Java jars. <rdar://problem/30786246> * Package non-Linux builds of JNI component into Java jars. <rdar://problem/30786246>
* Published backup-related binaries on macOS were incorrectly pointing to symbolic link specification files. <rdar://problem/31403408> * Published backup-related binaries on macOS were incorrectly pointing to symbolic link specification files. <rdar://problem/31403408>
Performance Performance
----------- -----------
* We no longer fsync trace files. <rdar://problem/30400189> * We no longer fsync trace files. <rdar://problem/30400189>
* Lowered the default bandwidth shard splitting knobs for better performance with hot key ranges. <rdar://problem/30234328> * Lowered the default bandwidth shard splitting knobs for better performance with hot key ranges. <rdar://problem/30234328>
4.6.2 4.6.2
===== =====
Fixes Fixes
----- -----
* The tlog could commit more than 100MB at a time <rdar://problem/29312187> * The tlog could commit more than 100MB at a time <rdar://problem/29312187>
* Metrics with filename component not present in trace events <rdar://problem/29933550> * Metrics with filename component not present in trace events <rdar://problem/29933550>
* Setting new locality information causes missing process metrics in status details <rdar://problem/29992530> * Setting new locality information causes missing process metrics in status details <rdar://problem/29992530>
* FDB processes killed via CLI could hang while killing themselves <rdar://problem/29518674> * FDB processes killed via CLI could hang while killing themselves <rdar://problem/29518674>
* Enabled recovery of on-disk data files in the event of a very specific rare corruption situation <rdar://problem/29679886> * Enabled recovery of on-disk data files in the event of a very specific rare corruption situation <rdar://problem/29679886>
* Process messages get reported as errors by status, but don't get attributed to a process in the status details list <rdar://problem/29866630> * Process messages get reported as errors by status, but don't get attributed to a process in the status details list <rdar://problem/29866630>
* DR prematurely reported progress for work that needed to be retried <rdar://problem/29741198> * DR prematurely reported progress for work that needed to be retried <rdar://problem/29741198>
Performance Performance
----------- -----------
* Storage engine performance improvements to reduce the overhead that ssd-2 requires for its benefits over ssd-1 <rdar://problem/29332661> * Storage engine performance improvements to reduce the overhead that ssd-2 requires for its benefits over ssd-1 <rdar://problem/29332661>
* Lowered the default fetch keys parallelism to slow down data distribution <rdar://problem/29934862> * Lowered the default fetch keys parallelism to slow down data distribution <rdar://problem/29934862>
4.6.1 4.6.1
===== =====
Fixes Fixes
----- -----
* Starting a new DR on a large database can cause the secondary cluster to lose availability <rdar://problem/29422130> * Starting a new DR on a large database can cause the secondary cluster to lose availability <rdar://problem/29422130>
* Secondary clusters that have been upgraded were reporting "primary" metrics <rdar://problem/29407318> * Secondary clusters that have been upgraded were reporting "primary" metrics <rdar://problem/29407318>
* Backup and DR could get stuck if too many tasks timed out simultaneously <rdar://problem/29422234> * Backup and DR could get stuck if too many tasks timed out simultaneously <rdar://problem/29422234>
4.6.0 4.6.0
===== =====
Features Features
-------- --------
* Added a new storage engine type ``ssd-2`` that includes page checksums and more efficient storage of large values. The previous storage engine has been renamed ``ssd-1``, and the storage engine ``ssd`` is an alias for ``ssd-2``. <rdar://problem/28565614> <rdar://problem/28723720> * Added a new storage engine type ``ssd-2`` that includes page checksums and more efficient storage of large values. The previous storage engine has been renamed ``ssd-1``, and the storage engine ``ssd`` is an alias for ``ssd-2``. <rdar://problem/28565614> <rdar://problem/28723720>
* DR and Restore won't overwrite a non empty database <rdar://problem/27082102> <rdar://problem/27065780> * DR and Restore won't overwrite a non empty database <rdar://problem/27082102> <rdar://problem/27065780>
Performance Performance
----------- -----------
* Improve performance of the ssd storage engine in databases with large keys or values <rdar://problem/28701207> * Improve performance of the ssd storage engine in databases with large keys or values <rdar://problem/28701207>
* Improved cluster recovery speed <rdar://problem/28877814> * Improved cluster recovery speed <rdar://problem/28877814>
* Restore is faster due to better load leveling across the keyspace <rdar://problem/27554051> * Restore is faster due to better load leveling across the keyspace <rdar://problem/27554051>
* Reduced the conflict ranges applied for get range calls in rare cases <rdar://problem/28034705> * Reduced the conflict ranges applied for get range calls in rare cases <rdar://problem/28034705>
Fixes Fixes
----- -----
* Backup to Blobstore sends and verifies MD5 sums for uploads <rdar://problem/23077230> * Backup to Blobstore sends and verifies MD5 sums for uploads <rdar://problem/23077230>
* Backup restoration could be unrestorable in certain cases <rdar://problem/27933144> * Backup restoration could be unrestorable in certain cases <rdar://problem/27933144>
* Clients using the multi-version client functionality would incorrectly report incompatible connections in status <rdar://problem/28396098> * Clients using the multi-version client functionality would incorrectly report incompatible connections in status <rdar://problem/28396098>
* Backup and DR network metrics were incorrectly reported as 0 <rdar://problem/28589577> * Backup and DR network metrics were incorrectly reported as 0 <rdar://problem/28589577>
* Java: fix race condition when removing an empty directory which could lead to a NoSuchElementException <rdar://problem/28858833> * Java: fix race condition when removing an empty directory which could lead to a NoSuchElementException <rdar://problem/28858833>
* Fixed a source of potential crashes in fdbcli <rdar://problem/27063940> * Fixed a source of potential crashes in fdbcli <rdar://problem/27063940>
Status Status
------ ------
* The following fields were added: cluster.data.moving_data.total_written_bytes, cluster.qos.limiting_queue_bytes_storage_server, cluster.qos.worst_version_lag_storage_server, cluster.qos.limiting_version_lag_storage_server, cluster.qos.transaction_per_second_limit, cluster.qos.released_transactions_per_second, cluster.qos.performance_limited_by.reason_id, and cluster.database_available * The following fields were added: cluster.data.moving_data.total_written_bytes, cluster.qos.limiting_queue_bytes_storage_server, cluster.qos.worst_version_lag_storage_server, cluster.qos.limiting_version_lag_storage_server, cluster.qos.transaction_per_second_limit, cluster.qos.released_transactions_per_second, cluster.qos.performance_limited_by.reason_id, and cluster.database_available
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`4.5 (API Version 450) </old-release-notes/release-notes-450>` * :doc:`4.5 (API Version 450) </old-release-notes/release-notes-450>`
* :doc:`4.4 (API Version 440) </old-release-notes/release-notes-440>` * :doc:`4.4 (API Version 440) </old-release-notes/release-notes-440>`
* :doc:`4.3 (API Version 430) </old-release-notes/release-notes-430>` * :doc:`4.3 (API Version 430) </old-release-notes/release-notes-430>`
* :doc:`4.2 (API Version 420) </old-release-notes/release-notes-420>` * :doc:`4.2 (API Version 420) </old-release-notes/release-notes-420>`
* :doc:`4.1 (API Version 410) </old-release-notes/release-notes-410>` * :doc:`4.1 (API Version 410) </old-release-notes/release-notes-410>`
* :doc:`4.0 (API Version 400) </old-release-notes/release-notes-400>` * :doc:`4.0 (API Version 400) </old-release-notes/release-notes-400>`
* :doc:`3.0 (API Version 300) </old-release-notes/release-notes-300>` * :doc:`3.0 (API Version 300) </old-release-notes/release-notes-300>`
* :doc:`2.0 (API Version 200) </old-release-notes/release-notes-200>` * :doc:`2.0 (API Version 200) </old-release-notes/release-notes-200>`
* :doc:`1.0 (API Version 100) </old-release-notes/release-notes-100>` * :doc:`1.0 (API Version 100) </old-release-notes/release-notes-100>`
* :doc:`Beta 3 (API Version 23) </old-release-notes/release-notes-023>` * :doc:`Beta 3 (API Version 23) </old-release-notes/release-notes-023>`
* :doc:`Beta 2 (API Version 22) </old-release-notes/release-notes-022>` * :doc:`Beta 2 (API Version 22) </old-release-notes/release-notes-022>`
* :doc:`Beta 1 (API Version 21) </old-release-notes/release-notes-021>` * :doc:`Beta 1 (API Version 21) </old-release-notes/release-notes-021>`
* :doc:`Alpha 6 (API Version 16) </old-release-notes/release-notes-016>` * :doc:`Alpha 6 (API Version 16) </old-release-notes/release-notes-016>`
* :doc:`Alpha 5 (API Version 14) </old-release-notes/release-notes-014>` * :doc:`Alpha 5 (API Version 14) </old-release-notes/release-notes-014>`

View File

@ -1,176 +1,176 @@
############# #############
Release Notes Release Notes
############# #############
5.0.7 5.0.7
===== =====
Fixes Fixes
----- -----
* Blob backups became corrupt when handling non-retryable errors. <rdar://problem/35289547> * Blob backups became corrupt when handling non-retryable errors. <rdar://problem/35289547>
* Blob backup did not retry all http errors correctly. <rdar://problem/34937616> * Blob backup did not retry all http errors correctly. <rdar://problem/34937616>
5.0.6 5.0.6
===== =====
5.0.5 5.0.5
===== =====
Fixes Fixes
----- -----
* Set a default memory limit of 8GB on all backup and DR executables. This limit is configurable on the command line. <rdar://problem/34744417> * Set a default memory limit of 8GB on all backup and DR executables. This limit is configurable on the command line. <rdar://problem/34744417>
* The backup agent would keep attempting to write a file to blob for up to an hour after the task was cancelled. <rdar://problem/34745079> * The backup agent would keep attempting to write a file to blob for up to an hour after the task was cancelled. <rdar://problem/34745079>
* Incorrect blob backup destination URLs could be parsed as correct but missing IP addresses. <rdar://problem/34751574> * Incorrect blob backup destination URLs could be parsed as correct but missing IP addresses. <rdar://problem/34751574>
* Blob load balancing and per address connection limits have been improved. <rdar://problem/34744419> * Blob load balancing and per address connection limits have been improved. <rdar://problem/34744419>
* Fdbmonitor now supports 0-parameter flags. <rdar://problem/34738924> * Fdbmonitor now supports 0-parameter flags. <rdar://problem/34738924>
* The read latencies reported in status were higher than what clients observed. <rdar://problem/33877094> * The read latencies reported in status were higher than what clients observed. <rdar://problem/33877094>
5.0.4 5.0.4
===== =====
Fixes Fixes
----- -----
* Logs continued to make their data persistent to disk after being removed. <rdar://problem/33852607> * Logs continued to make their data persistent to disk after being removed. <rdar://problem/33852607>
* Removed logs did not delete their data before shutting down. <rdar://problem/33852342> * Removed logs did not delete their data before shutting down. <rdar://problem/33852342>
* In rare scenarios, a disk error which occured during log recruitment could cause the recruitment to hang indefinately. * In rare scenarios, a disk error which occured during log recruitment could cause the recruitment to hang indefinately.
5.0.3 5.0.3
===== =====
Fixes Fixes
----- -----
* In rare scenarios, recovery could get stuck for 10 minutes. <rdar://problem/33782338> <rdar://problem/33780273> * In rare scenarios, recovery could get stuck for 10 minutes. <rdar://problem/33782338> <rdar://problem/33780273>
* The consistency check did not work on locked databases. <rdar://problem/33241411> * The consistency check did not work on locked databases. <rdar://problem/33241411>
* In rare scenarios, backup, DR, or fdbcli could hang indefinitely. <rdar://problem/33763769> * In rare scenarios, backup, DR, or fdbcli could hang indefinitely. <rdar://problem/33763769>
* Some transaction log metrics were not being reported. <rdar://problem/30313222> * Some transaction log metrics were not being reported. <rdar://problem/30313222>
* Some network metrics were reported incorrectly as extremely large numbers. <rdar://problem/32364301> <rdar://problem/32363905> * Some network metrics were reported incorrectly as extremely large numbers. <rdar://problem/32364301> <rdar://problem/32363905>
5.0.2 5.0.2
===== =====
Fixes Fixes
----- -----
* Functionality to slowly delete large files with incremental truncation was not enabled. <rdar://problem/33550683> * Functionality to slowly delete large files with incremental truncation was not enabled. <rdar://problem/33550683>
* Fixed a source of crashes from fdbcli. <rdar://problem/32933471> * Fixed a source of crashes from fdbcli. <rdar://problem/32933471>
* Data distribution was prematurely reporting that it had started. * Data distribution was prematurely reporting that it had started.
Bindings Bindings
-------- --------
* Go: Use fully-qualified import paths for fdb dependencies. <rdar://problem/32932617> * Go: Use fully-qualified import paths for fdb dependencies. <rdar://problem/32932617>
Other Other
----- -----
* Publish header files and static libraries for flow and flow bindings on Linux and macOS. <rdar://problem/33191326> * Publish header files and static libraries for flow and flow bindings on Linux and macOS. <rdar://problem/33191326>
5.0.1 5.0.1
===== =====
Fixes Fixes
----- -----
* Bytes input and bytes durable on the log would drift apart due to rounding errors. * Bytes input and bytes durable on the log would drift apart due to rounding errors.
5.0.0 5.0.0
===== =====
Features Features
-------- --------
* All recoveries no longer copy log data before completion. As a result, the fast_recovery_double and fast_recovery_triple configurations have been removed. <rdar://problem/30235865> * All recoveries no longer copy log data before completion. As a result, the fast_recovery_double and fast_recovery_triple configurations have been removed. <rdar://problem/30235865>
* Added a new configuration ``three_data_hall`` where a single data hall failure cannot bring down a cluster. <rdar://problem/30822968> * Added a new configuration ``three_data_hall`` where a single data hall failure cannot bring down a cluster. <rdar://problem/30822968>
* Multiple log processes can be within the same zone. <rdar://problem/29407578> * Multiple log processes can be within the same zone. <rdar://problem/29407578>
* Clients have access to sampled latency statistics for their operations. <rdar://problem/29757812> * Clients have access to sampled latency statistics for their operations. <rdar://problem/29757812>
* Added network checksums. <rdar://problem/30703358> * Added network checksums. <rdar://problem/30703358>
* Fault tolerance is restored much quicker after a storage server failure. <rdar://problem/30125038> * Fault tolerance is restored much quicker after a storage server failure. <rdar://problem/30125038>
Performance Performance
----------- -----------
* Improved recovery speed after rebooting the cluster. <rdar://problem/32956590> * Improved recovery speed after rebooting the cluster. <rdar://problem/32956590>
* Improved saturation performance of write-heavy workloads. <rdar://problem/30381001> * Improved saturation performance of write-heavy workloads. <rdar://problem/30381001>
* We no longer require extra log durability for fast recoveries. <rdar://problem/30235865> * We no longer require extra log durability for fast recoveries. <rdar://problem/30235865>
* Backup/DR now use far less cluster resources while idle. <rdar://problem/28374226> <rdar://problem/28640412> * Backup/DR now use far less cluster resources while idle. <rdar://problem/28374226> <rdar://problem/28640412>
* Improved load balancing performance. <rdar://problem/29289012> * Improved load balancing performance. <rdar://problem/29289012>
* Reduced conflict range sizes when performing get range queries with key selectors such that the resolved begin key is greater than or equal to the resolved end key. <rdar://problem/30561532> * Reduced conflict range sizes when performing get range queries with key selectors such that the resolved begin key is greater than or equal to the resolved end key. <rdar://problem/30561532>
* Added functionality to slowly delete large files with incremental truncation. <rdar://problem/30193500> * Added functionality to slowly delete large files with incremental truncation. <rdar://problem/30193500>
Fixes Fixes
----- -----
* Fixed a pathology where multiple successive failures could lead to a long 30+ minute availability outage. <rdar://problem/30235865> * Fixed a pathology where multiple successive failures could lead to a long 30+ minute availability outage. <rdar://problem/30235865>
* Updated status to have failures of old tlogs included in the failure tolerance calculation. <rdar://problem/30615411> * Updated status to have failures of old tlogs included in the failure tolerance calculation. <rdar://problem/30615411>
* The fdbserver and fdbbackup processes could return a successful error code after a fatal error. <rdar://problem/31350017> * The fdbserver and fdbbackup processes could return a successful error code after a fatal error. <rdar://problem/31350017>
* Fault tolerance did not reflect coordinators sharing the same machine ID. <rdar://problem/31195167> * Fault tolerance did not reflect coordinators sharing the same machine ID. <rdar://problem/31195167>
* Prevent the DR seconds behind measurement from potentially returning a negative amount. <rdar://problem/32235105> * Prevent the DR seconds behind measurement from potentially returning a negative amount. <rdar://problem/32235105>
* Increased the priority of all cluster controller work to prevent the cluster controller from being starved by other work on the same process. <rdar://problem/32958023> * Increased the priority of all cluster controller work to prevent the cluster controller from being starved by other work on the same process. <rdar://problem/32958023>
* Fixed a rare crash in the DR agent. <rdar://problem/30766452> * Fixed a rare crash in the DR agent. <rdar://problem/30766452>
* fdbcli and fdb_c clients logs had 0 values for most ProcessMetrics log event fields. <rdar://problem/31017524> * fdbcli and fdb_c clients logs had 0 values for most ProcessMetrics log event fields. <rdar://problem/31017524>
* DR could get stuck if the time required to copy range data was longer than the task timeout. <rdar://problem/32958570> * DR could get stuck if the time required to copy range data was longer than the task timeout. <rdar://problem/32958570>
Status Status
------ ------
* Improved latency probe accuracy when the cluster is loaded. <rdar://problem/30465855> * Improved latency probe accuracy when the cluster is loaded. <rdar://problem/30465855>
* Report GRV latencies at all priorities in the latency probe. <rdar://problem/30465855> * Report GRV latencies at all priorities in the latency probe. <rdar://problem/30465855>
* For the SSD storage engine, available disk space now includes space within data files that is not currently in use and can be reused. <rdar://problem/29998454> * For the SSD storage engine, available disk space now includes space within data files that is not currently in use and can be reused. <rdar://problem/29998454>
* Storage servers report how far they are lagging behind the logs. ``fdbcli`` now reports servers that are lagging sufficiently far behind. <rdar://problem/30166503> * Storage servers report how far they are lagging behind the logs. ``fdbcli`` now reports servers that are lagging sufficiently far behind. <rdar://problem/30166503>
* Status json "incompatible_connections" did not work with multiversion clients. <rdar://problem/28396098> * Status json "incompatible_connections" did not work with multiversion clients. <rdar://problem/28396098>
* Added connection counts and establish/close metrics to status json.<rdar://problem/28393970> * Added connection counts and establish/close metrics to status json.<rdar://problem/28393970>
Bindings Bindings
-------- --------
* API version updated to 500. * API version updated to 500.
* Tuples now support single- and double-precision floating point numbers, UUIDs, booleans, and nested tuples. <rdar://problem/30053926> * Tuples now support single- and double-precision floating point numbers, UUIDs, booleans, and nested tuples. <rdar://problem/30053926>
* Add ``TRANSACTION_LOGGING_ENABLE`` transaction option that causes the details of a transaction's operations to be logged to the client trace logs. <rdar://problem/32074484> * Add ``TRANSACTION_LOGGING_ENABLE`` transaction option that causes the details of a transaction's operations to be logged to the client trace logs. <rdar://problem/32074484>
* Add ``USED_DURING_COMMIT_PROTECTION_DISABLE`` transaction option that prevents operations performed during that transaction's commit from causing the commit to fail. <rdar://problem/30378251> * Add ``USED_DURING_COMMIT_PROTECTION_DISABLE`` transaction option that prevents operations performed during that transaction's commit from causing the commit to fail. <rdar://problem/30378251>
* Add ``ENABLE_SLOW_TASK_PROFILING`` network option that logs backtraces for long running flow tasks. <rdar://problem/30975759> * Add ``ENABLE_SLOW_TASK_PROFILING`` network option that logs backtraces for long running flow tasks. <rdar://problem/30975759>
* ``getBoundaryKeys`` can be used on locked databases. <rdar://problem/28760070> * ``getBoundaryKeys`` can be used on locked databases. <rdar://problem/28760070>
* Flow: API versions prior to 500 are no longer supported. <rdar://problem/32433458> * Flow: API versions prior to 500 are no longer supported. <rdar://problem/32433458>
* Flow: ``Cluster::createDatabase`` no longer takes a DB name parameter. <rdar://problem/32433458> * Flow: ``Cluster::createDatabase`` no longer takes a DB name parameter. <rdar://problem/32433458>
* Node: API versions prior to 500 are no longer supported. <rdar://problem/32433437> * Node: API versions prior to 500 are no longer supported. <rdar://problem/32433437>
* Node: ``fdb.open`` and ``Cluster.openDatabase`` no longer take a DB name parameter. <rdar://problem/32433437> * Node: ``fdb.open`` and ``Cluster.openDatabase`` no longer take a DB name parameter. <rdar://problem/32433437>
* Java: API versions prior to 500 are no longer supported. <rdar://problem/30378251> * Java: API versions prior to 500 are no longer supported. <rdar://problem/30378251>
* Java: ``FDB.open`` and ``Cluster.openDatabase`` no longer take a DB name parameter. <rdar://problem/32078379> * Java: ``FDB.open`` and ``Cluster.openDatabase`` no longer take a DB name parameter. <rdar://problem/32078379>
* Java: Removed ``Transaction.reset`` from the API. <rdar://problem/32409970> * Java: Removed ``Transaction.reset`` from the API. <rdar://problem/32409970>
* Java: ``Transaction.onError`` invalidates its ``Transaction`` and asynchronously returns a new ``Transaction`` to replace it. <rdar://problem/30378251> * Java: ``Transaction.onError`` invalidates its ``Transaction`` and asynchronously returns a new ``Transaction`` to replace it. <rdar://problem/30378251>
* Java: Transactions always enable the ``USED_DURING_COMMIT_PROTECTION_DISABLE`` transaction option, preventing operations that occur during a commit from causing the commit to fail. <rdar://problem/30378251> * Java: Transactions always enable the ``USED_DURING_COMMIT_PROTECTION_DISABLE`` transaction option, preventing operations that occur during a commit from causing the commit to fail. <rdar://problem/30378251>
* Java: There are now options to set the executor for async call backs at the database and transaction level. <rdar://problem/31636701> * Java: There are now options to set the executor for async call backs at the database and transaction level. <rdar://problem/31636701>
* Java: Static functions that perform async operations now have overloads that allow the user to specify an executor. <rdar://problem/26143365> * Java: Static functions that perform async operations now have overloads that allow the user to specify an executor. <rdar://problem/26143365>
* Java: Range class now implements equals, toString, and hashCode methods. <rdar://problem/31790542> * Java: Range class now implements equals, toString, and hashCode methods. <rdar://problem/31790542>
* Java: Tuples now expose a "stream" method to get a stream of their objects and "fromStream" to convert streams back into tuples. <rdar://problem/31767147> * Java: Tuples now expose a "stream" method to get a stream of their objects and "fromStream" to convert streams back into tuples. <rdar://problem/31767147>
* Java: Addressed a pathology that made AsyncUtil.whileTrue susceptible to long chains of futures. <rdar://problem/30054445> * Java: Addressed a pathology that made AsyncUtil.whileTrue susceptible to long chains of futures. <rdar://problem/30054445>
Other Changes Other Changes
------------- -------------
* Added the ``-v``/``--version`` flag to report version information for the ``fdbcli`` binary <rdar://problem/31091644> * Added the ``-v``/``--version`` flag to report version information for the ``fdbcli`` binary <rdar://problem/31091644>
* Introduced the ``data_filesystem`` command line argument for the ``fdbserver`` binary to prevent data from being written to the root drive. <rdar://problem/30716138> * Introduced the ``data_filesystem`` command line argument for the ``fdbserver`` binary to prevent data from being written to the root drive. <rdar://problem/30716138>
* Added a ``ClientStart`` trace event to client trace files with details about the client library being used. * Added a ``ClientStart`` trace event to client trace files with details about the client library being used.
* fdbserver now rejects all unrecognized command-line arguments. <rdar://problem/31853278> * fdbserver now rejects all unrecognized command-line arguments. <rdar://problem/31853278>
* All fdbserver command-line options now have both short- and long-form equivalents. <rdar://problem/31853278> * All fdbserver command-line options now have both short- and long-form equivalents. <rdar://problem/31853278>
Earlier release notes Earlier release notes
--------------------- ---------------------
* :doc:`4.6 (API Version 460) </old-release-notes/release-notes-460>` * :doc:`4.6 (API Version 460) </old-release-notes/release-notes-460>`
* :doc:`4.5 (API Version 450) </old-release-notes/release-notes-450>` * :doc:`4.5 (API Version 450) </old-release-notes/release-notes-450>`
* :doc:`4.4 (API Version 440) </old-release-notes/release-notes-440>` * :doc:`4.4 (API Version 440) </old-release-notes/release-notes-440>`
* :doc:`4.3 (API Version 430) </old-release-notes/release-notes-430>` * :doc:`4.3 (API Version 430) </old-release-notes/release-notes-430>`
* :doc:`4.2 (API Version 420) </old-release-notes/release-notes-420>` * :doc:`4.2 (API Version 420) </old-release-notes/release-notes-420>`
* :doc:`4.1 (API Version 410) </old-release-notes/release-notes-410>` * :doc:`4.1 (API Version 410) </old-release-notes/release-notes-410>`
* :doc:`4.0 (API Version 400) </old-release-notes/release-notes-400>` * :doc:`4.0 (API Version 400) </old-release-notes/release-notes-400>`
* :doc:`3.0 (API Version 300) </old-release-notes/release-notes-300>` * :doc:`3.0 (API Version 300) </old-release-notes/release-notes-300>`
* :doc:`2.0 (API Version 200) </old-release-notes/release-notes-200>` * :doc:`2.0 (API Version 200) </old-release-notes/release-notes-200>`
* :doc:`1.0 (API Version 100) </old-release-notes/release-notes-100>` * :doc:`1.0 (API Version 100) </old-release-notes/release-notes-100>`
* :doc:`Beta 3 (API Version 23) </old-release-notes/release-notes-023>` * :doc:`Beta 3 (API Version 23) </old-release-notes/release-notes-023>`
* :doc:`Beta 2 (API Version 22) </old-release-notes/release-notes-022>` * :doc:`Beta 2 (API Version 22) </old-release-notes/release-notes-022>`
* :doc:`Beta 1 (API Version 21) </old-release-notes/release-notes-021>` * :doc:`Beta 1 (API Version 21) </old-release-notes/release-notes-021>`
* :doc:`Alpha 6 (API Version 16) </old-release-notes/release-notes-016>` * :doc:`Alpha 6 (API Version 16) </old-release-notes/release-notes-016>`
* :doc:`Alpha 5 (API Version 14) </old-release-notes/release-notes-014>` * :doc:`Alpha 5 (API Version 14) </old-release-notes/release-notes-014>`