documentation/sphinx/source/release-notes/release-notes-610.rst
############# Release Notes #############
fdb_c library as a secondary client using the multi-version client could lead to an infinite recursion when run with API versions older than 610. (PR #2169) <https://github.com/apple/foundationdb/pull/2169>_(PR #2169) <https://github.com/apple/foundationdb/pull/2169>_fdbrestore commands other than start required a default cluster file to be found but did not actually use it. (PR #1912) <https://github.com/apple/foundationdb/pull/1912>_.(Issue #1846) <https://github.com/apple/foundationdb/issues/1846>_(PR #1849) <https://github.com/apple/foundationdb/pull/1849>_(PR #1764) <https://github.com/apple/foundationdb/pull/1764>_(PR #1700) <https://github.com/apple/foundationdb/pull/1700>_fdbrestore commands abort, wait, and status would use a default cluster file instead of the destination cluster file argument. (PR #1701) <https://github.com/apple/foundationdb/pull/1701>_(PR #1649) <https://github.com/apple/foundationdb/pull/1649>_(PR #1651) <https://github.com/apple/foundationdb/pull/1651>_(PR #964) <https://github.com/apple/foundationdb/pull/964>_.(PR #1139) <https://github.com/apple/foundationdb/pull/1139>_(PR #1084) <https://github.com/apple/foundationdb/pull/1084>_(PR #1160) <https://github.com/apple/foundationdb/pull/1160>_(PR #1160) <https://github.com/apple/foundationdb/pull/1160>_(PR #1198) <https://github.com/apple/foundationdb/pull/1198>_(PR #1240) <https://github.com/apple/foundationdb/pull/1240>_(PR #1240) <https://github.com/apple/foundationdb/pull/1240>_status and describe commands now have a --json output option. (PR #1248) <https://github.com/apple/foundationdb/pull/1248>_(PR #1062) <https://github.com/apple/foundationdb/pull/1062>_(PR #1176) <https://github.com/apple/foundationdb/pull/1176>_CompareAndClear atomic op that clears a key if its value matches the supplied value. (PR #1105) <https://github.com/apple/foundationdb/pull/1105>_(PR #1178) <https://github.com/apple/foundationdb/pull/1178>_(PR #1157) <https://github.com/apple/foundationdb/pull/1157>_DISABLE_POSIX_KERNEL_AIO knob to fallback to libeio instead of kernel async I/O (KAIO) for systems that do not support KAIO or O_DIRECT flag. (PR #1283) <https://github.com/apple/foundationdb/pull/1283>_(PR #1320) <https://github.com/apple/foundationdb/pull/1320>_(PR #1190) <https://github.com/apple/foundationdb/pull/1190>_TRANSACTION_LOGGING_ENABLE. Added two new transaction options DEBUG_TRANSACTION_IDENTIFIER and LOG_TRANSACTION that sets an identifier for the transaction and logs the transaction to the trace file respectively. (PR #1200) <https://github.com/apple/foundationdb/pull/1200>_(Issue #775) <https://github.com/apple/foundationdb/issues/775>_onError (as of API version 610). (Issue #775) <https://github.com/apple/foundationdb/issues/775>_force_recovery_with_data_loss command to fdbcli. When a cluster is configured with usable_regions=2, this command will force the database to recover in the remote region. (PR #1168) <https://github.com/apple/foundationdb/pull/1168>_(PR #1093) <https://github.com/apple/foundationdb/pull/1093>_ (submitted by tclinken)coordinator process class. Processes with this class can only be used as a coordinator, and coordinators auto will prefer to choose processes of this class. (PR #1069) <https://github.com/apple/foundationdb/pull/1069>_ (submitted by tclinken)consistencycheck fdbserver role will check the entire database at most once every week. (PR #1126) <https://github.com/apple/foundationdb/pull/1126>_\xff/metadataVersion). The value of this key is sent with every read version. It is intended to help clients cache rarely changing metadata. (PR #1213) <https://github.com/apple/foundationdb/pull/1213>_fdbdr switch command verifies a dr_agent exists in both directions. (Issue #1220) <https://github.com/apple/foundationdb/issues/1220>_(Issue #690) <https://github.com/apple/foundationdb/issues/690>_memory storage engine configuration now uses the ssd engine for transaction log spilling. Transaction log spilling only happens when the transaction logs are using too much memory, so using the memory storage engine for this purpose can cause the process to run out of memory. Existing clusters will NOT automatically change their configuration. (PR #1314) <https://github.com/apple/foundationdb/pull/1314>_--trace_format command line option. (PR #976) <https://github.com/apple/foundationdb/pull/976>_ (by atn34)modify command to fdbbackup for modifying parameters of a running backup. (PR #1237) <https://github.com/apple/foundationdb/pull/1237>_header parameter to blobstore backup URLs for setting custom HTTP headers. (PR #1237) <https://github.com/apple/foundationdb/pull/1237>_maintenance command to fdbcli. This command will stop data distribution from moving data away from processes with a specified zoneID. (PR #1397) <https://github.com/apple/foundationdb/pull/1397>_three_data_hall_fallback configuration, which can be used to drop storage replicas in a dead data hall. [6.1.1] (PR #1422) <https://github.com/apple/foundationdb/pull/1422>_(PR #1311) <https://github.com/apple/foundationdb/pull/1311>_(PR #1317) <https://github.com/apple/foundationdb/pull/1317>_(PR #1485) <https://github.com/apple/foundationdb/pull/1485>_(PR #1482) <https://github.com/apple/foundationdb/pull/1482>_ (PR #1499) <https://github.com/apple/foundationdb/pull/1499>_(PR #1499) <https://github.com/apple/foundationdb/pull/1499>_(PR #1601) <https://github.com/apple/foundationdb/pull/1601>_SingleFloat for the tuple layer didn't work with integers. (PR #1216) <https://github.com/apple/foundationdb/pull/1216>_OnError with a non-retryable error would partially reset a transaction. As of API version 610, the transaction will no longer be reset in these cases and will instead put the transaction into an error state. (PR #1298) <https://github.com/apple/foundationdb/pull/1298>_(PR #1248) <https://github.com/apple/foundationdb/pull/1248>_(PR #1348) <https://github.com/apple/foundationdb/pull/1348>_coordinators auto command could recruit multiple coordinators with the same zone ID. (Issue #988) <https://github.com/apple/foundationdb/issues/988>_(PR #1213) <https://github.com/apple/foundationdb/pull/1213>_(PR #1085) <https://github.com/apple/foundationdb/pull/1085>_(PR #1350) <https://github.com/apple/foundationdb/pull/1350>_(PR #1053) <https://github.com/apple/foundationdb/pull/1053>_include command in fdbcli would falsely include all machines with IP addresses that
have the included IP address as a prefix (for example include 1.0.0.1 would also include
1.0.0.10). (PR #1121) <https://github.com/apple/foundationdb/pull/1121>_(PR #1205) <https://github.com/apple/foundationdb/pull/1205>_FDBException objects, which avoids wasting resources and reduces memory pressure. (Issue #1235) <https://github.com/apple/foundationdb/issues/1235>_(Issue #1380) <https://github.com/apple/foundationdb/issues/1380>_ (by KrzysFR)(PR #1394) <https://github.com/apple/foundationdb/pull/1394>_proxy_memory_limit_exceeded error was treated as retryable, but fdb_error_predicate returned that it is not retryable. (PR #1438) <https://github.com/apple/foundationdb/pull/1438>_.(PR #1468) <https://github.com/apple/foundationdb/pull/1468>_.(PR #1486) <https://github.com/apple/foundationdb/pull/1486>_ (PR #1499) <https://github.com/apple/foundationdb/pull/1499>_configure command in fdbcli returned successfully even when the configuration was not changed for some error types. [6.1.4] (PR #1509) <https://github.com/apple/foundationdb/pull/1509>_configure command in fdbcli would trigger spuriously when changing between three_datacenter replication and a region configuration. [6.1.4] (PR #1509) <https://github.com/apple/foundationdb/pull/1509>_(PR #1544) <https://github.com/apple/foundationdb/pull/1544>_(PR #1618) <https://github.com/apple/foundationdb/pull/1618>_(PR #1222) <https://github.com/apple/foundationdb/pull/1222>_status json. (Issue #690) <https://github.com/apple/foundationdb/issues/690>_API version upgrade guide <api-version-upgrade-guide-610> for upgrade details.(PR #942) <https://github.com/apple/foundationdb/pull/942>_FDBCluster objects and related methods (fdb_create_cluster, fdb_cluster_create_database, fdb_cluster_set_option, fdb_cluster_destroy, fdb_future_get_cluster) have been removed. (PR #942) <https://github.com/apple/foundationdb/pull/942>_fdb_create_database that creates a new FDBDatabase object synchronously and removed fdb_future_get_database. (PR #942) <https://github.com/apple/foundationdb/pull/942>_fdb.init, fdb.create_cluster, and fdb.Cluster. fdb.open no longer accepts a database_name parameter. (PR #942) <https://github.com/apple/foundationdb/pull/942>_FDB.createCluster and Cluster. The preferred way to get a Database is by using FDB.open, which should work in both new and old API versions. (PR #942) <https://github.com/apple/foundationdb/pull/942>_Cluster(long cPtr, Executor executor) constructor. This is API breaking for any code that has subclassed the Cluster class and is not protected by API versioning. (PR #942) <https://github.com/apple/foundationdb/pull/942>_ReadTransaction interface.(PR #1166) <https://github.com/apple/foundationdb/pull/1166>_(Issue #1206) <https://github.com/apple/foundationdb/issues/1206>_(Issue #671) <https://github.com/apple/foundationdb/issues/671>_(Issue #672) <https://github.com/apple/foundationdb/issues/672>_FDB.init, FDB.create_cluster, and FDB.Cluster. FDB.open no longer accepts a database_name parameter. (PR #942) <https://github.com/apple/foundationdb/pull/942>_fdb.StartNetwork, fdb.Open, fdb.MustOpen, and fdb.CreateCluster and added fdb.OpenDatabase and fdb.MustOpenDatabase. The preferred way to start the network and get a Database is by using FDB.OpenDatabase or FDB.OpenDefault. (PR #942) <https://github.com/apple/foundationdb/pull/942>_API::createCluster and Cluster and added API::createDatabase. The new way to get a Database is by using API::createDatabase. (PR #942) <https://github.com/apple/foundationdb/pull/942>_ (PR #1215) <https://github.com/apple/foundationdb/pull/1215>_DatabaseContext to Database, and API::createDatabase returns Reference<Database> instead of Reference<<DatabaseContext>. (PR #1215) <https://github.com/apple/foundationdb/pull/1215>_Transaction into an interface and moved its implementation into an internal class. Transactions should now be created using Database::createTransaction(db). (PR #1215) <https://github.com/apple/foundationdb/pull/1215>_ReadTransaction interface that allows only read operations on a transaction. The Transaction interface inherits from ReadTransaction and can be used when a ReadTransaction is required. (PR #1215) <https://github.com/apple/foundationdb/pull/1215>_Transaction::setVersion to Transaction::setReadVersion. (PR #1215) <https://github.com/apple/foundationdb/pull/1215>_(PR #1215) <https://github.com/apple/foundationdb/pull/1215>_fdb.Printable to print a human-readable string for a given byte array. Add Key.String(), which converts the Key to a string using the Printable function. (PR #1010) <https://github.com/apple/foundationdb/pull/1010>_ (submitted by pjvds)Versionstamp operations. (PR #1187) <https://github.com/apple/foundationdb/pull/1187>_ (submitted by ryanworl)(PR #1138) <https://github.com/apple/foundationdb/pull/1138>_(PR #1242) <https://github.com/apple/foundationdb/pull/1242>_(PR #1157) <https://github.com/apple/foundationdb/pull/1157>_process_behind error can now be thrown by clients and is treated as retryable. [6.1.1] (PR #1438) <https://github.com/apple/foundationdb/pull/1438>_.consistencycheck fdbserver role would repeatedly exit. [6.1.1] (PR #1437) <https://github.com/apple/foundationdb/pull/1437>_consistencycheck fdbserver role could proceed at a very slow rate after inserting data into an empty database. [6.1.2] (PR #1452) <https://github.com/apple/foundationdb/pull/1452>_(PR #1479) <https://github.com/apple/foundationdb/pull/1479>_(PR #1527) <https://github.com/apple/foundationdb/pull/1527>_(PR #1541) <https://github.com/apple/foundationdb/pull/1541>_(PR #1545) <https://github.com/apple/foundationdb/pull/1545>_(PR #1556) <https://github.com/apple/foundationdb/pull/1556>_(PR #1556) <https://github.com/apple/foundationdb/pull/1556>_(PR #1617) <https://github.com/apple/foundationdb/pull/1617>_6.0 (API Version 600) </release-notes/release-notes-600>5.2 (API Version 520) </release-notes/release-notes-520>5.1 (API Version 510) </release-notes/release-notes-510>5.0 (API Version 500) </release-notes/release-notes-500>4.6 (API Version 460) </release-notes/release-notes-460>4.5 (API Version 450) </release-notes/release-notes-450>4.4 (API Version 440) </release-notes/release-notes-440>4.3 (API Version 430) </release-notes/release-notes-430>4.2 (API Version 420) </release-notes/release-notes-420>4.1 (API Version 410) </release-notes/release-notes-410>4.0 (API Version 400) </release-notes/release-notes-400>3.0 (API Version 300) </release-notes/release-notes-300>2.0 (API Version 200) </release-notes/release-notes-200>1.0 (API Version 100) </release-notes/release-notes-100>Beta 3 (API Version 23) </release-notes/release-notes-023>Beta 2 (API Version 22) </release-notes/release-notes-022>Beta 1 (API Version 21) </release-notes/release-notes-021>Alpha 6 (API Version 16) </release-notes/release-notes-016>Alpha 5 (API Version 14) </release-notes/release-notes-014>