From 11cbcffc9a06f7d4e66ac745bafd65c31d9de511 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Thu, 30 Jul 2020 16:07:54 -0700 Subject: [PATCH 001/261] Temporary code --- bindings/c/foundationdb/fdb_c.h | 2 ++ fdbclient/NativeAPI.actor.cpp | 48 +++++++++++++++++++++++++++++++++ fdbclient/NativeAPI.actor.h | 3 +++ 3 files changed, 53 insertions(+) diff --git a/bindings/c/foundationdb/fdb_c.h b/bindings/c/foundationdb/fdb_c.h index b5dfa63d13..454495ddc7 100644 --- a/bindings/c/foundationdb/fdb_c.h +++ b/bindings/c/foundationdb/fdb_c.h @@ -98,6 +98,8 @@ extern "C" { const uint8_t* value; int value_length; } FDBKeyValue; + + DLLEXPORT fdb_bool_t fdb_future_reboot_worker( FDBFuture* f, FDBDatabase* db, uint8_t const* value, int value_length, fdb_bool_t check); #else typedef struct keyvalue { const void* key; diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index 2e24308654..8ce9d2b37e 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -4487,3 +4487,51 @@ ACTOR Future checkSafeExclusions(Database cx, vector exc return (ddCheck && coordinatorCheck); } + +ACTOR Future addInterface( std::map>* address_interface, Reference connectLock, KeyValue kv) { + wait(connectLock->take()); + state FlowLock::Releaser releaser(*connectLock); + state ClientWorkerInterface workerInterf = BinaryReader::fromStringRef(kv.value, IncludeVersion()); + state ClientLeaderRegInterface leaderInterf(workerInterf.address()); + choose { + when( Optional rep = wait( brokenPromiseToNever(leaderInterf.getLeader.getReply(GetLeaderRequest())) ) ) { + StringRef ip_port = + (kv.key.endsWith(LiteralStringRef(":tls")) ? kv.key.removeSuffix(LiteralStringRef(":tls")) : kv.key) + .removePrefix(LiteralStringRef("\xff\xff/worker_interfaces/")); + (*address_interface)[ip_port] = std::make_pair(kv.value, leaderInterf); + + if(workerInterf.reboot.getEndpoint().addresses.secondaryAddress.present()) { + Key full_ip_port2 = + StringRef(workerInterf.reboot.getEndpoint().addresses.secondaryAddress.get().toString()); + StringRef ip_port2 = full_ip_port2.endsWith(LiteralStringRef(":tls")) ? full_ip_port2.removeSuffix(LiteralStringRef(":tls")) : full_ip_port2; + (*address_interface)[ip_port2] = std::make_pair(kv.value, leaderInterf); + } + } + when( wait(delay(CLIENT_KNOBS->CLI_CONNECT_TIMEOUT)) ) {} // TODO : change timeout time here + } + return Void(); +} + +ACTOR Future rebootWorkerActor(Database cx, const ValueRef& addr, bool check) { + // fetch the addresses of all workers + state std::map> address_interface; + state Standalone kvs = wait(getWorkerInterfaces(cx->getConnectionFile())); + ASSERT(!kvs.more); + Reference connectLock(new FlowLock(CLIENT_KNOBS->CLI_CONNECT_PARALLELISM)); + std::vector> addInterfs; + for( auto it : kvs ) { + addInterfs.push_back(addInterface(&address_interface, connectLock, it)); + } + wait( waitForAll(addInterfs) ); + if (!address_interface.count(addr)) + return false; + if (check) + BinaryReader::fromStringRef(addr, IncludeVersion()).reboot.send( RebootRequest(false, true)); + else + BinaryReader::fromStringRef(addr, IncludeVersion()).reboot.send( RebootRequest()); + return true; +} + +Future rebootWorker(Database cx, const ValueRef& addr, bool check) { + return rebootWorkerActor(cx, addr, check); +} \ No newline at end of file diff --git a/fdbclient/NativeAPI.actor.h b/fdbclient/NativeAPI.actor.h index 56375e8269..55907e21f9 100644 --- a/fdbclient/NativeAPI.actor.h +++ b/fdbclient/NativeAPI.actor.h @@ -357,5 +357,8 @@ ACTOR Future snapCreate(Database cx, Standalone snapCmd, UID sn // Checks with Data Distributor that it is safe to mark all servers in exclusions as failed ACTOR Future checkSafeExclusions(Database cx, vector exclusions); +// Attempt to kill a process +Future rebootWorker(Database cx, const ValueRef& addr, bool check); + #include "flow/unactorcompiler.h" #endif From 23ef23357c7b4cc329915859f439ee157cc29af6 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Fri, 21 Aug 2020 14:30:52 -0700 Subject: [PATCH 002/261] Test code to add c function for kill/suspend --- bindings/c/fdb_c.cpp | 5 +++++ bindings/c/foundationdb/fdb_c.h | 4 +++- fdbclient/DatabaseContext.h | 4 ++++ fdbclient/IClientApi.h | 2 ++ fdbclient/MultiVersionTransaction.actor.cpp | 11 +++++++++++ fdbclient/MultiVersionTransaction.h | 7 ++++++- fdbclient/NativeAPI.actor.cpp | 6 +++--- fdbclient/NativeAPI.actor.h | 3 --- fdbclient/ThreadSafeTransaction.cpp | 7 +++++++ fdbclient/ThreadSafeTransaction.h | 2 ++ 10 files changed, 43 insertions(+), 8 deletions(-) diff --git a/bindings/c/fdb_c.cpp b/bindings/c/fdb_c.cpp index c91327e45c..750e6fc57b 100644 --- a/bindings/c/fdb_c.cpp +++ b/bindings/c/fdb_c.cpp @@ -363,6 +363,11 @@ fdb_error_t fdb_database_create_transaction( FDBDatabase* d, *out_transaction = (FDBTransaction*)tr.extractPtr(); ); } +extern "C" DLLEXPORT +FDBFuture* fdb_database_reboot_worker( FDBDatabase* db, uint8_t const* value, int value_length, fdb_bool_t check, int duration) { + return (FDBFuture*) (DB(db)->rebootWorker(ValueRef(value, value_length), check, duration).extractPtr()); +} + extern "C" DLLEXPORT void fdb_transaction_destroy( FDBTransaction* tr ) { diff --git a/bindings/c/foundationdb/fdb_c.h b/bindings/c/foundationdb/fdb_c.h index 454495ddc7..ed1a441e8b 100644 --- a/bindings/c/foundationdb/fdb_c.h +++ b/bindings/c/foundationdb/fdb_c.h @@ -99,7 +99,6 @@ extern "C" { int value_length; } FDBKeyValue; - DLLEXPORT fdb_bool_t fdb_future_reboot_worker( FDBFuture* f, FDBDatabase* db, uint8_t const* value, int value_length, fdb_bool_t check); #else typedef struct keyvalue { const void* key; @@ -164,6 +163,9 @@ extern "C" { DLLEXPORT WARN_UNUSED_RESULT fdb_error_t fdb_database_create_transaction( FDBDatabase* d, FDBTransaction** out_transaction ); + + DLLEXPORT WARN_UNUSED_RESULT FDBFuture* + fdb_database_reboot_worker( FDBDatabase* db, uint8_t const* value, int value_length, fdb_bool_t check, int duration); DLLEXPORT void fdb_transaction_destroy( FDBTransaction* tr); diff --git a/fdbclient/DatabaseContext.h b/fdbclient/DatabaseContext.h index b0d4afb6c1..a126198683 100644 --- a/fdbclient/DatabaseContext.h +++ b/fdbclient/DatabaseContext.h @@ -202,6 +202,10 @@ public: Future connectionFileChanged(); bool switchable = false; + // Management API + // Attempt to kill or suspend a process + Future rebootWorker(ValueRef addr, bool check = false, uint32_t duration = 0); + //private: explicit DatabaseContext( Reference>> connectionFile, Reference> clientDBInfo, Future clientInfoMonitor, TaskPriority taskID, LocalityData const& clientLocality, diff --git a/fdbclient/IClientApi.h b/fdbclient/IClientApi.h index 154ac9723f..397dd81f68 100644 --- a/fdbclient/IClientApi.h +++ b/fdbclient/IClientApi.h @@ -82,6 +82,8 @@ public: virtual void addref() = 0; virtual void delref() = 0; + + virtual ThreadFuture rebootWorker(const ValueRef& value, bool check, uint32_t duration) = 0; }; class IClientApi { diff --git a/fdbclient/MultiVersionTransaction.actor.cpp b/fdbclient/MultiVersionTransaction.actor.cpp index 7dedd2f267..aebfaeb0eb 100644 --- a/fdbclient/MultiVersionTransaction.actor.cpp +++ b/fdbclient/MultiVersionTransaction.actor.cpp @@ -264,6 +264,10 @@ Reference DLDatabase::createTransaction() { void DLDatabase::setOption(FDBDatabaseOptions::Option option, Optional value) { throwIfError(api->databaseSetOption(db, option, value.present() ? value.get().begin() : NULL, value.present() ? value.get().size() : 0)); } + +ThreadFuture DLDatabase::rebootWorker(const ValueRef& value, bool check, uint32_t duration) { + return api->databaseRebootWorker(db, value.begin(), value.size(), check, duration); +} // DLApi template @@ -744,6 +748,13 @@ void MultiVersionDatabase::setOption(FDBDatabaseOptions::Option option, Optional } } +ThreadFuture MultiVersionDatabase::rebootWorker(const ValueRef& value, bool check, uint32_t duration) { + if (dbState->db) { + return dbState->db->rebootWorker(value, check, duration); + } + return false; +} + void MultiVersionDatabase::Connector::connect() { addref(); onMainThreadVoid([this]() { diff --git a/fdbclient/MultiVersionTransaction.h b/fdbclient/MultiVersionTransaction.h index c803032cc7..7e23129f29 100644 --- a/fdbclient/MultiVersionTransaction.h +++ b/fdbclient/MultiVersionTransaction.h @@ -60,7 +60,8 @@ struct FdbCApi : public ThreadSafeReferenceCounted { //Database fdb_error_t (*databaseCreateTransaction)(FDBDatabase *database, FDBTransaction **tr); fdb_error_t (*databaseSetOption)(FDBDatabase *database, FDBDatabaseOptions::Option option, uint8_t const *value, int valueLength); - void (*databaseDestroy)(FDBDatabase *database); + void (*databaseDestroy)(FDBDatabase *database); + FDBFuture* (*databaseRebootWorker)(FDBDatabase *database, uint8_t const *value, int valueLength, fdb_bool_t check, int duration); //Transaction fdb_error_t (*transactionSetOption)(FDBTransaction *tr, FDBTransactionOptions::Option option, uint8_t const *value, int valueLength); @@ -181,6 +182,8 @@ public: void addref() override { ThreadSafeReferenceCounted::addref(); } void delref() override { ThreadSafeReferenceCounted::delref(); } + ThreadFuture rebootWorker(const ValueRef& value, bool check, uint32_t duration) override; + private: const Reference api; FdbCApi::FDBDatabase* db; // Always set if API version >= 610, otherwise guaranteed to be set when onReady future is set @@ -309,6 +312,8 @@ public: static Reference debugCreateFromExistingDatabase(Reference db); + ThreadFuture rebootWorker(const ValueRef& value, bool check, uint32_t duration); + private: struct DatabaseState; diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index 8693fa0e23..8d34da428c 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -4548,7 +4548,7 @@ ACTOR Future addInterface( std::map rebootWorkerActor(Database cx, const ValueRef& addr, bool check) { +ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool check) { // fetch the addresses of all workers state std::map> address_interface; state Standalone kvs = wait(getWorkerInterfaces(cx->getConnectionFile())); @@ -4568,6 +4568,6 @@ ACTOR Future rebootWorkerActor(Database cx, const ValueRef& addr, bool che return true; } -Future rebootWorker(Database cx, const ValueRef& addr, bool check) { - return rebootWorkerActor(cx, addr, check); +Future DatabaseContext::rebootWorker(ValueRef addr, bool check, uint32_t duration) { + return rebootWorkerActor(this, addr, check); } \ No newline at end of file diff --git a/fdbclient/NativeAPI.actor.h b/fdbclient/NativeAPI.actor.h index a75c746b60..8ef8d41f38 100644 --- a/fdbclient/NativeAPI.actor.h +++ b/fdbclient/NativeAPI.actor.h @@ -357,8 +357,5 @@ ACTOR Future snapCreate(Database cx, Standalone snapCmd, UID sn // Checks with Data Distributor that it is safe to mark all servers in exclusions as failed ACTOR Future checkSafeExclusions(Database cx, vector exclusions); -// Attempt to kill a process -Future rebootWorker(Database cx, const ValueRef& addr, bool check); - #include "flow/unactorcompiler.h" #endif diff --git a/fdbclient/ThreadSafeTransaction.cpp b/fdbclient/ThreadSafeTransaction.cpp index e33bf70f63..1a20ff1abd 100644 --- a/fdbclient/ThreadSafeTransaction.cpp +++ b/fdbclient/ThreadSafeTransaction.cpp @@ -67,6 +67,13 @@ void ThreadSafeDatabase::setOption( FDBDatabaseOptions::Option option, Optional< }, &db->deferredError ); } +ThreadFuture ThreadSafeDatabase::rebootWorker(const ValueRef& value, bool check, uint32_t duration) { + DatabaseContext *db = this->db; + return onMainThread( [db, value, check, duration]() -> Future { + return db->rebootWorker(value, check, duration); + } ); +} + ThreadSafeDatabase::ThreadSafeDatabase(std::string connFilename, int apiVersion) { ClusterConnectionFile *connFile = new ClusterConnectionFile(ClusterConnectionFile::lookupClusterFileName(connFilename).first); diff --git a/fdbclient/ThreadSafeTransaction.h b/fdbclient/ThreadSafeTransaction.h index 8e364ed3a3..add1d1212b 100644 --- a/fdbclient/ThreadSafeTransaction.h +++ b/fdbclient/ThreadSafeTransaction.h @@ -41,6 +41,8 @@ public: void addref() { ThreadSafeReferenceCounted::addref(); } void delref() { ThreadSafeReferenceCounted::delref(); } + ThreadFuture rebootWorker(const ValueRef& value, bool check, uint32_t duration); + private: friend class ThreadSafeTransaction; DatabaseContext* db; From dc5b8875ce93ba0abe983b99d7170f7db76f84f5 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Mon, 14 Sep 2020 16:45:17 -0700 Subject: [PATCH 003/261] Format code --- bindings/c/foundationdb/fdb_c.h | 1 - 1 file changed, 1 deletion(-) diff --git a/bindings/c/foundationdb/fdb_c.h b/bindings/c/foundationdb/fdb_c.h index ed1a441e8b..f34656db1e 100644 --- a/bindings/c/foundationdb/fdb_c.h +++ b/bindings/c/foundationdb/fdb_c.h @@ -98,7 +98,6 @@ extern "C" { const uint8_t* value; int value_length; } FDBKeyValue; - #else typedef struct keyvalue { const void* key; From cc32074ed706aded0a173b511cf0482bb7d09d2d Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Mon, 14 Sep 2020 16:45:34 -0700 Subject: [PATCH 004/261] Rename actor --- fdbclient/NativeAPI.actor.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index 8d34da428c..e93ff4afb0 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -4524,7 +4524,7 @@ ACTOR Future checkSafeExclusions(Database cx, vector exc return (ddCheck && coordinatorCheck); } -ACTOR Future addInterface( std::map>* address_interface, Reference connectLock, KeyValue kv) { +ACTOR Future addInterfaceActor( std::map>* address_interface, Reference connectLock, KeyValue kv) { wait(connectLock->take()); state FlowLock::Releaser releaser(*connectLock); state ClientWorkerInterface workerInterf = BinaryReader::fromStringRef(kv.value, IncludeVersion()); @@ -4556,7 +4556,7 @@ ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool ch Reference connectLock(new FlowLock(CLIENT_KNOBS->CLI_CONNECT_PARALLELISM)); std::vector> addInterfs; for( auto it : kvs ) { - addInterfs.push_back(addInterface(&address_interface, connectLock, it)); + addInterfs.push_back(addInterfaceActor(&address_interface, connectLock, it)); } wait( waitForAll(addInterfs) ); if (!address_interface.count(addr)) @@ -4570,4 +4570,4 @@ ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool ch Future DatabaseContext::rebootWorker(ValueRef addr, bool check, uint32_t duration) { return rebootWorkerActor(this, addr, check); -} \ No newline at end of file +} From 70440b858d7ad086b7903e4783e2f00daf76cceb Mon Sep 17 00:00:00 2001 From: Markus Pilman Date: Thu, 22 Oct 2020 14:21:23 -0600 Subject: [PATCH 005/261] add toml11 to docker image --- build/Dockerfile | 7 +++++++ build/Dockerfile.devel | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 6e1e2353c9..505ebeaa4e 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -53,6 +53,13 @@ RUN cd /tmp && curl -L https://www.openssl.org/source/openssl-1.1.1h.tar.gz -o o ln -sv /usr/local/lib64/lib*.so.1.1 /usr/lib64/ &&\ cd /tmp/ && rm -rf /tmp/openssl-1.1.1h /tmp/openssl.tar.gz +# Install toml11 + RUN cd /tmp && curl -L https://github.com/ToruNiina/toml11/archive/v3.4.0.tar.gz > toml.tar.gz &&\ + echo "bc6d733efd9216af8c119d8ac64a805578c79cc82b813e4d1d880ca128bd154d toml.tar.gz" > toml-sha256.txt &&\ + sha256sum -c toml-sha256.txt &&\ + tar xf toml.tar.gz && rm -rf build && mkdir build && cd build && cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -Dtoml11_BUILD_TEST=OFF ../toml11-3.4.0 &&\ + cmake --build . --target install && cd / && rm -rf tmp/build && rm -rf tmp/toml11-3.4.0 + RUN cd /opt/ && curl -L https://github.com/facebook/rocksdb/archive/v6.10.1.tar.gz -o rocksdb.tar.gz &&\ echo "d573d2f15cdda883714f7e0bc87b814a8d4a53a82edde558f08f940e905541ee rocksdb.tar.gz" > rocksdb-sha.txt &&\ sha256sum -c rocksdb-sha.txt && tar xf rocksdb.tar.gz && rm -rf rocksdb.tar.gz rocksdb-sha.txt diff --git a/build/Dockerfile.devel b/build/Dockerfile.devel index 70ca319ed4..67db4c15b6 100644 --- a/build/Dockerfile.devel +++ b/build/Dockerfile.devel @@ -50,8 +50,8 @@ RUN cp -iv /usr/local/bin/clang++ /usr/local/bin/clang++.deref &&\ ldconfig &&\ rm -rf /mnt/artifacts -LABEL version=0.11.9 -ENV DOCKER_IMAGEVER=0.11.9 +LABEL version=0.11.10 +ENV DOCKER_IMAGEVER=0.11.10 ENV CLANGCC=/usr/local/bin/clang.de8a65ef ENV CLANGCXX=/usr/local/bin/clang++.de8a65ef From 531c106b32b87807488e7c82cf777731c1f82ec9 Mon Sep 17 00:00:00 2001 From: Markus Pilman Date: Mon, 26 Oct 2020 11:41:13 -0600 Subject: [PATCH 006/261] add toml11 to docker image --- build/Dockerfile | 4 ++-- build/docker-compose.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 505ebeaa4e..b7c9576d67 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -68,8 +68,8 @@ RUN cd /opt/ && curl -L https://github.com/facebook/rocksdb/archive/v6.10.1.tar. ARG TIMEZONEINFO=America/Los_Angeles RUN rm -f /etc/localtime && ln -s /usr/share/zoneinfo/${TIMEZONEINFO} /etc/localtime -LABEL version=0.1.18 -ENV DOCKER_IMAGEVER=0.1.18 +LABEL version=0.1.19 +ENV DOCKER_IMAGEVER=0.1.19 ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0 ENV CC=/opt/rh/devtoolset-8/root/usr/bin/gcc ENV CXX=/opt/rh/devtoolset-8/root/usr/bin/g++ diff --git a/build/docker-compose.yaml b/build/docker-compose.yaml index 3ebecfbe64..98f0ac691e 100644 --- a/build/docker-compose.yaml +++ b/build/docker-compose.yaml @@ -2,7 +2,7 @@ version: "3" services: common: &common - image: foundationdb/foundationdb-build:0.1.18 + image: foundationdb/foundationdb-build:0.1.19 build-setup: &build-setup <<: *common From fd82085a9c1764253dd25974a8f0b9cf6aae68ce Mon Sep 17 00:00:00 2001 From: Markus Pilman Date: Tue, 27 Oct 2020 10:47:32 -0600 Subject: [PATCH 007/261] Update build/Dockerfile Co-authored-by: Alvin Moore <36203359+AlvinMooreSr@users.noreply.github.com> --- build/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index b7c9576d67..7dbbdd3cab 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -68,8 +68,8 @@ RUN cd /opt/ && curl -L https://github.com/facebook/rocksdb/archive/v6.10.1.tar. ARG TIMEZONEINFO=America/Los_Angeles RUN rm -f /etc/localtime && ln -s /usr/share/zoneinfo/${TIMEZONEINFO} /etc/localtime -LABEL version=0.1.19 -ENV DOCKER_IMAGEVER=0.1.19 +LABEL version=0.1.20 +ENV DOCKER_IMAGEVER=0.1.20 ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0 ENV CC=/opt/rh/devtoolset-8/root/usr/bin/gcc ENV CXX=/opt/rh/devtoolset-8/root/usr/bin/g++ From 639fe8ca38b6c7ca89015228ec4adeb1cc2efd7e Mon Sep 17 00:00:00 2001 From: Markus Pilman Date: Tue, 27 Oct 2020 10:47:40 -0600 Subject: [PATCH 008/261] Update build/Dockerfile.devel Co-authored-by: Alvin Moore <36203359+AlvinMooreSr@users.noreply.github.com> --- build/Dockerfile.devel | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.devel b/build/Dockerfile.devel index 67db4c15b6..81bddbb178 100644 --- a/build/Dockerfile.devel +++ b/build/Dockerfile.devel @@ -50,8 +50,8 @@ RUN cp -iv /usr/local/bin/clang++ /usr/local/bin/clang++.deref &&\ ldconfig &&\ rm -rf /mnt/artifacts -LABEL version=0.11.10 -ENV DOCKER_IMAGEVER=0.11.10 +LABEL version=0.11.11 +ENV DOCKER_IMAGEVER=0.11.11 ENV CLANGCC=/usr/local/bin/clang.de8a65ef ENV CLANGCXX=/usr/local/bin/clang++.de8a65ef From 02d979988cb812e0be16962477d8c9f5cdc043d6 Mon Sep 17 00:00:00 2001 From: Markus Pilman Date: Tue, 27 Oct 2020 10:47:47 -0600 Subject: [PATCH 009/261] Update build/docker-compose.yaml Co-authored-by: Alvin Moore <36203359+AlvinMooreSr@users.noreply.github.com> --- build/docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/docker-compose.yaml b/build/docker-compose.yaml index 98f0ac691e..048d468dab 100644 --- a/build/docker-compose.yaml +++ b/build/docker-compose.yaml @@ -2,7 +2,7 @@ version: "3" services: common: &common - image: foundationdb/foundationdb-build:0.1.19 + image: foundationdb/foundationdb-build:0.1.20 build-setup: &build-setup <<: *common From af2ac5753229ffdab00f2cfc30bd7fb295e95e4a Mon Sep 17 00:00:00 2001 From: Markus Pilman Date: Tue, 27 Oct 2020 16:42:34 -0600 Subject: [PATCH 010/261] Update build/Dockerfile Co-authored-by: Alvin Moore <36203359+AlvinMooreSr@users.noreply.github.com> --- build/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 7dbbdd3cab..8a4cb7f675 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -57,8 +57,8 @@ RUN cd /tmp && curl -L https://www.openssl.org/source/openssl-1.1.1h.tar.gz -o o RUN cd /tmp && curl -L https://github.com/ToruNiina/toml11/archive/v3.4.0.tar.gz > toml.tar.gz &&\ echo "bc6d733efd9216af8c119d8ac64a805578c79cc82b813e4d1d880ca128bd154d toml.tar.gz" > toml-sha256.txt &&\ sha256sum -c toml-sha256.txt &&\ - tar xf toml.tar.gz && rm -rf build && mkdir build && cd build && cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -Dtoml11_BUILD_TEST=OFF ../toml11-3.4.0 &&\ - cmake --build . --target install && cd / && rm -rf tmp/build && rm -rf tmp/toml11-3.4.0 + tar xf toml.tar.gz && rm -rf build && mkdir build && cd build && scl enable devtoolset-8 -- cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -Dtoml11_BUILD_TEST=OFF ../toml11-3.4.0 &&\ + scl enable devtoolset-8 -- cmake --build . --target install && cd / && rm -rf tmp/build && rm -rf tmp/toml11-3.4.0 RUN cd /opt/ && curl -L https://github.com/facebook/rocksdb/archive/v6.10.1.tar.gz -o rocksdb.tar.gz &&\ echo "d573d2f15cdda883714f7e0bc87b814a8d4a53a82edde558f08f940e905541ee rocksdb.tar.gz" > rocksdb-sha.txt &&\ From eab75d4ee1f5ff90b4a8dcfaec0dd42829443303 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 14 Nov 2020 19:22:04 -0800 Subject: [PATCH 011/261] Make enums automatically binary serializable --- fdbclient/ClientWorkerInterface.h | 2 -- fdbclient/TagThrottle.h | 4 +--- fdbserver/LogSystemConfig.h | 1 - fdbserver/RecoveryState.h | 1 - fdbserver/RestoreUtil.h | 3 +-- flow/serialize.h | 17 ++++++++++++++--- 6 files changed, 16 insertions(+), 12 deletions(-) diff --git a/fdbclient/ClientWorkerInterface.h b/fdbclient/ClientWorkerInterface.h index c4bdb2bc1b..53378d2193 100644 --- a/fdbclient/ClientWorkerInterface.h +++ b/fdbclient/ClientWorkerInterface.h @@ -93,7 +93,5 @@ struct ProfilerRequest { serializer(ar, reply, type, action, duration, outputFile); } }; -BINARY_SERIALIZABLE( ProfilerRequest::Type ); -BINARY_SERIALIZABLE( ProfilerRequest::Action ); #endif diff --git a/fdbclient/TagThrottle.h b/fdbclient/TagThrottle.h index 586930d49e..dfadd00ff9 100644 --- a/fdbclient/TagThrottle.h +++ b/fdbclient/TagThrottle.h @@ -169,7 +169,7 @@ struct TagThrottleValue { template void serialize(Ar& ar) { if(ar.protocolVersion().hasTagThrottleValueReason()) { - serializer(ar, tpsRate, expirationTime, initialDuration, reinterpret_cast(reason)); + serializer(ar, tpsRate, expirationTime, initialDuration, reason); } else if(ar.protocolVersion().hasTagThrottleValue()) { serializer(ar, tpsRate, expirationTime, initialDuration); @@ -216,8 +216,6 @@ namespace ThrottleApi { Future enableAuto(Database const& db, bool const& enabled); }; -BINARY_SERIALIZABLE(TransactionPriority); - template using TransactionTagMap = std::unordered_map>; diff --git a/fdbserver/LogSystemConfig.h b/fdbserver/LogSystemConfig.h index 37834f63d2..735d136c9a 100644 --- a/fdbserver/LogSystemConfig.h +++ b/fdbserver/LogSystemConfig.h @@ -203,7 +203,6 @@ enum class LogSystemType { empty = 0, // Never used. tagPartitioned = 2, }; -BINARY_SERIALIZABLE(LogSystemType); struct LogSystemConfig { constexpr static FileIdentifier file_identifier = 16360847; diff --git a/fdbserver/RecoveryState.h b/fdbserver/RecoveryState.h index 9d710d2b1b..45e80a4377 100644 --- a/fdbserver/RecoveryState.h +++ b/fdbserver/RecoveryState.h @@ -28,7 +28,6 @@ // is slightly more detailed and is used by the status infrastructure. But I'm scared to make changes to the former so close to 1.0 release, so I'm making the latter. enum class RecoveryState { UNINITIALIZED = 0, READING_CSTATE = 1, LOCKING_CSTATE = 2, RECRUITING = 3, RECOVERY_TRANSACTION = 4, WRITING_CSTATE = 5, ACCEPTING_COMMITS = 6, ALL_LOGS_RECRUITED = 7, STORAGE_RECOVERED = 8, FULLY_RECOVERED = 9 }; -BINARY_SERIALIZABLE( RecoveryState ); namespace RecoveryStatus { enum RecoveryStatus { diff --git a/fdbserver/RestoreUtil.h b/fdbserver/RestoreUtil.h index db16352198..7055365961 100644 --- a/fdbserver/RestoreUtil.h +++ b/fdbserver/RestoreUtil.h @@ -80,7 +80,6 @@ using VersionedMutationsVec = Standalone>; using SampledMutationsVec = Standalone>; enum class RestoreRole { Invalid = 0, Controller = 1, Loader, Applier }; -BINARY_SERIALIZABLE(RestoreRole); std::string getRoleStr(RestoreRole role); extern const std::vector RestoreRoleStr; extern int numRoles; @@ -130,4 +129,4 @@ struct RestoreSimpleRequest : TimedRequest { bool isRangeMutation(MutationRef m); -#endif // FDBSERVER_RESTOREUTIL_H \ No newline at end of file +#endif // FDBSERVER_RESTOREUTIL_H diff --git a/flow/serialize.h b/flow/serialize.h index 4574da593a..d446fe39e6 100644 --- a/flow/serialize.h +++ b/flow/serialize.h @@ -40,9 +40,11 @@ // A more intelligent SFINAE that does "binarySerialize if POD and no serialize() is defined" could // replace the usage of is_binary_serializable. template -struct is_binary_serializable { enum { value = 0 }; }; +struct is_binary_serializable : std::false_type {}; -#define BINARY_SERIALIZABLE( T ) template<> struct is_binary_serializable { enum { value = 1 }; }; +#define BINARY_SERIALIZABLE(T) \ + template <> \ + struct is_binary_serializable : std::true_type {}; BINARY_SERIALIZABLE( int8_t ); BINARY_SERIALIZABLE( uint8_t ); @@ -142,13 +144,22 @@ inline void save( Archive& ar, const std::string& value ) { } template -class Serializer< Archive, T, typename std::enable_if< is_binary_serializable::value >::type> { +class Serializer::value>> { public: static void serialize( Archive& ar, T& t ) { ar.serializeBinaryItem(t); } }; +template +class Serializer>> { +public: + static void serialize(Archive& ar, T& t) { + static_assert(is_binary_serializable>::value); + ar.serializeBinaryItem(reinterpret_cast&>(t)); + } +}; + template class Serializer< Archive, std::pair, void > { public: From 82a50ea157f980860235a73f6dbc3107cabc3e52 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 14 Nov 2020 19:22:19 -0800 Subject: [PATCH 012/261] Improve type safety of ClientLogEvents --- fdbclient/ClientLogEvents.h | 128 +++++++++--------- ...entTransactionProfileCorrectness.actor.cpp | 19 ++- 2 files changed, 76 insertions(+), 71 deletions(-) diff --git a/fdbclient/ClientLogEvents.h b/fdbclient/ClientLogEvents.h index 67c4ba64d0..2d2cd47419 100644 --- a/fdbclient/ClientLogEvents.h +++ b/fdbclient/ClientLogEvents.h @@ -23,46 +23,39 @@ #define FDBCLIENT_CLIENTLOGEVENTS_H namespace FdbClientLogEvents { - typedef int EventType; - enum { GET_VERSION_LATENCY = 0, - GET_LATENCY = 1, - GET_RANGE_LATENCY = 2, - COMMIT_LATENCY = 3, - ERROR_GET = 4, - ERROR_GET_RANGE = 5, - ERROR_COMMIT = 6, +enum class EventType { + GET_VERSION_LATENCY = 0, + GET_LATENCY = 1, + GET_RANGE_LATENCY = 2, + COMMIT_LATENCY = 3, + ERROR_GET = 4, + ERROR_GET_RANGE = 5, + ERROR_COMMIT = 6, + UNSET +}; - EVENTTYPEEND // End of EventType - }; +enum class TransactionPriorityType { PRIORITY_DEFAULT = 0, PRIORITY_BATCH = 1, PRIORITY_IMMEDIATE = 2, UNSET }; - typedef int TrasactionPriorityType; - enum { - PRIORITY_DEFAULT = 0, - PRIORITY_BATCH = 1, - PRIORITY_IMMEDIATE = 2, - PRIORITY_END - }; +struct Event { + Event(EventType t, double ts, const Optional>& dc) : type(t), startTs(ts) { + if (dc.present()) dcId = dc.get(); + } + Event() {} - struct Event { - Event(EventType t, double ts, const Optional> &dc) : type(t), startTs(ts){ - if (dc.present()) - dcId = dc.get(); - } - Event() { } - - template Ar& serialize(Ar &ar) { - if (ar.protocolVersion().version() >= (uint64_t) 0x0FDB00B063010001LL) { - return serializer(ar, type, startTs, dcId); - } else { - return serializer(ar, type, startTs); - } + template + Ar& serialize(Ar& ar) { + if (ar.protocolVersion().version() >= (uint64_t)0x0FDB00B063010001LL) { + return serializer(ar, type, startTs, dcId); + } else { + return serializer(ar, type, startTs); } + } - EventType type{ EVENTTYPEEND }; - double startTs{ 0 }; - Key dcId{}; + EventType type{ EventType::UNSET }; + double startTs{ 0 }; + Key dcId{}; - void logEvent(std::string id, int maxFieldLength) const {} + void logEvent(std::string id, int maxFieldLength) const {} }; struct EventGetVersion : public Event { @@ -96,9 +89,9 @@ namespace FdbClientLogEvents { } double latency; - TrasactionPriorityType priorityType {PRIORITY_END}; + TransactionPriorityType priorityType{ TransactionPriorityType::UNSET }; - void logEvent(std::string id, int maxFieldLength) const { + void logEvent(std::string id, int maxFieldLength) const { TraceEvent("TransactionTrace_GetVersion") .detail("TransactionID", id) .detail("Latency", latency) @@ -108,23 +101,25 @@ namespace FdbClientLogEvents { // Version V3 of EventGetVersion starting at 6.3 struct EventGetVersion_V3 : public Event { - EventGetVersion_V3(double ts, const Optional> &dcId, double lat, TransactionPriority priority, Version version) : Event(GET_VERSION_LATENCY, ts, dcId), latency(lat), readVersion(version) { - switch(priority) { + EventGetVersion_V3(double ts, const Optional>& dcId, double lat, + TransactionPriority priority, Version version) + : Event(EventType::GET_VERSION_LATENCY, ts, dcId), latency(lat), readVersion(version) { + switch(priority) { // Unfortunately, the enum serialized here disagrees with the enum used elsewhere for the values used by each priority case TransactionPriority::IMMEDIATE: - priorityType = PRIORITY_IMMEDIATE; - break; + priorityType = TransactionPriorityType::PRIORITY_IMMEDIATE; + break; case TransactionPriority::DEFAULT: - priorityType = PRIORITY_DEFAULT; - break; + priorityType = TransactionPriorityType::PRIORITY_DEFAULT; + break; case TransactionPriority::BATCH: - priorityType = PRIORITY_BATCH; - break; + priorityType = TransactionPriorityType::PRIORITY_BATCH; + break; default: ASSERT(false); } - } - EventGetVersion_V3() { } + } + EventGetVersion_V3() { } template Ar& serialize(Ar &ar) { if (!ar.isDeserializing) @@ -134,8 +129,8 @@ namespace FdbClientLogEvents { } double latency; - TrasactionPriorityType priorityType {PRIORITY_END}; - Version readVersion; + TransactionPriorityType priorityType{ TransactionPriorityType::UNSET }; + Version readVersion; void logEvent(std::string id, int maxFieldLength) const { TraceEvent("TransactionTrace_GetVersion") @@ -147,8 +142,9 @@ namespace FdbClientLogEvents { }; struct EventGet : public Event { - EventGet(double ts, const Optional> &dcId, double lat, int size, const KeyRef &in_key) : Event(GET_LATENCY, ts, dcId), latency(lat), valueSize(size), key(in_key) { } - EventGet() { } + EventGet(double ts, const Optional>& dcId, double lat, int size, const KeyRef& in_key) + : Event(EventType::GET_LATENCY, ts, dcId), latency(lat), valueSize(size), key(in_key) {} + EventGet() { } template Ar& serialize(Ar &ar) { if (!ar.isDeserializing) @@ -173,8 +169,11 @@ namespace FdbClientLogEvents { }; struct EventGetRange : public Event { - EventGetRange(double ts, const Optional> &dcId, double lat, int size, const KeyRef &start_key, const KeyRef & end_key) : Event(GET_RANGE_LATENCY, ts, dcId), latency(lat), rangeSize(size), startKey(start_key), endKey(end_key) { } - EventGetRange() { } + EventGetRange(double ts, const Optional>& dcId, double lat, int size, + const KeyRef& start_key, const KeyRef& end_key) + : Event(EventType::GET_RANGE_LATENCY, ts, dcId), latency(lat), rangeSize(size), startKey(start_key), + endKey(end_key) {} + EventGetRange() { } template Ar& serialize(Ar &ar) { if (!ar.isDeserializing) @@ -252,9 +251,11 @@ namespace FdbClientLogEvents { // Version V2 of EventGetVersion starting at 6.3 struct EventCommit_V2 : public Event { - EventCommit_V2(double ts, const Optional> &dcId, double lat, int mut, int bytes, Version version, const CommitTransactionRequest &commit_req) - : Event(COMMIT_LATENCY, ts, dcId), latency(lat), numMutations(mut), commitBytes(bytes), commitVersion(version), req(commit_req) { } - EventCommit_V2() { } + EventCommit_V2(double ts, const Optional>& dcId, double lat, int mut, int bytes, + Version version, const CommitTransactionRequest& commit_req) + : Event(EventType::COMMIT_LATENCY, ts, dcId), latency(lat), numMutations(mut), commitBytes(bytes), + commitVersion(version), req(commit_req) {} + EventCommit_V2() { } template Ar& serialize(Ar &ar) { if (!ar.isDeserializing) @@ -306,8 +307,9 @@ namespace FdbClientLogEvents { }; struct EventGetError : public Event { - EventGetError(double ts, const Optional> &dcId, int err_code, const KeyRef &in_key) : Event(ERROR_GET, ts, dcId), errCode(err_code), key(in_key) { } - EventGetError() { } + EventGetError(double ts, const Optional>& dcId, int err_code, const KeyRef& in_key) + : Event(EventType::ERROR_GET, ts, dcId), errCode(err_code), key(in_key) {} + EventGetError() { } template Ar& serialize(Ar &ar) { if (!ar.isDeserializing) @@ -330,8 +332,10 @@ namespace FdbClientLogEvents { }; struct EventGetRangeError : public Event { - EventGetRangeError(double ts, const Optional> &dcId, int err_code, const KeyRef &start_key, const KeyRef & end_key) : Event(ERROR_GET_RANGE, ts, dcId), errCode(err_code), startKey(start_key), endKey(end_key) { } - EventGetRangeError() { } + EventGetRangeError(double ts, const Optional>& dcId, int err_code, + const KeyRef& start_key, const KeyRef& end_key) + : Event(EventType::ERROR_GET_RANGE, ts, dcId), errCode(err_code), startKey(start_key), endKey(end_key) {} + EventGetRangeError() { } template Ar& serialize(Ar &ar) { if (!ar.isDeserializing) @@ -356,8 +360,10 @@ namespace FdbClientLogEvents { }; struct EventCommitError : public Event { - EventCommitError(double ts, const Optional> &dcId, int err_code, const CommitTransactionRequest &commit_req) : Event(ERROR_COMMIT, ts, dcId), errCode(err_code), req(commit_req) { } - EventCommitError() { } + EventCommitError(double ts, const Optional>& dcId, int err_code, + const CommitTransactionRequest& commit_req) + : Event(EventType::ERROR_COMMIT, ts, dcId), errCode(err_code), req(commit_req) {} + EventCommitError() { } template Ar& serialize(Ar &ar) { if (!ar.isDeserializing) diff --git a/fdbserver/workloads/ClientTransactionProfileCorrectness.actor.cpp b/fdbserver/workloads/ClientTransactionProfileCorrectness.actor.cpp index e160312718..d642b44b82 100644 --- a/fdbserver/workloads/ClientTransactionProfileCorrectness.actor.cpp +++ b/fdbserver/workloads/ClientTransactionProfileCorrectness.actor.cpp @@ -36,15 +36,14 @@ namespace ClientLogEventsParser { FdbClientLogEvents::EventGetVersion_V2 gv; reader >> gv; ASSERT(gv.latency < 10000); - ASSERT(gv.priorityType >= 0 && gv.priorityType < FdbClientLogEvents::PRIORITY_END); } void parseEventGetVersion_V3(BinaryReader &reader) { FdbClientLogEvents::EventGetVersion_V3 gv; reader >> gv; ASSERT(gv.latency < 10000); - ASSERT(gv.priorityType >= 0 && gv.priorityType < FdbClientLogEvents::PRIORITY_END && gv.readVersion > 0); - } + ASSERT(gv.readVersion > 0); + } void parseEventGet(BinaryReader &reader) { FdbClientLogEvents::EventGet g; @@ -142,25 +141,25 @@ bool checkTxInfoEntryFormat(BinaryReader &reader) { reader >> event; switch (event.type) { - case FdbClientLogEvents::GET_VERSION_LATENCY: + case FdbClientLogEvents::EventType::GET_VERSION_LATENCY: parser->parseGetVersion(reader); break; - case FdbClientLogEvents::GET_LATENCY: + case FdbClientLogEvents::EventType::GET_LATENCY: parser->parseGet(reader); break; - case FdbClientLogEvents::GET_RANGE_LATENCY: + case FdbClientLogEvents::EventType::GET_RANGE_LATENCY: parser->parseGetRange(reader); break; - case FdbClientLogEvents::COMMIT_LATENCY: + case FdbClientLogEvents::EventType::COMMIT_LATENCY: parser->parseCommit(reader); break; - case FdbClientLogEvents::ERROR_GET: + case FdbClientLogEvents::EventType::ERROR_GET: parser->parseErrorGet(reader); break; - case FdbClientLogEvents::ERROR_GET_RANGE: + case FdbClientLogEvents::EventType::ERROR_GET_RANGE: parser->parseErrorGetRange(reader); break; - case FdbClientLogEvents::ERROR_COMMIT: + case FdbClientLogEvents::EventType::ERROR_COMMIT: parser->parseErrorCommit(reader); break; default: From 79146d2e316615b7fa0cc13673b288807402f783 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 14 Nov 2020 22:02:46 -0800 Subject: [PATCH 013/261] Improve type-safety of backup.actor.cpp --- fdbbackup/backup.actor.cpp | 381 ++++++++++++++++++------------------- 1 file changed, 182 insertions(+), 199 deletions(-) diff --git a/fdbbackup/backup.actor.cpp b/fdbbackup/backup.actor.cpp index 0e1f43fb40..0d05b676f8 100644 --- a/fdbbackup/backup.actor.cpp +++ b/fdbbackup/backup.actor.cpp @@ -72,45 +72,32 @@ using std::endl; #include "flow/SimpleOpt.h" #include "flow/actorcompiler.h" // This must be the last #include. - // Type of program being executed -enum enumProgramExe { - EXE_AGENT, - EXE_BACKUP, - EXE_RESTORE, - EXE_FASTRESTORE_TOOL, - EXE_DR_AGENT, - EXE_DB_BACKUP, - EXE_UNDEFINED +enum class ProgramExe { AGENT, BACKUP, RESTORE, FASTRESTORE_TOOL, DR_AGENT, DB_BACKUP, UNDEFINED }; + +enum class BackupType { + UNDEFINED = 0, + START, + MODIFY, + STATUS, + ABORT, + WAIT, + DISCONTINUE, + PAUSE, + RESUME, + EXPIRE, + DELETE, + DESCRIBE, + LIST, + QUERY, + DUMP, + CLEANUP }; -enum enumBackupType { - BACKUP_UNDEFINED = 0, - BACKUP_START, - BACKUP_MODIFY, - BACKUP_STATUS, - BACKUP_ABORT, - BACKUP_WAIT, - BACKUP_DISCONTINUE, - BACKUP_PAUSE, - BACKUP_RESUME, - BACKUP_EXPIRE, - BACKUP_DELETE, - BACKUP_DESCRIBE, - BACKUP_LIST, - BACKUP_QUERY, - BACKUP_DUMP, - BACKUP_CLEANUP -}; - -enum enumDBType { - DB_UNDEFINED=0, DB_START, DB_STATUS, DB_SWITCH, DB_ABORT, DB_PAUSE, DB_RESUME -}; +enum class DBType { UNDEFINED = 0, START, STATUS, SWITCH, ABORT, PAUSE, RESUME }; // New fast restore reuses the type from legacy slow restore -enum enumRestoreType { - RESTORE_UNKNOWN, RESTORE_START, RESTORE_STATUS, RESTORE_ABORT, RESTORE_WAIT -}; +enum class RestoreType { UNKNOWN, START, STATUS, ABORT, WAIT }; // enum { @@ -1258,30 +1245,29 @@ static void printDBBackupUsage(bool devhelp) { return; } -static void printUsage(enumProgramExe programExe, bool devhelp) -{ +static void printUsage(ProgramExe programExe, bool devhelp) { switch (programExe) { - case EXE_AGENT: + case ProgramExe::AGENT: printAgentUsage(devhelp); break; - case EXE_BACKUP: + case ProgramExe::BACKUP: printBackupUsage(devhelp); break; - case EXE_RESTORE: + case ProgramExe::RESTORE: printRestoreUsage(devhelp); break; - case EXE_FASTRESTORE_TOOL: + case ProgramExe::FASTRESTORE_TOOL: printFastRestoreUsage(devhelp); break; - case EXE_DR_AGENT: + case ProgramExe::DR_AGENT: printDBAgentUsage(devhelp); break; - case EXE_DB_BACKUP: + case ProgramExe::DB_BACKUP: printDBBackupUsage(devhelp); break; - case EXE_UNDEFINED: + case ProgramExe::UNDEFINED: default: break; } @@ -1292,9 +1278,8 @@ static void printUsage(enumProgramExe programExe, bool devhelp) extern bool g_crashOnError; // Return the type of program executable based on the name of executable file -enumProgramExe getProgramType(std::string programExe) -{ - enumProgramExe enProgramExe = EXE_UNDEFINED; +ProgramExe getProgramType(std::string programExe) { + ProgramExe enProgramExe = ProgramExe::UNDEFINED; // lowercase the string std::transform(programExe.begin(), programExe.end(), programExe.begin(), ::tolower); @@ -1321,71 +1306,70 @@ enumProgramExe getProgramType(std::string programExe) if ((programExe.length() >= exeAgent.size()) && (programExe.compare(programExe.length()-exeAgent.size(), exeAgent.size(), (const char*) exeAgent.begin()) == 0) ) { - enProgramExe = EXE_AGENT; + enProgramExe = ProgramExe::AGENT; } // Check if backup else if ((programExe.length() >= exeBackup.size()) && (programExe.compare(programExe.length() - exeBackup.size(), exeBackup.size(), (const char*)exeBackup.begin()) == 0)) { - enProgramExe = EXE_BACKUP; + enProgramExe = ProgramExe::BACKUP; } // Check if restore else if ((programExe.length() >= exeRestore.size()) && (programExe.compare(programExe.length() - exeRestore.size(), exeRestore.size(), (const char*)exeRestore.begin()) == 0)) { - enProgramExe = EXE_RESTORE; + enProgramExe = ProgramExe::RESTORE; } // Check if restore else if ((programExe.length() >= exeFastRestoreTool.size()) && (programExe.compare(programExe.length() - exeFastRestoreTool.size(), exeFastRestoreTool.size(), (const char*)exeFastRestoreTool.begin()) == 0)) { - enProgramExe = EXE_FASTRESTORE_TOOL; + enProgramExe = ProgramExe::FASTRESTORE_TOOL; } // Check if db agent else if ((programExe.length() >= exeDatabaseAgent.size()) && (programExe.compare(programExe.length() - exeDatabaseAgent.size(), exeDatabaseAgent.size(), (const char*)exeDatabaseAgent.begin()) == 0)) { - enProgramExe = EXE_DR_AGENT; + enProgramExe = ProgramExe::DR_AGENT; } // Check if db backup else if ((programExe.length() >= exeDatabaseBackup.size()) && (programExe.compare(programExe.length() - exeDatabaseBackup.size(), exeDatabaseBackup.size(), (const char*)exeDatabaseBackup.begin()) == 0)) { - enProgramExe = EXE_DB_BACKUP; + enProgramExe = ProgramExe::DB_BACKUP; } return enProgramExe; } -enumBackupType getBackupType(std::string backupType) -{ - enumBackupType enBackupType = BACKUP_UNDEFINED; +BackupType getBackupType(std::string backupType) { + BackupType enBackupType = BackupType::UNDEFINED; // lowercase the string std::transform(backupType.begin(), backupType.end(), backupType.begin(), ::tolower); - static std::map values; + static std::map values; if(values.empty()) { - values["start"] = BACKUP_START; - values["status"] = BACKUP_STATUS; - values["abort"] = BACKUP_ABORT; - values["cleanup"] = BACKUP_CLEANUP; - values["wait"] = BACKUP_WAIT; - values["discontinue"] = BACKUP_DISCONTINUE; - values["pause"] = BACKUP_PAUSE; - values["resume"] = BACKUP_RESUME; - values["expire"] = BACKUP_EXPIRE; - values["delete"] = BACKUP_DELETE; - values["describe"] = BACKUP_DESCRIBE; - values["list"] = BACKUP_LIST; - values["query"] = BACKUP_QUERY; - values["dump"] = BACKUP_DUMP; - values["modify"] = BACKUP_MODIFY; + values["start"] = BackupType::START; + values["status"] = BackupType::STATUS; + values["abort"] = BackupType::ABORT; + values["cleanup"] = BackupType::CLEANUP; + values["wait"] = BackupType::WAIT; + values["discontinue"] = BackupType::DISCONTINUE; + values["pause"] = BackupType::PAUSE; + values["resume"] = BackupType::RESUME; + values["expire"] = BackupType::EXPIRE; + values["delete"] = BackupType::DELETE; + values["describe"] = BackupType::DESCRIBE; + values["list"] = BackupType::LIST; + values["query"] = BackupType::QUERY; + values["dump"] = BackupType::DUMP; + values["modify"] = BackupType::MODIFY; } auto i = values.find(backupType); @@ -1395,29 +1379,28 @@ enumBackupType getBackupType(std::string backupType) return enBackupType; } -enumRestoreType getRestoreType(std::string name) { - if(name == "start") return RESTORE_START; - if(name == "abort") return RESTORE_ABORT; - if(name == "status") return RESTORE_STATUS; - if(name == "wait") return RESTORE_WAIT; - return RESTORE_UNKNOWN; +RestoreType getRestoreType(std::string name) { + if (name == "start") return RestoreType::START; + if (name == "abort") return RestoreType::ABORT; + if (name == "status") return RestoreType::STATUS; + if (name == "wait") return RestoreType::WAIT; + return RestoreType::UNKNOWN; } -enumDBType getDBType(std::string dbType) -{ - enumDBType enBackupType = DB_UNDEFINED; +DBType getDBType(std::string dbType) { + DBType enBackupType = DBType::UNDEFINED; // lowercase the string std::transform(dbType.begin(), dbType.end(), dbType.begin(), ::tolower); - static std::map values; + static std::map values; if(values.empty()) { - values["start"] = DB_START; - values["status"] = DB_STATUS; - values["switch"] = DB_SWITCH; - values["abort"] = DB_ABORT; - values["pause"] = DB_PAUSE; - values["resume"] = DB_RESUME; + values["start"] = DBType::START; + values["status"] = DBType::STATUS; + values["switch"] = DBType::SWITCH; + values["abort"] = DBType::ABORT; + values["pause"] = DBType::PAUSE; + values["resume"] = DBType::RESUME; } auto i = values.find(dbType); @@ -1427,7 +1410,8 @@ enumDBType getDBType(std::string dbType) return enBackupType; } -ACTOR Future getLayerStatus(Reference tr, std::string name, std::string id, enumProgramExe exe, Database dest, bool snapshot = false) { +ACTOR Future getLayerStatus(Reference tr, std::string name, std::string id, + ProgramExe exe, Database dest, bool snapshot = false) { // This process will write a document that looks like this: // { backup : { $expires : {}, version: } // so that the value under 'backup' will eventually expire to null and thus be ignored by @@ -1459,7 +1443,7 @@ ACTOR Future getLayerStatus(Reference tr o.create("process_cpu_seconds") = getProcessorTimeProcess(); o.create("configured_workers") = CLIENT_KNOBS->BACKUP_TASKS_PER_AGENT; - if(exe == EXE_AGENT) { + if (exe == ProgramExe::AGENT) { static S3BlobStoreEndpoint::Stats last_stats; static double last_ts = 0; S3BlobStoreEndpoint::Stats current_stats = S3BlobStoreEndpoint::s_stats; @@ -1531,8 +1515,7 @@ ACTOR Future getLayerStatus(Reference tr j++; } - } - else if(exe == EXE_DR_AGENT) { + } else if (exe == ProgramExe::DR_AGENT) { state DatabaseBackupAgent dba; state Reference tr2(new ReadYourWritesTransaction(dest)); tr2->setOption(FDBTransactionOptions::ACCESS_SYSTEM_KEYS); @@ -1676,8 +1659,9 @@ ACTOR Future updateAgentPollRate(Database src, std::string rootKey, std::s } } -ACTOR Future statusUpdateActor(Database statusUpdateDest, std::string name, enumProgramExe exe, double *pollDelay, Database taskDest = Database(), - std::string id = nondeterministicRandom()->randomUniqueID().toString()) { +ACTOR Future statusUpdateActor(Database statusUpdateDest, std::string name, ProgramExe exe, double* pollDelay, + Database taskDest = Database(), + std::string id = nondeterministicRandom()->randomUniqueID().toString()) { state std::string metaKey = layerStatusMetaPrefixRange.begin.toString() + "json/" + name; state std::string rootKey = backupStatusPrefixRange.begin.toString() + name + "/json"; state std::string instanceKey = rootKey + "/" + "agent-" + id; @@ -1734,8 +1718,9 @@ ACTOR Future statusUpdateActor(Database statusUpdateDest, std::string name ACTOR Future runDBAgent(Database src, Database dest) { state double pollDelay = 1.0 / CLIENT_KNOBS->BACKUP_AGGREGATE_POLL_RATE; std::string id = nondeterministicRandom()->randomUniqueID().toString(); - state Future status = statusUpdateActor(src, "dr_backup", EXE_DR_AGENT, &pollDelay, dest, id); - state Future status_other = statusUpdateActor(dest, "dr_backup_dest", EXE_DR_AGENT, &pollDelay, dest, id); + state Future status = statusUpdateActor(src, "dr_backup", ProgramExe::DR_AGENT, &pollDelay, dest, id); + state Future status_other = + statusUpdateActor(dest, "dr_backup_dest", ProgramExe::DR_AGENT, &pollDelay, dest, id); state DatabaseBackupAgent backupAgent(src); @@ -1760,7 +1745,7 @@ ACTOR Future runDBAgent(Database src, Database dest) { ACTOR Future runAgent(Database db) { state double pollDelay = 1.0 / CLIENT_KNOBS->BACKUP_AGGREGATE_POLL_RATE; - state Future status = statusUpdateActor(db, "backup", EXE_AGENT, &pollDelay); + state Future status = statusUpdateActor(db, "backup", ProgramExe::AGENT, &pollDelay); state FileBackupAgent backupAgent; @@ -2953,22 +2938,22 @@ int main(int argc, char* argv[]) { setvbuf(stdout, NULL, _IONBF, 0); setvbuf(stderr, NULL, _IONBF, 0); - enumProgramExe programExe = getProgramType(argv[0]); - enumBackupType backupType = BACKUP_UNDEFINED; - enumRestoreType restoreType = RESTORE_UNKNOWN; - enumDBType dbType = DB_UNDEFINED; + ProgramExe programExe = getProgramType(argv[0]); + BackupType backupType = BackupType::UNDEFINED; + RestoreType restoreType = RestoreType::UNKNOWN; + DBType dbType = DBType::UNDEFINED; CSimpleOpt* args = NULL; switch (programExe) { - case EXE_AGENT: + case ProgramExe::AGENT: args = new CSimpleOpt(argc, argv, g_rgAgentOptions, SO_O_EXACT); break; - case EXE_DR_AGENT: + case ProgramExe::DR_AGENT: args = new CSimpleOpt(argc, argv, g_rgDBAgentOptions, SO_O_EXACT); break; - case EXE_BACKUP: + case ProgramExe::BACKUP: // Display backup help, if no arguments if (argc < 2) { printBackupUsage(false); @@ -2981,52 +2966,52 @@ int main(int argc, char* argv[]) { // Create the appropriate simple opt switch (backupType) { - case BACKUP_START: + case BackupType::START: args = new CSimpleOpt(argc-1, &argv[1], g_rgBackupStartOptions, SO_O_EXACT); break; - case BACKUP_STATUS: + case BackupType::STATUS: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupStatusOptions, SO_O_EXACT); break; - case BACKUP_ABORT: + case BackupType::ABORT: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupAbortOptions, SO_O_EXACT); break; - case BACKUP_CLEANUP: + case BackupType::CLEANUP: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupCleanupOptions, SO_O_EXACT); break; - case BACKUP_WAIT: + case BackupType::WAIT: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupWaitOptions, SO_O_EXACT); break; - case BACKUP_DISCONTINUE: + case BackupType::DISCONTINUE: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupDiscontinueOptions, SO_O_EXACT); break; - case BACKUP_PAUSE: + case BackupType::PAUSE: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupPauseOptions, SO_O_EXACT); break; - case BACKUP_RESUME: + case BackupType::RESUME: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupPauseOptions, SO_O_EXACT); break; - case BACKUP_EXPIRE: + case BackupType::EXPIRE: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupExpireOptions, SO_O_EXACT); break; - case BACKUP_DELETE: + case BackupType::DELETE: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupDeleteOptions, SO_O_EXACT); break; - case BACKUP_DESCRIBE: + case BackupType::DESCRIBE: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupDescribeOptions, SO_O_EXACT); break; - case BACKUP_DUMP: + case BackupType::DUMP: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupDumpOptions, SO_O_EXACT); break; - case BACKUP_LIST: + case BackupType::LIST: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupListOptions, SO_O_EXACT); break; - case BACKUP_QUERY: + case BackupType::QUERY: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupQueryOptions, SO_O_EXACT); break; - case BACKUP_MODIFY: + case BackupType::MODIFY: args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupModifyOptions, SO_O_EXACT); break; - case BACKUP_UNDEFINED: + case BackupType::UNDEFINED: default: // Display help, if requested if ((strcmp(argv[1], "-h") == 0) || @@ -3044,7 +3029,7 @@ int main(int argc, char* argv[]) { } } break; - case EXE_DB_BACKUP: + case ProgramExe::DB_BACKUP: // Display backup help, if no arguments if (argc < 2) { printDBBackupUsage(false); @@ -3057,25 +3042,25 @@ int main(int argc, char* argv[]) { // Create the appropriate simple opt switch (dbType) { - case DB_START: + case DBType::START: args = new CSimpleOpt(argc-1, &argv[1], g_rgDBStartOptions, SO_O_EXACT); break; - case DB_STATUS: + case DBType::STATUS: args = new CSimpleOpt(argc - 1, &argv[1], g_rgDBStatusOptions, SO_O_EXACT); break; - case DB_SWITCH: + case DBType::SWITCH: args = new CSimpleOpt(argc - 1, &argv[1], g_rgDBSwitchOptions, SO_O_EXACT); break; - case DB_ABORT: + case DBType::ABORT: args = new CSimpleOpt(argc - 1, &argv[1], g_rgDBAbortOptions, SO_O_EXACT); break; - case DB_PAUSE: + case DBType::PAUSE: args = new CSimpleOpt(argc - 1, &argv[1], g_rgDBPauseOptions, SO_O_EXACT); break; - case DB_RESUME: + case DBType::RESUME: args = new CSimpleOpt(argc - 1, &argv[1], g_rgDBPauseOptions, SO_O_EXACT); break; - case DB_UNDEFINED: + case DBType::UNDEFINED: default: // Display help, if requested if ((strcmp(argv[1], "-h") == 0) || @@ -3093,14 +3078,14 @@ int main(int argc, char* argv[]) { } } break; - case EXE_RESTORE: + case ProgramExe::RESTORE: if (argc < 2) { printRestoreUsage(false); return FDB_EXIT_ERROR; } // Get the restore operation type restoreType = getRestoreType(argv[1]); - if(restoreType == RESTORE_UNKNOWN) { + if (restoreType == RestoreType::UNKNOWN) { // Display help, if requested if ((strcmp(argv[1], "-h") == 0) || (strcmp(argv[1], "--help") == 0) ) @@ -3116,14 +3101,14 @@ int main(int argc, char* argv[]) { } args = new CSimpleOpt(argc - 1, argv + 1, g_rgRestoreOptions, SO_O_EXACT); break; - case EXE_FASTRESTORE_TOOL: + case ProgramExe::FASTRESTORE_TOOL: if (argc < 2) { printFastRestoreUsage(false); return FDB_EXIT_ERROR; } // Get the restore operation type restoreType = getRestoreType(argv[1]); - if (restoreType == RESTORE_UNKNOWN) { + if (restoreType == RestoreType::UNKNOWN) { // Display help, if requested if ((strcmp(argv[1], "-h") == 0) || (strcmp(argv[1], "--help") == 0)) { printFastRestoreUsage(false); @@ -3136,7 +3121,7 @@ int main(int argc, char* argv[]) { } args = new CSimpleOpt(argc - 1, argv + 1, g_rgRestoreOptions, SO_O_EXACT); break; - case EXE_UNDEFINED: + case ProgramExe::UNDEFINED: default: fprintf(stderr, "FoundationDB " FDB_VT_PACKAGE_NAME " (v" FDB_VT_VERSION ")\n"); fprintf(stderr, "ERROR: Unable to determine program type based on executable `%s'\n", argv[0]); @@ -3555,14 +3540,14 @@ int main(int argc, char* argv[]) { { switch (programExe) { - case EXE_AGENT: + case ProgramExe::AGENT: fprintf(stderr, "ERROR: Backup Agent does not support argument value `%s'\n", args->File(argLoop)); printHelpTeaser(argv[0]); return FDB_EXIT_ERROR; break; // Add the backup key range - case EXE_BACKUP: + case ProgramExe::BACKUP: // Error, if the keys option was not specified if (backupKeys.size() == 0) { fprintf(stderr, "ERROR: Unknown backup option value `%s'\n", args->File(argLoop)); @@ -3581,26 +3566,26 @@ int main(int argc, char* argv[]) { } break; - case EXE_RESTORE: + case ProgramExe::RESTORE: fprintf(stderr, "ERROR: FDB Restore does not support argument value `%s'\n", args->File(argLoop)); printHelpTeaser(argv[0]); return FDB_EXIT_ERROR; break; - case EXE_FASTRESTORE_TOOL: + case ProgramExe::FASTRESTORE_TOOL: fprintf(stderr, "ERROR: FDB Fast Restore Tool does not support argument value `%s'\n", args->File(argLoop)); printHelpTeaser(argv[0]); return FDB_EXIT_ERROR; break; - case EXE_DR_AGENT: + case ProgramExe::DR_AGENT: fprintf(stderr, "ERROR: DR Agent does not support argument value `%s'\n", args->File(argLoop)); printHelpTeaser(argv[0]); return FDB_EXIT_ERROR; break; - case EXE_DB_BACKUP: + case ProgramExe::DB_BACKUP: // Error, if the keys option was not specified if (backupKeys.size() == 0) { fprintf(stderr, "ERROR: Unknown DR option value `%s'\n", args->File(argLoop)); @@ -3619,7 +3604,7 @@ int main(int argc, char* argv[]) { } break; - case EXE_UNDEFINED: + case ProgramExe::UNDEFINED: default: return FDB_EXIT_ERROR; } @@ -3832,16 +3817,15 @@ int main(int argc, char* argv[]) { switch (programExe) { - case EXE_AGENT: + case ProgramExe::AGENT: if(!initCluster()) return FDB_EXIT_ERROR; f = stopAfter(runAgent(db)); break; - case EXE_BACKUP: + case ProgramExe::BACKUP: switch (backupType) { - case BACKUP_START: - { + case BackupType::START: { if(!initCluster()) return FDB_EXIT_ERROR; // Test out the backup url to make sure it parses. Doesn't test to make sure it's actually writeable. @@ -3852,8 +3836,7 @@ int main(int argc, char* argv[]) { break; } - case BACKUP_MODIFY: - { + case BackupType::MODIFY: { if(!initCluster()) return FDB_EXIT_ERROR; @@ -3861,49 +3844,49 @@ int main(int argc, char* argv[]) { break; } - case BACKUP_STATUS: + case BackupType::STATUS: if(!initCluster()) return FDB_EXIT_ERROR; f = stopAfter( statusBackup(db, tagName, true, jsonOutput) ); break; - case BACKUP_ABORT: + case BackupType::ABORT: if(!initCluster()) return FDB_EXIT_ERROR; f = stopAfter( abortBackup(db, tagName) ); break; - case BACKUP_CLEANUP: + case BackupType::CLEANUP: if(!initCluster()) return FDB_EXIT_ERROR; f = stopAfter( cleanupMutations(db, deleteData) ); break; - case BACKUP_WAIT: + case BackupType::WAIT: if(!initCluster()) return FDB_EXIT_ERROR; f = stopAfter( waitBackup(db, tagName, stopWhenDone) ); break; - case BACKUP_DISCONTINUE: + case BackupType::DISCONTINUE: if(!initCluster()) return FDB_EXIT_ERROR; f = stopAfter( discontinueBackup(db, tagName, waitForDone) ); break; - case BACKUP_PAUSE: + case BackupType::PAUSE: if(!initCluster()) return FDB_EXIT_ERROR; f = stopAfter( changeBackupResumed(db, true) ); break; - case BACKUP_RESUME: + case BackupType::RESUME: if(!initCluster()) return FDB_EXIT_ERROR; f = stopAfter( changeBackupResumed(db, false) ); break; - case BACKUP_EXPIRE: + case BackupType::EXPIRE: initTraceFile(); // Must have a usable cluster if either expire DateTime options were used if(!expireDatetime.empty() || !expireRestorableAfterDatetime.empty()) { @@ -3913,12 +3896,12 @@ int main(int argc, char* argv[]) { f = stopAfter( expireBackupData(argv[0], destinationContainer, expireVersion, expireDatetime, db, forceAction, expireRestorableAfterVersion, expireRestorableAfterDatetime) ); break; - case BACKUP_DELETE: + case BackupType::DELETE: initTraceFile(); f = stopAfter( deleteBackupContainer(argv[0], destinationContainer) ); break; - case BACKUP_DESCRIBE: + case BackupType::DESCRIBE: initTraceFile(); // If timestamp lookups are desired, require a cluster file if(describeTimestamps && !initCluster()) @@ -3928,23 +3911,23 @@ int main(int argc, char* argv[]) { f = stopAfter( describeBackup(argv[0], destinationContainer, describeDeep, describeTimestamps ? Optional(db) : Optional(), jsonOutput) ); break; - case BACKUP_LIST: + case BackupType::LIST: initTraceFile(); f = stopAfter( listBackup(baseUrl) ); break; - case BACKUP_QUERY: + case BackupType::QUERY: initTraceFile(); f = stopAfter(queryBackup(argv[0], destinationContainer, backupKeysFilter, restoreVersion, restoreClusterFileOrig, restoreTimestamp, !quietDisplay)); break; - case BACKUP_DUMP: + case BackupType::DUMP: initTraceFile(); f = stopAfter( dumpBackupData(argv[0], destinationContainer, dumpBegin, dumpEnd) ); break; - case BACKUP_UNDEFINED: + case BackupType::UNDEFINED: default: fprintf(stderr, "ERROR: Unsupported backup action %s\n", argv[1]); printHelpTeaser(argv[0]); @@ -3953,9 +3936,9 @@ int main(int argc, char* argv[]) { } break; - case EXE_RESTORE: + case ProgramExe::RESTORE: if(dryRun) { - if(restoreType != RESTORE_START) { + if (restoreType != RestoreType::START) { fprintf(stderr, "Restore dry run only works for 'start' command\n"); return FDB_EXIT_ERROR; } @@ -3983,39 +3966,39 @@ int main(int argc, char* argv[]) { } switch(restoreType) { - case RESTORE_START: - f = stopAfter(runRestore(db, restoreClusterFileOrig, tagName, restoreContainer, backupKeys, - beginVersion, restoreVersion, restoreTimestamp, !dryRun, !quietDisplay, - waitForDone, addPrefix, removePrefix, incrementalBackupOnly)); - break; - case RESTORE_WAIT: - f = stopAfter( success(ba.waitRestore(db, KeyRef(tagName), true)) ); - break; - case RESTORE_ABORT: - f = stopAfter( + case RestoreType::START: + f = stopAfter(runRestore(db, restoreClusterFileOrig, tagName, restoreContainer, backupKeys, + beginVersion, restoreVersion, restoreTimestamp, !dryRun, !quietDisplay, + waitForDone, addPrefix, removePrefix, incrementalBackupOnly)); + break; + case RestoreType::WAIT: + f = stopAfter(success(ba.waitRestore(db, KeyRef(tagName), true))); + break; + case RestoreType::ABORT: + f = + stopAfter( map(ba.abortRestore(db, KeyRef(tagName)), [tagName](FileBackupAgent::ERestoreState s) -> Void { printf("RESTORE_ABORT Tag: %s State: %s\n", tagName.c_str(), FileBackupAgent::restoreStateText(s).toString().c_str()); return Void(); })); - break; - case RESTORE_STATUS: - // If no tag is specifically provided then print all tag status, don't just use "default" - if(tagProvided) - tag = tagName; - f = stopAfter( map(ba.restoreStatus(db, KeyRef(tag)), [](std::string s) -> Void { - printf("%s\n", s.c_str()); - return Void(); - }) ); - break; - default: - throw restore_error(); + break; + case RestoreType::STATUS: + // If no tag is specifically provided then print all tag status, don't just use "default" + if (tagProvided) tag = tagName; + f = stopAfter(map(ba.restoreStatus(db, KeyRef(tag)), [](std::string s) -> Void { + printf("%s\n", s.c_str()); + return Void(); + })); + break; + default: + throw restore_error(); } break; - case EXE_FASTRESTORE_TOOL: + case ProgramExe::FASTRESTORE_TOOL: // Support --dest_cluster_file option as fdbrestore does if (dryRun) { - if (restoreType != RESTORE_START) { + if (restoreType != RestoreType::START) { fprintf(stderr, "Restore dry run only works for 'start' command\n"); return FDB_EXIT_ERROR; } @@ -4044,16 +4027,16 @@ int main(int argc, char* argv[]) { } // TODO: We have not implemented the code commented out in this case switch (restoreType) { - case RESTORE_START: + case RestoreType::START: f = stopAfter(runFastRestoreTool(db, tagName, restoreContainer, backupKeys, restoreVersion, !dryRun, !quietDisplay, waitForDone)); break; - case RESTORE_WAIT: + case RestoreType::WAIT: printf("[TODO][ERROR] FastRestore does not support RESTORE_WAIT yet!\n"); throw restore_error(); // f = stopAfter( success(ba.waitRestore(db, KeyRef(tagName), true)) ); break; - case RESTORE_ABORT: + case RestoreType::ABORT: printf("[TODO][ERROR] FastRestore does not support RESTORE_ABORT yet!\n"); throw restore_error(); // f = stopAfter( map(ba.abortRestore(db, KeyRef(tagName)), @@ -4062,7 +4045,7 @@ int main(int argc, char* argv[]) { // FileBackupAgent::restoreStateText(s).toString().c_str()); return Void(); // }) ); break; - case RESTORE_STATUS: + case RestoreType::STATUS: printf("[TODO][ERROR] FastRestore does not support RESTORE_STATUS yet!\n"); throw restore_error(); // If no tag is specifically provided then print all tag status, don't just use "default" @@ -4076,35 +4059,35 @@ int main(int argc, char* argv[]) { throw restore_error(); } break; - case EXE_DR_AGENT: + case ProgramExe::DR_AGENT: if(!initCluster()) return FDB_EXIT_ERROR; f = stopAfter( runDBAgent(sourceDb, db) ); break; - case EXE_DB_BACKUP: + case ProgramExe::DB_BACKUP: if(!initCluster()) return FDB_EXIT_ERROR; switch (dbType) { - case DB_START: + case DBType::START: f = stopAfter( submitDBBackup(sourceDb, db, backupKeys, tagName) ); break; - case DB_STATUS: + case DBType::STATUS: f = stopAfter( statusDBBackup(sourceDb, db, tagName, maxErrors) ); break; - case DB_SWITCH: + case DBType::SWITCH: f = stopAfter( switchDBBackup(sourceDb, db, backupKeys, tagName, forceAction) ); break; - case DB_ABORT: + case DBType::ABORT: f = stopAfter( abortDBBackup(sourceDb, db, tagName, partial, dstOnly) ); break; - case DB_PAUSE: + case DBType::PAUSE: f = stopAfter( changeDBBackupResumed(sourceDb, db, true) ); break; - case DB_RESUME: + case DBType::RESUME: f = stopAfter( changeDBBackupResumed(sourceDb, db, false) ); break; - case DB_UNDEFINED: + case DBType::UNDEFINED: default: fprintf(stderr, "ERROR: Unsupported DR action %s\n", argv[1]); printHelpTeaser(argv[0]); @@ -4112,7 +4095,7 @@ int main(int argc, char* argv[]) { break; } break; - case EXE_UNDEFINED: + case ProgramExe::UNDEFINED: default: return FDB_EXIT_ERROR; } From fcf92b84775133cbd8eac129327c9b15808d29b2 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 14 Nov 2020 23:06:46 -0800 Subject: [PATCH 014/261] Improve type-safety of fdbserver.actor.cpp --- fdbserver/fdbserver.actor.cpp | 91 ++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/fdbserver/fdbserver.actor.cpp b/fdbserver/fdbserver.actor.cpp index d8d3f7758d..0f7ca7e9d9 100644 --- a/fdbserver/fdbserver.actor.cpp +++ b/fdbserver/fdbserver.actor.cpp @@ -877,7 +877,7 @@ void restoreRoleFilesHelper(std::string dirSrc, std::string dirToMove, std::stri } namespace { -enum Role { +enum class ServerRole { ConsistencyCheck, CreateTemplateDatabase, DSLTest, @@ -905,7 +905,7 @@ struct CLIOptions { int maxLogs = 0; bool maxLogsSet = false; - Role role = FDBD; + ServerRole role = ServerRole::FDBD; uint32_t randomSeed = platform::getRandomSeed(); const char* testFile = "tests/default.txt"; @@ -1040,35 +1040,35 @@ private: case OPT_ROLE: sRole = args.OptionArg(); if (!strcmp(sRole, "fdbd")) - role = FDBD; + role = ServerRole::FDBD; else if (!strcmp(sRole, "simulation")) - role = Simulation; + role = ServerRole::Simulation; else if (!strcmp(sRole, "test")) - role = Test; + role = ServerRole::Test; else if (!strcmp(sRole, "multitest")) - role = MultiTester; + role = ServerRole::MultiTester; else if (!strcmp(sRole, "skiplisttest")) - role = SkipListTest; + role = ServerRole::SkipListTest; else if (!strcmp(sRole, "search")) - role = SearchMutations; + role = ServerRole::SearchMutations; else if (!strcmp(sRole, "dsltest")) - role = DSLTest; + role = ServerRole::DSLTest; else if (!strcmp(sRole, "versionedmaptest")) - role = VersionedMapTest; + role = ServerRole::VersionedMapTest; else if (!strcmp(sRole, "createtemplatedb")) - role = CreateTemplateDatabase; + role = ServerRole::CreateTemplateDatabase; else if (!strcmp(sRole, "networktestclient")) - role = NetworkTestClient; + role = ServerRole::NetworkTestClient; else if (!strcmp(sRole, "networktestserver")) - role = NetworkTestServer; + role = ServerRole::NetworkTestServer; else if (!strcmp(sRole, "restore")) - role = Restore; + role = ServerRole::Restore; else if (!strcmp(sRole, "kvfileintegritycheck")) - role = KVFileIntegrityCheck; + role = ServerRole::KVFileIntegrityCheck; else if (!strcmp(sRole, "kvfilegeneratesums")) - role = KVFileGenerateIOLogChecksums; + role = ServerRole::KVFileGenerateIOLogChecksums; else if (!strcmp(sRole, "consistencycheck")) - role = ConsistencyCheck; + role = ServerRole::ConsistencyCheck; else { fprintf(stderr, "ERROR: Unknown role `%s'\n", sRole); printHelpTeaser(argv[0]); @@ -1421,8 +1421,8 @@ private: bool autoPublicAddress = std::any_of(publicAddressStrs.begin(), publicAddressStrs.end(), [](const std::string& addr) { return StringRef(addr).startsWith(LiteralStringRef("auto:")); }); - if ((role != Simulation && role != CreateTemplateDatabase && role != KVFileIntegrityCheck && - role != KVFileGenerateIOLogChecksums) || + if ((role != ServerRole::Simulation && role != ServerRole::CreateTemplateDatabase && + role != ServerRole::KVFileIntegrityCheck && role != ServerRole::KVFileGenerateIOLogChecksums) || autoPublicAddress) { if (seedSpecified && !fileExists(connFile)) { @@ -1469,7 +1469,7 @@ private: flushAndExit(FDB_EXIT_ERROR); } - if (role == ConsistencyCheck) { + if (role == ServerRole::ConsistencyCheck) { if (!publicAddressStrs.empty()) { fprintf(stderr, "ERROR: Public address cannot be specified for consistency check processes\n"); printHelpTeaser(argv[0]); @@ -1479,18 +1479,18 @@ private: publicAddresses.address = NetworkAddress(publicIP, ::getpid()); } - if (role == Simulation) { + if (role == ServerRole::Simulation) { Optional buggifyOverride = checkBuggifyOverride(testFile); if (buggifyOverride.present()) buggifyEnabled = buggifyOverride.get(); } - if (role == SearchMutations && !targetKey) { + if (role == ServerRole::SearchMutations && !targetKey) { fprintf(stderr, "ERROR: please specify a target key\n"); printHelpTeaser(argv[0]); flushAndExit(FDB_EXIT_ERROR); } - if (role == NetworkTestClient && !testServersStr.size()) { + if (role == ServerRole::NetworkTestClient && !testServersStr.size()) { fprintf(stderr, "ERROR: please specify --testservers\n"); printHelpTeaser(argv[0]); flushAndExit(FDB_EXIT_ERROR); @@ -1550,7 +1550,7 @@ int main(int argc, char* argv[]) { const auto opts = CLIOptions::parseArgs(argc, argv); const auto role = opts.role; - if (role == Simulation) printf("Random seed is %u...\n", opts.randomSeed); + if (role == ServerRole::Simulation) printf("Random seed is %u...\n", opts.randomSeed); if (opts.zoneId.present()) printf("ZoneId set to %s, dcId to %s\n", printable(opts.zoneId).c_str(), printable(opts.dcId).c_str()); @@ -1570,7 +1570,7 @@ int main(int argc, char* argv[]) { CLIENT_KNOBS = clientKnobs; if (!serverKnobs->setKnob("log_directory", opts.logFolder)) ASSERT(false); - if (role != Simulation) { + if (role != ServerRole::Simulation) { if (!serverKnobs->setKnob("commit_batches_mem_bytes_hard_limit", std::to_string(opts.memLimit))) ASSERT(false); } @@ -1597,9 +1597,9 @@ int main(int argc, char* argv[]) { if (!serverKnobs->setKnob("server_mem_limit", std::to_string(opts.memLimit))) ASSERT(false); // Reinitialize knobs in order to update knobs that are dependent on explicitly set knobs - flowKnobs->initialize(true, role == Simulation); + flowKnobs->initialize(true, role == ServerRole::Simulation); clientKnobs->initialize(true); - serverKnobs->initialize(true, clientKnobs, role == Simulation); + serverKnobs->initialize(true, clientKnobs, role == ServerRole::Simulation); // evictionPolicyStringToEnum will throw an exception if the string is not recognized as a valid EvictablePageCache::evictionPolicyStringToEnum(flowKnobs->CACHE_EVICTION_POLICY); @@ -1609,17 +1609,17 @@ int main(int argc, char* argv[]) { flushAndExit(FDB_EXIT_ERROR); } - if (role == SkipListTest) { + if (role == ServerRole::SkipListTest) { skipListTest(); flushAndExit(FDB_EXIT_SUCCESS); } - if (role == DSLTest) { + if (role == ServerRole::DSLTest) { dsltest(); flushAndExit(FDB_EXIT_SUCCESS); } - if (role == VersionedMapTest) { + if (role == ServerRole::VersionedMapTest) { versionedMapTest(); flushAndExit(FDB_EXIT_SUCCESS); } @@ -1631,7 +1631,7 @@ int main(int argc, char* argv[]) { std::vector> listenErrors; - if (role == Simulation || role == CreateTemplateDatabase) { + if (role == ServerRole::Simulation || role == ServerRole::CreateTemplateDatabase) { //startOldSimulator(); startNewSimulator(); openTraceFile(NetworkAddress(), opts.rollsize, opts.maxLogsSize, opts.logFolder, "trace", opts.logGroup); @@ -1640,7 +1640,8 @@ int main(int argc, char* argv[]) { g_network->addStopCallback( Net2FileSystem::stop ); FlowTransport::createInstance(false, 1); - const bool expectsPublicAddress = (role == FDBD || role == NetworkTestServer || role == Restore); + const bool expectsPublicAddress = + (role == ServerRole::FDBD || role == ServerRole::NetworkTestServer || role == ServerRole::Restore); if (opts.publicAddressStrs.empty()) { if (expectsPublicAddress) { fprintf(stderr, "ERROR: The -p or --public_address option is required\n"); @@ -1733,7 +1734,7 @@ int main(int argc, char* argv[]) { Future> f; - if (role == Simulation) { + if (role == ServerRole::Simulation) { TraceEvent("Simulation").detail("TestFile", opts.testFile); clientKnobs->trace(); @@ -1855,7 +1856,7 @@ int main(int argc, char* argv[]) { } setupAndRun(dataFolder, opts.testFile, opts.restarting, (isRestoring >= 1), opts.whitelistBinPaths); g_simulator.run(); - } else if (role == FDBD) { + } else if (role == ServerRole::FDBD) { // Update the global blob credential files list so that both fast // restore workers and backup workers can access blob storage. std::vector* pFiles = @@ -1898,40 +1899,40 @@ int main(int argc, char* argv[]) { f = stopAfter(waitForAll(actors)); g_network->run(); } - } else if (role == MultiTester) { + } else if (role == ServerRole::MultiTester) { setupRunLoopProfiler(); f = stopAfter(runTests(opts.connectionFile, TEST_TYPE_FROM_FILE, opts.testOnServers ? TEST_ON_SERVERS : TEST_ON_TESTERS, opts.minTesterCount, opts.testFile, StringRef(), opts.localities)); g_network->run(); - } else if (role == Test) { + } else if (role == ServerRole::Test) { setupRunLoopProfiler(); auto m = startSystemMonitor(opts.dataFolder, opts.zoneId, opts.zoneId); f = stopAfter(runTests(opts.connectionFile, TEST_TYPE_FROM_FILE, TEST_HERE, 1, opts.testFile, StringRef(), opts.localities)); g_network->run(); - } else if (role == ConsistencyCheck) { + } else if (role == ServerRole::ConsistencyCheck) { setupRunLoopProfiler(); auto m = startSystemMonitor(opts.dataFolder, opts.zoneId, opts.zoneId); f = stopAfter(runTests(opts.connectionFile, TEST_TYPE_CONSISTENCY_CHECK, TEST_HERE, 1, opts.testFile, StringRef(), opts.localities)); g_network->run(); - } else if (role == CreateTemplateDatabase) { + } else if (role == ServerRole::CreateTemplateDatabase) { createTemplateDatabase(); - } else if (role == NetworkTestClient) { + } else if (role == ServerRole::NetworkTestClient) { f = stopAfter(networkTestClient(opts.testServersStr)); g_network->run(); - } else if (role == NetworkTestServer) { + } else if (role == ServerRole::NetworkTestServer) { f = stopAfter( networkTestServer() ); g_network->run(); - } else if (role == Restore) { + } else if (role == ServerRole::Restore) { f = stopAfter(restoreWorker(opts.connectionFile, opts.localities, opts.dataFolder)); g_network->run(); - } else if (role == KVFileIntegrityCheck) { + } else if (role == ServerRole::KVFileIntegrityCheck) { f = stopAfter(KVFileCheck(opts.kvFile, true)); g_network->run(); - } else if (role == KVFileGenerateIOLogChecksums) { + } else if (role == ServerRole::KVFileGenerateIOLogChecksums) { Optional result; try { GenerateIOLogChecksumFile(opts.kvFile); @@ -1953,7 +1954,7 @@ int main(int argc, char* argv[]) { TraceEvent("ElapsedTime").detail("SimTime", now()-startNow).detail("RealTime", timer()-start) .detail("RandomUnseed", unseed); - if (role==Simulation){ + if (role == ServerRole::Simulation) { printf("Unseed: %d\n", unseed); printf("Elapsed: %f simsec, %f real seconds\n", now()-startNow, timer()-start); } @@ -1990,7 +1991,7 @@ int main(int argc, char* argv[]) { cout << " " << i->second << " " << i->first << endl;*/ // cout << " " << Actor::allActors[i]->getName() << endl; - if (role == Simulation) { + if (role == ServerRole::Simulation) { unsigned long sevErrorEventsLogged = TraceEvent::CountEventsLoggedAt(SevError); if (sevErrorEventsLogged > 0) { printf("%lu SevError events logged\n", sevErrorEventsLogged); From 2320f970c1b347a3dbf33cff21822e2b58c0d277 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Thu, 19 Nov 2020 16:43:39 -0800 Subject: [PATCH 015/261] Add reboot_worker and pythong binding --- bindings/c/fdb_c.cpp | 4 ++-- bindings/c/foundationdb/fdb_c.h | 5 +++-- bindings/flow/fdb_flow.actor.cpp | 11 +++++++++++ bindings/flow/fdb_flow.h | 1 + bindings/python/fdb/impl.py | 8 ++++++++ fdbclient/DatabaseContext.h | 2 +- fdbclient/IClientApi.h | 2 +- fdbclient/MultiVersionTransaction.actor.cpp | 15 +++++++++++---- fdbclient/MultiVersionTransaction.h | 6 +++--- fdbclient/NativeAPI.actor.cpp | 16 +++++++++------- fdbclient/ThreadSafeTransaction.cpp | 6 +++--- fdbclient/ThreadSafeTransaction.h | 2 +- 12 files changed, 54 insertions(+), 24 deletions(-) diff --git a/bindings/c/fdb_c.cpp b/bindings/c/fdb_c.cpp index 787ab39b65..dd3cb60855 100644 --- a/bindings/c/fdb_c.cpp +++ b/bindings/c/fdb_c.cpp @@ -384,8 +384,8 @@ fdb_error_t fdb_database_create_transaction( FDBDatabase* d, } extern "C" DLLEXPORT -FDBFuture* fdb_database_reboot_worker( FDBDatabase* db, uint8_t const* value, int value_length, fdb_bool_t check, int duration) { - return (FDBFuture*) (DB(db)->rebootWorker(ValueRef(value, value_length), check, duration).extractPtr()); +FDBFuture* fdb_database_reboot_worker( FDBDatabase* db, uint8_t const* address, int address_length, fdb_bool_t check, int duration) { + return (FDBFuture*) (DB(db)->rebootWorker(StringRef(address, address_length), check, duration).extractPtr()); } diff --git a/bindings/c/foundationdb/fdb_c.h b/bindings/c/foundationdb/fdb_c.h index 966db53e34..13aaa78a8f 100644 --- a/bindings/c/foundationdb/fdb_c.h +++ b/bindings/c/foundationdb/fdb_c.h @@ -169,9 +169,10 @@ extern "C" { DLLEXPORT WARN_UNUSED_RESULT fdb_error_t fdb_database_create_transaction( FDBDatabase* d, FDBTransaction** out_transaction ); - + DLLEXPORT WARN_UNUSED_RESULT FDBFuture* - fdb_database_reboot_worker( FDBDatabase* db, uint8_t const* value, int value_length, fdb_bool_t check, int duration); + fdb_database_reboot_worker( FDBDatabase* db, uint8_t const* address, + int address_length, fdb_bool_t check, int duration); DLLEXPORT void fdb_transaction_destroy( FDBTransaction* tr); diff --git a/bindings/flow/fdb_flow.actor.cpp b/bindings/flow/fdb_flow.actor.cpp index 7ac8dfc1bb..bb12750b31 100644 --- a/bindings/flow/fdb_flow.actor.cpp +++ b/bindings/flow/fdb_flow.actor.cpp @@ -101,6 +101,7 @@ namespace FDB { Reference createTransaction() override; void setDatabaseOption(FDBDatabaseOption option, Optional value = Optional()) override; + Future rebootWorker(const StringRef& address, bool check = false, int duration = 0) override; private: FDBDatabase* db; @@ -284,6 +285,16 @@ namespace FDB { throw_on_error(fdb_database_set_option(db, option, nullptr, 0)); } + Future DatabaseImpl::rebootWorker(const StringRef &address, bool check, int duration) { + return backToFuture( fdb_database_reboot_worker(db, address.begin(), address.size(), check, duration), [](Reference f) { + int64_t res; + + throw_on_error(fdb_future_get_int64( f->f, &res ) ); + + return res; + } ); + } + TransactionImpl::TransactionImpl(FDBDatabase* db) { throw_on_error(fdb_database_create_transaction(db, &tr)); } diff --git a/bindings/flow/fdb_flow.h b/bindings/flow/fdb_flow.h index cd5be3a974..9a9b95b1ba 100644 --- a/bindings/flow/fdb_flow.h +++ b/bindings/flow/fdb_flow.h @@ -124,6 +124,7 @@ namespace FDB { virtual ~Database(){}; virtual Reference createTransaction() = 0; virtual void setDatabaseOption(FDBDatabaseOption option, Optional value = Optional()) = 0; + virtual Future rebootWorker(const StringRef& address, bool check = false, int duration = 0) = 0; }; class API { diff --git a/bindings/python/fdb/impl.py b/bindings/python/fdb/impl.py index d385d12aeb..d575431e72 100644 --- a/bindings/python/fdb/impl.py +++ b/bindings/python/fdb/impl.py @@ -995,6 +995,11 @@ class Database(_FDBBase): pointer = ctypes.c_void_p() self.capi.fdb_database_create_transaction(self.dpointer, ctypes.byref(pointer)) return Transaction(pointer.value, self) + + def reboot_worker(self, address, check, duration): + """Reboot the specified process""" + addr = paramToBytes(address) + return FutureInt64(self.capi.fdb_database_reboot_worker(self.dpointer, addr, len(addr), check, duration)) def _set_option(self, option, param, length): self.capi.fdb_database_set_option(self.dpointer, option, param, length) @@ -1456,6 +1461,9 @@ def init_c_api(): _capi.fdb_database_set_option.restype = ctypes.c_int _capi.fdb_database_set_option.errcheck = check_error_code + _capi.fdb_database_reboot_worker.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int, ctypes.c_int, ctypes.c_int] + _capi.fdb_database_reboot_worker.restype = ctypes.c_void_p + _capi.fdb_transaction_destroy.argtypes = [ctypes.c_void_p] _capi.fdb_transaction_destroy.restype = None diff --git a/fdbclient/DatabaseContext.h b/fdbclient/DatabaseContext.h index e2de3ea77d..73d4c951c8 100644 --- a/fdbclient/DatabaseContext.h +++ b/fdbclient/DatabaseContext.h @@ -208,7 +208,7 @@ public: // Management API // Attempt to kill or suspend a process - Future rebootWorker(ValueRef addr, bool check = false, uint32_t duration = 0); + Future rebootWorker(StringRef address, bool check = false, int duration = 0); //private: explicit DatabaseContext( Reference>> connectionFile, Reference> clientDBInfo, diff --git a/fdbclient/IClientApi.h b/fdbclient/IClientApi.h index 7c6a5b32f1..e62ebf9cbb 100644 --- a/fdbclient/IClientApi.h +++ b/fdbclient/IClientApi.h @@ -85,7 +85,7 @@ public: virtual void addref() = 0; virtual void delref() = 0; - virtual ThreadFuture rebootWorker(const ValueRef& value, bool check, uint32_t duration) = 0; + virtual ThreadFuture rebootWorker(const StringRef& address, bool check, int duration) = 0; }; class IClientApi { diff --git a/fdbclient/MultiVersionTransaction.actor.cpp b/fdbclient/MultiVersionTransaction.actor.cpp index e8ab90df67..79d59f7231 100644 --- a/fdbclient/MultiVersionTransaction.actor.cpp +++ b/fdbclient/MultiVersionTransaction.actor.cpp @@ -282,8 +282,14 @@ void DLDatabase::setOption(FDBDatabaseOptions::Option option, OptionaldatabaseSetOption(db, option, value.present() ? value.get().begin() : nullptr, value.present() ? value.get().size() : 0)); } -ThreadFuture DLDatabase::rebootWorker(const ValueRef& value, bool check, uint32_t duration) { - return api->databaseRebootWorker(db, value.begin(), value.size(), check, duration); +ThreadFuture DLDatabase::rebootWorker(const StringRef& address, bool check, int duration) { + FdbCApi::FDBFuture *f = api->databaseRebootWorker(db, address.begin(), address.size(), check, duration); + return toThreadFuture(api, f, [](FdbCApi::FDBFuture *f, FdbCApi *api) { + int64_t res; + FdbCApi::fdb_error_t error = api->futureGetInt64(f, &res); + ASSERT(!error); + return res; + }); } // DLApi @@ -320,6 +326,7 @@ void DLApi::init() { loadClientFunction(&api->databaseCreateTransaction, lib, fdbCPath, "fdb_database_create_transaction"); loadClientFunction(&api->databaseSetOption, lib, fdbCPath, "fdb_database_set_option"); loadClientFunction(&api->databaseDestroy, lib, fdbCPath, "fdb_database_destroy"); + loadClientFunction(&api->databaseRebootWorker, lib, fdbCPath, "fdb_database_reboot_worker", headerVersion >= 700); loadClientFunction(&api->transactionSetOption, lib, fdbCPath, "fdb_transaction_set_option"); loadClientFunction(&api->transactionDestroy, lib, fdbCPath, "fdb_transaction_destroy"); @@ -776,9 +783,9 @@ void MultiVersionDatabase::setOption(FDBDatabaseOptions::Option option, Optional } } -ThreadFuture MultiVersionDatabase::rebootWorker(const ValueRef& value, bool check, uint32_t duration) { +ThreadFuture MultiVersionDatabase::rebootWorker(const StringRef& address, bool check, int duration) { if (dbState->db) { - return dbState->db->rebootWorker(value, check, duration); + return dbState->db->rebootWorker(address, check, duration); } return false; } diff --git a/fdbclient/MultiVersionTransaction.h b/fdbclient/MultiVersionTransaction.h index b231202310..b508eceaf2 100644 --- a/fdbclient/MultiVersionTransaction.h +++ b/fdbclient/MultiVersionTransaction.h @@ -65,7 +65,7 @@ struct FdbCApi : public ThreadSafeReferenceCounted { fdb_error_t (*databaseCreateTransaction)(FDBDatabase *database, FDBTransaction **tr); fdb_error_t (*databaseSetOption)(FDBDatabase *database, FDBDatabaseOptions::Option option, uint8_t const *value, int valueLength); void (*databaseDestroy)(FDBDatabase *database); - FDBFuture* (*databaseRebootWorker)(FDBDatabase *database, uint8_t const *value, int valueLength, fdb_bool_t check, int duration); + FDBFuture* (*databaseRebootWorker)(FDBDatabase *database, uint8_t const *address, int addressLength, fdb_bool_t check, int duration); //Transaction fdb_error_t (*transactionSetOption)(FDBTransaction *tr, FDBTransactionOptions::Option option, uint8_t const *value, int valueLength); @@ -193,7 +193,7 @@ public: void addref() override { ThreadSafeReferenceCounted::addref(); } void delref() override { ThreadSafeReferenceCounted::delref(); } - ThreadFuture rebootWorker(const ValueRef& value, bool check, uint32_t duration) override; + ThreadFuture rebootWorker(const StringRef& address, bool check, int duration) override; private: const Reference api; @@ -325,7 +325,7 @@ public: static Reference debugCreateFromExistingDatabase(Reference db); - ThreadFuture rebootWorker(const ValueRef& value, bool check, uint32_t duration); + ThreadFuture rebootWorker(const StringRef& address, bool check, int duration); private: struct DatabaseState; diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index b6b270f90a..b694620254 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -4717,8 +4717,7 @@ ACTOR Future addInterfaceActor( std::map rep = wait( brokenPromiseToNever(leaderInterf.getLeader.getReply(GetLeaderRequest())) ) ) { StringRef ip_port = - (kv.key.endsWith(LiteralStringRef(":tls")) ? kv.key.removeSuffix(LiteralStringRef(":tls")) : kv.key) - .removePrefix(LiteralStringRef("\xff\xff/worker_interfaces/")); + kv.key.endsWith(LiteralStringRef(":tls")) ? kv.key.removeSuffix(LiteralStringRef(":tls")) : kv.key; (*address_interface)[ip_port] = std::make_pair(kv.value, leaderInterf); if(workerInterf.reboot.getEndpoint().addresses.secondaryAddress.present()) { @@ -4733,10 +4732,13 @@ ACTOR Future addInterfaceActor( std::map rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool check) { +ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool check) { // fetch the addresses of all workers state std::map> address_interface; - state Standalone kvs = wait(getWorkerInterfaces(cx->getConnectionFile())); + // TODO : find out when this is invalid + if (!cx->getConnectionFile()) + return 0; + Standalone kvs = wait(getWorkerInterfaces(cx->getConnectionFile())); ASSERT(!kvs.more); Reference connectLock(new FlowLock(CLIENT_KNOBS->CLI_CONNECT_PARALLELISM)); std::vector> addInterfs; @@ -4745,14 +4747,14 @@ ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool ch } wait( waitForAll(addInterfs) ); if (!address_interface.count(addr)) - return false; + return 0; if (check) BinaryReader::fromStringRef(addr, IncludeVersion()).reboot.send( RebootRequest(false, true)); else BinaryReader::fromStringRef(addr, IncludeVersion()).reboot.send( RebootRequest()); - return true; + return 1; } -Future DatabaseContext::rebootWorker(ValueRef addr, bool check, uint32_t duration) { +Future DatabaseContext::rebootWorker(StringRef addr, bool check, int duration) { return rebootWorkerActor(this, addr, check); } diff --git a/fdbclient/ThreadSafeTransaction.cpp b/fdbclient/ThreadSafeTransaction.cpp index aa8a00e119..d59fa3bfb3 100644 --- a/fdbclient/ThreadSafeTransaction.cpp +++ b/fdbclient/ThreadSafeTransaction.cpp @@ -67,10 +67,10 @@ void ThreadSafeDatabase::setOption( FDBDatabaseOptions::Option option, Optional< }, &db->deferredError ); } -ThreadFuture ThreadSafeDatabase::rebootWorker(const ValueRef& value, bool check, uint32_t duration) { +ThreadFuture ThreadSafeDatabase::rebootWorker(const StringRef& address, bool check, int duration) { DatabaseContext *db = this->db; - return onMainThread( [db, value, check, duration]() -> Future { - return db->rebootWorker(value, check, duration); + return onMainThread( [db, address, check, duration]() -> Future { + return db->rebootWorker(address, check, duration); } ); } diff --git a/fdbclient/ThreadSafeTransaction.h b/fdbclient/ThreadSafeTransaction.h index c2acb08355..76d29b6e6c 100644 --- a/fdbclient/ThreadSafeTransaction.h +++ b/fdbclient/ThreadSafeTransaction.h @@ -41,7 +41,7 @@ public: void addref() { ThreadSafeReferenceCounted::addref(); } void delref() { ThreadSafeReferenceCounted::delref(); } - ThreadFuture rebootWorker(const ValueRef& value, bool check, uint32_t duration); + ThreadFuture rebootWorker(const StringRef& address, bool check, int duration); private: friend class ThreadSafeTransaction; From b1e3478267fef4b9816f6574645e184e3b0d1184 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 21 Nov 2020 12:55:03 -0800 Subject: [PATCH 016/261] Simplified global knobs --- fdbbackup/backup.actor.cpp | 18 +++------ fdbcli/fdbcli.actor.cpp | 18 +++------ fdbclient/Knobs.cpp | 8 +++- fdbclient/Knobs.h | 3 ++ fdbclient/NativeAPI.actor.cpp | 25 +++++------- fdbserver/Knobs.cpp | 8 +++- fdbserver/Knobs.h | 3 ++ fdbserver/fdbserver.actor.cpp | 39 ++++++++----------- ...entTransactionProfileCorrectness.actor.cpp | 2 +- flow/Knobs.cpp | 10 ++++- flow/Knobs.h | 5 ++- 11 files changed, 71 insertions(+), 68 deletions(-) diff --git a/fdbbackup/backup.actor.cpp b/fdbbackup/backup.actor.cpp index 0e1f43fb40..91749522ef 100644 --- a/fdbbackup/backup.actor.cpp +++ b/fdbbackup/backup.actor.cpp @@ -3632,19 +3632,13 @@ int main(int argc, char* argv[]) { args = NULL; } - delete FLOW_KNOBS; - FlowKnobs* flowKnobs = new FlowKnobs; - FLOW_KNOBS = flowKnobs; - - delete CLIENT_KNOBS; - ClientKnobs* clientKnobs = new ClientKnobs; - CLIENT_KNOBS = clientKnobs; + createGlobalFlowKnobs(); + createGlobalClientKnobs(); for(auto k=knobs.begin(); k!=knobs.end(); ++k) { try { - if (!flowKnobs->setKnob( k->first, k->second ) && - !clientKnobs->setKnob( k->first, k->second )) - { + if (!globalFlowKnobs->setKnob(k->first, k->second) && + !globalClientKnobs->setKnob(k->first, k->second)) { fprintf(stderr, "WARNING: Unrecognized knob option '%s'\n", k->first.c_str()); TraceEvent(SevWarnAlways, "UnrecognizedKnobOption").detail("Knob", printable(k->first)); } @@ -3662,8 +3656,8 @@ int main(int argc, char* argv[]) { } // Reinitialize knobs in order to update knobs that are dependent on explicitly set knobs - flowKnobs->initialize(true); - clientKnobs->initialize(true); + globalFlowKnobs->initialize(true); + globalClientKnobs->initialize(true); if (trace) { if(!traceLogGroup.empty()) diff --git a/fdbcli/fdbcli.actor.cpp b/fdbcli/fdbcli.actor.cpp index e4d24eb114..041a89a5e9 100644 --- a/fdbcli/fdbcli.actor.cpp +++ b/fdbcli/fdbcli.actor.cpp @@ -2833,19 +2833,13 @@ struct CLIOptions { return; } - delete FLOW_KNOBS; - FlowKnobs* flowKnobs = new FlowKnobs; - FLOW_KNOBS = flowKnobs; - - delete CLIENT_KNOBS; - ClientKnobs* clientKnobs = new ClientKnobs; - CLIENT_KNOBS = clientKnobs; + createGlobalFlowKnobs(); + createGlobalClientKnobs(); for(auto k=knobs.begin(); k!=knobs.end(); ++k) { try { - if (!flowKnobs->setKnob( k->first, k->second ) && - !clientKnobs->setKnob( k->first, k->second )) - { + if (!globalFlowKnobs->setKnob(k->first, k->second) && + !globalClientKnobs->setKnob(k->first, k->second)) { fprintf(stderr, "WARNING: Unrecognized knob option '%s'\n", k->first.c_str()); TraceEvent(SevWarnAlways, "UnrecognizedKnobOption").detail("Knob", printable(k->first)); } @@ -2863,8 +2857,8 @@ struct CLIOptions { } // Reinitialize knobs in order to update knobs that are dependent on explicitly set knobs - flowKnobs->initialize(true); - clientKnobs->initialize(true); + globalFlowKnobs->initialize(true); + globalClientKnobs->initialize(true); } int processArg(CSimpleOpt& args) { diff --git a/fdbclient/Knobs.cpp b/fdbclient/Knobs.cpp index e194f8827e..0fec094b46 100644 --- a/fdbclient/Knobs.cpp +++ b/fdbclient/Knobs.cpp @@ -23,7 +23,8 @@ #include "fdbclient/SystemData.h" #include "flow/UnitTest.h" -ClientKnobs const* CLIENT_KNOBS = new ClientKnobs(); +std::unique_ptr globalClientKnobs{}; +ClientKnobs const* CLIENT_KNOBS = nullptr; #define init( knob, value ) initKnob( knob, value, #knob ) @@ -245,6 +246,11 @@ void ClientKnobs::initialize(bool randomize) { // clang-format on } +void createGlobalClientKnobs() { + globalClientKnobs = std::make_unique(); + CLIENT_KNOBS = globalClientKnobs.get(); +} + TEST_CASE("/fdbclient/knobs/initialize") { // This test depends on TASKBUCKET_TIMEOUT_VERSIONS being defined as a constant multiple of CORE_VERSIONSPERSECOND ClientKnobs clientKnobs; diff --git a/fdbclient/Knobs.h b/fdbclient/Knobs.h index 11a06d52cc..cdf55c3d16 100644 --- a/fdbclient/Knobs.h +++ b/fdbclient/Knobs.h @@ -231,6 +231,9 @@ public: void initialize(bool randomize = false); }; +extern std::unique_ptr globalClientKnobs; extern ClientKnobs const* CLIENT_KNOBS; +void createGlobalClientKnobs(); + #endif diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index e537e17c6e..cfcd4fefba 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -1430,22 +1430,17 @@ void setNetworkOption(FDBNetworkOptions::Option option, Optional valu std::string knobName = optionValue.substr(0, eq); std::string knobValue = optionValue.substr(eq+1); - if (const_cast(FLOW_KNOBS)->setKnob(knobName, knobValue)) - { - // update dependent knobs - const_cast(FLOW_KNOBS)->initialize(); - } - else if (const_cast(CLIENT_KNOBS)->setKnob(knobName, knobValue)) - { - // update dependent knobs - const_cast(CLIENT_KNOBS)->initialize(); - } - else - { - TraceEvent(SevWarnAlways, "UnrecognizedKnob").detail("Knob", knobName.c_str()); + if (globalFlowKnobs->setKnob(knobName, knobValue)) { + // update dependent knobs + globalFlowKnobs->initialize(); + } else if (globalClientKnobs->setKnob(knobName, knobValue)) { + // update dependent knobs + globalClientKnobs->initialize(); + } else { + TraceEvent(SevWarnAlways, "UnrecognizedKnob").detail("Knob", knobName.c_str()); fprintf(stderr, "FoundationDB client ignoring unrecognized knob option '%s'\n", knobName.c_str()); - } - break; + } + break; } case FDBNetworkOptions::TLS_PLUGIN: validateOptionValue(value, true); diff --git a/fdbserver/Knobs.cpp b/fdbserver/Knobs.cpp index c7165d326a..a0e51bb3c9 100644 --- a/fdbserver/Knobs.cpp +++ b/fdbserver/Knobs.cpp @@ -22,7 +22,8 @@ #include "fdbrpc/Locality.h" #include -ServerKnobs const* SERVER_KNOBS = new ServerKnobs(); +std::unique_ptr globalServerKnobs{}; +ServerKnobs const* SERVER_KNOBS = nullptr; #define init( knob, value ) initKnob( knob, value, #knob ) @@ -696,3 +697,8 @@ void ServerKnobs::initialize(bool randomize, ClientKnobs* clientKnobs, bool isSi clientKnobs->INIT_MID_SHARD_BYTES = MIN_SHARD_BYTES; } } + +void createGlobalServerKnobs() { + globalServerKnobs = std::make_unique(); + SERVER_KNOBS = globalServerKnobs.get(); +} diff --git a/fdbserver/Knobs.h b/fdbserver/Knobs.h index 1616038129..6a641fbb04 100644 --- a/fdbserver/Knobs.h +++ b/fdbserver/Knobs.h @@ -624,6 +624,9 @@ public: void initialize(bool randomize = false, ClientKnobs* clientKnobs = nullptr, bool isSimulated = false); }; +extern std::unique_ptr globalServerKnobs; extern ServerKnobs const* SERVER_KNOBS; +void createGlobalServerKnobs(); + #endif diff --git a/fdbserver/fdbserver.actor.cpp b/fdbserver/fdbserver.actor.cpp index 69dbb4116f..12db47f977 100644 --- a/fdbserver/fdbserver.actor.cpp +++ b/fdbserver/fdbserver.actor.cpp @@ -1561,27 +1561,20 @@ int main(int argc, char* argv[]) { enableBuggify(opts.buggifyEnabled, BuggifyType::General); - delete FLOW_KNOBS; - delete SERVER_KNOBS; - delete CLIENT_KNOBS; - FlowKnobs* flowKnobs = new FlowKnobs; - ClientKnobs* clientKnobs = new ClientKnobs; - ServerKnobs* serverKnobs = new ServerKnobs; - FLOW_KNOBS = flowKnobs; - SERVER_KNOBS = serverKnobs; - CLIENT_KNOBS = clientKnobs; + createGlobalFlowKnobs(); + createGlobalClientKnobs(); + createGlobalServerKnobs(); - if (!serverKnobs->setKnob("log_directory", opts.logFolder)) ASSERT(false); + if (!globalServerKnobs->setKnob("log_directory", opts.logFolder)) ASSERT(false); if (role != Simulation) { - if (!serverKnobs->setKnob("commit_batches_mem_bytes_hard_limit", std::to_string(opts.memLimit))) + if (!globalServerKnobs->setKnob("commit_batches_mem_bytes_hard_limit", std::to_string(opts.memLimit))) ASSERT(false); } for (auto k = opts.knobs.begin(); k != opts.knobs.end(); ++k) { try { - if (!flowKnobs->setKnob( k->first, k->second ) && - !clientKnobs->setKnob( k->first, k->second ) && - !serverKnobs->setKnob( k->first, k->second )) - { + if (!globalFlowKnobs->setKnob(k->first, k->second) && + !globalClientKnobs->setKnob(k->first, k->second) && + !globalServerKnobs->setKnob(k->first, k->second)) { fprintf(stderr, "WARNING: Unrecognized knob option '%s'\n", k->first.c_str()); TraceEvent(SevWarnAlways, "UnrecognizedKnobOption").detail("Knob", printable(k->first)); } @@ -1596,15 +1589,15 @@ int main(int argc, char* argv[]) { } } } - if (!serverKnobs->setKnob("server_mem_limit", std::to_string(opts.memLimit))) ASSERT(false); + if (!globalServerKnobs->setKnob("server_mem_limit", std::to_string(opts.memLimit))) ASSERT(false); // Reinitialize knobs in order to update knobs that are dependent on explicitly set knobs - flowKnobs->initialize(true, role == Simulation); - clientKnobs->initialize(true); - serverKnobs->initialize(true, clientKnobs, role == Simulation); + globalFlowKnobs->initialize(true, role == Simulation); + globalClientKnobs->initialize(true); + globalServerKnobs->initialize(true, globalClientKnobs.get(), role == Simulation); // evictionPolicyStringToEnum will throw an exception if the string is not recognized as a valid - EvictablePageCache::evictionPolicyStringToEnum(flowKnobs->CACHE_EVICTION_POLICY); + EvictablePageCache::evictionPolicyStringToEnum(FLOW_KNOBS->CACHE_EVICTION_POLICY); if (opts.memLimit <= FLOW_KNOBS->PAGE_CACHE_4K) { fprintf(stderr, "ERROR: --memory has to be larger than --cache_memory\n"); @@ -1739,9 +1732,9 @@ int main(int argc, char* argv[]) { if (role == Simulation) { TraceEvent("Simulation").detail("TestFile", opts.testFile); - clientKnobs->trace(); - flowKnobs->trace(); - serverKnobs->trace(); + CLIENT_KNOBS->trace(); + FLOW_KNOBS->trace(); + SERVER_KNOBS->trace(); auto dataFolder = opts.dataFolder.size() ? opts.dataFolder : "simfdb"; std::vector directories = platform::listDirectories( dataFolder ); diff --git a/fdbserver/workloads/ClientTransactionProfileCorrectness.actor.cpp b/fdbserver/workloads/ClientTransactionProfileCorrectness.actor.cpp index e160312718..fc6fb82da4 100644 --- a/fdbserver/workloads/ClientTransactionProfileCorrectness.actor.cpp +++ b/fdbserver/workloads/ClientTransactionProfileCorrectness.actor.cpp @@ -188,7 +188,7 @@ struct ClientTransactionProfileCorrectnessWorkload : TestWorkload { Future setup(Database const& cx) override { if (clientId == 0) { - const_cast(CLIENT_KNOBS)->CSI_STATUS_DELAY = 2.0; // 2 seconds + globalClientKnobs->CSI_STATUS_DELAY = 2.0; // 2 seconds return changeProfilingParameters(cx, trInfoSizeLimit, samplingProbability); } return Void(); diff --git a/flow/Knobs.cpp b/flow/Knobs.cpp index 606ccb24e6..394616bf68 100644 --- a/flow/Knobs.cpp +++ b/flow/Knobs.cpp @@ -23,7 +23,8 @@ #include #include -FlowKnobs const* FLOW_KNOBS = new FlowKnobs(); +std::unique_ptr globalFlowKnobs{}; +FlowKnobs const* FLOW_KNOBS = nullptr; #define init( knob, value ) initKnob( knob, value, #knob ) @@ -333,7 +334,7 @@ void Knobs::initKnob( bool& knob, bool value, std::string const& name ) { } } -void Knobs::trace() { +void Knobs::trace() const { for(auto &k : double_knobs) TraceEvent("Knob").detail("Name", k.first.c_str()).detail("Value", *k.second); for(auto &k : int_knobs) @@ -345,3 +346,8 @@ void Knobs::trace() { for(auto &k : bool_knobs) TraceEvent("Knob").detail("Name", k.first.c_str()).detail("Value", *k.second); } + +void createGlobalFlowKnobs() { + globalFlowKnobs = std::make_unique(); + FLOW_KNOBS = globalFlowKnobs.get(); +} diff --git a/flow/Knobs.h b/flow/Knobs.h index 656cb8eff5..ba843d4c19 100644 --- a/flow/Knobs.h +++ b/flow/Knobs.h @@ -32,7 +32,7 @@ class Knobs { public: bool setKnob( std::string const& name, std::string const& value ); // Returns true if the knob name is known, false if it is unknown - void trace(); + void trace() const; protected: void initKnob( double& knob, double value, std::string const& name ); @@ -253,6 +253,9 @@ public: void initialize(bool randomize = false, bool isSimulated = false); }; +extern std::unique_ptr globalFlowKnobs; extern FlowKnobs const* FLOW_KNOBS; +void createGlobalFlowKnobs(); + #endif From b46384e1b8dd385bc85fd7b0e8530f7b10b42393 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sun, 22 Nov 2020 09:51:45 -0800 Subject: [PATCH 017/261] Initialize client and flow knobs --- fdbclient/Knobs.cpp | 4 ++-- flow/Knobs.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fdbclient/Knobs.cpp b/fdbclient/Knobs.cpp index 0fec094b46..3996fc6f7b 100644 --- a/fdbclient/Knobs.cpp +++ b/fdbclient/Knobs.cpp @@ -23,8 +23,8 @@ #include "fdbclient/SystemData.h" #include "flow/UnitTest.h" -std::unique_ptr globalClientKnobs{}; -ClientKnobs const* CLIENT_KNOBS = nullptr; +std::unique_ptr globalClientKnobs = std::make_unique(); +ClientKnobs const* CLIENT_KNOBS = globalClientKnobs.get(); #define init( knob, value ) initKnob( knob, value, #knob ) diff --git a/flow/Knobs.cpp b/flow/Knobs.cpp index 394616bf68..91c1d817f9 100644 --- a/flow/Knobs.cpp +++ b/flow/Knobs.cpp @@ -23,8 +23,8 @@ #include #include -std::unique_ptr globalFlowKnobs{}; -FlowKnobs const* FLOW_KNOBS = nullptr; +std::unique_ptr globalFlowKnobs = std::make_unique(); +FlowKnobs const* FLOW_KNOBS = globalFlowKnobs.get(); #define init( knob, value ) initKnob( knob, value, #knob ) From 7eed0a7dba2c0628ba10ad2fe208376fd57bf3cc Mon Sep 17 00:00:00 2001 From: Meng Xu Date: Sun, 22 Nov 2020 16:10:58 -0800 Subject: [PATCH 018/261] Documentation:Read and Write Path --- .../FDB_multiple_txn_swimlane_diagram.png | Bin 0 -> 2636523 bytes .../sphinx/source/images/FDB_read_path.png | Bin 0 -> 459742 bytes .../sphinx/source/images/FDB_write_path.png | Bin 0 -> 478073 bytes .../sphinx/source/read-write-path.rst | 235 ++++++++++++++++++ 4 files changed, 235 insertions(+) create mode 100644 documentation/sphinx/source/images/FDB_multiple_txn_swimlane_diagram.png create mode 100644 documentation/sphinx/source/images/FDB_read_path.png create mode 100644 documentation/sphinx/source/images/FDB_write_path.png create mode 100644 documentation/sphinx/source/read-write-path.rst diff --git a/documentation/sphinx/source/images/FDB_multiple_txn_swimlane_diagram.png b/documentation/sphinx/source/images/FDB_multiple_txn_swimlane_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..910aba5524c8ac8f2b86ae3f3512652ac1373b16 GIT binary patch literal 2636523 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

RCA&!eY*zKUHmbhG$sNw;nwhId% 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 eZQ$!g3*GsVCu78RQnU`OQ&58b|x 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%0D0L9ll6zMoJ5km6U;KlUI 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

  • WQ7?f^C_ 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

    14@U`Kxo4C8A4 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

    q{GU*2I1^f>#XA%_-V4-1 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%0A=}3*kQWvExHvu9tSgNn#Dwfhk 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%0D%uSL0 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

    ^9axsZ|xsl@b* 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%0Dlqp6)vrOXXD0B_MwPf@0^JPhYy0+sFaAe zcN`IH*th}3yY5)fS`}wb4n!YL3dU3l1;3Fl>t3@qT8Xmh-hcYc`8b9lsh%P)^%Le4 zIQ-t<_zI3J*zeAb$HlX!P;k1Cjy0UQjnD&I@wVUDiPulAj~~4fFTMNAaICJWB=w1IZbfdWV@)av$D~e~G%ZVV0VpH$&5foI9q*q0;mIVlawyf{M z0C!FriXJ|4GG5z#n6`oIARK7JqvjVr_e69rVZY|v7cWnt9CabC65(Kowkg2bwtiKt zSxuCAo)dgE&i7;B%N}!?wq1jEoyYiGwzM-=b~L3C@Y`?iC65NDI2?i2efaLX8-jFI%Rm0hvA6F~=K~muvQj-YK z#D@iFF}BKc-r~>9RIG`NLT<9#F(=AB?jsFJ8QXP4K^VP$DW2HACLTpG3cau#Q?}c$ zPJ?f2NLmM8mv|y|*T~9fi2Nak5HG&S=|id5akDP@#K}<}AIka}yR^-}d4{BluWT88 z#2S}|q`B5H5^gVSJSPwH$RnK!X>1Q&=fO+RgT)xJoNDMGg-&UVC!Gfk?l+2|!>Y=s z+{2|=6*Bs1*V?QHZC~S?%2?UGp`?WgeS1pxR_zE>n9u9?*EQmGiUG8n} zPwA*BYg5#TkK}g>cv4U$d0pfuA7!T?Q=o7N>&#C(iarqbDo{%(l81L~e|gw;Kk3=K z{wdd(qC9U_GWfH|#mREZa`M6doIi|}YH(&f64#&=M!;1tM~`9wjthsnS05^Wx>EVvH2e zQ>g9S$c7dDIcrFI2LPVUG7EuO2+TrY76Km$0rwd3jZd2)srca-G6eTK9g&FrnZVu( zBT^U(^7S(ssgCJT;u?jQa1(l1If4eHMj>s%v!BX(It*0NDYs9{k!}(%q(qJO*jh=q zuqZFsf6Es*`zTXcg7}lEy#Da-eE5MsqHZ&Df8gOKbYXugzby?#l?Q6b=Y5myR(50Z zzIm@-zn*d$Wr7+4D!Wr2=x@(HH(7?)%5yBY9)&@pXUOl9Kh%mdDfvPr{!+eUT`be@ zdMFb#>Y?M#l=Mjjnq@sLC+kWdRcHTzr{C^`e9u20hNmcU-mjEhTz%;8t-h?>&zHEF za+`v8<+qA#et|<;h;!oloaM2oh^kyntP@rS2Xq6+I2SoKhel$MNO>BT`hLO2pxtE4U7 z?7L+rzvqpH48d6CZLNe)R z4Ulb@W2gm%UBXbtjVtG%Vc{LgJ7wIAAakk*F8AH{K&)Q3EC{F>hlxD-+)rOfp5gsC zth@KV^|D^${MoU1<)s(n=<(w*hrSdx8mrEqhXEfvUEzNbh2>FX>uE>|+}C3O`sL4U zN3nV`UU>P9xHydQ@T8ni`UgYO)`s!eydKBo$lF@*u(y9-PyG0`_mE3sNZK$r>BH%f z3$eCiKE{bV;rZ3Zp_7-R_r$3f!!h1+^f(^au?^!y9s2bV8S^mpR<6ssgyOEUUF#)( zLfMz?)~PHvm~)L7J1@lWeN`;)(3#_v_||v6j{{ct)5yqLaGKtMk?r!8ow0c7T=Zf_ zQ+d7j*zs7?*%>?UzX!v69R^0c_~J`(;>>9x7Gda#k*?po0zdMZ#~;OM?245CoWD2~ zFFf}=JlV6+wQ6}h`uJnfz67~6Jm5XM-;cNV9wTbdLe^{-k95M=_eM;d}6l_x8k|V`tzO*2g!V+8&#`o1&j^ zQiqNljTd*lAJt7Qtmi~2MLxBLc5T?Op2(oJ(B2V$`R9KXmxd=|$)b z?~g<8_r%H5ry;?sV`;|{_`@q=$Cl23MH}xO8i==cy%U2tVO93Fko};er9F1QM_z-0 z>$^uT#P?o!E**GHsv82Y%4oJmUNSNe0akNNOx83L?5PQb^v1Y zfBWx0hR0Nu5t(X00Isvwb%GE4-ZP(zW$m<`Df9ZC64_`;BMAl3uZZR=OY zTB5xYyj3YZybktN-eSe4tY2o;=H=Nm3xQ7|1acdtUe1(RL()%S2hCP#76P*n__aVl z8cEtn+@hpWq+?9p7oRjq!rcu9iteMPS(tco0HJv1ZAlP-xl8~*Z4F5O#H}FsB7X&JcZ8rd4{Aq zPnts4SKLmKrDaTUuZnxh+`3jS18-iDdUZEZ5ZJSOKRk#2Y?Jgj(Bq5L0okTB)ik(& zp24Lwj7(!Y@#L%)!AqRS zqNVVhUcZ!#Jv`IX12 zznt@icj}EQ_Pd=4=Fm-rGpiAZ7)Y0B~bDQ~e9lSH5%Q{x*gTj!s zh)PnKvx;xf zLGaa-MH^%XoyrO?%6_N$+5i6KlH?5Kkk{pUU{85p`o+V<{W4o|gK~hS1sFYd<-Dr6 zd-dYDdoA;EA%@XBadmQuqB+T56(+6*we(-HDpbn%^Z7x}Rw#d)!*BT6tYlWf9NAU= zm`!&K0pVyW&;Bl;>aP!`nfJ>*<<_2&1@NaVs2C_Y2WAaPKM2R!t62#Ax*^~`HET%v z>+Xe5==+~mLsItwH++#Nnd)xz=>e1n8jfB-+4( zGgEordov$--)qlqdL^MHlKk6dND2s2I4cZEH#FLv?moP*=8_{$0SnhkSL32=s=pfqm zy0vT5mKXCU(pd? zz*uwX(m5DX;la9hGTz?37XkFCxJFb^nJ;&5T7$9C`dG1~F^-6+7Fe6-5W0YT&lhA?~cUG18IgRJ&(vY+P&($&x zr}08}13~@rriS>!qYuTp<;^I>qp-!Bn$1>gc*=xN4_&RwsyiPJ3QGk-CJi3k9Ss_ek1~J8lCjJl2d<;?Qa!jz?tSFB0S-6@9)$Ds zc;(Fl@txNXMAL$$F;+bnK?bu1d=JiP;s|Hk-tO)adSod;0Le94_|vLR;*ZsLE#um zM9brMzJT%$d&jBMH!w0i5c_&mU>c3jKk^6>FE>UjQ*96l%$_|*;{9XCh{k*#5B;NQ zqD_L--ntE)ba9UqRP$BtmEc`+_u zy^PXNM?Cu2qbM*np!_ouM~U!p1Y^x97}qyZRCIk`*2(^|adWKd>cBvkI^v=6@X@0v zI-O0L@9SUtQY=I9>ingNIJ9q1y#3DGtjEK-Ml8nT=GM(yaHOy*BhFtue<9v|Z+9H; zI~7|utdB2#`Ev=<6DKZWTzouEoH&`@{p%1UEnn_;i6+PX=W3>dqIY-iV=o5JV^3M! zIzJxTu{ldy^;uhuEL`i3&Q9 ziiKZ%Xgl!Tic^k4z;y&;*xplTqqpx&TmVKYw5`Uo=Of@)>dx)ocPdVv?Tf4It5?}O zAH91=JaPZJ#JjLRr447}2(alpcP_4hr?xLy9BbCDj~$!W#!~wK_({sZtNqDyr}6uV z5@;hzwUY{_=wQYxe=2)YdCpt>nVE_;(Gln&o>Cfl6?h`|z2|fO*Qn@+A?e7q3-QEV zYvS>TcYLHFX(}a&Gqcu;B&Q*%xU5G}T7Ge6P0HWJ9I!r#L2`DkeD;$qLj1@-;R$S@ zAvCl~Korfj$!T~vRbx(Pxa)y9w{Hmvv2vWN@QXmiah)vh>^l?x?bTgT4K6bU9)l_$ zd0D+22MN2%H#mK)RMzRkFXesz@CgZntQl2Lq=Ro3$OrfRt{)|D;x6PRzXDll0G)#5 za3F^?+7!Y$-zf}9X{T!?uOy$xp~I~L3I&efKK^0cAaMr>DDjG=#Qg}@3b}+Y?tL8c^aIZ;?MtUh7-=W!MU(QG_*K@3%r=pK)xcas(i9%k=1GLD zX;oR`-?eJG8lD7-#raI(F`kBPPa1?~TX|x)kefy)4AZl)w|t8{<}Z>NIm&+I zLEfpnFD;x?9Gua9^~K^ zyyHCe{OL|5PH!zse7wY|J*N{GaTvyCCcrmqNLqkm_U|kNW+5;OfmsNAdpZ=pen`pm=?3Opk-eBc@P%~l|K{J8zjt!(*&N0np_zjHfh`Q%rB z7RQ$dD15}%6He5xkh_RS(jK0bct>gYsj;7UiOQ}T3KqCM%_gs9me*zZUYEv$e$RJH zBT>sT`F#)hl781bNrUjL{J!^ZJ%e_UmdQH)4953Cc#7?oSU z-w4N2K0HE%RU^$hKECOcPDKaRikxBgaib#)bElG1!fqhrTHX@Kf@b3B#C$jX$RDfkok&-qnqO{meXx1rsb7xV2 ze((6%*mv?`9L1w?ZGCA-O7?Oc$q#c~sb5j5*G00{Ne4J5$XhxARz|L3uYA#hJh0AH zMBc>t+&UCd;VWJ4>xqHO7vefPAL?&hWn8KN`{a{P#KtYlGAil8Vh^?zT z;@PJ*qBsp-_l>vX{PimMY&E$))SyVc2nFa3Ygf|uE2(D<{MWPbqnF=}>c)0NwHUwC zmfA5Ql45Lk@6H|YiL2vqpYq<`7{{2n3y*j^wyg{N8pd01o{s%Tjx)dDH@gq8UnpbB zu|!)m+BSmf1kqqrRG-6!p!0ycw{4Cs>+0Ym!smJWt?0+V*~r0*kpZ^0wZ{^8t_10f zbI1vI?b;ou;e{@S@4W?M$K}X&U^&LAlY^;0a~3}D00J`|*mhzVz1=)38jwAbr}uKa z`_@}10$+f~*%^;vY`we_#b3Jh)z^>2_g{Di2ehl{7v)If@M!BXBwZJ4HY|t($HwE& zUo>JSIvZ0rqkaNs?kN^9hp!LBTAa>mNV$h=a&V@5;CSkpT*s=m4f*7wk31C1R?I`DI3CC0 z5uZ4D5@XTfTZpsl&_8Cx_)C@T%=w{dXL5F zQ>TC*yyk(S=w7)J7Up}d7sVdHD!`@rQLN{_JbE2P*CGGAIdm;nwa&S;wltS?khpe9`&b?6Z5`$)8S*`!d6e|8?-cT3a0|Zi3lsUp zXi7uU%P5K+=()l{#H)+fFeJt4HafJ0A!!p1aSV)M-T4mhrtYI9h$AIlR8XeUI6u#j zRQhEKd`g^L{M>gZK%9+4X?dI1ccWjhB04aZ#9v9g{^}l_KwpH`F|%5e;A{Xz~_LE&gk?o{Ap)?b4-^=1vc)ImU^ z)vH(INc&XmJ#-Y>V*$Jg4Fqv53!KCe=isEKzSbJ?9bqz2OIyI*jou3QM~GHBIXO%} zqN9r*%DOcxR8k*K4->ae@!1b5L8?L|->@D5sXzy9vE9 zj!t1$I=>khzKH|#i*Xt!+%;HN%9oIqlU}ZaZoh#;a`_AzEE-g4JdGj2R2?(m(*|2f z=kH^{A6m**sMQ zp-J>tu0Vs;Kp%C+Dhz4Wr#bTeDd?~Z^rQ8rJb=|m+pEy|i3xNDX>vv+r5`7#OEaE) zwrsl#=ihS!v3wlde=}Zq{T<*&VbFiVtATHtMzBjzKiuz2Gs{n6kU<|3tcH#g>$aWJ zSjtST<2bwn&no7szbvmz{ZVzYJ;u=a@wtYdbKrFt5a=fS5fAmUTM3*|gK_8JAOs-w z(U26V$z4R?a2vWuaLo%k;xV*?z-ZvX+_(1nnUK7e6m1f?z&rI$gnX(}Mlm%vAF?#J=CpP@d7ry=N`1b$tzeVHvE%DX= z`%mKjr=Ex^c$qMYb4_I8IK|kY$nV(>MZrUR2skwPulSh#%vzSZI>lI%9hL_ftf#Ne zrdbHgLg1qzAl@}=Ncz#R`OMw@R2!1Ih9@Ib;$$*Cbclp29K6zhIgTDV60g7hTD<() z+i@4hC?Z8hLA-YLT6zoJwtZVX{nXR3fM_@8@s`rqNLYH1(`y)TiKH$>fp}nG07m*C z0zwdG-gobC{V(^T;>vC<5QpNIf4OrzQ*oVti$60TmF0Q%8*Xg2=eO06R0t_7(W|h6 zS%r7P!$a6ebe=waI{wwa`d1Jb=i+N$`&vBp)KeJZElJ>N%qfBDd!+!*@;po>QJNPY z^N-O|t%GCCh0Z!zp2^=sAoqSp11zJE+Rp_#lUb51B>WDZa4Kpco8s2@x!jQ7Gj3<|m&-f|5|7PAV+h zzFO*1C9(vOF^#Y*z1MQjd1=y!bV3g~98*jPy>4o_De<3k02qq!J6CeP&_<2sG$fVK zs0EYPSR70ZxP!kz3~EqHLxH=@2R$ZPG3Sg#Rf3d0PzYHVjwd64{6>%QC=@tkYCv4^ zeFd}Qd{5XJl`NG3XoLNu7aiYEMhA7bck~3L_n_MhjBH7+04m8QVFxkfbBVGEh&l!C z)pc{Cehx+jd{?4X=EB(M2x9`H1Pt01Eo_DOtdC3Q&&IhkeF+y0BAOA*|Nb95i)Y!0 zzxbLi2!D;(Y*P|1fJCTpgR>)07<=Ygm}fGF`DHqY?7F@c z_loDmySD{PGEyX{AW|WM=T(o!vXOgfJdQ5cctY~WMUlhu4n?^{{2pU6%I z;pQ{eqBzQLih36h^3JVln*TR7BB?Dkan7cf*IojE>_2+XIRt}bKGq~nFm(p{FL6B# zv5#jk#`>ydi{i1zHuD=}A3XJ*INp;E5Ed?3%3PSt=x{9lcvEIqpvv*I9`w^HkdWUvx)0u(F15ZBw7~ZxT;=n%k)?>%=eFe-bIv2w@T9NzJ zW!#4yIeIdBde74T%t?$8S9P?dvF2ioM2Be7uJAVvOTix_iZv*tB6C z2C?(w2tw@t{8#@SM$=U6*sun{`evAIdM%@E2TovUdW!a-Y=t1z@#3ES(1Q=ey7kS$ z)*ffiTp`*ihBz298IjdJ{Jwj($9)gnA4`|Oc*5T5h38+1gG9z#L{!x$Xjk`|We8h| zNQwvP?|lDyy(yw{pj4|_O1EH&q_A4-f^;wJIU|x@q-*6&ybY00s*iFqSIp|=)@0j z48}SPYM;fM^QNxmXmu_-;bB76!)ZxIDVMqa+-ejz?jX5N=6+Ct%k6cwc-i&WJy+(k zd#l&w-u~g@&F4{;SukZkoa@f7{g%n{W(`U29B!XxL(Rqb(mCzEUk5JYF6OAg z=U@!-k}%17I*B366#K)ub7$hAP2KV3FFzD*6oV7`c=^TG zFnHWew9e+Zj<@(tU901FKL0p)PegBTe;h?QtLN-V*4UAFeCK^}_x4TEioWFKD|q35 z>7}@cVv-o(iL+;7^$c;0;DMD(FpGyxn2uMei6q5)j$nI|8QwXDyV zui%{$C7hm~qZoc(i1pnoOBmm!E@Upjl8XrTL0gc>87 zDD6TKX>0dV6qvdYJS@R0=ybfh?+Avbmr+8Z|M=(n(+(~1m8T!UyFGjKi5sbi)N{6% zez+VD5^eRdM|Q?M`VPBX`u0U4ww}WIL0e3tST@NR8>8)at=k%FF~k+l=P!=Lew3Xq zp>(GKX%!wp(-BRMImT`duky@L`m;iZ`NM#doR!OSv7jQ5kptc$CG!h zEeuJCevUp<9*%Anca)~UAHl%^e@-lMj?zP=m8g_x?w?5oj$7PL9P(!?{WI@;7H$Y( zs9r|`Eh-q(ztM)IAHW?XB7i^=5+EA|K>;M37sWm=Nh4eki?T)+2Ay8X(oY9L%uzkG zN{1B&ph6V7gf%IJXAU;Ts`Jc$(yh{yI*9Te@0Ykl8bI={_X@>V-hlS4W-a${;EHb< z9n@k=L(M$~=W3sPr%OCto>p6ULO8<@!1h$!Mxs zhS0Z9fImknIPxuCPTFId`Xyg*MiZ zba3EGd>JFsCmzAGGEHHLhDUpw!%_Hkxscofku5BtFD99|H2t)F7 zWP5+bZTmQIyERv+u{~P!IcN4=`8cETvs9o1Zp!3*uJN9-JD(}bDV@%i zGDY)ScKIC}V%hQ%eaFLcyqEGK@MiNWCoW}yUYBKv?J z_fL^?#@|XmmStqdTOCurR^%_Q%CkHV9nko$c)YoEa9Sh_sT4#WlP7svkQd~WKTs$f z`V>3T7`Zu-Mx+CSLooyo-pHgz>#$^b0S+b?pn#=g)JDeS%%fRQi8>qyMe zSXRdhB%I3mQ5ma6uB@t6_vyz?_K*GT7!m%Z(eEJged}x={pp|nY5e`a|M%nGd+$y8 zf_>f7(-Z&tU;pbgB-PQJW5u!@LzX2U@!$NLf0KMI$Aiv||KRWZL9AT0^49qKK)+FO z-?MDb%MjmGdQAspqQNX#ep9lRFbCyJwdfi8^p)~;WVbnP`uYUr5B>luZXh5NR zIdZB^82xp_7sReE4jjLVLFL;qHjTaj7JMoi&#xMaEnN#^=e=73o545$PtRyORkVM@ zn&q)^{o+(Ye*2wsarngPgy%5MO2?t)8;Qs>#@;Xt?@%}yk<|6S1_xD*C}>a9KM&wA z^`7m`>??s&*>M!a`*>c3kt|BUtbL74%DM0okM|75t8cuCQS5L!gk277w%~9M-*egj zr%z7AyEx@DnowuQqIlq;hocS0!7OWW>C!dspWx_43Ai6)$QAMAQ%^bFp#l7WShCBED9|YGlNlD8FlEJ>w3B>5c3Cu>)S}7e0Sq zw*MUb%s1aT8?Pbro6jQhx1YH?wr@a&2<#6NrSwOy?~6fs9y;6pB$R~KLU!sp@FVk~-SJoX(rmWHGq?Q>%r&TKbtX^$(& z5O?i65yy`oN1oUp?XC0TiN_v^RjZrP?|^@LLFMPZI0J8efT-3wJKPB$RvD;M@9MzK zICkm;#-=CYI$>4Y0rrM9YmhN^M{5Vh3iSD*Lp|~S!9#KL>R{}+`|enWykX(uV%}ax z*7)x3v$5;IG5j@O$8qbT*s*n8Y~Q$m5gc(EW7KzXq(73I+sNx43Kp=>|T{B{($zPK*H ze*(M6L&bVg7hm~xz)`Yk|ro-|I9*Q76P*n_y7c?xx~Lr(p_Gcw3qt3()IHQ+M}+8v~-!r zvq^f!AU?NgR?(7zmh;)qrFZh}${+KCfoMny`WP3{gV=TOH2C=$f*C+(fFX@nHN*{M zXH{76)i%sc`qw%r2b5DI_H@UFr1@F!D`@>{jEtnJ#H}U>Jvxa_)g&^YyTFCFY*`C# zjUg#`<%>UgGlL(fr=a}H=%bU+QWN0)>YGfV>#3Yx13nE)A$P#{srfWC5+NF@k^iM! zl-j1lSuzw5gvN%(5`OZBq@N7}q3+-i`lWYm-5d{WU4&8XaQwgj`7dy!qrL(Tfx!1} zRQOO$I;|lh>GXv4M-OWh`fRiTJbixRzhh&Ad=(uQbRGrDuho`VLFhT3}+ zoV_QSaDY~e5{HJQW6H^BXKmeF@OKSK)z3x#2L@X;JwTn|Ygt)zTZKg$)bdmVL!GSY zw90X$t}tTI)V&#pUL3UzAlHN8Xib3c)s=3h;)Md-k0B@vu|NLG|-RE$_VsGT`X*Cfj86`mo8kwSv$Sg z*plCMJV*;wq3<)rIA}!HtHXCA#EwE#YDjv|&YiKMoA=@I?KvP3n(}P#lN%>YZ8c-DjHslKZR^HS(c&Bz(n$^rf(b_h zuS@_t<*)V1FfG4Qw%- zd4J~qk$JNq{*(neDY!7-tRd+~L38%rEChai5O6P=H6;D@!T%He@~7I6l$NG2rGg+y zpj<~Nbm8KKG$J{3=5+MJ=stD=Pbdg|GJ+c3EL%X<+(Q)ltY5zlFN`Z7VisVC*pUL; zG(<$mqmfx6wqQu9SXhBv~-q(oq(xppDG%v$by}eR z8#F{UUlJM+IC{~MdKb~Qe{Mi@k6_H8w;;Xm)*_IS5YZS^#bE{H3RQ)@%EB6}O2joH ztkW=5!e|uXoa4tRsdcg9`g@41FRlt_pWUouht?%(}7>lcQk|MjgngmAG5L(;kP@n8y(eFMpq z#BwcBv}8aCm%_LuTS&bM!YY+rC4fGV3Zh5yrZ6V873KJ$1G8O>!4xhPDfyi@ z-(~&7pxyZap!IO?`XjT>byViUAYO*+IB(dn5d+L6X{2)S(DjVusc>4)RWcnE;_LZL zg@&(w`B^+c&yBt_7_=Ncnn<3@=Z3W_;{N;ArEq=UfkQ-{JB6{zK|PYdPY)B3^rw6mL!GWpBFC-4 z$hw*NhyZopfjHdTmuqaD-i%p8WcJ**^WIpuVPOh-&z`;#X5|nHf`G;i!l2b@AXA z{Pp$9kojwK`pKL~jGvDck<|T$Ic}s;jNGO$2Ciql>TYk1hwj=Mn=sl^=IwlU&2M5~ z`=6a$_g&ZR|CxKZ>#%FCNnEPj<8yufn0vit_@2pfW(`Rb6nFIJ(`-n35hMDy@T4y8 zs56pH%yXlZs&slE#-tlIY{tV8Twr{MAckE$g`BjG{s7K zYnS?CapvTecmu_w3mB44vqy}86Rha!iuD^dV-UFr#Sy$}zShh8$795GgPObVH_)cX z9=s2y1q)G@MG@w7U%XGm(rb8oU)Q~gNZJn~NEwS=Z@*35!RHVX43W{Ls}4MS5C-

    b1c*i?FJH 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

    ~dSHx@ps;}y)>qEn+e(UpiK@IL!`1^Zr0rjdr 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 z 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�eiswdk}N9xIn7w*;}wWSf5=D1PCx%m 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,N~z6{hsybgIDaI+DxC>~2I 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


    Eoky`_AsX#P#B22$_~v0rlvkEMIIv?WS! z76QOGy8p_6H*V83yif5Yi+V1qVG!gjGD4nskcxSQV`X7&ZMR-GdM`K$;eOZDhD4@e z@-hDz?lqPtZ+}><_8MV{)H+>Tg`CUM!KJjacq}}Ac1gw8>Q+HJi$Ed&N49-W+B!0Q zQp@-=lq-Z+ORD@xP($uk9#+H-2SiC%6f`Zmoig%=3vqXctxqt#y-IW#lfY)iAD9HC ziG^AjF;;DRI~$|}1%wNAtWz!hQ2+J-b&mA-8wqtW;JxQ*Cryh#E_4X-d+8%(SJzRG z=@Kj8a(^l`AB!0ot2tY}N zk&>NClUw;RBL!L@?Aw9Y51&NkX4h1*xHe!u?BQ7)@zPaoPZ z^uw<^^gdgAwTt^1w6?S?xjczr$7qQZ4pMEqT>uNW_mky?@2dFibzPRfl#co12yFuN zNUHbMQEQcR%T8)TJPs_9FwAzkGd1SK_AT<@i+zA*uA^E*9wtK|xU;*V^@J#7OiWy3 zWnwC9Jr*bP@Ba9yePiQwlDt3jzGM;B$Ls{0KdyMk864kvDmiU0lW>SZY`$>#hGKa(B|31Ky4kh}9klKS3$F=KWutH`&Rf;7ztQhGjL?ab*9 zQ!s{u1h^&N3pXn(w1(3Z3OtjY&J(O@7`VUb;FU{~$Mi5B$fUDc{;Fg@snw10D2nsC8epY(=zVY2Vd8}qh66eU6d zTYG?xEu|GV#_I?sN#+zHpf7X?7*B&E`A=f{^`p~LlHp$#maAtD7YLaKzc1!kgK4nz zB`Pbt>P4rVa2NT`$OI|Gk|s(YrKHy~i3tBaW=vdCt|lzRc)%0AqM$i7t^b5^#|P3Q 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 z z{F~PYYbLx6nJ#ioLS2`m2tQ61Ip=xw=ErDQPu_?`@j3SLu`Dq<;Xk?TIP{+jQbT47 zR)`fn5SCP3T<>^?O*IiCHts#<_Reh*Md2G~tBLnUE*#tBPkYGc=~x@Bt7xX61TR~w zoP^kuQjDiZtvEU5Wj#t37P1U{ zWb@_5=WM?F_9lC+&tfr*H&MO{oD$QJzDTZPO})GHn+;H-RbDX?i$!teN^p51Oo-W3 zTU(0}v5A3{qZDjHy7v%Nj-b9jrp6il-SYg`b!^~G{>5WO(Z*~MjFkw)dhzlykgn@D z##e<@%*k1aD3&y`T?W_=Bgr6DQ>QaVBpuY&$v~uCHUC{L#7E-x?s4aDpXlqs{+FIzm-2trX3$q6o?uGKithyR?*wZ*m~ zCgmwJo;ymGVa3MvNyyU~c}_{kiSPK93u!F=^&)fo{iY%O^;ST??z?jZ(OY`zCgKtB z3-d{|78F7;X545d=dYCVc99Oa-=zB%hc+2%q5|6pYMvc^ec?dt0P%*@us=;Do~gAM z5dNyHe;}^am-4*af0{YpsR?cnluAlcMj2}C=tY}+uep~pH}+dIxX>U_F|tlKo&{BD zqgY#l1U-T6wo!}wO8QwuU<&;88AHu|sj;y15 z@nAJpnUsQ#QQ2N+0aepwVRMk>LtjWrr9O9D!*o#;sr9ugsZI1#0>|D^X6=E|S%&Km z(e0mbs!6T+E^@8TE$keJjBtUU(YL1LbOilekagTV3m24A^`L$W1@x$E)Y^Kr?G3Xf z&UMLlCrGbivtG<9vyV_REOy%Fi=BhKB)2I2zU&Lt{z&0iwhnBzs~sPxi(o4+DVu5U z&8+ISIjFVIA+oo4ck6f3;VBzf7q8~~O7L}R4Ey-lrh4FMc~`Tx_B`>Vx>_JjX`^F3 z?`ZaxLNP-3b{4juAzF8OF8%1GQ#KsV9 zeg4lF62%&4WK|%lp)VlXcAoTCApiyuPR`^Mth0wf#5$sXS>4o>wfk@rNeN>%?WVW# zah&$#Mpt%1!vAp$Va#7JMOBJtJ*Qk_AYT4-^I7EZSP| z*WL|~Gr5Jds&A9M@q*6h*;^6}FGb3rGOy$x^lVm0RGM5tY%i#=QI?NmJcZx91i{~q zk5fyWl^#Z#+jTci|hrPThqB zKj`?+TI@v~a^mB4bWr<2>mFP|@+v-6K{6QsxIY5%lUd9SrI~j#ihV#UpxrhB!#Q25 z+3OX0I|Hzuh*~#^EA_5>eXirc1BWRwR0Ks)ne;4N0%e*PAvHAp6dtAbh6b7+E0N)V zqnR6ccZuT%B>6hKA2vmiTH*Z?9HlfqRPyr6meTY_w>Dn&Cf+9ebMb>fwV^eS<3}Pf z8u}HgB9?o^+}q8U14w>51Qu9Qkxo&}7C9(eB&~s~*d|AAB>utjq|BShG$O{PTR+n+ zmjCn%`CMh6pk~(xp&j;Q&0*shn&uBgf$);YlW%^{CYW=IE%H6~gMX*D)f7ei>+=44 z-2UgQ5EbOAa%l6|076!AZeDEru_3D9mxtnyXc_l=MPu8MeO#9c z&(KP(sNHy>#1oAq(izKB`VpWtDbwr}OWtU--B;_)mrH`GvhNb^8|Hb=KazORnpF9) zTZNRwF~3sRmUfp>@(7RBn_PS>GigcR4VLY$YQ9<8xT_IpH#fhAdM@8C5Xt9mQ(s36 zvz?378-duWn#+xr*gUidQj_uWc@Ze6V9y=@(wtY^it0vZ##Z~9C@Wf|3C9P}BKpi^ z|A})?sB^W6wbcxLWt(eSNCD}G;xk|KHl_Z};)Jhpp_H7jsgx)u*@Fsv(B5rkYgaN@ zV&?Wo9HY?e7in$imWiyKO6Qo3ypH7OpUlr!`n66(ZfxXmjoFaJ<48S<+!Om+4_5h6 z%-(+Q-9^eKQ3MoodO_s8F_|w6PZ_U2v9&D=n&5-|+YsJ?J`O z26W##ngJ?n15Y9{#m20uf3d{5m)~y8_kk(nv`x2aGV%mH$ASfY-Zd`XTwJfmpE6^JfTwXoXP8h@Sp|P$=70))+RC6=0|CNW!tFy6o2L!7OE&1h=KN0LY zmDgu^|ETN%R$9PGKP!q0^`0hX;EV^P+}<^uGwnML$wKqqeDEV#YyGFiO()0+WeUUT zqu-Z`c65RY{F9gVmVv9>^G#5J@2$F|6~^V*=G`M&smbCbHk{CZ0ZG7(PFf3~)&vZ3@+A3T! zuluVu&3(%k%7hE#1f1bgylkAmM+h%6tb%2zt(r#1g(rwZn0j2`F)cK(-q3)Jk#POu z4JyN;MvoUU){`gbe-d+bN#L4s=5c0P3BrL? zW8UGXf^kW>F*owU*vKy%yrP(I337=FD}ng!JpL7d6&WcFnwL^MXBMbL?LhmyXutE2 z%W#q5b#pv$5v6EA@u(!USjAKY;pOooaXpS!mV)YsFC#M2vtMrCKRp)5UMmTCsvh6x z>ZSBUmLZb(=C@C;Qg*^3xG3k~Vb5na%`GIB+{uLNqv zNMR;dlc^0XwjmvFun&>&ZM6)3JX-L)(;E}&?t6eA{xUs67K>^NN&+$wOxuBNs`Ksu zC6bl)2f7!L($wCEg!|Bhwo-XDpt=9(-33zRC^FC^ELZV^MX)ik{30>*`mszu+}&Ir z#6K?~uuw)(p1|yQ!9{TN=CL;Bv?#!o`#u0u*k>%MwKPanyswa|rNV%yOqUK@;-D>{ z1!hKNc~rA#vn!#iud{O+>W%ioulHOC;v9HkIEQD16o!m{tgDn;-LgqG7jaX%I2~#8 z<_eLyeA6Fn(f-+-VW7?Cs#baVZ3$9E6!E*SvwEE;$(?EFc!YQfB0neqYDIE;1GSg8 znsfwBA)j(>2*S77fXhO5nD;YPE%0ipGw#`Vc6Wi-78zL&C(#f+tJ^cL6z?AIV8JZhDE6;hRPtRX z$<=?_t(FQtOJqrIcT>>%zm(J@Kcc&SP|U8Hj1ima^M70Rd-UOs;17rC8{vUT8}xnC z8_1NNSS`M=NlB_pzUq~lFM|I_mRV|2T!(Wq?7vRLzmXp}CsqN5*9I}Jd2BaRw}8;x z{JX@{pepAz^tBci6iFWy9>}=V1$pc8zeNpc+7^>jH6^EEqCB!}3tq z@QrMD1`iLim&k)2u_y1TG@>$qI}E|f?QhCr*yhU|4$QP`m`H3rHS`}Pltl;X`?cMk z%(qooL*BBNkva7d3ZSp3VqE+H#b2qwKtx!!5M(lxuy2@^?5=UzIg03jA?fqL+H`bL zRDxi|wxrHVBioJS1|P-BM%xO*4Dg87``Xe>UHy5-N|=y=zGvhNZgs8fCY5Ql7TbO> zhT%R!^sqL%PR|KaqlC>5(|#4sDZEaT8TdZG5u9EbU|BBC;Jc8*ndw*pw>aGzPs#oX zU)tE)Hxt*!89WPTrfMRZ5s`Be$Iaq{6%82+2e{W(8rdMWByal!9c@zw#`6T--)2*C z#Wk48gc~u(R_i@x;3VViZygB=p6PW|d)r|;r?l1&Ss<;SM$on0wZit7boMHN5;w6C zM@q0?BKxYm5=Dvnouj81k|G;-ncc-vhAS*^S5DMDAb)HQXvcsWB92AJl-*7bct%l74#Ha_m727rl7WHgE30wNon zJ8Jl1{70K|tRv#rFd0$ASJtsl;N@X@!xS$(EXai-WNNr0BS` zB*9Zll@U5ey6oUUy8OH@e!O3xudrisBe7_^;m|qYoH%u|*q`>PXl=Db)2(~_9PIZP z5&Mnefg4AJlX_^y;wwh29J&%^ojj7>_DmA4rMv2JP75034~ zxyBN6j|(F--|OEbH#^h~S|;BKkO8X4#ao5Lzi^?y;Gvaty`W_XT7b=|DE75#P(f=7 zk@kG4{rN~hK)BKQ>IJMMUk$9ad~KcCVcH4BgA$(MmC_l7v>Bnpu;!L0YqofGQY)YW z99Pz4ZDamb4&i?Rt*EbqZ?@=i!`lZoDXD<=Us&G$pFjBsjIu-gVSZ|U=~`42EdH-b zk~{hTRY`Q?`2CMhrBUGMXMHMxNIX#~Qqf+lXmE=j0~838Y8E74_``w@U{wuZ`1e~# z48|{yk(9)|6Z)mBhxS%ggcjG2sEzr_$;jHNRz`qbv|m9O!DmIP*}FN!1YThZYC-MK zS%`7dy%cU9z$IgOWQ?uR%qmVr_ z9kJrh2L$AZ@GI|mIPWp0a<1_MLjO#G!Yp4Q7W5%b-q(w*Pn2OvIDFtJvgmzGEow(8 zcjISfY?ODub?_CFGLM}DPBZtL*J9k#a7mKxYQ(G1-vvb$nE3?(=^nf9VQP^%L1?8R z(O{GWlq1Ht=i~87xJh9cdQzGvaWVY16Bs${$n40^ka;Fffuwua<~SZHA+cUf!CTs2 zf>N46azP4UzHzas4!v)bG^{VUY1oc9YZ!x=B2`$z5LJdvW72&OWX`IAlxmR0yuxKe z@@0tePvYTxocX7JhSQKVerpiakV1G#SAzZ0r-nujhL|N4mR_m3b7um(4N3RFK7mNq z6Mn3MC+b5alY*wIH1qi}FNdWy`!O63+SgRC7q%p~EWW#JqWPl^TfrwVrP4vXDZcnf zN)JSTmxZ##qQH=nA|g%x-m_EU3X^2`^2;%2_Qe^sW6%du>L8aZ z9`6%NwaC;d0G|8Nd76Frr`@>uLtZTT79$=PRX`Xnb*F3-OQw9qC$wx$W@Hrv1Dawh zvz`3>e-Fd|J{uh>!S2zc=f3*3>F`YG)3%0^&^vSb6q{k>9MZDiFA=LR0A!c442m!nhmJkagJ@o)Am%uh}ehO zD`c1G28N0zA&~ccHk355AJ5s#OWfN`qk|x;9y4_wL2ackpz{<91ZdcAun1ra^QDbp z`#FzdvvY9bv{!74=ND+@oXXAb&*m6G#{!=7M;eK8V^0%nzYUv-G7JrG^f{sNs*h@Y zmLcO7ZGyyuMZ~b)?9#BV7(Ys|#-VT0G*R)WNkMtueU;H4aT7M z&FTc-P)px@hOlq8&N1JE-?6SPfh#j`g~L{87Fi~J7e1i?Xj>bGGW9t{7p6-SE6f_8 zt&ShP5B&zI;-ftx9p2KvdU6p~7foqm?rLmDF4O>h3B?quGC2hIYve0H|2$rM11|(L zsD0LLJ`>CQO>d4|I~-c*(Q6Or)u-19-3vL5TNmbsLk-&aZNiHi9l<;vgfAs#ak4~4 z+0c880~cKl5#1KM{)NeUy0D%T_tq7u4P*xYZI?FtLa9lCGLx&AvP!W2wE*NMq#xSK zY?+%B?N(0qzbJdlsHoev?R#bb>5x`Z=}zesX^}=c1SAKPZe~D1rCUHs29fR_O6g`m zVi2UeQ%c@H*Lj`yc|G^Kp0(cRi=SkHF6KD)W7~e)wo4#gzRoX=`nAnV(FlFpE)y*& z@AR8TYfZ<`)YhO|$XGXW?2j~x%cZYA_Hu3AnW?tQm5Q%5%s8gaI~VbCi>tvYZeEIh zRH}SbyW{6$UW3dUsUHp6lq@z5*H3mHKWdB zv&g4=_B=i;C!A{NeUy}Zaz<6B0BPnxSfvcI%f8Lam72nP$dm9~M-DZ(HHmg7%CPOG zFTj@R>nM8g`Xjj$AH8be&tnOENBd#CS@M)T^}X`%N>feb^ZsG4J4=CSeeO}MKZ<4- zj<|dej^BOn7ANwzb8ve@uyM7yIzKke0cG*|~7^b45E5Dwc4a5w_gnhO}(DolsMXuyr= z=ns};;W-!FHg(D>;`wInrT?ebh7&t6c%{uo^>LH z$VJ|EVmvSq2BR_RpZdLGx-PC7avLFqk&=+%P%7}lc(fj*W%G@27@NKBr1*pBDyIlC zkP3(NLO4G^utxp-x$T}D1om5;CbN$fkveM_K6z`NsL_hbRD2Vu0BozVIZ(P7bPXE2 zJPi{?%4=?>tYOteo#xVu8uK!DC$p>(_JgLmMK8| zRAt3JBAxvlnZ|Ix>DJApvdYag$2~F-8zaZ{i%%mMn%M()vn}S8(aI9ped>J8<1$C7 z!(u8QlnpL$)_v!E*TfA8p5P+-uX3RF-#*D7-C8qO1Yhw727WV7k&d{ZZ2ln92E=(; zPxhq4)FU6E>+8MXy*cPXkLn-m80m=_!g<_|KH4sPu0}ySTzj>dqwG?KsX^JT8be~@ zh5`MHcXnDsQNk_-)W`=pK&u$)<9k_JjM) zm$Q3b?`qBI?>8_2_yyu-PMC78v!u8muL;6GFL)Lv5+$%p>%6pO;+Wj~4X+Z{% zC6%AMVIWoS=LITM{}34e2t?(goNbRpXeNKdvduys>Z%Z9egE^SXkOfz^NhQxn^hxo znO>DxG61eYE33_)YRPz=z@k-4;QJ*}y4*BVmGHL)qeC1BfZ`1ufF;cyMb4mcftwM9 zo$}o1a@9*sQH;67?tzJ9R<4rq?>*y`4KK$}TGVC-)dN!RB%1T%F%}5&H18NR9rnrI z6N!2WhX45S$VJ%!y3%fx;WE5oKqIL)T#WH@THbwasvVo&QkS)NRp)bUQQNbcRzq{u z2uvd{ihiLYP={At6a{``(wd5EI#LDCGKo*A9kIfygetw-(z!f;zS9*Esu9!>QV+%5HjDRgnlwrbV$EOSSJo$!cu9QL0Pq zUZ$xE@f(4=m%Pr3V|_W+QHp*E|2oKHR+w*?{q?ZGa}f3Wz|*hi zS19q8d~lJirsL?;k3LF~IijiHkf?hsj7LL1y!xeyr)qhnk%X>=X_9$ngCbsrH5&J2 zCswzAtutpH&GM8oJUG~h+92Klnz zc18E})O*`63*K!8UnIy{w~TuP3RlAz$7)#pw@yNoL=7K3R1J1s6nYueWmVSI=G>G$ z{UfG&=J1lfoN!CDferQGKAF^_*J84sJ2(D$!b6(#Z*aD~L)A-qo`DRy&zBK158!j; zsPg{Rc;m3=3#A0iNwWIwh{4ki>zJt{%7NOq%EML0gr$ueCIxPz34q-4jgffDqhjff zibOpd#Osg8FMc^xyEN73vwwcQ_m3&&MMdC%m@{~P%h!irVykpW_9nnWvonosqN$$e z>;9{=e2dH0);Gmx(+V-@mABP~r)h4}uHTq8T7#WGW9789{%g43+VUAr>)cnl*t;M1 zRrIeLV}AOp+(kyl>9LhvUDn}&X#z?7_2eGk0UL#0eb$D^i``Htuu!5p=msT<9OBF$ ztfUIq4)j`o-EFLGRoxmn<*TDzu!iKls?$>U%mAN?|uG<*PmlVeR z7%o62ws-mKre%SUyqttFCc+o=$g%>BHnsrW`S{UN3Vi~^AkdWDhV%5qU>rCx91A`L zdtN~EDn?>;II9fnF+e)Ci(yaLW7rlO*YpMLhceWss90)ADMKnr?HTabdx+nq%qy6W z8Bl_?y8s4<>+Gir{rnR-9Y`DfK7IE=03PkTxa7lRAiFWb5z9d@0H++yIIXhW+bk** zVSEBoMAku$z`>O{#1h$r40EsyRXb$bA|WYBY-8(5iL3aV-rw0AG!YmAjAM6Di-gG+ z2U@DX;HN0VTrL_$`w(B(h80TxVgI=$ewIvAu(|j%I>ZTse~8j3E7m3^2s0itlbJb| zJfk4yus2<57$OWQ{=A0E_GuoyKzQ;EpU-22Z0XEo?vQd)2wsGHYSSV>S>`{xg|q+& z-?A9Clh5rZlNNiK0>Qt(Gc+pYX9YD5t1{|cV2-HLE+sJPdE^AzU$4pDOwYi*HIQwe z*_J*K;WA@A#?txojjCl{jumu>uGzwjH+Qki3as^Cvu%B~@K_dmgkrCTy2AXt?|Ea& zOjnmu8uI&jXAJbBoDJUaZp{c}asgIp9G1EC@plk~A1nnl0HiG4xby}hA;26IQaM5{ zMtKb{6K|!?2U<(!n*V%pr~l|N`dKlEmJjJ;jb&hK3W^`a)uLXf;ZJu16^??k6JLMh z+Ss11x^@p~@$z=ai3{o-lR37FzB?SyJ6vJ5ahGwUl>EceKcBJx5uDyY{Hq|Q>FyeX zC&H6Ire5G6SzkpBdWsT9Hy(7+Twi25-6#-cxGK|oA~X_sqQYetsN!inctS+Ls$BgZ zfkY~WZ~cE3&T!6jA2y|&hZgSsxg<@O2uz~`DmO*evKvJ7yu^E2pTQ9Z!Vj+aR|9HQ~n1)s5Rk7Uk-Q2GARpyVmFj*)a9c1A{<8qF!DA!wDFE3Sv*|KfU zlIoXqt%vvJP?FG}i0k591lqVMk;>l?&2I1gO?Rr)zj6%)I>~t?Dvz70jKYj}Q_xRm z09~+{g&liBwl`Ou-Xgtf-{V1lP$%~aITyGfDZRI>%%Ou5qm6^c>9y#N3MOY1;{E+! zq(yW(Pz7azr02%I>Eq2aQCkPXoWp6Ax-x~~A4=k+d8));iWH$AJQC3(t|=P*{%dpD zuiDE#$@vpXW6&=En$kAlS*s}W*&qs^UcAnE+QkjUA*r7cHA$N)l{2^Ls198TE!u8T zo|vv3!h`4I06uV2r_x07%*Qw;=d3WLq7iD~fcQplUZu+DP#{%o0C29G(A5^EB;?G5 z%t3vLaZ|g2Y!3E-Lv%Eq3}7KMSSPSW$4k3Z%`!LX>6%2$^!W5xfXO!EbmosrN(DI-LR!hpUgICdxmE9Wr3#9n06t)Qu{NkSzB59pUR|NUs>ra zKkiG8I81417<2#HTAvyEmI}DrBQDwlj_$E&A|^(i^*bwfylbY=%Fm|@!iQ^?sPLHe z4gA`T63^Rz3|{^m4A?VCtAFb_rR{>}|6)(w_l0aZ#r)C7*Mzaaa?mlMS&1NP#4lO^ zXB~4?KL6*pzr5~WFNVq$%O$H>Wf-Dzw%Eui<@$=WY4iJDowjn8bAHR&poo8az&*Oc zW4S6$hh#JVrsg+Jugr>$O}|`tx;82en&n@doDcCfo}ErpUgKkB(%l--V`<9UNx=7$ z?BX-N_t)&k&rhz>3LDEb*x7#m>feu!Diaw%OzH^KZGKJj8ipvTl8Ql`Gon2V#mM1D{lwiwjn>b28 z8~pG}#pfXF2udEeY@+#H-(mmE?;l{X%eDvi&4~{9-(!D&i%%u-dun84UTIj5l98qs z@NT(OMi|WrRI#0L_fuiYay3ANtX}z9n;fWiCS}g0_0M2gphqh}_}?-=RwqnbI~4$B zS^SP_41ju?Pl1%cC|DBRRgYpoBC2KfzEUo@j2#4Qw`>0MYGierLyCQt}u$~0|C^F|^bc1iHN?b(UiR7R;VJV9R72aAK zJ5;T|-(sY|a@txDb_DEMuX70?_wTOLoQ&=zaXpvl`0)H0I(lNfUtBS31gnPxhm80O z4AIug{Ss5@wlQocQ|8tc@yjxN^Ed-glAhd0pVihi56WvIyHBrF^i5!TvcQ|i*B=JG zbzme&dKc@CTHRW{BYcFgIHAtY9xCGUpQ%%C_f24jZV&@49}xw>r7AsV31`2D4SFFp z^ej_qdZGW<^{zJ&ckAy?KCkTKDeLGOjdW3QEnK}wY(lg<+9BU}c0EnTNiY!3F7$is z?QE3nCv4DX7y_0SX%sp{C!F7m*=5=Jfnpa*&R5gT5R42(0NVTk4bgGZACLqFtj;QZID;V=EE2Jm!1ELP_CbLrAsjl|M)I{x;sTohul23j_ocfZ{zwy?032i=M5_U z9Bi_gnGRIJ08H^#?zPx|zO(<9pe)M_U|T`8$8sFb>{GAmTUaxtCugSg%hwi?j#o`w z53oPcea5aHjAI+-(EU-R( z{rTrhda>@+A<2<1gFk;MEjp6cB~OWz-?LrKl^!vlFshL}Vs)%tUQMTC4%~0ocWM1v zJc5D3q)jd`Q@|94n0c*#u}L`;?mt>y9i(yoj#e%y@~w&@5v#ueyF)MjR5}0JxSV;T zN+@Epjw4@65pq%9nrQsC)~#W#W6UmG4n>*t!_2_;@y2#vXWfiq#9k$??iYNilIoqq zG^5BnQs`unT^Ap`8Bfi-4Z`beEyD@Gr`4E+591Sn(qPdx7B4dTH0k1 zm{^M?HR?;|IR_iNzfH)r424Y^OgsC!)5!)^3kys) zi->Wb|6bDU*~;GzQ^U42`rJ~7ll>Fv8}Y~rKYrHX1AXjdwy#i-6fvG~)Af-5PLOYj zZRU>{k^!y~u#BXndU4~I38ff%TZQn%qGAz~*4LpWztAsuI)6ZX-ZH7(#18?)CRb%+ z8fQ^TR8e*PQ(_kr*YvvHFbBs^kFQ76(uHfENmNg>ws&eeLu)iNAhth#E$AnSJhpVs zSXI)EXw#hjVvIH^(UXHl(UXWKiWJChk+;4cQ*sz{(6>#3K(X3oTFh%TlOF8l3E4eO zIU5()?e+W~_R^%{P=1E}a?Wd-T{|QAlf^);#NB$PEoFz6s7l9^D6GP*374wN=f&}6 zdZ!+2!bZr#3adZM&&&N{GB=5rEN~>#-5MGa;tPG>ilfMmmTzx}(2Ja|b6?Ah`#rTg z2D+S04MT5!5SNrw(RpTP_-sqjeAY?S@!QA=OH0Y?BV*i1$fI)>nDP>5fH2cJGqqX= zH&`S(UjRDNR}CcoU*_?@dYC;D-e zW&f?f{-MCLd47*Es~LDrWF8*8r%*ZlRSW`>4k%B2*PlwXj1Fb>2b|>8pub)KV1AOD zNLEZ0P6~i6Rn=>W1lUrEK<&Khw}CRgGODMZ$^W*U4PwWsI)0}hCn9klV&W}7{-o&8 zY0O^vVg)b!J4g`>2CyR#-qZI%xV4yW-$R+{@4^}2&o}_3j?8dg$8bE7g+@BRR6lD8$v*SkIBWr()C zwg8`TgcJk6wTNJrKcnaV~lSC5hjC*YNF^ow^>Z|o6oL=AGQN)hM z@T;8KOKH8zYX)R+4;=Ta-v_1ld`I7P8iU}V5}$9FHqz$vjG2u0s8Bfq@X18=EEoq| zF8CI-TE}~On?vqXXh&oo7ep=RM@53I-_b{6#Ij|IZZI)&Y)q?!3SbX{7*z2`aH=Ef z^k7Qa&n^3J{_Nd&#gfP5`lK;3j68s{@R9H`@^ljeK@N-ckE__%^+pi{V4s7ZAC!%e zGoSHcO8{ofavO)U;`3?8M-t7O&f5YOLt8R%&sN^r9z^53`gco}h0z zU70X4RzURqxaLE9dsEq#1@1V}J;55c-NmRg_gQ#L)E6HkWv_69GcJGbfB)lJ7=S0~APow^DLx2o! z#P@Ow;Fa++mv^ZvOw=q|NOtsN+ZDz`I%&V^Ej+OSQ%nL@epXm*;$VP{0``z$j4Axx(vI$0}b1Lu{5@AD|_-7oGNM-xCTI=M@dq*5dT&H__ht8MS+Se9YlI zd7TH$&BFrNs#pn*!%lD={2}iht-}{IIOJa*R{@C{Nvbgq6;CHWTMVY-L|OY??5YWN?g zc}$GLSC!swKW0IFQ6N;QZ7aUMw~a=JXp{_u;i9XQ6g+2L*AX&2ad4q>l1akZ*U$VAPeh{~p;4)kDQ{9@l=;F|@$}pnRq!05 z^XTe6S9?ubddbda_~M5X^jeiyn%uNFQ~Iaj6W(c_A8R@*U<20o!-{BxjDv65MVUVq z>Pv3!?AfRL9Rd%ZnyeZ-q|$G)?tRhF7zCP{yavU6&nceH?8FMn^(@fSlgp{DLFNeAS41CbOY<#R{^wz zKO;b=&Y%7qCD60SoGFu_*NOOucT`U)r7GlbNC;yI`J*c@R|5g+=V$su7_A%!?B_tL zP&2pXVuyi&tl`n3g)=HLum_Mj&nsw zvBwe*$N2alH@>9*tBTg&Tk+`pkQUsNQr!{CTFw#66^McNgetoq!Le~qvx|~H#V?GA zZqt*u$v^daIbZfb%u=JeIAIM8S&~nUHMGq}jF@6R?~M;m%q*u|npU zdjRSC(7GD{_>ba~xVjCW;Zt(&1G{)vuCb_0=iAu$Sx-Q1Ni)DY7RT?GY& z;hzYi)%#1&j6mOD2u#aoaw^C~i1boiVy$~L*$7yS+_hlf$5|_odH(rrX<6SA@jdE~ zQFf5l(5>^~{VTAp4h*AaPxQrl(|_fEo4v~BvhEM)n&I?ir?NbPx=NZHy{O*mHWczY zj%(RGul1q+!r&vf5~i3|1e+}|zfb^;cPemXJ_Q@}Mm#qVUi$Qs zNPu`WrQuuh<_W}W>GnK+pu>#&AG63m=dmP3tN=) zGPc&YN?Ygt?6JvKXoRTRZCU9|1%K(w0x|CFE z&emO-HwA8x`me`@?`Tice86OS20$VjGr?gRp9GD}8Mx@Ui;IiMZqum(9d<`9h-DT6iNI{crFHJ!W%=rw zFh5!A(jMc<DS2 zxNn#iC3@O1L?jjOQngv=CLbT7AvuE;ziH(SQRNyxdvR}M#%51}OU;{I@4^c|+lF4- zpz_ClCgG(?15Dl7cpYD^&u1Kmag}<-$2=Sl%e@v?Zeq(3Ucx$3m)orBa9mdXt+9V) zjnuVp)4C3A1G#t5hAyc{O4miXCM!d|6ag94nNx@6rF_48xt<+ST(9FBvoi7rR zib_s)iq=bx2&8;iES`fZG0W!QXU{ZN7nWVOzMJ09sdZBNWX_41VS`Xpg((9gkLck7Vh^{yM{r ztu6~YkRhkW`D@OG^ON4Z5dr4xySH<;?*E#zaSsZ_T8`tjUHC&0+#U{4=yxj#7*A$Saj{s%>bL`8liIP8Q9xxAtI3UmxXvR`Y9%$jdy3+w1EN9~E zxNTljR^j4^JK163sxW<|0X;y&@1Br{g5UxWVJwd(Ejg|(JvkXEE|j^YTJ~c!o{EI` zu4ypg6NwicI5)3>7N@g%DrGr?Y~A^%Qaq%GfMB3@prV#-PN_ax*3Z}UlMoh;5(NnP((?{nvKro!o*YYAx8|M--EV`=$LDl?C`&`P=b0kR8~`w%}c`d=Pw z8Dbq2t7ZWghqJ)%9bjH|@&%2q71@n5z?4_#AHw71QelWlwsLD!m>d6-z|*R%6A=(p zN5gQh;Fk;^JPk(SqiDf`P+#z?4|N7zTLVJF9u6YJM?e9u6%dZ?Sg%;@Xn zbP|sXPlD)NMque#z8Va1T|oN!AK~#oWcQr5A&PpZX=$&~PO9k-Nn9n0B6sOGC%8?_ zQ=FezV-Puqb!w~3A@#8 z`8eYUbM&EiND?>tK44K7#z9yQ1`0rkuO;dcxHDL+wLOwH=@%m`_2rMtt<0cNJCdFs z20uL-J53kpS9eBON_z4m zyKXm~RHMuBBi{C$aS>*FkkB6Sc z{Ix{ptSI}oE`578Q8Fj)sW5sgQ(_|*J(=fK;j3bX5X)dPvZ%tlZeE1h2|@9eKD$+V zB*x;gZ~v$!@A*N42i=XDI-pS1)!tAEe!XD`q@Kz#lui?rkH9yjwuh(2KSymkZ&%8! zvTZM)S8dz3BRnONY$}c#m;yvGT)pj!?xU(6i|UWhSeNxZT9>9Q%e=-z4DW(ev#zbr zJ^b3v0vhW8?`BL}@bEtY`Zks#i-Pk<{H;~x!I&z5f&x-qI>y1eQvx|3R+J(09d7If z&d;61chUcbjIS_mb&AHho|PSce-667?tFh_@1JyvY#kl>zt9)6f1@wy|Nqbzb)|;( zJMj<60yQ&L8h)>Se?w?ySlkKJzbszg*cOefUo!~U^+Cl|M&t2lU+h9N4>i6$#ZL2`J&d*R*dS0*~SZNsWeb2t& zFe=j+BFh8L-LQY{XX5-k1I)LP2fCK}l-X8#^|w6)yqH&*R|KYmfyG1Tg7#cY*4y^MIX@P)2jL&!>{CG*D|~_Cw+kgf}~il=^{0} z;f~(GV{Ex`;(&RKQXzBgqq)cTa)CVRl1wxxXMl^*F5Avh{o)2a*)nk(R+|R4(`-PS zmZBwTU*t)HDkC|rl@x}OIDOYa%!9*ZuH!CORs*U2>mf>QC6SMyFQsth(qc*i2kf!w zjlhMeR6g;Y37jx47!OpQX2=foOM^yq8XDX>nDb)j`<+1y;X9NoVsgB4>t#XLT$e!Z z%Yn~-x}Vl?_3DeWi#@*`HQBuND#b}I7+=qU0s4|RK3RYnM3n#f;GNlR;*|>0x$w6N z{XZk}zr?%j7|6_uXI%KRS>Lsc%15*I{d-2d{zGnOf?_olqhER^^kiQkECsBfe&wkI zkdOfzszfMBObpMUMu?Q?%u8QksH1~dQ1O%6N*$zhL(-!f5sz*1qWdyk^nL+FCD4*`bcJq7 zL+*I3@K(FCA1vj}E6(}(d#*?d`zal>KJAL#YQx|pA{ zM_uGU&K}01dCF33x)Z)8^+gm|S~9p}t3J~5A+pt`c9H63Gfb==AOxWncMVqVDCzTg znEsBh%QxImUr!ggQ5F){oAPs^BuDuSs}wa1ep)qu{2m?Yt-raM_)-d!NVCqPLC;*Z zU%1Ru^5>DwEFv-FbX)b~Y2ina!?`+-r+bz4GX9g}H(DY2htY9?c5s`(m@}$L(clMB zlPHXMw`lwwLSU*hKKR2yK3|o3!~(>KNE}FL7c;?GOK*VFtsSOJrEuFF@E0R~PoHsG z>oy)*3{sUWF%<#y+pJLss<+_~4C7l_0EWQu`}+Css~E!&+{%DB&6C!+Jr5tr{>^wp z^wcrnP(V?lNzvSf42slk`_YgL-y^FSs8nc>sd zk-$PPcwnPCW6-w*nWK1KV!UE54PM{xP`MA2*lhW|7(wTk`&usKIIcDqi-eJcb_LV} zt|VQj%6trF0TYaZ2iGD3lAN zI~Cg*)*4B6v0$5U;lLHkHNrF#E_-Zc^6EFl$=?1Ip~MPZsL<~&8duZ-L!+_*GFOmo zo#|-z7I06A=|=Abp80#t%VVD&r@wu_?%hf8+(%-S98F9oF+Ky68Q=nHYOVo7-eb5R zQBx9}05&{W#AC-(A!t*d_1Su&E9Ecf($+w$K!c8{#q4@8ND(s?CEHd5Y8-GKs;L^5 znURO0HPTZVFuRDNTCZ04B%emLj1NlXYYcF}?6X}MN4=Z3%!nRg1VQo_SIDFG(S5${ zKfn2NAI$^BYNx(%>|ghUUe>z|Saj{S>l34Ef}19~>0u`~*R3~eM+vn8lj}lRRNHXh zbCS}LhtIkKyfLf~<6;6jWU?QXf!CX=(uXE&46j9XO(j39wGj})shX()q!|>N< z0$vK*x2-B|1uyogsc*;qh-swTG>0PwHD+qWH0fnL19F}DV}M+pk3IM3Bfqg)sDZKR zLx004{Y}4Cy~%@&#;#Qf8bpi}6nX!J$%-*jzio8_YGSJ%D;;OugkzeoOF5@qF+(_t z@wGlV-*nNTOx8zj#gYkP?8b+1Z}JcRN=j{-7_=O>DMjjdSAlU63fQL#TDMFNo4eG&f_gPeMZp~ z%>#bwK`ehSJdzz}*QCjrZTS~6l!wP3o*N;9DZM>$M#fnsi85uYb_L4>KPHOn=wa@^ zuQRGi7ss&g8w7insc5$$3d;2MOx~ZSks-bEdI~*kIKM@eJZ3BZDisfjcOxP%kfw9Q zs9o`b7WS>#<~bXfL0(nl+lu#^jbuIflP0z*wG`WV_xt7C5{I|TFCpYKzM8(B)Y`L~ zS7H=#q(G7;Ixp}+RLUGSGY^G|F)6)jf=PugFg{(ryg|6dzz}_K_lqx%vkaTTw&<;*Xa_^v{0-G6& z`s#c**k!3J$~^|rjgQ1&W|3wPrWO@&JiKpDP=EJhRKV?qFB(Y>>~fNFUSDBM)G`LA zFWr17!3g1Ajt_q)K2sZ;rxmD8;i0(%7?XyE<{E>TJ<3hO#x&r?HQ6o)IU@x>1&n-t z=N(h@D{4{|hGAM{!Xn&#DJ*J&xeOoXm)NR-ztM8>qpT78 z87ZVX!)NjR?n&HXycHGCZ^mcFKY;>9qL9jNU1ku|bsk?^vOVsrcgmW5z}kc&jPT7qOu6@wgc6|mQc_0zeeA0bwf0g0zh7B+C`*ogmh8gDz_&eY#Mw)VDbfCe z9Z38YKNgo9PY-yvT1vx=Eam%{`8>y-%^OR#zxdiN#A(UB^jK;~VkJ=*Su$|%&?cho z15(xkXl$9SVx4LY!%yx* zufHa?ECYd=UC%QAjA0&R1?j$dKN17Mj07ORlk+zzX4wuPTeQ5z88fH=vc3pUJ_5UD z$t8Yb!1Pe?ACiWR-j?wPl`e`WiGMr8O!cqc8cb8ArhW$-0FmbDcxLiK-;$fwEh2j zKzbF(6_x&Y-m9doE7Z{yL$merN6Ad>jH5JdF}0+*YJqg=){TB;ZgKry&^>i5+s(#i z1uwGs(L*<1EG#MAHX_WYAHtQK?}HFKm4OX|s$LC)>2)~l(5;GTDgC7$P2VZ}a^>;9 zFUgDS#KfOj9BI6WU>!uhsyt;QFI0gptFjqA*SbY@toz9+ICr>pjcb}~O1`I=U}1P| zEtpXNQHv+dvTd8AkBXp2Urs7H^o^Gguf5tnHF&lC40T?tHZm|av7VgsC^HLMa^otX zcc23T=O&p#9K+CF$1Rs|8|R=xfY2Udy&dLtS!BWEA^AVIQ#{d zzAAnOWlmin*FqHGs*fHVTL=)v7aHsl$8zv_5WFLo8^2U~j|Wj{(hKlbP0qCL^jkHC zsHzKRMLe?j_-lgKHD97jif`h}d)}M;Hk1^Cr|P|ss3g`mK{o$<`3cRkVJuFhU5fv( z_|L0otd3o#bx9@PfVBp3I%c1PNh7>n)+T@`I-4wbZ4c;sT^&D+NvqT7zk$18?nAk_|%~LV5YEid6aEP}e`$!-S?=;i`8HU-ZN--af zOEETLZfShvZ?_Ud%h6TCL9fE<)F~70YF@HC0cT>Lq-pGoSW!|w1W@59lLgY2?cl_B zFj0`E5>iXmd({-NL^#ocYAbKyB4bq1x-tyeK9$V$ZSE+9>h7bs&d0}W@)h7Gan?vLP~c$UikFu~Cf=~#A&xUA~!-WZYNUaI*5=|l~4i17%6#{<_8V^xd* zwaZcJk%Y>3*!9e^P%t{z6dkJM@Co%A{b9E{t|bQ}@D4kIw=2@Eci0Dnm#gcDt;wJ5 zny4UkqAfe8yS25|9CI9s#9Sr4wlW{Jvs6Go&8Uv4Sf-X^4#ZA-dNJbFmqXu`dMeoc zQFAPRSS!f)>km`wZ3nU)ODP9z_*HdQZG7}$>M*X}7t=mFQ);eE$FLTAb@4>y8Fru$ z;++Fc_h`bEvk$TDGi~fZXM6j75q`VT@Cv)3ZPo1APoaq#AV*tsUDh29X#Owz0WlqK zz;1U^&!~>`K`wt5g<5g1V?%8QsGlEOl`iRvp4`nCsZgi4N|~)1sIfNJriU*L-0g}# ze|$b`JdT~MX)zjIk@pN8Hv}F=rU#D*11+gv4CA=}D?_ElHIlP+reRXIe&2LXWW|i! znw`Wf-LhYB+Tyr}Z{}fB59@SjZT|!uyNlCVwvy#8OapgHRbshwbVmSdov+iHYF+E% zVff9v!NdJNu4C!fy`)=rC227z0X`~xn_gPWAh6v{EZ&ZR1mte;zB`6R*TkpA85rwt1wvSpDik@qgpPM!1W#We7Iuan8&v7| ze9k~{R}VjUI+wh)N*M4z4!NQMqOvbKsK;~bxP zNWLj-crcvn!*C*J0G%3^YB7W6HLJ~-vGNsET2Levx_r>Tgqeb0_|DSU^U>sJxmyt& z9&C8tTzt7Q;waSMQ!%o)`>@-z_A1!uvTKJqD}|oX!NPO#nx4HakbH>2c|{i3nRm4i zBefqNPJI~r)VXi!lxcewZ{Gwq>;nvG|23@qrg{iN632<%&>EQNCegOCtsSKo`?!}J&=p1MjI_tif!4j0O>R;QIXgV`C;quj*N$AJ|jxOqt zf14s({XoE>jke5Q|1Uqhtxb>d8uHBFxS`6T{oKd7^^MKVpo>XCB4CLSZl{QZ?mZl z1Ly8_Lb5{;^FHx>Vi1Pr>Z4p4$VpQjj`T*BjJ8FZNuuKPxx~ivRLV!m9MbThxM->K zLk_BaGU#aN#Ta#b%<*#GGxK~olU{XN_mB&i>=Bfa@LVVR>gs?zCK<8f(*mW<-$tmX zu~mmRI#a3|X7T{?G*V$N)Y85~({C70ZmZ-;9dsXXx?%{&Kvx`;Uj+OLq`4kZ5D zsliCTZUMJhXshhZo!O^EkFpZKfyfjUaoRFzAxJ%YBiKY(d|F7iUqCi52rH%6zhyRs zPb+~zUVU2!%O{U72d~HDIG1)M_sX5hnhhdCc8|jCZABu@hhy_>D~W`sMN;i z1?5AXtD99|rWMZWNsknqRWj&x+P!z-cTex2eQV&qADNk2@eXkw?;;pjlbkH}H+vtd1@ASeE?WPv znA^7GHKRNr53Z_~X?2_SQ8l$|a(1d|K{&`r^xZ1{{iO52BdFoL|yTNy0lFD_fYcSogB^21Js!{Hen zV3JC9i}_Lfli9nG!1^7fG4CzXT2*hpDj_bXGhH}=sd7=4{$5*`o&ObiPcZLcYLCBj zBrtk>68Mn(@4jV%0ATcpoRie5uHW0q8;=N(nq+=cy(`u9HV*}aRgZZ8--nOC6#K*W zINon@+$M;m_uWpGGB8C;6-z+~=>7pU|FjN$-@-$B9^VW~eA_%*ev=SQ@Tf}n;|Irf zxwInYDfZelu}ltzALSb4+_;Yy#B%Hg@L;AP_#BcoOiAi~i&HoSrB_a9^=u7i%uPh( zINKq{WL#_I<5&4e29l9C9_w))J$>z8*T)a3~7lG^C3m_Q^|EI|4ruoG+%jtu!65g47=C)nWPdiw2)g(&KD%Jd&r`VIZ%^ZWxs(TDdO&!v0Wxw9V?8E3*A+mY5 zldr+}VrRt4C3vd(bttgkm1&|PFf=OBd(_CCsPdi=arwQfm$wA9fxhHZ%VKA?zF$8& zG3wP;sz0k)GM;!%8B9N^t)-e#N>y@cSTb)qhj*7CU5cSjd==0VAZX#*;i6sc&puO% zk(Bpmhubqt7&$9&%p*6S+!bbU7Lq-E$!(!FtPRrf!_i7ZXGZte8nWAUU!a;2qt7&5 z^wnzmo2hcIE{OM4_nX@^rDj=O>++`V+0t-M1~@x7oDROXJd7O_HK$Uuq84Nv#IY{FQ*xG7Pt54MxLoblmvL{3oG znq(I`t|8}uDdZF^pSoQ9SA9E{!?if zUoHbE+`tzERtY*1Vf|_T`_gy%0b#yAi&h_}|97k5whm)cU(c>oUh-LU^SH(B!Ek%+ zQx#V0F`jK6cR@RhMO{tmW8657qZJ~=KI_WV zO250g@+zz0iT68CSxv5A*IChi`{7NSa~VXN&AT5DfCyuOnIGK);3B#J8dwIw@uy{j zRlGnY2cc0g!|#om?5w+lvB#!O^C9@#e^;un4rR<>xEY`FJ19q8iRu^;{Rs7>uKKE?z2r8K|@ z=C&cNMO#KjuAKgr3+f=TY*jbjeH*HZ&c0;2oA~Y8E6icnPOeiDJ9}l4(%CC?wg?U z<%}1bqYfkG{Ko=RHdKJ0jUiC;^?6HPh1CLq?H8GZu;Xprd1(_z@B3tPd#c$b_U(pj zJPz12wmR5l4zgtqk`Ejnr}rq|k6s(*S%vIz^?90aQHgeszL7c>Sjj6(j9J45p~u-a zAIPr6CX2^iC|`I)3Knq|`K_uIhF&$@;*@kr4>kT1r~K#KiIqp}G{#M`ri0r|8>GCF zdnt4L-Cg`nW?o4#M^Sxnnw_v21dytgifYVQy;Cq!wNexQeCp0|cYlw0er{7;w~L(2 zHib*>$X1?uGPPVE2C>vUK5N1(_q2F-vud(IM9)HP`91D+33#opo&9(o4?Jk6;8c zxl{Mv^yNES-(~{0V}~aOD!Z;N`sb4k%-1a)Lxo;n)sQiV`;Sy!cEwIm6a+1n6H-wm z^)MAU2ZX$pv=RNLw5Fjy^IQ2b@}UV66=sq;^S<^98Nd-yg+#U``6C_;M(qk}`! z_H(J{TH3(+>(9$vKQh)1d27^Hyg4+R7FVh!q45L5IztpS#FvJ4l34Y&887flmh^ue z^tBGR4&`ec01$G>{i67)Oy7=#n~{>1X#nO*uL61z-M{TsI}rdykrp|N*QMn1?&(KN zaws#78gGU*_qbut|N0JTgK`#z{hAKCF4(dzRm5NhKC7u&f!Ye}{QMNa+;M>xo_=WP zPYHD4{U2|Nwms|u2M0~A%Q*O+nWas1 z;ByZ_n=N9&%nbF_lvq48ze{F#hdc!)MEM|=2$pcwlKm9lG`?GTlZ~Mpwrr36pl0|| z3wE^roW7KaXAdas-QKa3zrUdi{Go({bb`n(zW1Cex03c`HnZnD(KYBBcDj&D2WE}@ zLthO>s9F{}J(7M|-BzSm;faaKY6U5E49`j~t+2f2&1(bup!;0Wx+0#HZ2UnSvS@8K zW9C7Qm^S~5o-Q%%I}*(Hal-bPQXhD$xv(}LGQcYfLfziyo1&E&=>u_&Q=>d!*@?={ zn0*iF?#HM2ZD82m9p3VY^m?Jf7G1$a_*w(vb&h0|-5dL)YE06tL^CaxIr*Vw%pCm@ z-THb-NwfcoIWwR-N$=seyBZ2dNGF?rJgBc2F#pG;be{l7NcAckgScKb z%~BCrCZ4DaC%tin7FIsPX{L)udS}XFq`gy76Y`6C(50*U z*E1w5I>yPPKnA)&@5Fm*LqsfE1Ui-^(2qK3`m$-=ee`ORUq`KRmkw5Ef3|I#;~V@7 z6(%UxoNAb8bU@oGt^6>CaSLIGaTQGVvih(K2V#*0CWp4TSI{MK-)m>V-OMYN=`V*#q^~MEBrj)3mlW0;(S&(bXkVGN?`j5>$QMA)>HrYehAnem%=nV7>gBccxOD`` zEh=mr%72Sk80~+N<$<+;$053(g4yf(c2BT*R9JG0gN^wd0oqHFf7BzgE;pDsZWB{P z`_CbbP6w;;gXB;Z&;@s}(L*s92qzV`zQD^A21>A&__Z^JYg^?0!f58dNpx|FN z+>~M(l^MT16^bsbU~p#oAeyO^_4sn+QoiwXQ_bH-&8d$ioxg_oMh1D&{SA;f)9e#f zI|we|qR-(GKA{*P%e{zrF*hV5!fmO#Kb?dm5gOa>XE1~C6+T_v=Ke=w`26eKxVV>7 z#YQu@8onA|D`ENMsdm%YC)BLhcOS`xr$u&3$u1Dq6UnFI+$)XZuvG&Y(-TG~Z$n)* zh!~X>!c`Eti=0vxO*1R~MoTf~MjUSL*_AmhTmU~S;w?&O*+FK-j_$?rU&>x?j>rm~ zP{fIu0A~{Es#O&n_9LjVz|#r0m29Jh-&5GHqrKQ=qpP1qefQw47uDCEKKPy)cU7|{ z>3k*P?UjLC1%;4Ppvv#l{1i?|5R<^M7g2a4PZ9bli9T2j$G-RVY>Z1PNMGmdYn!or z^@;!O!|&Z=xy44QdX_-Bt~0s4Jm1~%FI<=TZf6}2d6$A`KZl*Y$bXpJOq<>`P4)0$ z&6R`V=#MqRIZG@bN0b>M6zX}Q{&30LApVA@sC>R!$Ugwc zBZVG1T`1k*a5l%N-oFk4O5#n{Y&*F>myyr*uV1p@HcFDkVfRkITq+Uij&uvqzbSu? zodiaHp+6lU2#9pNyO=>d2I(~o!B${&IUX&5Jk8d-U*Y5DD<0J>0d2mM)Y|BKDA$S& zvM^5}bSp$hHJ*h-ibYE#CX_<`ExX>-be_*>nqampwMmHEQGt>| zIouwN|vJPEW&PyN1EAAv&&u6wk(&lesi>q->L>*PK0Zr}5b89_UT#&9 z{$s%1-bE9@QlM(fLg~5b{FCea)fRJ_xHQLCTc0G7hT}U2mTyAVJRZ><^4ukJNVB-i zG}3G-9|CqpIBWV5r4!sG)OhkgP6sHGAGCDWCEsiw5iCzkn%EEeyeElAl5%^su5=K) zX`?x{wW4P(!bLEvd44-6(B0jLzu}wh?U8UbnpbYq`N4=fV$qd^#=mUd^Pw(?c>}E- z0DExE;pC+rkC`@Jl@CU z(NR;BEhhh5BkY^+{r6{xX{$Fm_eLGFotQUO@eDy0S6YSc9KP=r<4v@Pc{<1uhc>y< zC8v2J`FDe=2zq4WF|~TWNOJu^J4BUS&uelb;3~Ai8ii(%%wtnR1T{M)dRZzW@$t2M zN<~V_yDv3%`7Rtz&G^)|jqJOFoHcgLF^XVu0bbw%9rr~&_#^9~YqH{8(nU=0d7+@y z6w1T)H2p=8guW)7{V;GR42gYjXD96GUA<2vaFcI}*P=w>i`hIW8u>x4N#1_W$RVQ#&g*Rc3xB-GxffA%&;Sx5{N7YO!BJw5BnMWT# zN7^3_P>2xS;c+5ff{fbMU;_d0N5?|Ak1SSJRu}p)L`OqmGTBRWmfG_?o1)$s^OnpX zpOvs>cwpCaP>=iFo0%PC4Qw%ukLK1)hLULNdOJuu={q4Bst-~mdB@~!;W|$BzQE(Q z#~C7EN}3Hdnw>WRjg?gLM5xTG!$**3!iQ&(3r*Yy&E!KGE^+Is={X6w0xiU9SVF?c zNdo(-r1p;eqm;h#f)7RZqbRCl91tKW*YDbDWRRq<;UkQ6>PUZiZ_Mrw57<`k;ar%tEq(Hty!u_KVJdN-yWrBO+>SGQf&Cawpi4!5ByrhLa zM`>)yog2|~4+B?TSp?wMr%YXB`SRgUCYv1XdA&SvNg*Za3`M$b|GIR{G=ja>k^hvF z(D*Q4b`lzoggH@~x?Xqf|I`xl3GtZ&AE{sM#(&>bY|_DArF3--*zALyYbK0H-1~DA1 zt*zDPccv8kJI)a9^1ru8Z;*K%?;;I$WWgPqrF($v3g6g9ONrL^J*!K*qa@=Yl0(Wcd5zStGG6%})8`LYQAd4KSYMhHacp`qT1?^}>$xeiTqG39nG%08OStI4kJRrO=FH**_+B$y)?(<8CH@=U^g^&f&-$A0c3NSA8 zW@YRJoBM#UVt6(k)L7}i{mY#Ek9(n%<>?!lTd?pIC3{?afQCpb zxko&h7AgfO%`GY_vdpn(574pAzAtH~W52J#w?(_Jd-k2XvM z49OBTTa#OD+8_#EMba))V68Ifs;gtW$55~VGxu1e;VJDAZ|YTxO!tGko52r!o;L^^ z8iX4>alwzK-28I)(M&r#{|8d}gImhF0IpAvdOyG~s(#7Rt6M)aj*)by_ez12Tf`_o zb1v?8++L@tR;f*k1k1zA!{7fT{{hQSn2Dep4KFUA0IVd!N#NF><^0|+y5C|}H-3Ei z3#0Kmp-x!v!xAhjmc>wwal>{srn8wBr1;SqAitxQ zStDdeq1W++9kr-8YCm83IPLq>6|O+C>@cF0d=TiRS`8W zP2gzCC}_YkuekM8b`t<82qMbM)a1;Od0DUG4GRv?n8A}~g@lF3 zhs=iWqz-YXJ?#(}_b)%WXR9&Hpi;FnZQ94-m!lTNEANfAFI_P zx2eM{8Pm;RoQRZDSm#J|&)iZsOnxf=e2h*ss%WX;D$&}bgo;%3Is5GN&q{(;)qsoS zRO~nOXA-RFyQ0d=r8xrZ8w<#IG<5Anw=V~gOu!E@}e@{ z2PQj+HR51|MvErbgun)a4DO!k1WRcb9Mtmiy`d*^g=+hWOIL1uqGG+Xykd)izNYZ7B#BkPy zls>YDr84$rQYfMpwK}0%Eaw$1pXv3Ml^!pvdiryH{4GoKh-VG%i3TRetAe<5X-L8o zBu0^h9fop18Y`2&$Fm<`2;&XZ#ndqwv>bbH&b(kX;W-!7(3D_Hm`yW!o+tGFl+WWZ zB{d}laU;>cIh1rLn)NDnXYx$&t^vcbiIi~E9Q{cjp~f6HB9XJ9C#9IZa?8rJ>Z@Lw zPo+hqo21Dx@|ne^e@(VMyS;KgWO7A4t((K-hRbvu>6LRpz|5ZQ2O}_gqLW1wn9B_} zKL52gj|`xc#ZzAnLN~Y-74WT_i(p70>TIh!f&Wf|v{_jM0Yddg;=;R#Op%0Hdvism zAoa;bg^2xZI_0S$zqt=*4`0wP%{FS=fxHpX}D3*!4a^#U&r!pf@i3yTkN zu`Om1ZR6rG<)PvjMC%w$PZbv1j2UqfLXwAdf$Ss zuCJ<8NdkQea^s4}U;2Rt(vp$5bFD*!ec*m1)V~vN8JMYQZ-!V;WLj_?xz%t_9&d;@ zO+arU)5+yEx)vi7V{LxH6E6e3UiD;9t=W?-eax8U#;5uXpy-|?)t-WE(&qy|F4!$7ecN5J$4SO=t)F`-C~u=nJJF(5vpxH#?5`7c}@^oKwC@!`h@f?FeJ(eRKG%%m`c z0aK%3y9%+xTdMU)M>nU;kdoP-WWhCd^Aen!R3eI7}M3z+M9FS^Q*8gzkcD7s=!=M##s@ego$z}7ty zW@v2@5%}?kiN>Qh@x#-QYMIEyku}qkFHcPs#15BBYc0N&Mj^$;&ZIY+kqHM?lxqU7 z%s5Vn@p$`JSBD`r;*W8$JOZ zQ`j-q^C+O$!3`bKR%xv3j<=aAcW}t8y07dgu|jZP!+aKR4-&1Bq-m2u4lxIk_QiVL z?S6u;zcO+KR#}I&ddsxHrur|24GbOd-wY%UfI*AT77JW_?n=QUcC3&1@FD~##NL>t zc#|ZDNe)~Hj)5{wHQwp--}O!MiO_lJp<5`#Esy!FC}%}4t~Vhfl%wP2z1CVsOdzm| z)0bE2Ty1x5Wi^G^B4zcXBw6q4DK7ebnpE94J~jlrbTbaiarO_B%*NxSTcjNLtFpw$ z^{h}Qse}@JZGQXhhmRDecCrOEmXjd@emlbL;e4o+L3b= zP#kxe+4@Ex#71t+rgdWsga#u ziC$x!T!KVX1B^$kGAHMdNU2azYDU^eqU*__y%BTpuPn(Ud3@lFF7o^#g(Tj`TV5lx z%5n!jqe6FY2Z0rY9@Z0Y`*1ERaG}L)U{yy#3KvVgX%P<#!UQT0*o(iFMec9~53K|> zVmwB$-cL%rNn8E#qtJ{uF7v#;e&S7SJw80x%MroN92X_^xyhMY$B{WM-W3A4e_3Dt zK8o60>=?^pbmNlXeUgGq+VY3d#Hk!&t$JiR`L1ScTz}d`S<@**!MCMpwCo z1WoxC2!>KS&NdH-WemQ|$n|1K%|Ac!ua`Af~I1d_9qmv_|2$AK%05t(`kS4yS z_>7B~hH$^95cA~E<(k!{cUX=qHuRk`wN8M9W(p%*jORSO-!nV2d6++l@iG`+ySTec z{4Dj0ySUpw_k5H7D6Ss@V7`9EC!Q)rJuzOZrlkg-36ST)Z{ab))yF{w`TI7x8&9Cg%gMBaTgbDfyCeiV@ZEd=+9GHy4> zOuH!4+U7|71Ci7)3EK0(xX{u#Ya>?_i6Hls&D}CPfx0}_;w-nN~@s;%T7Ykg1N_&~N!rP#>BLZNA95s|}0p_8XL z#>&=4B8_%(a)8$B7({U`)}tQVQC$rkWvZ%aEc>pK@7T6h=LwtFZ_9qKXU~;==r~)J z+X^}pzx%<7_bpqW=n*+Ahi(1_Z zH=!BKiJ#ic=eDBY#)X*ly|MI?xK>TGOsp*`30;b5m97i-7!f*7@O!SCb4!3*VT;nj zb)vPLu~6))Lr_kDw(K$qxz8iYE4Cj7UeczS{|#PV;YHkLItQZlG;Mwrz)TX5J0!=} zHS1(bxc@r*feMP5q_SAt2R`}x2s&4y<#eUFeed74%5x)1KGV3&caQhsC`q^FFyeyI z)$&w6Va(1*|1?!Wk?kbLu%?RXPg7O#KQvYC`$V~}WQkWo@Siu8yYZ+|A~l1hOmZAr zsaFW84TheAd|7CML`YgzEVb0s7%Dg;wNT+uI8azn5MPgJh6C#(2hyKNEFeQ8*ny6N z7t`nBnGjXjsxJo|kfw-90X_RoDo>=pizukRKK{mnTlF}RkW#)?^Fc2Aie91(`{TD4 z{=FjCzCJz@>p=n*h7IwBTt0m|i1LhtpjjZOo`cR2{C0|Px!0Nn%QmYxyUWMdr?$FF zk>i6EEE$rK_((JTlkp+gZ%va8mOo|g`!?SPw=>gGjklnIefKiYbKmXo*VY%cxNicj zs<~b()5sbmgb#eyQ%Js2j5~Zq@n6bWxsg*!F?n~UfC7U7(%F4KxnZ=e`x})`tfl`= z1^TZhlmHMij}E=EOh_@hgY`B^WgkntVrI6J<#8bl7o0*{QZmSp65)VK*1@`g=-bl;ro<}XS? zkFv?C!(9|iR-ADL)8e41X7@Wj@Czi4yv85F$v*7AwSDr6Jks=GyGe?ycOgH&MdThF zHf!dV*R&({Hj814?(oh+q$Ni`(3zGjkG-b8sCbM3$VI{lgpn(Mzd3dfuCnmI7`aAi zu4(=jWtJ^!}CrpF6UQ+|pw~#Y1wWTw)EoUeT zOeSQ#_%=$&&o4-A_E>1aocZLWyjjq>h?30WC!M5HWLpADs0X_BQc?$3%?67c6M6M0 zZlYGmbPuB24(=~lE<^yI9nf!|Zqd;<3kPi@KTgCU{?7}4mGlDpbDP={?0rv~V*a-X z;H(2P<0bz!K<DUV zxv{w{?Mg8I#qyqa|N0hGBPE%<7zG0r)JZ0CDwA$V0d}yxM6fS4&3a64dxtDvYIC^6 zI65}6FL7rH#?@vK>`-CNGx+pq8<%Y2KFTlWlNY3WN5_jSJ&YxWMUQ~_!c2(Z2L25G z68(Zv`<0El7jFaE_UYNx+ca zC179vtn)7NW}n&N5KwuM$BF&r(R;QZL%-OEDbRl1Jf9lQz{rSXD46t^P84od;uHMZ ztThSN2DR1ez_}!s0(ehva#7LkX<3{*xKs#b{BwOQt2^SRl@ZOTS~?!6AXaDJZifH< zpoSfWOj3_Rhk0;{uoOScXGw1@vN8~;3%Y>nYyXp0 z^}d>pxZSb(TWgVz^;Z1cz}EIvUIG>asKWH;PDE;YiGF07zi%t_hedgf)pyRm6sxF1 z#xPBe{R}E=l^874@#8epFN=*kn&YG6gjaer?dk#aePvrw&P%IMP`RKga=K64V=g~` zN0bs%LZWR2fQ~-ws-6q?OIGQ9R9$A8AxRMUoitbO>x0%G&s+=hv#c3S5VSFSmiX}F zkx*XX6n=q9k)7u)roOy>>il>GJ$EJC80FEaNO5NrTh)2a>AuXo+)x}-BU3Mo>R8-dVPR%v zsZZL(>C3S2Y-}=|HhxIWx8|yft^s)_Yin6T)}oDmcsterzSk&PNdWuM!$bQX ztjj28Db@YQppY?yresnnUx%T5$l;y2Ctvj+h7}i~kpLsip$wHh;S{!xxcTa(?nZhg z%smJDE3CfvS~)_+H6k;8JfoIfIXl%vmd>T{$5iV6O*+7;5j~7>Ky@F^Df^f%=HsUh zIEU4OpeH@&aTo(}@+Uru@^fKfpS^>Fr1$8{!^&&wVruxG#Vo*0mypYk-x~1xr0&HO zkdVOm`er#C2nyKkC2S{}>7gP3#-vGL0@X=s0L0I{;KjbKg|v=$GFK+Kc!$6bITc-X!{|sx}AATf9;TbU4 zYCnU2h=}JCRq0xD9loh8>RfQ$Iejx-CoasZQifDC`hg+AH9u%nGF(+p#`9vM^P{6Q zw)WgKlAA%T$IVM<%UO(Yr%Sq@d5Dgoz9Sd0Lv3THOu|k@EwmFX(23+adOMVZ0N^^C zXh~hr(=BcwM0s)2;$i5C;yTf^#N_}|aqEbL*WT6)E()hM(t^YfJLJG;9d+NxVv%ieUM1n+^Ns_&MUXRH&+D6lm z4eagI7EM)kfIAm>DFZW>7-;xd{abVSzSh%!<``fz=xg`42u${u2)xz<{+rG;&4V4u z>xiE&|DiLZ0Li-c{XDsPzs=JfG%mMi1?7CC zl?G?eK82Lba9khb(e7Bf7y31BMKY!38kG~MvL@wx$8pQKD$<12olC?o3cT=F&J1u$ zoIQTx06&k13I6Rt!RS5+XYd#P6inn(Em-`ht_# zg1D69!^>F-dKW2IgND4Qhfx#cgohNNy%~jdqq8s2p<;#2xDOM)qX=(@Pztbpz5zFA zS{ZS{8L650RK;b>@i+UDB*+ej2@vuJF`^57u-_10!7zMti1CoP_q}4r+*`FUpYf55 z_pf43)WaS#hHWUV4tIsQVOA!kx*~38YRGi4Ea+_Qt4_r}d<;2pgOjZU^op_{wx(FQ z@MTtg{sj%mGl?vuP-t4V0agvFgUQq>D*mzZJ2_nbq6BA4Zu=AJw$+*V;wh*ew)CWDZ*SpycFf($UQ=d?s$? zIa*k5r;-PLXQmJ=ZUSJ?=&57w@K;R*_YoozbsniNdXC`|>O!yma^Km$@)^#odZd_NsW+0dR@{;>mau&&Ep2Ok?b7ZfTl2*?d>c~x`16SD`CswNaioHvgQP)Vbw|I#+#ac+ zD&+9mu(nzkt4DFH^`en8o4*Z$m4<@+M^>>blBWRZYZ*)es5{frrQOQs7L`*p$h`b;m5sw1FgTO-U=3P zy{A%4be<2lA)^@#$6%;JUc`uQ#K$vAO@HV1#@^8ms+7H|h8LH4rG8g}Kd;lLIC)QV z_tMq5L1nXSlyJh=3YIPi)D--I02V!=IGD@Z`wen8QjA>Gg@K0kxr?WN-#(9ie`&IR zjr+-ddXV^2B(CupQMfG88Q4zSNv%udECm2p%ArrZR zybv?dpQfJ(M`Fy#f%47R#fpuwtNYt#6D~5OIix{(B$HwpySh zn*p(=EN#UI%BmAAfe=0r9n}w6A3`b=1F7LU1D<>yVEdg&mSdM)g}yatl<1Nll}*g4V6$g>N!)g}i431O+8Yj|VLdOWFM^jeSpAY`~$$ zH?x6ekmzes4;Ia*uP`OuKg{3n-~aFbg*JLa@p}>6F=a+pO1$I+o$begr^4@!K9DrxZXPyXMggSIrg*VQ1qn}Q zX1^mb(G=}`@-rd2cuLv9G1d~>UJ-Br$*1?s9B&^K)?dNyG;1n(EOL=5xr}mre{QIb zkWFDr3m%g~nf^lqm#1xDxZnE$Af56Ha9FLjnZ;4g=7ykX0Oa^bssm`fZ%cL2I7(&NNk6Hhh+%OT zcS*CCzTO_p*aYfQg^twCMqLTKr;Qq2(lZ66ex$!1Z=L#_iY5B~3GIV{sqy>yLH>_c zd&@Pu=Fs}DV*yuFZw5ZJ>X{vF4uY7d^)!>827Eo2ZbD=w=f;jnge_qaj-5juvlpTE zJqrr>rP{&5C(p8rkjn2|I{HZtP1#3|Iu6PBc-D}zT4cxdL{Di$?d_T5a>T|s=;Pg` zqe^s9ebs5&L^x=t%41Eo42}uG*u9v7q3_5+h13KuG;-eV}Qz^$)xUIkmG4;Ird450{#1o}vP#jSu z)>AHUel|4GrXyJJM9l6JOrtCJI1{G$wDE3j3Ht)BWl_IK$MWZP-*=vNAiI9G3 zyRq=e30VE1EpR^bsQ-V^7N-9rZ2>d4Es1Xoc>L{W^IAru3ACbFlq+tCHm;NZV{*k= zY?43=yZWcn&~5&zW_Gq>{M-Lg!{4#J#wW*g0Fy-3qW-ZpM^kqD5k^|GB+(ps29XQN0b6`u^o>^V;c_- z51U}oxKu5AHYj#;jE1!Aiyb|4G~Pwqr+itS&YBO@{>QsSwj6n4wZ}eVV_w zZfRvd<+z-E8hE{=>VL71?tD}s@j55^IE$_eHA6mo|BYxmq$r+dxd@A9bkIAlm*asd zVN{P%m1tSo;xK^_EJeJn8837{^vw6U;rrLyHHWq}9|zkH=bN-qF&w;Ckv=KqB@xPp>Gg1j0Sz$SP63!s^ z#}aBgR5_m-sN+#^a;yC;ncxi9dw$r+h7=M_?iW3uB^!!!rSh?Ssf_Q_h2qjQq%DnK zSfuY+n(jbSgNRZ1+m*wq#6Tv_y&tm|Za;j9TZBTi!o2= z7ne4(NlL|J_L@NVsWetYd&M+UhZYZ?`s|^*ru_FU#t(4@%F?06#r`1H10DU6bEo5$ zu7F1_Xy9W^tc^9}j9saA`mUa)MN7-LeamT|I@F_G63!uhXU}qZyi>tYsAq-=(Si(t zYSm?Q;r*I9sc>#u>3*6OK0w>h#z0XsWWFLWw|wIC%O#nhXXEUfD!jrb?)5ZQ6SF1* z1<-69*UeV=!VA-bqEy5l%=QrZi;}0Q$Xl9 z_vHrMEzil(`Bu~Jww0K-*|ac7b3v=4uWijtu5T0XxJ+rwr8})fk9X3d6u{e8)O1v9 z;J@CyQ?UBE)8<|VDTA$bP?13I=;a;7{7oDP40;-hZ4G#MKQ=km61HsLSH$IbnzQsK zdBbR8;`wX1<9wC&!u+bm#Kc6a<&vvIhQ2)-ivw7&<#(^;+>9pu4i;&`Vk*A znSGvM7;W9TGyoNv&D^`*b$NUi%ZdX#O6Oxx*zKd_nTmv8#ZBi+%1?eQNhwf+)DkY_ zmBj#l^`C3Q^pJn*O#c6!9@RLr__6l-4;LcroA8TR*DQ+>riZ*fJJ|{lg7K>pn26+c zf4i!CXEiA9n5jEpx|;E^tMcE9>m*EZJ)nK_^0rY>E-PZ|b6sz0>0d0!*T&uLB;PHH z$`VCkL1|ikB4e2K!mB9Cihi+jP%}D#d_vkRR#Xi3wW__xxk$K%;kMTMf6h!_!%Xg&VNEZAJ>*gE2AdFc-dN+O2aDay;v0E^1usJ zjLxnu$#p76`L31YV1&;4dJbEJ?O%DfU%=Mm8Sh}xsMQ|HOO3Bs@rdWjRqX5z^!IT{ zi4d+2e5WKF?xpp`)N!y?mcX7Qf@j5P5X!-Bb@FmPhf%mDPJ+YwvPpcQ?&oZ z0s9u61e}jroX;2fh6$2F-b(^#oF}!Cg1)21Zl3RH11#Te(DUhfG5mUlR#7rVYg8@1 zy8$j{L2D7hGucTe){0HA*7f1@stcI3)pbV!TDp%3V{vZcK765uK---1g&%(ov|51U zUe#WKoP4wYBvcdB2w+|IiTF&h4~Yeqxw$5|3ru#$ul`SBiW=z<;#yH z7xW_y^n9GU-8^@lFYZ~D3k4Ms?Y_T~>x4^aP830rb0n{yk9TSkMi$_HaYr!ARa4U5 zTg9X(q4oVD$r0M&k$eK_ob41quC1sazu0a%Iy`D@tU}9P5*phb2PO54AO8q%g^Ek> z*QBf;>yHsE)zCF@3O6|}GO{`b{%04!DW$LT4wK;AT4h8DU5{B|EM{KAcrzul#??#= zOt^KPXwo!Z)zQ?cd2T`TWaUC)OYJ#=wKeVYVOI(5?(lV)AK!uT`I{TR$ZFdDuMt`e3reDUl;s)=cgc)@@Hi*pt z48OjQ7w)!7_lw7tmB^*;ZRvH~Y7M#B7^udN^yshax_L40(5xVhChTp$ za{9QI>v`-RZ?#7_n$BmQc`=_xu!kOy%h;PPVkTr1kc**TppLfM} z&}s?D^6EO{9%;o#&+7hR2LZo##E3mlRMsNLCU%F&QwH0)=e$-BbUX5vxz2IM#B$(BVY>Y$SL2>sEIE?X4#DlMX8 zlPLeOoRpG^k(L2Z#NCgqa>uTUA&5N30Up+?r@{;%F3u;kCJr#W{Qv0y`D1_mtJPxv zmA}9^{_;u(#j^c|%>7zH0tz`NQU!*HJcW8>n#grcku?$Vva5-C*ZbiSO@O zuJ%P?>L0!`T6uAOf|mORsccM)HCn&QR}!Qo_3qnmRGmNf)JdPG(K^yY1R0Th9KQzSIloHG_#CZ_|BwQ<^2uDiOd9mS-2(A^E$=;r_&gOS~Ig zin_f1b-vZ=Ibi@xA?v|5>;JR5yK}_GGw6yz5fD(qa_yqh~6b4ZwRr_A`kg@0j`>d#j}XJyEctnIy?Kv3UF_9Jpa3&6;rK z`+<+jjtQ{siPWvZZyShlJ*ZI>`S088X6aytlr8w1vd1Y+0WypkH4I^T(>T7xT(}BBDGDn2vmN}e zn1@=u1}X@NHey8LbfQ|m>wc{8kevVha7LRG^!@Lj@xRUfq;Ueo&}yJ7DcY>Cd~ zfsZb*Et1`^Qb&rr@yH9$iIfoQ_UUPkACojU><Fx6=6fmVuFMbfl3dN(I5eP@pAUkOB)djUa z+29drP#ky}lqrn0(F;z>C5g%@qti?z{)WYrOb%^>nNr5;>#DvHjMp~pmYLtRyg1%~ zkrki^O2LJ-a^&TMqUw8KQ{m8VYm1(waj;c62DBBHX*n4u45azR2``UcW11+~bm3N0 zRJFXznuit0MBx#BvgRh%eZ}pNtm>Xu6b4+dgtQx()2m)XpNmO7_rJ*>9UQd24K5i# z$X!^i_PkVJX{+cL@O=OU9~yl)(Ww4Bo@zRN3>Ni~Q)#JYtc-m+ZT!g{1^HJBKR=?gR z;9VkUxfKdLU12xfDZq%0(>GR5Wi{Y1oz`$bYR;-P>{>nb|A|eUH{6=-)VWmGVO^$e zYod}v)*y(OM8;o?j6skR-nnHFg~&|kpeb2fl+>!wgXSQ*-~h|_OCU`Y{aol$#@cf# zQ(ehEb#BpW1tpq*svP(zh)CWE;IFz#6si!8+YyWlfU}M+F}knHKbn2Wf8Bgu<9d)@ zZgH9!CHIDXIR3y5PL7Gs(+Eq7WWRxK0_>K?-q@kMQ)Y)j-pqX`M31RGtJK8X~2mBpIu>1*;I*1zgoLV-!vU6+5Md#-7=0(1R8_0tcw3;w%RX`2 zJuPFa1RVKaz~!ENxBVhlU6?XdkF&dPXYoS?&J{|C_ev;U7LSQbQ0M~C#oB_IN=M$TJ<2@#b7jSscm z=l<#d4*0zy`yEoK&$n(I(AzW^tppb_6Ihg3XWRu8i@DsJY}*ss!B?F5@PNQ!Q*OzAq}6yiOuh-n!~GCr2$ped%0Pil84~d>rhUl2y+WKx>`G0nOq^ z8+Z7_bpS zZGCkw4#S52y!X&0yN6ry`sX@L9aDA7OGFFccujMy;POc@k0Hp}Y-%~{(D8Xir#f5x zTSyF2QeA^2Da>h;n`=kih$?r#GS~z<=8jZtwH-HO0OVzxu@aiQTbI*Vjm?{^buvDtFK1~V9e0P5wXg&?@(S;Dv|8FFr`nFH zlAJY?KV6v!&d}!YnRb6ief$vBE&w!}$ES^A5`fm}8#$D#s6s-pL@2~=3bb_=ml_>D zx80|07F<_>RUn-c(4F4{;0k1xqk~auz&pb6_l2 zrCr*jG%pllAn<8f>bPABGkr^S(UdYQg?$&wk#Q> zBT{&Db&>){cnIny>p$UnhQFZa^5enB>;2=!6`!f($W9k|QRnN75xPxrP;cXnMeTa~|5H)B z{H1{i_;!G{Jv{p(@Mj1)1Qw%>!I#L8L9_8~Fq#lby!JB;&Kqz6TJ4;NHGg}d#JNGZ z@^ioE%0)`)hbGZEs4=6T9&Vv9xdV`af+%1y^#3sSmSIsY?!NHMz(`4hsH8}@QqmwG z3`ln)NOwyQ7?jf8-AE4-5~6@~*HDTyh}4k7oQL&a`(5ig?>=XrPw)k}28R2&?_b{b zpRUiQWb{V}G;OlvW1$jquD;Uw{)+npCA_PMJpvR5&UxfqE--DEd;uSC9URF`F&)Ua zJ1>eFbp!?KZ%Uan@v)Pv3(go@IypJz5rc}Dq-8q?O_8V1AOZOSw$6W;GKl}UC5Le=NUVNcy<6D5EfD%hS>AJ)h0iaL9 z%K`PD5B1E-aPhWY>>lqMEng&0O-{Z!$VVRmv?Hh)k^l*N+;rn?qg&sA^1cfB{EL|v z&+;0G8MpRX^0nEd@=#n%PQJ7F(nl6#c8|3ew}w@8%nYtYh6K_Dn;JZTYBlJhDX`Jq zilyk|7ktX;ZIP(As~#iR`vY)1?uOvd)u;tuOgu8mL>jvEir2(@9slj37w|6?3(et(*j zX{dqj-lB(N=WpHP0f~}#P=@6BQfEab4m+|q3W5}|F)?n4LIe@}OC3^aoJvKK)#o9x z%6EnvlKoZ&ux@TLM@O1YbzxIC(!E*?(pO=0a4=@$q5v^t;D)ycG}H%zZ8|Je1+t9u>$F^3h~ z^Q~Ozajg=yxh_ju#OWqGvTC!GGnu!RYT2*;V74Vewj0$MNIW-fa#{7MX7bi8`Nnd3 zX8CU~qLm2Toqz&)T}@{M=Fg`+^*6(oVJHJFm9ilhtzTpB?2&DI;ft8Fg3s{@=V-!2>s6b*jrD>ydr1k zUo;zR>6+;|3opHTJ*7>B{LCplhqcpWU;r!gIyp9!ht-+{qZ_A1>n9JrMz&gdr;!CQ z)%E#x_D1cy_cQp7f>wS!6037*TI_I7>Pc}BVdm$O;8Y{#qNy9Z=GTo)VMp7{)w`rx z*@*V8od!OE7YdH=r&DJ;6$u)I22!HEPQb`UO!(T4%v;OI-y-?0wOHsyM8FS6BPLv3 z@$!@Gdv(1t&UI+kTa_-)iq{ovFA^z8d15Vzu zd6YYMCtrx*#jA!6C*&0WDqXApX2ZA?D%M<#hadaJ*;HJG8T!X^^~gKclVfOGi(dH? zOmTx4Sn$+Lq^f`XBQN?WU4CPZIuH|Es_#KRpo^Q78J}GJy4(txfQ3x%%L5PiiNQ<# z|8kR;{Kvg;X`u&rqRunk{9>?+?E;2eh0=e9oQ}%eH?bXtvIZCcpOrnSxPi|m`AxZk zO#zfXHDaBHNyQn|DI%gnHcCqb&8+M!blj&p#>0h8_U;F4h=E^W-^Mm)db*|}yhxE* zFZcRtTd%{O{$ex?a)!eOYq|X0I`S+Z8yCvgwueAM#OKGxUI4u`_@k>X7?cb0aBZNf zw)PP`UhXGQ9V*ZtaN4@us6Zb$xrF}hgLFYpyFmFU7)Vp&O0z(@H+&nQR=Pjsf*Z^E zhneAlD=VCnfrF0;{UMffOziacBK5@?dOuhSlyOX|c;`}%2;HyOLB<$!z3y^d{27DZ zCytXvB9Tr2l!{uV$2^f!fzBF#a(w~Uy(er5iiXmlfyQwg`s+VovN^$fGeO*-!cBz3 zj5APa_0m{6_NI!vs<~N2IxRC5P3_{sHEOzgouyD`}(39Gk=Y8!A#c>+TxqzcPd$A-=){E-8#L2 z^B4KN12-S;0pBiY{LbnRiCzMSXxhUFMSStdKnCNBp#$hu6d_3MPX16GtxIv|@M??{ z9enzx0s%#g`9u8U6K5Z9P3A&oeGU5>*a!^UdWdJ6c1rq6p1-|fbM=27XKSW+nLd=` zI>NBxupm%D70qyV4)|~n)QCfgHTvb1Rc<{LFN)fv4nDym7kHM^MJ$AhFQv1lw5e6<~1~XBT+4n-@OXttsR!&8A`{f#AY9Jno12aMvuOZ?Sb#HFlV@i$NR}DlWXGNS#TK#v=BD4-` zvowp%pLTun-70vXX`|zmWo5rRcmDR!$jZP;zGY1*V>pBq>HnwHiDJ_4PamF9;byV0 z#ObYyVYPa2W8i5FU4vkTkD-;pTb1_}kKTe{Gvy6@%lCI2_U0X^U|QtbA{KyDsfJvE zNZ-S$dC1A3@!p9baPmE9bva31!59lwe@o^{xB1|8Z<_h=WSG7Rv8XU#q?XL+*MB^# z9$x4>;6(tYI@qbye`R*Lf}s_T&pClIc3)97YMXsvEX|xNO~}oMf;uK@jBaiCEI&jrf@rr z5S3j!M+rs6Z%7~wZGP#uuN!x1Q7(E<*6|C(l`A~glne$Hy2TZJR~G!9E^1Rfrmm7B zqo$<{ZWji0kA@z8>;(}slBGMq?#H(2_3w~_CncbcS{PCM_5=OMr|BPY41MLsJ$l1B zJfOt|H#i&sv-Cdf?EPC>=_+!Az^$YYH+$A{3YDD$%7%%79pNuKXBh4iw*xa!DzTv+GZ}ia`|dq*r@|P zr`K^Yl^5L5{RwUWwvB*9RsnFD#BoJ?`x3%&jx4{Jtc(1~2~aiT3(^6rN7TWViD;gX zF!TY3BDOjOEl4FqAVLZMB|#_tFZ@#2q&9>0#k0go3^0c3!svr$5l%>JZfU%JhRxvXjo^7eX+_wH(hFMC+tmv`(R+;$A0jmuP!LYE;%EW0YGrC{%3*xf zkilnR!FL(i_`J=H7~3DCA|vtT&AAh*>Od=y+8*0tc(L3=D^rjGW^ehLTTZCxv-Ty8 zmLqv{vIukF4+1mX6?<&05X~)OKS%K8kLYSQ2Fm~@!N9*M*i@IDDGw0wvK zSxv04uq?0?N{@3Y*gAi@HAuvEv3B|!_^r_F)n;CiQI8CgE2g6{P^KiYes@YIekZvx zb-^!@;{iqj9i|#j2`IWeawOX9KlEtYb{C`xi6&dy_}$tyfWUHsm5ss`=Y^kG6EFJ5 zI2m@#DMgj5oSMw{&6a+6&j|>#r;cgl`G+Q-OuQv5zy1U`*p*osfnq4@4+KR;n(rswh;)4B zr1B>(+Ky(AHQLBQw(822;8?xoVr62v=EUD!yyA{&1|)Xa6>v9@e*EM+;UV88lEp#IzL&T%Ur+DNxsnHi}v1XHH@ud zXWVi>x1gGP4$dx-ue~0jm8y|7Is8UBvz^*cq#@7WgHu_S$MU|z*SglrhiI!S*l0KQ z>dm(zN}=HIk1Oo^^nB|D9n|KN_gY`a7!oOj)R0Hoi<(Ex8#;Df%?TBVF5dDRr1N{( zxF@#cBCC7+{&itmn%$ucem>o9)B9SP0TueD>))yl6&wwEZLV({wYO78H)Ob~7#E@m z+EgXIatqs(lL4EEu@x*rvH#B7r$W5h#qp4{p#wF4x$!cA3bjBkqIgNKp|*GbPJaSI z!6;LI0zUO(SK{{yOef)mRAScR%ap0xH=-?3MbRl6Wbek`B*Js{POJNx#z)uxwT)q8 zNHqC!Q*0GyaAt8Oe?Cgu+p53({i*x+|DQpSFD}(e{_2 z#k%L=^MndDn8(((mES9K?!6tu#K?Edj%8+LSt{j#Bx42tIgk`&3oM3xKUNsZSPq|> zo&A?}EX(J1;T^Rb24MqGsA0j*^T@IYKt){AF##|#bo^#gb-)_uo+bUIKAe8_MR!oX z(KXP#S=-cs-pjk4%LX8E5#~x4D>zbj&E-%@$;t1~(#dAplPc2B%)bCd0YacS0RG3T zd7vR7?7VPSS~DMRL2p}ARK$GshcT4JoO4IG?Z*ccP|DhAXk>(Cu6X$*Dg+iWcn*N? z6W3ex7?|*TiDm2I%zHiZIUyn&Lm5=kn&!iGb#;8+&cDsUub3fhq?!?)_zcPv+Kv#h zj{wx)Sr4z?gpz!Rz|UXPUop&LzGIcki`!S(FdVimL-9Vh;fCUm;&0pnd)VRyC^N00^*>R*QnuTf1B`U1GOPS3(~16 zIaKSRkG|E82{Ev%?|9_+CpZfkkwmAx#vy)ZTd^rUsoQDLX`DY+_ccf>CA<>e6MX6u z47^?jlZF_)4XR!)QkY23>@AL<3h9^YV1}f_&9}w>57Y0m<8|S^(1XX>*zxbq3gO{f z5SB(gfg(bJ6l$drov*50;Wj;cti)A~RSGR~V{1tLcZ{;z5LN`wc5IMgLf%+kUe?Eo z?5!64bRJum09R>J>E6onw!S;OwlxM-@(|eRd_hdr#M|+w)U+EvEDWY6q}WF5G$av1 z6(30i=7p^*bS2G=gd7oVl@{mGbzCN%95Xgy*x@L`7z0eW=UD3DQ6!fbt6C7ROu=Dr z(TCf1TM2Xp@k~SSDD%AJ99E`_?-fDlY~~i`tfrYuJ&t|{AzNKK2#>vuvcA}v*1v4O z%D1l2qphnFL$Td2v*_Y*+QZ~CJFx%7Ddwy4n|mpoIIZlcjvqxaqeK%1W%kT7TXYhq#nrI><9 z_Umf2FOfvvVglOfst})hFN)Co1o7^IOe!mEq^_(Kw3M*|MhpjMt~omv!P@AuUxtxfoBXecnAYm!t_Z^FmpI*QkF3)#`Qj|fnFH2=b*#}K zaC;R`7*AzM@fRs9rzOa=`(H$Vi1z;{VWqhlgk``k=ktHrYLe{zLcATZ%;UARTxtGor---{9)f2J?4NOm9E#p0uQ6H2LV**GH{RX4U6sHmVTfi z69U`W-u^PCC>2hl#58u=fkA`Q1Lg*T5-+@=#JA|@vGAqoXAgny8(gJ;U&Li4!*22`E7B^T<-yjr9tcRO%1 zFKids9$Riue0+j9@mkqdu32g7U62YS<=Iep?A+9pmF<^L_T>({NX(IwOv(u1>Md>b z)rJ&Mv6apmh;@u@4M`oTw~7n6qJ>fONrsnnRGxu zhyyoe-`(o$oh*nsP!ML=!6KFo?3AG2G;L>&wKMh!yVsq1MuE8h|5Z%VWjYof1H(5)udX8+{HsJBY4 z$YEahv1Q>7mt+0hkgsmxE|x#he0!FEC0ak_b3^#DHf(X}BHXpyd#1nJ<^~nogiB=;9|FE8$)kC{x)427#`KU_oel>EQ zR(jmID>mudx%XZjv#wT#Ll`mf)&q~Q2FdcUJi`89tK+vVT zA0vY#zu4~b3tKKYH*Xnc6!qn#t8}HCpz6bB3~hX>lc+Z4p394v)R?y?=~*EWi;D=~ znIJK*i}xpZomE_%wap&T_rv8i9P&&itTsVOPBziO7*d*{ZcPq-TqVl0%T~J@?L#Ac|-FGO1*2)H(8-6jn0bCOI|cy2oT%0tBd)m2a&5o3#L9f67h; z55xv!G;v@#uil&`bMm2Y2v*Nn&x@gsnA!hK#g#)gKHsu+JiYWUUKs?bYB!SEn_Spi zFS+keo`7#mJP+eGAmZ z)5)>tq9IcaA5+%ZtMrQ}j`hj?{rF(tZ$hHtwo^K5`HeeRBt1B>Qs&LEMBzO`19Rlt zzGy#=jIlcigH4Bk7}`xYhNl0D4#DYj-5M_fi~B$I{W^h}lxi4hLTg`mF{eP=EFGnz z-}}6L#U!268R*J;b)6?+uQU$8s7ubJm=y|a|8tiAKYg~Jv@W08X+8O{{r!!uI;0j z_UCT)urO4}-HwZ->Up!PHM2JtH|h_rXR=oBkMWFbvA!zih$Mqx5qI!${g6&g(AY#t zZEfv0sMSYbYM;M+&Im`HoDj6{;(=Js7sQ`_)nrgv(dl^wDCKafKrpaRh!k+OVu0C&b+m=jZhn;IW=&bCp8F9wN_+?`lDh zZNIs}=5VKOX%rvaI2>Oc25$bho`VTPa6l`NaI$txv2sUR^MR}7{QGuu>2XhRIG50) zO71FXX7q;=gZk5+RsA8rG?~?E9ZmHn2M+mCCEQ`$`QvV z&{qfu4_FJ~)*0*Ds0dn%p|a}2^r~vResFa~%-z>2remA2dJB=rFuK1dGBZ@CE6;4D z9Y&mq5R7rEGZ8z*yW-E_9Q7Q&YKG8o9_K!;Pbe7*@*Yt_Hdy9N?fmc>30@isl{l*6 z8*oIfcLO|_gn8Kfi2e(^X6f%~q0jlDq0{qMQ2ssJ%UHB_&AMG65P8L(w?`{*FVY$aaSq#%h#dh53k;GL_*# z!#Ol$EEvifV14to2;=Zau9XN-hZW(xHT?>^Ppsr|Fg; zy5fEI_Q$a{e>bhN&ae4bHOUVo8%^vQg1_Ie zSVX08k>O^rO6y2&_|r8m0+y{f9qZM|*Z~?d)!4)l84ESFOj;@yu2=z9!1Sbm<5bzv zdms9n2e2IsY)l&!^$0$QP513nQkLYG8-g-1hgga!-Y-l|<~3&R37P&#PF+r4`fQ8_bBKDA6Y>sxFhAeovRmrv zwYo4Qg7jzG&ZW;B_408Kh?>lRqQ>=PdkQt=5;Q^QzYEk)0TN}g&H|d0&e-D*(2_?h ztdisT+RF__d#;B`&4=Ft{LXU z%n{(~P~$1>lk@ZQPbUXAbGNp(@JRJ;G&K3;WME3%cnU%NCTEjPDs&s>`Z5O;A9N69 zcAJQ{b8#8-dAX_Xu#S(X=QWR1(OXQRAhgOzRkc?7Rim!q zr9U&Nl~IJA#e|0ATs+q`?SS?JW)$QO1(_U9@kpC+^;Ph4v&)F_ZJat>>BrXA^egTD z`^_c0M`AvvbEiQ*SgbcpxgDKtu=7hj^PhU3w{^-?I$d)$rFG&J^u4IH*2x0!VmkTZ9Tb8O;lL8KA;M)hSV(vO1&o|jF}_D=g(wzMeu?kt(2sHlm$+_BUvl?oqE}Zj)Kf_7vi%j*!K9;&@PQvDC2X2mAS# z;;Go}YJ(*!&J?{$J(c}MpLt14QU~Sed`-Lkcim$jq*bI)i`_&K!ja@`%<<)HK-KCcN@H*i)P+6m5i`F+{lbZZbV^?tWTykLiH(s7cX+P%ifY3gX-*uf`6 zI-OV>fwtg_o@gGKQcmdC^!(Iv%-B1+$Lug{EnNvPm1gP@}Y3O5GDpN z(D14G(3B1wQdk-_4ou{fAW~@lVQfQ{ZJ}0o$?iNSV)jJO)LBgUbS}4N;p0GwsUzO_ zl*lwAN7;P_nhHZO6Z3s`KK4tl>;81|2UQ|u!UuVM`AWu|=B8LoCfXAh`8eHzR2^|_ z(&JRzX4<&_bh4^3|rrX^W*<~IqQuQPW*U@tthJ3JxdJb zxdlC2q5-~;kDRLW9SFv3aXs-}aIM?6J)jQ#x_`iX`uyiP<1c@YfX!wtpt({6!ZW&f z&nA=(vt%no_6BDK_x9Ok2j=px_`BAn6Q0YV<*Olzr1(R*0Bj~G3hOyGF2GVR+aVE7 z${bG=@iSq+o-+nPEaSuNVTHq3I7Efvg-;%V@Iur>?)tvIrHK6m`!HbNf7!t$=qO_k zzz@wKh7q_IVjV|f?At6>WnrJ6ya(gb(iKWZ*yeTS0_p_I$S>c8tX@5SFiZ}Yn|_aj zo9HC{EI-8JbVztPvq#0u7Sg9gp*!Er1Ah*B=6LJwV(Tf47E_4sqQ8>a#++0K2ZpN5 zRGa1WgIgv4bYkH#eG_7gC(}uiTfUL;C1iITa(2WwV11>zcMn#>5z7YW@RG!wk061a zldkp0J8J7rJx7`eTFcYGopy@3gw0}l^riy2VkF}IK6%cWTqF;Hz@>l3sehTvai79L zAu(fo&^mt(Ov60*Cu4Ep^t*Ypb;8ULw?3m~B1N zItANtl-ZR<-PVBFwfp$py(ccEvhJxA{(n*68B52-i80pVGTg)y<2aYfB2dMaL>sA| zze@-IRY?gn{nR8;R&1gzH=aKQ1^V@(yp7eDv0|ibe3maiMf27_ZQS?Ak4LQe*nh`)OOMZ0&19x+ zR`k+A_ZYdZGT=0nZYlx#4VO5W1ZPz0RNhiF+^q|-dhK^+uoz7?336>r5cr zO^!yEXwH`6|lGL2Xxx993{P;-WFZ<}=dAlsQDEG$vjMt$WE+ikYVX`Enk>_K3}PG0Cki7tW~f_1Y;zT&8zOn8eQV3giJMY#PaXpUym}J^&Io3Yn(O8 zkxkAuL)0^K{asd}1{Kr1wD%?w&sOmswUnr-%>LNOQM(=lRJi)GlHFZv18cHN_9@P- zgVU8eGnwfU$D{nHN&d^PxC8sfT;F|+l!7|BGlb@KlT1FB>q(m;>0X`T$%oR`M{Gqp z`{_&?WOZi_QE?n>#4U;w+~VNVCV;zm*e|fWi$+#JhueRp(<0a(BWCt2KQ!3I(O)eb>{l%ON4xN5R)4P6Nr@?4ed11sRdyZFqcmib@UNkRXoNXvkM6&MychlWimN8!N-4GlwQN%O+H+XzouI!c%$JqjZ%7I6*?Td(d zL2O{<5M7wu@2em5*DqQR`#BR>K)E;4WKFrr;6KFIG7y#O&nVHxxs>hYU<{hwkj(-^0ifa&+kaSXjI_grM6fBk^zizGmB%lVqz=l(= zigKaF_{6`8ONvG|jjZqqN4)2+V;FT#W}Tn1CH7#_+Mv8%9*cS-t4wWg7|U*-D=HTe z@5m$6L;0xwrG$O!c>Ullz3O^rrx>EF1`YYq%=FArt|o!u^25t1@9*ze@9U-noqX4* zh{&Vi)@v@}}Zh|dkHTYeU$ zJ1=TFHrrCE7Bp)wPmDL2SNyc<=RihkYNDCz;HP)pShtn^VqfU_q%b!1U0LnSVT1HLyngwby87s5UGn8&T^g;ghp(I2QJnX2g!4t~ z>q7Y~SWzgQp}wu5mZ1t!PJ{60pSS$KXFIW6PfY9d^wQu z7G@`Mnc}1|>14JoIe3)b5Y_Pb+GSl(dOXTAv|Y{GZSSiK6MpRRC6k{g`9EdgQM%xE zAYw3k?^Ng8`S3S*{ zsga_1LVq*m!138J@fyPaIZVviIaikJ13%me+Oz)1^UrMaY@DJV-@k)Oh|!-Jbo5;K z-M+)qx`XgBI*m3#C5t&XWtg5Ca&k>rDti%D>NDEL|Mo4pZs@OH_tSzA&rQA6Fxh&J zNz5SA>y6~5op}wf)lYd`&%9@)Qy+hDA9y_;Kn<5CywF3(Aomg+Z~ybGEiL1WB#k%6 z5tEy)#rmIF2`qZMx8UDAJ#bvY0}Kv$g`kUyJzC2-GZQ}}lze+>eVA-G#}s&*f5l@% z$(RpkYc1K8w&<^a&=>cmNnNi>W#_+!5J5EB(R(gxxy%ggaSzAdTV~2imlI2#l~0CYEMkc5~4Dmt{E@Wep^>6tQIL@wORq&~Nv4b4zl@-$NA> z+r!`EX)Dr=N#ElQeAUpO++Ikj9FV3-5%S{)#Rm%WW1c`e%lF6ViXD6Yq_cFT92I&(3O!NyAeXge#df2Is|S4p63&5sUG8Jh9cms@ zLPE)&9)FU7SjM*^4}Y=|5OE0Hnm0i>8q}o)%-_NB5X5Mm!YAfNdIaQmyfR4a(7Ub^VJOQKXZK_OLqiHfM*11B?fh_M z2ETjD!!5zGF!FAytBFq18naQ|VfFUonqm74poKFHH6VbHDxY<3PfTZ%W$IH?wds>9 z;(cPnt$(2AZGcMj`k_M#1It9U^vy5pQMx~|uDW0c=NCl2FB@~<8o<#rOv&x3Eqf#; z=sB-S95dG+k`zjVGf5}Odr}ltV&dwW#l}NT&<2=^gcZE@ZSFV z;Jg4k*!$F|QLo02k%hO4%dB^37>9h018 z@;(pzGIJQ1ex%ZEC%;`;k-mMr9pXS4l1X^JG~e%_HdpvGSap(`rE>b#trXT=5BFb* zIux`XX*|+u`0JUeadp-V7FlBGq_@48 z*cxx2gEt}5AF%ep8!brf^!EAYn)bvG9(g9_NSDZ^fwxq{ zYP8)#Xu%?{I|?a|7*-EKx@U5R&u8w}k$&TB_deC}K)(rN`H2$@;Omw*cz*nHKzrEZ zckWTj;Es>or4S|)V-M;Ayno(U`yG&gUX}xijD3TJ1Tu!Qpx|e6{;w>6ysFrOA$CDcH8KSBSa85^H01=hSAcr#WXwg%`%C+uDV(aj zzHBFM?vQL7FU1nw;kCDqaC^ve+4hS%2O=4x@bQykDkTK%8Y5oJiI#`O;QgjJn}Iy$ zB8>b)JsLD+uXR|q1^bMJwP+y{hAl@&S|joT3eH;71n7(Q{+3HWCnaAmd15EFN$YyN z+w3(Ot0%0WCT!jEI_FUuHMms>D;7a17yfT9PKcsfQJ%NL-q!<5p{YB&^Ac?4TDhgi zyh^=v^1wqhE47s1BZX^OSaV|`zp@6(s(}1{*_DMnAS}_G9NmJ+ztw4#3uoT8mDv-T zl#J7Qi!u!M(eUm!T~`nimV2X$M${^{INrF!TWcp%tQGk&J*kY$hW`lc5KZtw zLw>;#PjzYmkB^(cf}4Ozf|>s3Xj#Iv)M$ou|HYX)#JK`ue9s3qrrUf=QquEj=31$j zPZIgD`EcCc<-Qh;;_U)~o2jl!?%24(P|$y!PP) zB-figltaVTu0%IMx2|=*O0f{)AL3Z=;WRDf%VRUMAZk$2M)o0*4!ViY$h~>BNg8{F z1;}$Y`WvTtvvvCQ4OSn}ZzgWmLwVZzdi%Z7_+>PA2N}j4t7bs3jsA{O)Pdz{MND{M zl)a(ZvH2&{wHbB@Q{dR4{M)|<%HMNkSRKAU%LG7e5)R<_TZ(=?Ffy^cPBJY9O#5Ai zEwYTOyUu^3WKb=J%cQtRkC!&*K8pV}e%vwDJoxNe->82vrhCW7q(+&N#!-X-|9n($ zAptQ&K$}-;%6hm0S%fZG zs?su^WY7R1Cppr?QWphMbt)M`%%yH4za?7i%2+=nmd5_2fRRF%U=kU1m%Ncq{JC2< z&IXFNiQ(~b6oK8;OR)?pnJrH|VrWF-r8V<4Ar@pOWI)b6sS#YXx3~8%5w+%|l5|%N zpbBoHKMSE(48#f}VQ%x*l(i6`%kLnY%077P1-c1TYF}Q?*olWP~^D z(fySj2h*ebi({UG z+KK`juq>dXfm0QxNey!?UJj9G-xmT-D$G=3`4EscNIsbkCCQ!HWRJJ!2j?$`pTy{2 zAM#?xgLZp^xQ3+WciXL-_Ll0AKzdUKgT7?Ieg`IKwJo2}(f=E#Y1}X^Xu>6U2Z>tB z397z{S+R2#@!o5kVc|<+YmN~=RD{4f{=DTa>??$SOa!lc-Az8ip{?;^F9E?)4tINJ zW&iU)`}_U(_lM*<$eH&B4$MnVI)}&UCh7ZOJbs8WDU1M*fl`iRwx((`u8QbMS#J$< zY+`sJv4n^PX1OW5CeCln-YF!BStgT8{1Mq4M@C5mks%u=q%8Nj6;;N>Ph+SLK48~k zo$BD}pX8z}raaLa<9A@KtYG|8$1PW*+rR^kv+9cR>dI#B zilyAc%ITN4Vh%}q3vsQyNExZfeY`fESY%THesZTprLFJ^PDo8*pieRD`}6A~hvb%T zh95Q2AF&_axo=O6<6n^_t=Tg=HNmNfe==${YvXIMMWk!=Hf5Puc2w-|- zVgxcpN-&e*j=--2ChEE(9eMZSd?Z+M3akxf!H#Cy2BatFL)d8$YDhUi=hCahiOp0R zSOV5F{ZKyISnM9pa7uG>Y1B&BYxZ)EI4v+N;sWnUe=T5`ow-H^U%IgSv5l#RzyPK< zxj~kdqYe$fpv{}_z)1dZM-CT_^+QP`p%*@YS zL_-KHNdD`hH`pQvjUHhcCF>&#C%c>6p|&359lU=U#2Zow0E5@P*xQgl*`i(?Asx1O zzwl{V0E2GBDAC0gK!2z}bkZ=?E^UuOYNQ+BrE>mO(NFYdS#&BQA$dUt3Hzk-5qFjD zHGrS6{AAmh!6Fuq&98#IiO1YHedX(lOqPt`@HD;kYalQRhCo*YpH!3eT>^=G-w{%X z8}hqM4L)^4^Ln35>5ahqZNCzV&W3vbKj8kz-&g*%zzueZuOc7C%wmsS!i|K}|iLi16BsqaHTx_6tWRa1w-*Gt!)WTix|%ID9}WvR#CQz6h=)52a07 z>}&ufMCP%N))__RCrsPxRtQg7i_p4MIObKAW<{zRXoxg-2@JMM(gEpVt zy&UT3tF1@0^m^K=LvL4REgH>;FLqQ=4Lc7*c@-u<{%kB?c9uVQP8^~oFoc-T(9N== zbs$*Z)esm%z*V7ajq`=a_RkH?bfh_c8=mj7c$z;Yar*r6fXm1_5G$}O*n9+$tFJbIrwlBv>>7l6_@HT0(wpJz<@$f!FhlRk;iEw3r`GtXvB zMR|XJCOya1?;ty-$jU09yGWvZJn1}VREgrqx6{#p>F6DeY%$B}L^WuN)rEc^b+`Um z`Cy3dAd?I8w%P!u#2l*~NK!@_>*)vtPVDjkG)l_sfRC9Sa)vX%@?9Q7gYMLszuRDeOWtGP=;di>j?oDI=P5Nt%J zxs>W3$Sbdtfby^TG!BfeSKe}}Y&8Ou0NHr)IeQ@m7E2JSw*crt*j;a(3c0(moUR?v z-Dm%2x>-|h8kdg=X3cpb)CK~A;Dz;m-*nk(M*lOM2%M&eEnMJ*WGtAiU!n(PLS~Y4 z=W61-QYEk2afe=cfa9%&L0rZ3)4s73;R&|U(ovNWop_T9F9!i_FUyJxz$SVFFjV1Y zjvN+x&_>dd{%Qqh572q#m;elROIew<&!U%Jq!M1GVw!OK!G|)Hc5!e7ov0^US8~qT zS5~rISc68shu_Q5dF>(9Oz{_(onSQYQ;|2$r~b$jV6m<22x zksr~Gl^bt)NvV=ln!Ynr-Qn9v3Qq@b9JlpWVqkjt$OB6)SMG-EYRUsaj~%`#q{j&$T!? z8Lk-p%AUacxpd}=40K!Dett5Qj)f(*f#XTtgK%|Rz|?+md^F*W(HcRvKP=hXw3Xd8 zuMUuksCzz|=UtbP(7<9PEF9OX+W*7qIx*Vjq!jcg4Op6 zO@mY+-uS6bS-q-NV>xA4`(#)Dpwmqo9fN0{iO{J4;Gly~yF8rRwt7BIhW2=#jx4R; zJ{04Y3Mh6!w+j2W>p#k?m-d4ZhOpHnsgH#uMZo&}tYN(FaLT%V*2+sB0$tZ$Q8}ql zELe-2=f(Y5NpPK+SY4HRWygGe$Pvk?IUR&GtL<9;jxDv036p%~2Ko%SQ&RG_6@S>V zV(;Zq185TOgAAbYH>^D7Ac^SIl}GLF>0+y&NQek!GZrLQFq%MnRD~xy=JTHGtnAg9 zHkP0E+cGi~2Loq~VSr=)XXP2twT{?VY^&6bNjkS)RVGEk{W8UDs2(h55X5>Ogcc5R!x;$7>0J^#17oDFUqv$F@oj3bMX2Jp zodT8tcA3l!VHedJR#F~z90AzN{*aIm3ODjuVv;ysHF(g&hY#87SjJetvvRO{`C7Ci zW#qJ^5U zzQ^l*EJSuM0XN^$(y~m_>BT(p~IrPnW24x{l$LINa z&N}CJ*8A5i*DOGodtcYypW2=&x%T}`-{9$YMSbUv^QX^N0{vG`%-6RbD%^#qiUPJG z+8gDWE9v1vN$0L|n30(o^>%Etkw!6%eUH5Fs`-#EaX=@ii6U)VOUUswQv+0ErQ;R8aJ^!5w7@r5{BNfclbBNe9uLiISwg(bP?!5>QUJJO_z!27W;WEpU?idj$B z_Nz|swHmIHc^Kgsjy_nJmHisth9QMw!Ycj1t`GxldjU&dVYm+xB|woXbO{6Q!?lhG z&I_Ro>yaMeVqr!1+zqSZGM-d-4x{dY;ztcVmLkxSq;+jQupX(G_DV^bi0ik~sq!J` zdh;6a?1-h~lTbT>J#UNN4i4Tk5?{Ok2m^S>5(88!;xLkCkH`c+WavNRH0qBuu!- zPUTC|U+Z@P6A1as3ac>+?(M%>v?n@i(tqD$+NFJG>FLo(=PZuc% zU*{2?8ux8aZ;ThMDST}_`yTYL|1x2Tyzoj*t+HJi_`WaR5H8G;V>2|}U}jMv{Bvvp zs*BRCW1V!Xy~)y%g+B_gv0%eJygCzj+QQ?dEYwQvbO{C!S$62WK2y;>~iwYIv%NUI_xbMG$8 z%}oq^w-1MP2KhOZu8rzl^`%Z)Z})-)&Bt29g42UPO66jtiHWlZm739H{@j^w*Yb60 zl{m%0v!+3>^3DpJwMO{Hz;>@evzPS27D1*#^|9U6pSa1^u;f4);HuW=_;exi6=9+E zRjV)AEwOuW2y;rAk%M3O%~D|p{OwIH+$r4Z2IG;)X+Wk(gC2;p%aiq9%*CbugyjjM zzLAJ)6v98)?|FDR;mz66y}TT4PM&P}b>W*8mNGLF^ALp{*+-acK-+@l;bngG^N~C% zd__#zipUe|(g7-bWQLZ6Zp~n|ap5`uW3BbH*Zz+%*0YdCtgThxfAb65rnwcuCI5~s ziAADhQTJY6yXxD?Pz4NW+*0kT&bOmDcK#PZ%&H+Z@lwiD;D@Zk5AP3Z@!-$Jzblnh zFS+rQv#Wi=$)*`{+RG(7{}|4lY2v$9RmG=U8o?aknGPE$S6s`<0VxoT45uwu2f9GNUO25W;c| z4zFa_z4klk{3oL#4^euiwvLIbe$9nze3d4H@FuBdS^7~kL`$3-*`nTs`-Q|oKL1kr z-B4{phqTYAt|82{G6LAap7>&0Hdy*&UxT}D5~(XYHdU+RvcF5W5BTd9XV@cGx*v83|B1jA;9G#`=c~{O1W$=4~%|KfYHxy*PIU+{Vt^! ztwq-%JCN9oc@D?Flv?#ECq{^e-Wbt>irzxU0&4i)VjkV~I2+5fv>G(6^aRI5 zLb3IX;swphf_OP_=i2J`FqhdD?Lo=qk3n@=R9ToWOY3ANx`)W`+`VUwK^pRm6<>_d z*&?(G;u>b?J-Z5ul`Jt86OJEy1Qb-w`N&X^OdJ<)w3cp zl;=s=$WdJ$2eOu{D%Mn}S^JtL^IWo=`lreLTi4k-Nz%%lc!bqb{-`-~;j^-1%MFor zI;N*gfi3lOHE~+tv+kA)WWegqW4~YH6qFf5Ux#rh?vxtFW$CH0oH8w9YAT10Is0PW+0{e5Hl4`j)^75o^A zJ9-5TmDF~+2}FvS`45J_ZCA4vJ^k*-7%vwI>|&x)NgHhk_qvU67a)|{D<4^#e@fUl zLN}K`elU;Jw3p=1+$?rR+BDjIc#9%YFmzyl1$G>It44EQp}y1PAbcHs z;Rd7{^=FebFq#NU!-ueANMiIfZ5R2}@3LlNF{vs#R&*D5(t>{KZLPmgsTrdy|Li@VxuX6wzp_cT)XMYtW8271ZXdwTpzrZY_R-Qo$bV3YZ z#6y=~-wkrx|1+*YB^WJ!{dqc;GlNZecKKCPHuH8aLN1d>{v9(F6epQk@h zMPd>CIAgwfp?k5$6@pPVB+*Ai7RJchuIdE)M3pJC9VfOHQ{KLA_F7cyeBuQq%X}x= zQnIC2;ydUY9(Y(@V(@vh*qL+mk$gJ$2;=N#Dw^yJcCY|GmH;V>vK*=3tsiPcl@E-zV7Wx)93ni#Ng&5dKb!%u=%PunlPIFexi$p z+rE@d#mg1BO(#y>i3S^J;BS5SFls0CuVL}8I+~@#{Z(DN&bl|=bNKq|=Es*5F&>rH zLB9Rihw)AF;K|)l0paONKN*d*EIqQWFPk`Hm?Q5wRhx?!(8Mtl4lE-17|)`)lFmnK z>mSh`c)GFu(6ag*CM$#5hhK1f$v+RI%B%4Kg}`@p*uL0R&;`Y1f|4EMNr@5krnzHI zwx0zT>#!I~SW&rMLx+Ht=VW~K!;CG?PP5jJp30=+q)6>-L?XChGAU^{=^l?Zy*toG z+huQ9-(|#rw=rGOzMOYr0BuV#Vrt%JPz*414Px*Y!4p#arYkaHzAagu>DAe@W{qyn zIKlTaRYbprh*u|8A&Ol zJxB7ly1rSJV0eU$QolWIpz+%-peEwpX#RyQJ_~t>TREF}ehb(QZTQPhQzG8Mpv4-S zAx&7`;xUQ7!}V2lF;fq;G$@0+|JFSTnc|*9GS0 zjt2&xT7eY5-yH9D00q|vOn^OU2iTMDuK$ZY*?rpqohC_;ytzaZlenBez9TlqK(A#Z zNW40wNv)pDy_QSg)k1sHDbW9^&N}2y-f*N%2@Z+d-eeDXg_?N{-7NVs`_0bvh3MsV zt3#V*p=H0ziK+S-JZrHvCSXUONrHs!rH#lT=~9VT4%3ofVa z!c-SUU7k#=7{Z^sZ&qHVMY&F)Ez@cuEtPoy2LXw#c-y1Dz~FxkFTW3%)E2BQ%TJ6D zj;&=y&hBk291&vL3}rvF_%k)_|fMQk$A6 zm|c&3^@oe}pis0&%EOk4^9fM|cv)z4p`~&-l?`dCV@Xk0k zw4y>KSd^(F^3IXKA>NGc3T);?%?ovQyY7($8J%1TwKdDj=7>>bM%P5*!7N>kASy6s z-`VC~)Y$=e%vO1(^axW(X>EO7+3UlH4-?noEY$VJJpXG)5}@dmv>Z3}ZgO7f<~#Ho zQADmVNk+x?`|J*^yoiB`Fx1eYyAM0}LV1?aJCLs7XlCTz*@|+qkwn=inmymWz{cJj zB=Dy%==J&VN7Vb5tnxRYRQrUmHX3)FVk?>Vf^T=PLw%SfVPn5)QZPfvV%Fz0|F-H# zNqTubG%`y4#>7VD)}=K-hBwju($;+1MS9Y`{{-Nb1&9?FJ=KCUMU+hF6j~n!^I4z2X;b9t+&c>842 zMoU+)DHjqC#3E7zAIYq$HB=>bD3@sEsF<=s&r@M45+;yO4$&-CoYL@A%2Xm*hMf1s z4sT<3ldXrsQ2=u;>q+#)a6lM{88h4!1qn!h^mv|3CykiqC>zF~H=Ek;7r2_&W^jgz$Wg5Ka*(Ww04i4$ldOW6=TFH(qMz8}G8P3F8s6q(@CMh$${U=SW z@*#rtFGMD~+M2iXI9aMnc-*>n6ux?hXdw|Ru={XAg+j?kC2;|~wDvZypFZZq!ad(+ zkQ$PElC;c&Q>t}*@CoRJWIFP%Rnh-$tAl^LRAyn2{-1&I06Zi5lpdP9M{fcYOFmF6 zJW@kBK6u|g{+W`w-e3iO?-;M@}q& zH>)iaiP%O%yFGjzlW(e_7Fo;uo^XvzBZ>lMg!HOC0wNv3&=g_iK1 z-7|2Ztsj^)}nD7D^?W1fL>m2RJ*ul z-8RRJT&e->xA$bc-j+(QM*4U3k(ba%`)@*(bxRK{;T(n;oOOLC{ELG<_rbl!LnStA z-OHh;6H5XWxh_%JE;BaU>)VyRXQn*>l0m+=(Khi9qWfQ}ayt#n*YtK%Z8X!t#Lgn$ zLgK@C%Juh_0A<7*wpn4DUR~g&SZ-GnsXB&ZrCTyIYxCSV9| z%R3b5dtyxc{fI%*$Tk3Pf!TCGC5sbc>*kSX2XBR=+P2fAWcW>Sm{g@$OUOlN3y_$K z%7rCz_}b5#Ki8kD{5-Wo$Qd#6$E2o&*NIFv0MWH3jPB(;rUCwZGnfobIht~HZW8+l|-n;fP66*BO1io!viD$i* zly>}+9o8F8DL3Fbpe0_bnG~$|tlF>^7(_+Yx3dM`L~(5*Zb_os)d(T31Cq@F-vm>5D{lb;N zv*4T}paKWC3+B@soBWSZ@)Enm4M4gvkZSCV@NS%^LRxo|twS^Vx66#`3%_^#=Ns~p zDvZNmi;hw0*W*yeECa*QmCfyZQb1qq-t7|%NNoOtPf$|GkpVgPiF~1hI5oRTPbx~<);9Dk>9wbfQ-@->n+z#19v&wM8 z4g?^*JgD8us>PeW%^Fc6fRoJ6xJ*4M>GTw^`7ZIRn~WbVmlmX$vSfr=vTjS|9!1Bs znah{0Z`P|eOM0vNf|^s8S!=Y;L#;7h8Z^4NV0VyygjouW`X4aFZEbBm3(swAK1zKkmn=v&u1y+T@ATeznkwIPD!{%l4C{ z11D4`a6buwuZGw^lrn@)yGsv!uLQvHeDF>*5=J!q~cC$?Gw)Mj>;RV zaVtIN0*fxVEK8XFub#_6e@2W{b#v!KPHdR~cu*U;Dj-$rCv{h*gKWfkU5>0CNvn$e<7 zuTr>zp%Z_x5ruvEz)-Sir0Oz+njuH9$6Pu$i=924dCHUdwE-~w>C`E~%7>aSaJNF1*a1j0y7Xd6# z)&hOQQGg5F3~+%TEc`bY_+-1m*drRhEf~OHMg>RMB?@*ne*GNwR%a&@=8r7yc>+|!yN?4Lnl;x#d@7a-8BY138UwXO9Sz`ABBJ4zO z?K#w@VlbyccDhsVjDIG(@lA97uoqYDeSMO18OWeaeRd{jO=umeH>+xG>*YoXbTa#= zrbVMew++R`#XFxn?EuTBveP@Txfb!bYTTW#VBeeTI@>o-B&Z8WE9J}ST{mUhCDx3QFf2AY{2Ly!RIad!H8(Q{Da{b zg~QeL=c$pfah;M}Pvx^=EZNnP7o>b_U`;H%Sv0U=;Cl@R6TH6*kqDok`eG2rn{q zp}1c;SP&3W=%5e*<*RrW3{QFxu^ium37G^?oOEIF#Mqa&zn6vJDEM&^K2Q5wNMb|! zk_LAcagt6-Yd>6gN<~e(x*>ee=u<1`j{qE$a`C|B4}cvCYAyS5ob0u1VzJx&o7}Iv z5^Q(?zZO+Cu}Oi(xyC-VeurbsW&`ZnN1FvPC!p$nE=s1oP?q?x)Xj{R%x`qEP2*1I ze%37bxA5Du{n-qpKjr35FX!vWul7RRPFUhNr!|I0hL;aaQk-vLucVaqLj2upSS3x< zAQGM{=tKzR#G>igxsc;Mun+awNoC;FSvop{W_k6km|TlV86z|Q$wI||02s@`&-8rr zIPtkD&|}T$HQ(CoOqYH(#NIY!Ly#k-^R5ew*4BZ=8|(B$=4)8p}h_kSYDfzXL3 zgvYOcm<%LCAP=LGs4&kQSx$e#whXkTK>oY1$*Yr}rs&JZc{q2yjE-6}&3d_t-p4yi z9mE%njSlCXQBvxrxW$lU+`T>To3PDnWS;@yq!Qu#dNC3UQHZ*D$%B30_MR`Rr@(Ie zuDpolnpH2tf;GPD(CYP4zaVN-FP}i@g zDw@?GaLjP5&xzV7$@KoLVRaE(RF(BX0jr}T4aVG-^XHs31P|u~h?aHyhToZAN#QvX zqyNXJ;oU?v<_yb3NHp$=ET*Cs4yf8#k=8-+QrceCg~}+7nt-g0NxGoZw&PJ<gE zoJP37V@^9@3-z8L&|tkvZ`%_{ccgoPpv6@Hw7So+|2^;ki4fneReryn`2Bphq}-{sxJEBA z+2@HPYlCiK*lezs553F#^~|5QV4o$`Ur=%6MrcgNGnd-u%Hfvtiua7)Y!?B3>a{Bb zQ0S!7b$*!!ir78z%44@+Vb21{IIGLqaw&~MKDRlM*P zsBWBq@sz2&Wi{@b4L$~)3O^I>dl-F7xaM|LP#(@LMVgW9+gT>*n~jIAK2|CldyKRA z;EDxwvQgAU-TTJIi%Z6IDyywgmmtkNSHu$uU*Fjnq`m0^G zT+5WLKv9?*ZO3 zEr^th&pzm2_Vu5fNeZa*dX!R>k!bpV@w)C>tpTEYC-zg4aV3kh#0rLSMNuDNXQT=H zE?fTJ(x-wt-nQo!H<;2E(DSO*;NDvMlDCRwr%23}67C_)*>RV~Vwe1frRUL8Z3|J1yT~=DNY;367&GK(Vj1cv}n&$=35V%}OGDh%P zL?x+oETh~ll<3D9&y)f_QZdGf@9i|CZ4AAY;jSh1!0)kCLvrzMP{cW6Z5l)hml3|Hng zT!D$Ckz})$h)*zGi&Og(>3;s)nO7fT0~GfwI3 zWai{y{oHjdU(dk!BJpI&&s|+h6wP@fNUx`W?5XcH{MfGP&G@^6YraTvW*#WI4usDo za_@3=JQg5ugT%A{@;>RK2y4|}ZBGISMtU58VE7wo*zf()JUd^$>}Wp!M1%rDbvvCe z>W)xbiL-WNvz9rf)E5Fj1Z@xfMK6|?yeqFvMn%r}{g$@Z7cvy(6ApdJvw@f(n`@>i z@X96_PQLdc6#VD-AkW5v++;dQ245BScuD-5`~?&yJ8$>XQUHa?oftlQAgQ7Cd)B}1 zPkoztvCSJX+E`1#{i*)n?oVhys`YOX2vB>=H)^H4lhnPrdZ@lY1S5SPt{p?2&xgoq zxHEP=EgxKUxSI_``%?yuqv%xEgc&*xr@S7#=66o0sbn`<7dnfqk`i9-i z!!a&JTyyufhl!gu0uEu~r{A;=zcnuxPjM2K4LNRBX39v%a!yy>5K4NfFeR|%GK`%6 z0Q8s8JGo#&>);h9+;EIbP1+)<{a%s~t?#@YF&&S>pL7isGi#90m}*JQduSe;5`QE~ z+1C)OepaVs338NDIeD;X>EI;=I)Hh;mi$m!onG;MyPmC3dLI&Nuhh_HdgD=#rdpv5nP*uo z%>qRa?SJ(U`|)f!ktES?^asNq9f%m(f=~5XXA6qzy80fX7B*mNB1Fm6JpP@?QLoLY zNThXdFz5DQ-4`FeK#ZY!DNvd;mLfmd=PGa;lmAVTGD7Ppk3LV&)v>xSoq^Ku{ltxd zkGysh{hrqHhQA1ZNpzms1;cL!vh_P+Y`N#f0(XXTSN?yYP3nnoA6~~sh~Ov`&cPYc+CIEbU4*iH5u*k8>rZ-Q)9h$LMvqSZ~RtL zBs~X099}T|nbxeH_Kkl42FL4Z4fnricKv5sGa8|_KfPPiM+6>LeOm7;=kh2JyA>j+ z)f?+By;<*WUOM<;xLv&FR{O3lhWoTdYNwQMa=H~LaNq_fHI`{c^*gh-}b%3N|z$H6qgrKYD z0aLf_t?}p0AC~*|1Ty4?o5XXtHQDgD4uefPk|CdJt2{OO6eSjdo9`) zc5Ib~Q;+3}bg4wB7WIyg(NMt8o)CNbXtKC43$jpwYDaNu#SW{o- zo=L20jpeH|&8ie++0l(Q<2)WBerXq8$cA3SNZS1Y!}*@j6~0lRP$ni7Z3oX8gLT;i zTbIx^@ng`pB5}QUg&M+XJCrKrPQ9I+3ofuQtWf>VZD~yPxu-+?>eM6781JxZ&K*s2Zu>%!I(-4(d6SIH>yOI5Af#y{`EUM4vch6JWSw zpJQqCjoFfwAeob((F%rjxl=KGc$iX#Of+rzj%W4Ez))?Rsl=36p@BcI`n@K5 zk&})FSX9miY*1HZl>1a*V@&w{H18q9@DN}wSyl`cJq4D9SXnf3VBre&A2$&GQHg&J z*y1Awkj5Jib^Zek0wZG#)@n`a7^MHup9+fs2phN*0+9aVYg+8AWn!7S{C@`;hp-3x z_AR-r4=gtR(@W<{Ew6!=QJ{qO(HwvfxP}^+F)HzDFGmWJN;Pp6P@0c*Kefu`V9cff zvt)km!c-*ChN7-#Nu~dG7yf&eB)h3lf8BkrZw@yxBz+|oKK{`Iz53Kki623;-hpJ$ zl{h>%TV9iTsQ##%S@L#R)OJn!-vw*%TDDY;}yHq3LddNMOMIkx|!^UN}+G~mSTQUA8T!Pvr?k1KVZ zI5jT6>G*o=^7~U>%Z(3@O}(2%PU@ZfAEK1J9NwXnz6&k2H>H<}OOAF{&$k;i1QfGo z)NqeGRkax|s6leX)FkifH_Ma{sTOJv8W9b0QA3 z>x!SPrVl=r88#cZk{Pg5G+SknV??Zs3npt|%9&FBcNRd&1Y@hlATM(sjvirVvByD= zSpF^iWHH^OdDlt_9srP6_z=>?hR_fJu zd0}s@O?7aVgY%_Al1Wcq;aWsRMoklRmSrJJl5uHmtt ze4xydRL`JBz7D&?J|VAlqEqDXx!7Jh+inP!k;7%?)_v;f)rqRcVqO<`D&ml*mR9*G zmYDKxaNY7+8bweIl_bAYyISPL>R=~d`0XNmaBrdYP`*u`Jk#d4ceMJ_@vTJy;sreF zHx)Q1P^0W6@SSV}^<5<|a64hLLhw$ud%&EN3?1bW=axsY_)&_3Ik%q%xZAW>2>+{CjrrnIVvV zBj)bM^|&S^0vk#c% zYp(b8$gQ}CJ$5t=-a0m04il(h$|3T!Z{1P&ea1jqNaiAxX9$j`8}S#Vhps)Kho6Z8 z2TB`vm8Ng#s|{LJq#f}EwRG29T~O%l{}o^LpCjt`?{QNL^Ss@YQ)ZYm1q6Fur?MH+ z6t=Nd7GRWV6CF8*5_no*ml4oiqQ6<)Y4}y?l|s?9c=!aX21qJ5^&S;D(y&_;9>;KO zY8z0F0Y}^|SnJaJvV)}65qFU+qI(eY4&HnE@wT?%VRGUolJs=|fm3k}DQ=awPNiIk zqAEkC_?1&{y8o#rqQFwu;nuqOYh&a|C6!m_Qi;Hm2}{4j%vPC-)U~YvL>v&qJjKr9 z$si362)O7hdn(KmJEwY-(z5?{9efrQ|B9hEis~VV27fat;LK?=T-qN^G@HeeVblMJ z&wpWud2=xDkU3+I-PA1-B0%Y6mv4V|N6eOJJ3x)rnK2}7`2JTcO2@HTG#C&8fWyyy zH+*^zi>8LpGSoF?&gu!nlZ9n)FNBX@@Q1&a4bWN3oPP zFHbFM^1YS}mU5AR*i(moDiLVkecB-h?~E!|f}f)sYmJ&jtBvMq;$l(mZ{6oYpRm?4 zVHCWE%i4eoslxRd3SYVU7t_&t`MJILRqiao#gdhufLi$Id9%y7sd0S9=PRk#G;)!E zVeuCBfyyttwP;G5DyjUTe6p-!GK}O!@A*a*UC&ZFv&D_1)X(rj_={ac(8;}3sYVU} zV?z9Nza8Tttv>Hdxjla09!S33OW>vWEBThORO-?Muf>*A3b2wU9%sni3VP2T6J!d= zx87&m;yM3w1GwwbHh|{!oGNW>%9c|novtrXIM7m$upB-M3C;XHK^ouSJuselKwBW& z1?Wv|Y-iHu>g)m5E^PC9g-R2U?S0Vn;Z)+2+E#``aw#{+xz z>NHm~vn0=da$ja$hZZK_E7nc+Wmn@Vtc8ES#)$sw4fN+GcA`;uFfY1mumpajZS@+>xC0N>hE7G5m4h<^rk>^X%0(VsFUJE+tyl z3U*8-IWMNW+}MgnOiwl6=R?1HO;c!P3rvhw()je=MqWa#1w0&7Vl~fHLljClc}Y5k z)$SyTAAEZ!-m-0O1gwzj7Py1TjZD-(Y9)*>pwM6lp(m}?YRzdY{G2W{RvvJ6XJYv5 z5Dmjn>DkhGGY}tcQE$Cx)8MhEWQ2TiV1=Aeb}We0Vee7PNY&jR=0Ury625+qgM|G0 zvAmH&B%a>3gGxD^7}YDgufp2lab@0cRe>!q$ikMDPyaS50|{-bf|SoX2cC30UF1Tu zVv{$4l}WRK$BLAs`E`XgR*4R&Mq_1_qeXf~nggp!eg(JsY3oiBKW0!<-ai4bSlP6t2Q)O~j`(HI;bJq4;76Rl%OnrzWCnKLWPL!AfVBr^CteP@wId_F=KEBUmS8;* zM3*ebXi}mFgj-XN>B=R5AQse&R+jSVu3lhRw_q&#ml%q8um6;)CACYn4grz8XZJ*K6GmfX{IE#CU z#n8l(`{cv_QYJu}*Kx#WVS{h%sCzU!Ezm0z8ngnM4G_Zm+n09Cp>8qT<`m0#{U_p^neIj<5h>>PEeY#;2 zMTxv$IvkazF&)s4`teo1*d#?;d(0JG`Qu*0PVTza$PjB9OBhjFg0Vay*sfgZE8U(Nw_M0P{Yy}ypTCkC*o#4idy{O zIao@(Fy(3yhE(#Yl^h?aL{X%Sw}U?(+M8rO`T4v^59k&WC8^OjjWHor09>*U2<6X! zHZJJ)-OczTxkF@`eRr8k zA6W4JDjcor!r9C4F$q-Lfe#&zM^{Yd?AEyMz(!g*MbB-i%27ov|Cn&!#3 z%S9zqK&=v|6G9`3m|o75^kZk4w`Vq&#&a> zZMs;CRBunN%_LlOq?j^xR5FK@_EV)*wr2?2w?{=!R%mGn@QfmN3RoNblv|oEm#DlZ z8Asn_2d;Ns9M&9(vkeozG9i5rB4(=aKH3uZ+SGB}d}G#+Pwmr1eSCP~bv_aUZt{qj zKJQA|1j#MFi4?C5n%X*B65Lq%@s)sK+G|ok?!K|jML>W63k!nnK_%12!wTk%im(y# z^drH>bHj$iWMwC9j1^vdwTW>WR9;{%t{_=4k877-x2jQtU+DDl5T(=fsf1R|VbACJ z!;U!ojg?L}g-XsoCQ_c-eXAU9h zafb_W>XWgL<%{!uCn~KYrhVoCgW9drmF)J-y5)3LO}RWKzNAVQjYCt@%VN}!oMS36!L{IoDhB2Re5A6cPz&( zQOEz3k2?p({1pmbZB!8AEw7*$`5x_I0)*dF#Ei-EEkdvvz$_H2F<-uW5v*;lvKbZV zAiM&m!XpVnnr-~KX6?8ewjAQ%OkDc5_AL&02rLqa;)dj$g|8{rL0o&n4{-qs> z9H#$w4cPHx1<1qE=likj~ zpr5`c!a%r?T^nF>=aU+mV!fXNOdh|E@-a+prg&CtgckZvuY-H&SJS+Kj_dT>|JreJ zeE_Z!Qf5$$oz|d)kuLd$9*2&Te$TY{k%Z0BcEH$kQao)Tcy*Wf7>9N--HmdBU#$6M zv<^Jj8&mf;9czfns{C``KPP1QDEHVpO>E5J=DVsAiF*pDbfks960xE>x^U)g(?ytx zb7I*;*liniYB77$rlW_VZcbBg+X!_F_6@w%6OF4q2TWWq{MOf#k#X`F2>+Ig%z*jW z0Hl+d#xyovavIr>lT*DGl(X;G+XU(2K4w$Rf&JphtI1{XUasolTfs&XGdO*$gdo_T zCJ0!KyF!=pfD#cdH4qXKh^`H6GHwPJZBA5h$}xz$S#(hcZYcU67rY+IGL!V#^YohL zr*x8?TGBd;o)jnAQm3`AF>7x-R$S*)MJMaLK6Jn=S|2+C9^fkRlO8&Mi!1XK5Ce2N zv9vP9%cVM9NjhfP^$hJ#Q|Th^*>Q?%a!;-*E7338yryx@reTXQk=^e-eI+#o64*d3 ztFcyI(qffH51lc)pl8mI)J8BLNtj1VT-Ig|DmwC!lpqW%I4K1u!b!V_#Z*{^R#sNt zMcPd^IVMhf>?x~;m~X~xoVJZO(>*xMEYTn1ZqZSWHK{>6nlvcKl+mKGvky1VwyN7R zAfQ+^{1Ps7cRZJzXw!(_DLyW+{o1P0=Bs5KRzM!VKwo(lee5CO(&iXRVvZ#7bNfid z*M5RNe570vaON$kRmkedyDQXcb6SU#Z07cj7Z9*lQDAu*31r?aIe1T36#1y8Tc8B7 zURvMd1#bB^wgLma)Vrxb&%Kg`aZPhVZTeeYLPzu zz~~<^0n$SH>x}-lGApwnJaGQvYNLrDhN?Ya>7?nbDKH?rVNhxw5Azq6&+E(^&@4se zN?b)RC%Z2R<6#{yC!*3Gi0UGp2I;~$x9#BXc)($TkJ$YzEvnd!!Uu#HO04az44*P8 zB`6TmyWTw-t);NrpT0Pq-rhX2Zrb4D!@MUpvf_LmS6o_HTwL74eN(6GGO6V}Ix_M{ zl5M(cOC5lhhcahCpm8i<8MgRmVtquTjQ7sH;mvBjk5}*6YZtv`{UtzpLz4V9LqLiJ zYBe{Q)r{~XmS8c~r8m-4`CTUSay9hLJn(Lb1eqlv2N~|ZC<@398ZvazP{USa)i~Z< zI2bb8RN4u@)3O6O74H112#f6RlLBEY%G7)SCu8NddV*RhaXfunsBUQw2UllmoPOGC z4?1su60cYmd4j8gsnz=5Ui5zwj=Wo0R36SBAR|`iBdGiOfbRReZP*RP^v|E; zmNml%bgUZ*LfOpg^$9io5=f?)vEO1Vrcr%0%DyoC!hh?LnoQ2fOGRHsQtd)dvx?Gj zg2KLFIH_NBPxgxk(zaRz4b&}wB<1i4|I6bQ1ITvheH@b2!OEErK9!_ND)$^$-|zSJ z8mL63eeRaL#C*F7s;02d5*$@~WwIM?kd5D~IpwzwuDvq$ejO#wBZ7H8cg9WpQ7j_9 zsmW&{7GH|%p5)|obXj{5& z#%rVd$0uQ1ZD}>7v~z@ygk7m6r)HyLS1FzaBE^9(!!a9+2=y0z5mBgtB2st?tyRfiuI_T`-DyNQ6;r$>FTR3 zq~z@(zzzfXkwu|;5z%t@Wwl}xbXN${sl_sTqQSeYNTyEP!$d)OU&x4ye0319fTCBs zQL4c)7joupw*1vQ`6=wc{0tR&K{p&HGG&b>`wiN+gGpD*3nc^=K8CGd(!W+%5D9k+j@m{=omkCrJZiH`?4_v?mk)(pk=nhk~uqw2MF8_ z{idN53QE3TT$sxeW*qdw^*oLvmxucmsnxQaAYORDn-uldPQyUCkiEmA5Pe9UpKI|@ zp2~7-{oIF@VcBiG;vq3-@Kem9QmdbMrnqC*;nIffyw*UDRd)Fgruo%pbZblDuV9SSmI#g`^zD2dyGKA9a(hiWVQy|^ z1!I2owY5s#>e^|c#?$L|LF0`rsMa{Vc|xl8wUdg5i1*8Uk;6Q=bKZ|RJ6${ zz>-;&m#|;(N8V(FQU&_(_5`;2`jmmV+fEm@&x37S4!|bcLc04N^IQH~ZA+Yv##D=+ zJ)zcgGRoUrS`UPR?vUg4%@5^BYu`vHbl&l~RX0WA+_LHA$1uIR6@nnotpF_IegRan z><7tN?Lz{0UQDZ$!Hry62m)Z9ACKA@{X$6<*j&m^o)L#dKa#&{Wu&OF*q2C_dov@y zCx?}~!w20jq*!j%dz$(2K?dQ^q2f1K;=|8Pv7vZJ(Pq~8P{Qd*JX(A6`e2-HPVS2M zFC>L0u6_)QwMM|_l*qjEx!wEcQcA*O>ELR96M5ctRNEs3L*^AF9^+o)?)vTq`q~LI zWn`V%uaYt88%o*W?>*F`)5UieL{ettP#JP%!6ER7W`fyRV8PyLREJ&CUsc08M{)yO z>-x!bxZ(hg@?aaD+a#6)vbuOs6xDy8$wq!$2u+kJJNax2uVDM%Pre!L>QDP3L5_kD zIE>}oYd3tg#4E=~E^O9E;v#k72SZnztt~C^<|m^z0aZ*bGiuUb*fFICP&}wf5h$VW zzg-;vxlR5*zTPq_uB}TO#WlDDhu{vu-GUYFZV3=5+@){{?(QzZ-622-5Fog_L*Xt# zZ{?iRecm2l_x;HjjE&S@b3V4_T#JBleV|~$q^^=Vx~^P|BKbI0CKp9vf?JBfbbptM zu{G1f4n4#H-ScKE9bY0qH?T-jMG8xRPubc~xK?()$?efOYS~VkfDTIt5yPoNDK_z1 zn#jLs5udDRE$O$-nG>C+c570$N+dc5SGT%WGuQu#J&*Z6c&k@2P zJ*3SCa~&&cKte2wgp^1Luun++$uTMylvdlMoPx$q&*WjtOzn5e#Cr6zSXL#$Jf%U&lUQ*$oo?E&ll{w?=&Mf_-E~`KA#B%mWxLyn zRi(~kBtA?7044>QmZkP|yO2978r?LEqAX<+3v~W#pZ)#&7+d`oENUMD?(g-GJ@wz} z-=>BfU^QpwNLkPLgKYzi)a<%Fad_;Gw|jWLCz=UPyJ#?}xJUFH_V=o05fl8_m>`fw zirkC1=95=08Y;o3o(>k#y`}7(5@N!oG0VV=uIP2D)WGd*K}s51!D;s+5RyFXT$jeN z>t@fEi3&Q($n^B(kG1+pa`PQ7qd=A+~mzs7Nzs#3$MRe{PPol;FLN=2!=|dgTL;hv4NY3adJAW00u8(?Z<0S z9K^u_Ui%QwWQ_GWS$7BO?8hCSOzu1zo2wkj0M64`gLP~5tkI#TN74fEeZ{EH1Vp2z zE^>Jln6lr?u0N;CS$II?HGsKvtMNNskgo|;dI|GfwSFv%e!I9)5*dIk?{x+c75!!! z)e?G#e=_OgZzPRs@WJ;O(&fpyoF5C+=a)GjJPu|HErIy5?a^d_4t72xG_k4YeRd^^ z78=OO0bzz8QZF?CpN_{niJ7#UHb}DFPeol&L`57>46kWH`vYVv%@Io}rR+Q+F+j8T z0)~T_`MZPt1?*vFCAM1W4&+cP_ouY55R9}df$gQBdZ+S~9h z%n%Y2r-MIL$g+QwRQbw;W=~kqV|4|7Bg?pz3O~8}F1ARa)Rj7A3tJ`~*CCqh(=00k zh$LF8knIeR56kl%R5IxFm8GGcv=ND}vN(j~ODiS3rt zdWBmi1wR9cWH8Qp3GqP=jS4#K2OFw}g7LBfHEC_$SdMlwy7LDIFjMJoggvW!4Bc&E zcp(79GfTh|J8|1ItbW0a&eJWL-2&Sh*<#K8?Bu!@V2BX0ARp%Pdci4+rL`gzcRi+` zYU)xD^M_OX_OW;`iP@M=_MWOzUcNIpXG{wsiJ=>@1wkKzHo#CuB2M@x+1ahuA9zo7 zmIJ3|*p+fcq602aQn6`EN3IcwEPfyOB=h8X=Zj$!)3{t_@pZj3A|i6)$%k7_Qc_a- zB#^r=g5=$-o@pK|+koz3JI3?zCWBR?u4jQDVBD1X@teDE{|ipRSR~7AKnia7raUmu*^@LL0^2!N*(l zjpDA*xI7hP&srK;0rBA^5(d2`LC;c5Bo-Ws~K53bkf{=v=$+6Rvlu^F7I0U$1Lm zQE$G(Km^8FsFK^{<`vQ4_o2Q}yt9Um3$ZB^eCGgdE5!8+FPbnW>bgIS-k;$-hB0qH z79SqNH-v2?_K2{UW(eAUFov`*_vIjW>+JRA>>@ta8}83qBs6NY$j{6FSrGoS4W0Ag z#$^YJ&>TtCyO}2qEo+(rlL`pG7v;IDfijt=nGWKSk3}3{`b@8J($bsiOtXlK3?u`oKRGOy|e#KAc_h z7_{?+K{)C_>>c{#v^m?A4V7%hz!Eo8?a3a2FsPn(mI$331P|FbRwDDuF)&Ion9UQ< zF?^B$dJ1=2O+i~GoWe9(r9h>3Z|}3v<++lJ3rr~bn}XLJ^%zmHD6w^VLO7-fn?MB2dr+coLHwv|#HmHGx z5(Jt0dRbkvx6dAwo1NuK3Q^O`Rz!<7oJV@aZ)YjH9PvFXzdvYhAmm@Hpo3g}uH!@N z?5dW~!J_X2$ZepL8Yd zoW6@^TzcyjXUl`C^;^g=ggoB1>jl7EtvT2FpFM-=m|>s8OETiNo;kRaEq+t}Y<9&w zjpkrW30y+RksVptp;#h}n_1;Xi%Ysw2xhko7Gs6n-dl)q1yNVwUVc}d#4U86(jz-- z_aQx9Y)3d@0L7UTZvBc~;KZ&j4E+rWCzMO`Y2HKaN#`hQ$)Ziu{tARY$uwvRzJ zO$Z5VwWFfyj_bK!!_FWZXFU$fN=X`D50w3g{>()&5b&${m1Rc!KVLs>4GJMGiSCB$ zu8fVA69NlC&|bR5`SrB2>3p@J$K?=Ro$WGDks1SU?=2puesKK5i^c@6XPXU08BQOh zx$w5aZ0;8X6!G4Vn#}V4jrTl8Q0~_keXF8o)}4znW9E6o1Kq*f0#Vn47DX>Kr+mb9 z0>pIA9;epEee*d_^i!GkeTX8z9~WN0RAG(HwWj6at8svm*s`NY(ff2GYhF_pFRaCN zEz{tat9Qd{(u?*b-&B(qZuEikC-9{YjmH9ipbKs9gQ0`{XTW9 z#-d*9hfP}g%Bscihv;L&0tc)9$76hASt2_e&Eu6e=lcfHN6x3!^=DFF$Y5${zxz-> za8wu&J?#P{bANebOY}0KW%O-(p4|P@BKcnxYEK;cRcN|+PbBEtW~v~-7i7nMvAuPF zvCTTYl^U(OBr|7^XDC|?sb63-{SEV_c#zBrgO z2U#_S=KwbGo#OdibBt(XvwAB+l|QxP%jges;39oW0nW!vG?X5XeS4f5}%JwQuW8!1iLvo8xytA#BksaIaEp+FnK|JffZF z<;jLv7PI~IMV!}xQ(2aCbURk`mLBx8G)GXsKmG%vBX~oc%L3e%Bz^yMjcd2qh}E*z z34b&{Sx9^2^01OLz15_S`OTSrXdvu-?Y6qj))3ZVU?dnPXzBgbRPHdT!J!7b7 zvf~rHfNV#J8XziG*~G&m&3})YTW6sDjzi?+_VHk{QHL2b)$C}B)1pjLxj+%vxqmTO z>t@K=L~|^s{FUw7J&bVHUfs!URqOtXAm+PZfbRKJF6woIvOmoEBtiR;#X}TXWY#T;OgcQF{*yVbld0u9*><~K z4x4UUVLQWR$zSQ142U}=rmjUEMh17EwncVM4m%SNJZvTyYWnm#WmN4rz%SSA49ZTt zbz7b>r}G0#$)hKuIW-#iDIqW*--AVNVc}>t--}2)mB;@edG1i{r!uJW`p}RXqX%Jc zjmt|`7XK=3qCW87O$o0BN5rNW6C8b`FNvE49I%XEr&2FYN=0H$L)U@~$sbv4RvpPL z(>CA~34Jrqi8G9=AJARb3!bzl#hl-^-Wr#me(<6d2(vw28vdi~sm%pSm`$2|b_t1N*)SW!sN&oJEJvXq_4b zAz@5&=oTVF*7*C%5X-ioFCS#c@#RvK8R1@Hm&capQKdbuR9iLsgGNW)N+h&@2gV_e zq#?9A=mS^%hQ(kJaU~poec!EUQBDe?zy5^vMq`r#+cP=Rsl>+T9GKz^4_$nGH3~i&Z1zYMlvIT?Ark#+nCMzPc61Z&?j` zEJPo5|4h!s6S?oj*mC#XcXxpNiLKC_R`S4d=NVr;p`>Ex=TGFbMj!PvA!y#4VMFi( zSC8yCrEn(hlQUp2@|p-sD3|i*ercWGtMAi|@hkVs1^Fvh_XTlxfU@@%&O)nWAu-g~ zMgDCP7wzp1`TYfF+i!YP)u#V`a{t*BnDHQFIK?M02>-ykk^0d!*q5XbIPilwjDej` z>iql~_m*5Bq@gbnP7!!kqNp!IjY@J(PtPtVD3xTrxM-f6EG$G;dJ-6UycI}D^|OI9DmWJ`|~ z6{|=kjzOc(3QTNN=h}!GjtJD*J%bvXTBdIm zTkoj5@~4~+?(g|PAdt?jEBN%(?U``fv=E|~lIM30_eL+6f6pFGdn2O$NnpYc$E7|%TLIBkMdC2D0y-AVd`vA1FWeBdr{3|mwzEiX`yz2tRQc--FB+n z^P!~R8a^`PBjD}rB;A__kE_lrAYq^h$ft$8jx(?9G`|>vhxHzxDWo3-uzy$yd)d|Q z7aWgctBBp@A6G%t{eS^)V$HZwqgyX{SipKnoLl*SiZdELv7ysvHjo8&LVszgdxdZ5R~b&1dA_{jwzfqyxu5%2Kg~FT zh4?4F1TiFOMdnRqaBLQ2){X_BiI8K!0!>23GWUM1B&w@h?pJOG0#Lsc5X%-?qmZ$r z43kuHg!7QiAFqCq=!LHAod_Dpw46KnD)&lMOtr}{;KB8jfLe-fWYO!GtZqJsXc=Yh zs^_o_pTc4=SY2&Sf;1H&SLUB{s#K{ryT73@Yq; zJ-z*b$H5ehH)M~jGyB0%_U)e_9Ltz;|q>->E@Sy^tP5qbrZQ~tz1vbFIA)%DjpEPFl5e4$d%BSN7(g_ zG5Lf>JbxoFaW#`3>EXHl@mSawpQXxHM_IY>Xuhg)6-QYWD(8lfyNf-2>cjnw8%u2NWZCg%Z}0$uev#C?mL7VI2C!IO3GZPr@JVuhVb zrypk80KAji6BF#48yr{Gv_%~##JsM8n~&pK;L#gQbesgmi%)>Sq6S5){DUZ99*`5D%UXw@K(O}6B z*=Gc8iYJ2^PSr;uw$Ee$`*Y&Ha{IsA-gyb`xsR}KRbtJY1wZMKQ8=r$D-KOmnkCq29hi2gu^y6C?06Oa>Q<-z(fArjY=>KK)x92yp4-5 ztPjrP6UpQ|3XLF^ooKE@BNT5Iuy8Ll+7i;`tb8cph2Lu0rEJDdSfs?eSd#oae00gl zUq>)uTO=fPmCl57HS7Ldh-yfnDByq_tH6A>Uz&Q};Tze*JG|9}Jt$&#!nOl$)0nC&x}s#XbLK)M5fzk+yT(P&5r{;B{w@IB z3uCCFRoJLJamvDu`RjvEjb>nAfr_b6N%$Lc&YJkK%E@g@D6nUkhW2)I!!&|FFu3_n z!ZCvah$4FDjFDHNPQl<1h!{@@nKzcd{UlYu?tVZ9t=zN){Z`mH@?6u#vd*<6Thl^PWwjZn}ykQ(*Q~YRS z2}KnIYdK1Nu>pIB6BV^_Uk1G&?{aqG9Bc|1PhUEb%mk{7aeF=84d!QnZzxp^^^A%! z2{sanymn~c&i9&JRfx^oXXFE2(+7+;RNG5DBimMu>WqP0SoA|&oS8BpI{-gG36~)F zo8>U?-s|9fIPT{2x+NLQB{v~Nm90O^Pu#z*))C)md|PEZx&g^?$2agBn#?1dVI0ceYbc6xDD>Q%J7)3uVh8n^TAqLOT1yhjFv;uDg-7J z{nI$!m3zgYE*kD<^ZX1#G@`pF3(V81Nt{4mRY3vgBvs8qT73DUvAS-T{gW6aEWns5 zR_cGqWF@#0_BQa(V{>QBumJwgk`20qvJWMvRPr_`%rx-d$E9EascIv7hW}KDJ$2~y z!R`6>+t~-N?-viWs^_=sP@^ANMW|dg90wP}(EeA5pd81A9o`=BPA?Vd3TYMh7gbH+ zTIB9zUnpeM>=QYO;d{Q)&!n;rw~jHM;*Jqi3`m|O4GfJfJnvZ#5p1KJ#KJP?4T9_} z≺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%0DniY*Di>ZSCR3}Mh`zEcaFLq|6w1j%6fxf*eRtpL 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

      3zcR*t7Lp;IVe=iNWh`#lq=gpGu(6+0an<+CuOZ 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

      D*C@w7zCM?(`9K2^lF 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 GRaMw$KdDe!y2Kq1*T1 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 z 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 z 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
      )4cN{FI33FI)y5hc!oYlhZS|q~g z-V}Ap1ZtdzR?>RkS;d15^_W>I)?-OQtr`pYLNlPOU(@K`9okx(^8(8I;5aefQ zB(+2lN~?!@*E+a0Cl@AB8JA9?go+7M(dAsI7FuG76!h(2F$p>@?24aS`*AO8)7os9 z6|H2wWVxWV_dh!vggsb8z?q*s(E4YQm0LEJ*#xj&+oYFfn>8md7q|;nH+xrf zy6|`Sj{fI2he0crDhIk63~LK}jawpmE^}9+RIKZl6PR~1 z$9k$WL&&QYOYZq9-F^oz5?Xm_f*evKlVPIElzZ{Ivn)U6~kr9q}gBW9^!(4obqvrmJQQFYD(%eGMt`*G>i?_Ck~?;`t(NMVHL3R6M^RGrW+nC<=eqy2C9w0 zE9}QSrf2OMcAa%Rc|i=tUP*TKu38Lon6+Pf(1Vdg$pvy+qFkd*_J8hliKfHOI#} z0LbC?Ab@_Ot(HSRQGtgRuxm($$O`v&>2WG1zOnzVHu6f#yo~FDaG{V);rag78bpAu zjF1I19*h#?LNAZEMb+A1NVXJ_^rA(nb1IrJ+iq$h(!6&Wn(rDA#~g0AN}Mmj^PQmu z=-(wIU%yLOc${=D@eV4(JX0ksr~LgNaGVEvL=PN1rfCcK%<6sKuI+OB5^tQTKdCLC zPFxKT=avynY4fix=JKnS-v{4cnY69Ry?%6Avz&|x}2PJrs(8v^m%=XMH!Y4t@y;-?}<*I@t+V!#QgXZEV~+iHD+W~vY{s1k!;QPj;3S_YIo zDo*oX{Ui4{ko*!T^lTS-uJ_-|;YXbR^I85q+WAv1f6C=2r}6K_@sCvaPks6K0{T-f zf6C=gJNh$DZ^l4>;+KE#7ygvXpK|#Xe+lTzyNzu_igQ~!W#GGh13o$$H?9?5x%Ke> E0jn5Z`Tzg` literal 0 HcmV?d00001 diff --git a/documentation/sphinx/source/images/FDB_read_path.png b/documentation/sphinx/source/images/FDB_read_path.png new file mode 100644 index 0000000000000000000000000000000000000000..11a48718ae03375cf09fad5d4d3d8fd228399ec4 GIT binary patch literal 459742 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 DIExy`!o5_UR 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

      Dq{s5f)eyr~FV;`ghxLp}Q+TmqW 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

      SP7eoBoCLaj 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%0AWf<`-pT=H8$20ZWVFu%=7)W?3@fPdv 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

      DCX2IjlWh{$PkeQ9EjytTOXf?;{Jj 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

      kiVE!(>z~*!I?Oz_;=f~5Ocb;&am%H3GQTS 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 is an object that holds an asynchronous call and becomes ready when the async call returns, and *wait()* is a synchronous point when the code waits for futures to be ready. +The following code reads key k1 and k2 from database, increases k1’s value by 1 and write back k1’s new value into database. + +**Example Transaction** :: + + Line1: Transaction tr; + Line2: Future fv1 = tr.get(k1); + Line3: Future fv2 = tr.get(k2); + Line4: v1 = wait(fv1); + Line5: v2 = wait(fv2); + Line6: tr.set(v1+v2); + Line7: tr.commit(); + +The transaction starts with the read path: + +* When tr.get() is called, FDB client issues a timestamp request to proxies *if* the transaction has not set its start timestamp. The logic is the Step 1 in the read path; +* Batching timestamp requests. When another tr.get() is called, it will try to get a timestamp as well. If we let every get request to follow the Step 1 in the read path, the performance overhead (especially network communication) will be a lot. In addition, this is not necessary because a transaction has only one start timestamp. To solve this problem, client chooses to batch timestamp requests from the same transaction and only issues one timestamp request when the transaction size reaches a preconfigured threshold or when the transaction duration reaches the batching timeout threshold. + * Timestamp requests are batched: https://github.com/xumengpanda/foundationdb/blob/4086e3a2750b776cc8bfb0f0e463fe00ac905595/fdbclient/NativeAPI.actor.cpp#L3185 + * Thresholds for client to send the timestamp request: https://github.com/xumengpanda/foundationdb/blob/4086e3a2750b776cc8bfb0f0e463fe00ac905595/fdbclient/NativeAPI.actor.cpp#L3095-L3098 +* Each read request, i.e., tr.get operation in the example, will follow the read path to get data from storage servers, except that they will share the same timestamp; + * These read requests are sent to FDB cluster in parallel. The ordering of which read request will be ready first depends on requests’ network path and storage servers’ load. + * In the example, tr.get(k2) may return result earlier than tr.get(k1). +* Client will likely block at the synchronization point at Line 4, until the value is returned from the cluster. + * To maximize clients’ performance, a client can issue multiple transactions concurrently. When one transaction is blocked at the synchronization point, the client can switch to work on the other transactions concurrently. +* Client may or may not block at the synchronization point at Line 5. If tr.get(k2) returns earlier than tr.get(k1), the future fv2 is already ready when the client arrives at Line 5. +* At Line 6, client starts the write path. Because the transaction already has its start timestamp, client does not need to request for the transaction’s start time any more and can skip the Step 2-2 in the write path. +* At Line 7, client commits the transaction, which will trigger the operations from Step 2 in the write path. + + +A transaction can get more complex than the example above. + +* A transaction can have more writes operations between Line 6 and Line 7. Those writes will be buffered in client’s memory, which is the Step 1 in the write path. Only when the client calls commit(), will the rest of steps in the write path will be triggered; +* A transaction can have reads operations between Line 6 and Line 7 as well. +* A transaction may return commit_unknown_result, which indicate the transaction may or may not succeed. If application simply retries the transaction, the transaction may get executed twice. To solve this problem, the application can adds a transaction id to the transaction and check if the transaction id exists on the commit_unknown_result error. + + + +Concurrency and ordering of multiple write transactions +======================================================================= + +FDB orders concurrent transactions in increasing order of the transactions’ commit timestamp. The ordering is enforced in the timestamp generator, the concurrency control component and the durable queuing system. + +* When timestamp generator serves the commit timestamp request from a proxy, the reply includes not only the commit timestamp but also the latest commit timestamp the generator has sent out. For example, the timestamp generator just gave out the commit timestamp 50. When the next request arrives, the generator’s timestamp is 100 and the generator replies (50, 100). When the second request arrives and the generator’s timestamp is 200, the generator replies (100, 200). +* When a proxy sends conflict resolution requests to concurrency control processes or durable requests to the queuing system, each request includes both the current transaction’s commit timestamp and the previous transaction’s commit timestamp. +* Each concurrency control process and each process in the queuing system always process requests in the strict order of the request’s commit version. The semantics is do not process a request whose commit timestamp is V2 until the request at its previous commit timestamp V1 has been processed. + + +We use the following example and draw its swimlane diagram to illustrate how two write transactions are ordered in FDB. +The diagram with notes can be viewed at `here `_. + +.. image:: /images/FDB_multiple_txn_swimlane_diagram.png + +Reference +============ + +[SSI] Serializable Snapshot Isolation in PostgreSQL. https://arxiv.org/pdf/1208.4179.pdf From 2af1685bcda307c8bdebd9fd2c0fabf2825dec9c Mon Sep 17 00:00:00 2001 From: Meng Xu Date: Sun, 22 Nov 2020 18:40:57 -0800 Subject: [PATCH 019/261] Add read write path to Technical Overview page --- documentation/sphinx/source/technical-overview.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/documentation/sphinx/source/technical-overview.rst b/documentation/sphinx/source/technical-overview.rst index c5dbf29e37..d25991478f 100644 --- a/documentation/sphinx/source/technical-overview.rst +++ b/documentation/sphinx/source/technical-overview.rst @@ -28,6 +28,8 @@ These documents explain the engineering design of FoundationDB, with detailed in * :doc:`kv-architecture` provides a description of every major role a process in FoundationDB can fulfill. +* :doc:`read-write-path` describes how FDB read and write path works. + .. toctree:: :maxdepth: 1 :titlesonly: From 6e59c8ddadeb1d781e162cf33915c250111bbfe2 Mon Sep 17 00:00:00 2001 From: Meng Xu Date: Sun, 22 Nov 2020 21:19:11 -0800 Subject: [PATCH 020/261] Document:Fix image file path --- documentation/sphinx/source/read-write-path.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/sphinx/source/read-write-path.rst b/documentation/sphinx/source/read-write-path.rst index d65310d96b..33185bac88 100644 --- a/documentation/sphinx/source/read-write-path.rst +++ b/documentation/sphinx/source/read-write-path.rst @@ -12,7 +12,7 @@ We first discuss the read path and the write path separately for a single transa The content is based on FDB 6.2 and is true for FDB 6.3. A new timestamp proxy role is introduced in FDB 6.4+, which affects the read path. We will discuss the timestamp proxy role in the future version of this document. -.. image:: /images/FDB-read-path.png +.. image:: /images/FDB_read_path.png Components ================= @@ -98,7 +98,7 @@ Write path of a transaction Suppose a client has a write-only transaction. Fig. 2 below shows the write path in a non-HA cluster. We will discuss how a transaction with both read and write works in the next section. -.. image:: /images/FDB-write-path.png +.. image:: /images/FDB_write_path.png To simplify the explanation, the steps below do not include transaction batching on proxy, which is a typical database technique to increase transaction throughput. From 2fae7333c04f14f4b6ea3ea622c579ecb407fb3b Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Mon, 23 Nov 2020 14:55:29 -0800 Subject: [PATCH 021/261] Add duration parameter in the api --- fdbclient/NativeAPI.actor.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index b694620254..66651fc70c 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -4732,7 +4732,7 @@ ACTOR Future addInterfaceActor( std::map rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool check) { +ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool check, int duration) { // fetch the addresses of all workers state std::map> address_interface; // TODO : find out when this is invalid @@ -4748,13 +4748,11 @@ ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool wait( waitForAll(addInterfs) ); if (!address_interface.count(addr)) return 0; - if (check) - BinaryReader::fromStringRef(addr, IncludeVersion()).reboot.send( RebootRequest(false, true)); - else - BinaryReader::fromStringRef(addr, IncludeVersion()).reboot.send( RebootRequest()); + + BinaryReader::fromStringRef(address_interface[addr].first, IncludeVersion()).reboot.send( RebootRequest(false, check, duration)); return 1; } Future DatabaseContext::rebootWorker(StringRef addr, bool check, int duration) { - return rebootWorkerActor(this, addr, check); + return rebootWorkerActor(this, addr, check, duration); } From 5a717b3ba96859a41a809cb56c6de85a93ce17fb Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Tue, 24 Nov 2020 16:27:21 -0800 Subject: [PATCH 022/261] Change dd_tracker_cancelled to 1215 to avoid conflict This is safe because it's not been in a release, and it doesn't get serialized. --- flow/error_definitions.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flow/error_definitions.h b/flow/error_definitions.h index 6caa76050f..17abec2a8e 100755 --- a/flow/error_definitions.h +++ b/flow/error_definitions.h @@ -86,7 +86,7 @@ ERROR( please_reboot_delete, 1208, "Reboot of server process requested, with del ERROR( master_proxy_failed, 1209, "Master terminating because a Proxy failed" ) ERROR( master_resolver_failed, 1210, "Master terminating because a Resolver failed" ) ERROR( server_overloaded, 1211, "Server is under too much load and cannot respond" ) -ERROR(dd_tracker_cancelled, 1212, "The data distribution tracker has been cancelled") +ERROR( dd_tracker_cancelled, 1215, "The data distribution tracker has been cancelled" ) // 15xx Platform errors ERROR( platform_error, 1500, "Platform error" ) From 78c82dc891c2eb68b5147b7c01de3db4f93a1c37 Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Wed, 25 Nov 2020 23:05:26 -0800 Subject: [PATCH 023/261] Skip transactions that queued for a long time --- fdbserver/MasterProxyServer.actor.cpp | 35 +++++++++++++++++++++------ 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index 0387a27582..b14fe4abc9 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -612,6 +612,7 @@ ACTOR Future commitBatch( if (debugID.present()) g_traceBatch.addEvent("CommitDebug", debugID.get().first(), "MasterProxyServer.commitBatch.Before"); + state double timeStart = g_network->timer(); if(localBatchNumber-self->latestLocalCommitBatchResolving.get()>SERVER_KNOBS->RESET_MASTER_BATCHES && now()-self->lastMasterReset>SERVER_KNOBS->RESET_MASTER_DELAY) { TraceEvent(SevWarnAlways, "ConnectionResetMaster", self->dbgid) @@ -625,6 +626,23 @@ ACTOR Future commitBatch( /////// Phase 1: Pre-resolution processing (CPU bound except waiting for a version # which is separately pipelined and *should* be available by now (unless empty commit); ordered; currently atomic but could yield) TEST(self->latestLocalCommitBatchResolving.get() < localBatchNumber-1); // Queuing pre-resolution commit processing wait(self->latestLocalCommitBatchResolving.whenAtLeast(localBatchNumber-1)); + double queuingDelay = g_network->timer() - timeStart; + state bool rejectBatch = false; + if (queuingDelay > SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS / SERVER_KNOBS->VERSIONS_PER_SECOND || + (BUGGIFY && g_network->isSimulated() && deterministicRandom()->random01() < 0.01)) { + TEST(true); // Reject transactions in the batch + rejectBatch = true; + + for (const auto& tr : trs) { + tr.reply.sendError(not_committed()); + } + self->latestLocalCommitBatchResolving.set(localBatchNumber); + self->latestLocalCommitBatchLogging.set(localBatchNumber); + ++self->stats.commitBatchOut; + self->stats.txnCommitOut += trs.size(); + return Void(); + } + state Future releaseDelay = delay(std::min(SERVER_KNOBS->MAX_PROXY_COMPUTE, batchOperations*self->commitComputePerOperation[latencyBucket]), TaskPriority::ProxyMasterVersionReply); if (debugID.present()) @@ -654,7 +672,7 @@ ACTOR Future commitBatch( ResolutionRequestBuilder requests( self, commitVersion, prevVersion, self->version ); int conflictRangeCount = 0; state int64_t maxTransactionBytes = 0; - for (int t = 0; tdbgid).detail("Snapshot", trs[t].transaction.read_snapshot); @@ -767,9 +785,9 @@ ACTOR Future commitBatch( // Determine which transactions actually committed (conservatively) by combining results from the resolvers state vector committed(trs.size()); - ASSERT(transactionResolverMap.size() == committed.size()); + ASSERT(rejectBatch || transactionResolverMap.size() == committed.size()); vector nextTr(resolution.size()); - for (int t = 0; t commitBatch( state bool locked = lockedKey.present() && lockedKey.get().size(); state Optional mustContainSystemKey = self->txnStateStore->readValue(mustContainSystemMutationsKey).get(); - if(mustContainSystemKey.present() && mustContainSystemKey.get().size()) { + if(mustContainSystemKey.present() && mustContainSystemKey.get().size() && !rejectBatch) { for (int t = 0; t commitBatch( // This first pass through committed transactions deals with "metadata" effects (modifications of txnStateStore, changes to storage servers' responsibilities) int t; state int commitCount = 0; - for (t = 0; t < trs.size() && !forceRecovery; t++) + for (t = 0; t < trs.size() && !forceRecovery && !rejectBatch; t++) { if (committed[t] == ConflictBatch::TransactionCommitted && (!locked || trs[t].isLockAware())) { commitCount++; @@ -819,13 +837,14 @@ ACTOR Future commitBatch( if(firstStateMutations) { ASSERT(committed[t] == ConflictBatch::TransactionCommitted); firstStateMutations = false; - forceRecovery = false; + // forceRecovery = false; } } - if (forceRecovery) { + if (forceRecovery || rejectBatch) { for (; tdbgid).detail("Stage", "AwaitCommit"); + if (forceRecovery) + TraceEvent(SevWarn, "RestartingTxnSubsystem", self->dbgid).detail("Stage", "AwaitCommit"); } lockedKey = self->txnStateStore->readValue(databaseLockedKey).get(); From 5cb0b138beb1b1539f225ad20db4afb15b4421f1 Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Fri, 27 Nov 2020 09:45:52 -0800 Subject: [PATCH 024/261] Don't reject transactions for the recovery transaction Otherwise, the recovery just keeps repeating. --- fdbserver/MasterProxyServer.actor.cpp | 34 +++++++++++++++------------ 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index b14fe4abc9..5f3e75504f 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -627,19 +627,24 @@ ACTOR Future commitBatch( TEST(self->latestLocalCommitBatchResolving.get() < localBatchNumber-1); // Queuing pre-resolution commit processing wait(self->latestLocalCommitBatchResolving.whenAtLeast(localBatchNumber-1)); double queuingDelay = g_network->timer() - timeStart; - state bool rejectBatch = false; - if (queuingDelay > SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS / SERVER_KNOBS->VERSIONS_PER_SECOND || - (BUGGIFY && g_network->isSimulated() && deterministicRandom()->random01() < 0.01)) { + if (queuingDelay > (double)SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS / SERVER_KNOBS->VERSIONS_PER_SECOND || + (BUGGIFY && g_network->isSimulated() && deterministicRandom()->random01() < 0.01 && trs.size() > 0 && + !trs[0].transaction.mutations[0].param1.startsWith(LiteralStringRef("\xff")))) { + // Disabled for the recovery transaction. otherwise, recovery can't finish and keeps doing more recoveries. TEST(true); // Reject transactions in the batch - rejectBatch = true; + TraceEvent("ProxyReject", self->dbgid).detail("Delay", queuingDelay).detail("N", trs.size()); + for (const auto m : trs[0].transaction.mutations) { + TraceEvent("ProxyReject", self->dbgid).detail("Mutation", m.toString()); + } + ASSERT(self->latestLocalCommitBatchResolving.get() == localBatchNumber - 1); + self->latestLocalCommitBatchResolving.set(localBatchNumber); + wait(self->latestLocalCommitBatchLogging.whenAtLeast(localBatchNumber-1)); + self->latestLocalCommitBatchLogging.set(localBatchNumber); for (const auto& tr : trs) { tr.reply.sendError(not_committed()); } - self->latestLocalCommitBatchResolving.set(localBatchNumber); - self->latestLocalCommitBatchLogging.set(localBatchNumber); ++self->stats.commitBatchOut; - self->stats.txnCommitOut += trs.size(); return Void(); } @@ -672,7 +677,7 @@ ACTOR Future commitBatch( ResolutionRequestBuilder requests( self, commitVersion, prevVersion, self->version ); int conflictRangeCount = 0; state int64_t maxTransactionBytes = 0; - for (int t = 0; tdbgid).detail("Snapshot", trs[t].transaction.read_snapshot); @@ -785,9 +790,9 @@ ACTOR Future commitBatch( // Determine which transactions actually committed (conservatively) by combining results from the resolvers state vector committed(trs.size()); - ASSERT(rejectBatch || transactionResolverMap.size() == committed.size()); + ASSERT(transactionResolverMap.size() == committed.size()); vector nextTr(resolution.size()); - for (int t = 0; t commitBatch( state bool locked = lockedKey.present() && lockedKey.get().size(); state Optional mustContainSystemKey = self->txnStateStore->readValue(mustContainSystemMutationsKey).get(); - if(mustContainSystemKey.present() && mustContainSystemKey.get().size() && !rejectBatch) { + if(mustContainSystemKey.present() && mustContainSystemKey.get().size()) { for (int t = 0; t commitBatch( // This first pass through committed transactions deals with "metadata" effects (modifications of txnStateStore, changes to storage servers' responsibilities) int t; state int commitCount = 0; - for (t = 0; t < trs.size() && !forceRecovery && !rejectBatch; t++) + for (t = 0; t < trs.size() && !forceRecovery; t++) { if (committed[t] == ConflictBatch::TransactionCommitted && (!locked || trs[t].isLockAware())) { commitCount++; @@ -840,11 +845,10 @@ ACTOR Future commitBatch( // forceRecovery = false; } } - if (forceRecovery || rejectBatch) { + if (forceRecovery) { for (; tdbgid).detail("Stage", "AwaitCommit"); + TraceEvent(SevWarn, "RestartingTxnSubsystem", self->dbgid).detail("Stage", "AwaitCommit"); } lockedKey = self->txnStateStore->readValue(databaseLockedKey).get(); From 7d7fdc296b3e4a681efe7e7597f74c8a16c90a92 Mon Sep 17 00:00:00 2001 From: Meng Xu Date: Fri, 27 Nov 2020 12:19:56 -0800 Subject: [PATCH 025/261] Add read-write-path to doctree --- documentation/sphinx/source/technical-overview.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/documentation/sphinx/source/technical-overview.rst b/documentation/sphinx/source/technical-overview.rst index d25991478f..f66dfb3311 100644 --- a/documentation/sphinx/source/technical-overview.rst +++ b/documentation/sphinx/source/technical-overview.rst @@ -47,3 +47,4 @@ These documents explain the engineering design of FoundationDB, with detailed in flow testing kv-architecture + read-write-path From df5293e2bebb60e8bdcfb3e5f35cf5d430acd333 Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Sat, 28 Nov 2020 19:58:39 -0800 Subject: [PATCH 026/261] Add a knob PROXY_REJECT_BATCH_QUEUED_TOO_LONG Disable the proxy rejection feature for backup workload, because of the ApplyMutationsError. --- fdbserver/Knobs.cpp | 1 + fdbserver/Knobs.h | 1 + fdbserver/MasterProxyServer.actor.cpp | 20 +++++++++++++------ fdbserver/workloads/AtomicRestore.actor.cpp | 4 ++++ .../workloads/AtomicSwitchover.actor.cpp | 5 +++++ fdbserver/workloads/BackupToDBAbort.actor.cpp | 5 +++++ .../workloads/BackupToDBCorrectness.actor.cpp | 5 +++++ .../workloads/BackupToDBUpgrade.actor.cpp | 5 +++++ 8 files changed, 40 insertions(+), 6 deletions(-) diff --git a/fdbserver/Knobs.cpp b/fdbserver/Knobs.cpp index 8431be5149..79b4986dce 100644 --- a/fdbserver/Knobs.cpp +++ b/fdbserver/Knobs.cpp @@ -344,6 +344,7 @@ ServerKnobs::ServerKnobs(bool randomize, ClientKnobs* clientKnobs, bool isSimula init( MAX_PROXY_COMPUTE, 2.0 ); init( PROXY_COMPUTE_BUCKETS, 20000 ); init( PROXY_COMPUTE_GROWTH_RATE, 0.01 ); + init( PROXY_REJECT_BATCH_QUEUED_TOO_LONG, true ); init( RESET_MASTER_BATCHES, 200 ); init( RESET_RESOLVER_BATCHES, 200 ); diff --git a/fdbserver/Knobs.h b/fdbserver/Knobs.h index 0a5168397d..2047a0439d 100644 --- a/fdbserver/Knobs.h +++ b/fdbserver/Knobs.h @@ -289,6 +289,7 @@ public: double MAX_PROXY_COMPUTE; int PROXY_COMPUTE_BUCKETS; double PROXY_COMPUTE_GROWTH_RATE; + bool PROXY_REJECT_BATCH_QUEUED_TOO_LONG; int RESET_MASTER_BATCHES; int RESET_RESOLVER_BATCHES; diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index 5f3e75504f..63df826cbb 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -627,19 +627,27 @@ ACTOR Future commitBatch( TEST(self->latestLocalCommitBatchResolving.get() < localBatchNumber-1); // Queuing pre-resolution commit processing wait(self->latestLocalCommitBatchResolving.whenAtLeast(localBatchNumber-1)); double queuingDelay = g_network->timer() - timeStart; - if (queuingDelay > (double)SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS / SERVER_KNOBS->VERSIONS_PER_SECOND || - (BUGGIFY && g_network->isSimulated() && deterministicRandom()->random01() < 0.01 && trs.size() > 0 && - !trs[0].transaction.mutations[0].param1.startsWith(LiteralStringRef("\xff")))) { + if ((queuingDelay > (double)SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS / SERVER_KNOBS->VERSIONS_PER_SECOND || + (BUGGIFY && g_network->isSimulated() && deterministicRandom()->random01() < 0.01)) && + SERVER_KNOBS->PROXY_REJECT_BATCH_QUEUED_TOO_LONG && + trs.size() > 0 && !trs[0].transaction.mutations.empty() && !trs[0].transaction.mutations[0].param1.startsWith(LiteralStringRef("\xff"))) { // Disabled for the recovery transaction. otherwise, recovery can't finish and keeps doing more recoveries. TEST(true); // Reject transactions in the batch - TraceEvent("ProxyReject", self->dbgid).detail("Delay", queuingDelay).detail("N", trs.size()); - for (const auto m : trs[0].transaction.mutations) { - TraceEvent("ProxyReject", self->dbgid).detail("Mutation", m.toString()); + TraceEvent("ProxyReject", self->dbgid).detail("Delay", queuingDelay).detail("N", trs.size()).detail("BatchNumber", localBatchNumber); + int i = 0; + for (const auto tr : trs) { + int j = 0; + for (const auto& m : tr.transaction.mutations) { + TraceEvent("ProxyReject", self->dbgid).detail("T", i).detail("M", j).detail("Mutation", m.toString()); + j++; + } + i++; } ASSERT(self->latestLocalCommitBatchResolving.get() == localBatchNumber - 1); self->latestLocalCommitBatchResolving.set(localBatchNumber); wait(self->latestLocalCommitBatchLogging.whenAtLeast(localBatchNumber-1)); + ASSERT(self->latestLocalCommitBatchLogging.get() == localBatchNumber - 1); self->latestLocalCommitBatchLogging.set(localBatchNumber); for (const auto& tr : trs) { tr.reply.sendError(not_committed()); diff --git a/fdbserver/workloads/AtomicRestore.actor.cpp b/fdbserver/workloads/AtomicRestore.actor.cpp index 4537970f7a..bcd1e78d25 100644 --- a/fdbserver/workloads/AtomicRestore.actor.cpp +++ b/fdbserver/workloads/AtomicRestore.actor.cpp @@ -61,6 +61,9 @@ struct AtomicRestoreWorkload : TestWorkload { ACTOR static Future _start(Database cx, AtomicRestoreWorkload* self) { state FileBackupAgent backupAgent; + // Disable proxy rejection + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; + wait( delay(self->startAfter * deterministicRandom()->random01()) ); TraceEvent("AtomicRestore_Start"); @@ -105,6 +108,7 @@ struct AtomicRestoreWorkload : TestWorkload { } TraceEvent("AtomicRestore_Done"); + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; return Void(); } }; diff --git a/fdbserver/workloads/AtomicSwitchover.actor.cpp b/fdbserver/workloads/AtomicSwitchover.actor.cpp index 02fcb77866..dc36a82a86 100644 --- a/fdbserver/workloads/AtomicSwitchover.actor.cpp +++ b/fdbserver/workloads/AtomicSwitchover.actor.cpp @@ -152,6 +152,9 @@ struct AtomicSwitchoverWorkload : TestWorkload { state DatabaseBackupAgent backupAgent(cx); state DatabaseBackupAgent restoreAgent(self->extraDB); + // Disable proxy rejection to avoid ApplyMutationsError + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; + TraceEvent("AS_Wait1"); wait(success( backupAgent.waitBackup(self->extraDB, BackupAgentBase::getDefaultTag(), false) )); TraceEvent("AS_Ready1"); @@ -177,6 +180,8 @@ struct AtomicSwitchoverWorkload : TestWorkload { g_simulator.drAgents = ISimulator::NoBackupAgents; } + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; + return Void(); } }; diff --git a/fdbserver/workloads/BackupToDBAbort.actor.cpp b/fdbserver/workloads/BackupToDBAbort.actor.cpp index 7d242360ec..20cfb7ae1e 100644 --- a/fdbserver/workloads/BackupToDBAbort.actor.cpp +++ b/fdbserver/workloads/BackupToDBAbort.actor.cpp @@ -22,6 +22,8 @@ #include "fdbclient/ManagementAPI.actor.h" #include "fdbclient/NativeAPI.actor.h" #include "fdbserver/workloads/workloads.actor.h" +#include "fdbserver/Knobs.h" + #include "flow/actorcompiler.h" // This must be the last #include. struct BackupToDBAbort : TestWorkload { @@ -54,6 +56,8 @@ struct BackupToDBAbort : TestWorkload { ACTOR static Future _setup(BackupToDBAbort* self, Database cx) { state DatabaseBackupAgent backupAgent(cx); try { + // Disable proxy rejection to avoid ApplyMutationsError + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; TraceEvent("BDBA_Submit1"); wait( backupAgent.submitBackup(self->extraDB, BackupAgentBase::getDefaultTag(), self->backupRanges, false, StringRef(), StringRef(), true) ); TraceEvent("BDBA_Submit2"); @@ -61,6 +65,7 @@ struct BackupToDBAbort : TestWorkload { if( e.code() != error_code_backup_duplicate ) throw; } + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; return Void(); } diff --git a/fdbserver/workloads/BackupToDBCorrectness.actor.cpp b/fdbserver/workloads/BackupToDBCorrectness.actor.cpp index bb1ced25eb..11fd9642d9 100644 --- a/fdbserver/workloads/BackupToDBCorrectness.actor.cpp +++ b/fdbserver/workloads/BackupToDBCorrectness.actor.cpp @@ -442,6 +442,9 @@ struct BackupToDBCorrectnessWorkload : TestWorkload { TraceEvent("BARW_Arguments").detail("BackupTag", printable(self->backupTag)).detail("BackupAfter", self->backupAfter) .detail("AbortAndRestartAfter", self->abortAndRestartAfter).detail("DifferentialAfter", self->stopDifferentialAfter); + // Disable proxy rejection to avoid ApplyMutationsError + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; + state UID randomID = nondeterministicRandom()->randomUniqueID(); // Increment the backup agent requets @@ -575,6 +578,8 @@ struct BackupToDBCorrectnessWorkload : TestWorkload { throw; } + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; + return Void(); } }; diff --git a/fdbserver/workloads/BackupToDBUpgrade.actor.cpp b/fdbserver/workloads/BackupToDBUpgrade.actor.cpp index 3f2afcc717..3a324e6b1f 100644 --- a/fdbserver/workloads/BackupToDBUpgrade.actor.cpp +++ b/fdbserver/workloads/BackupToDBUpgrade.actor.cpp @@ -346,6 +346,9 @@ struct BackupToDBUpgradeWorkload : TestWorkload { state UID logUid; state Version commitVersion; + // Disable proxy rejection to avoid ApplyMutationsError + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; + state Future stopDifferential = delay(self->stopDifferentialAfter); state Future waitUpgrade = backupAgent.waitUpgradeToLatestDrVersion(self->extraDB, self->backupTag); wait(success(stopDifferential) && success(waitUpgrade)); @@ -462,6 +465,8 @@ struct BackupToDBUpgradeWorkload : TestWorkload { throw; } + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; + return Void(); } }; From 589ee0197930061b91ffe8aaaf3d975390f28d28 Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Sun, 29 Nov 2020 09:45:55 -0800 Subject: [PATCH 027/261] Fix backup workload w.r.t. proxy rejection --- fdbserver/MasterProxyServer.actor.cpp | 10 ---------- fdbserver/workloads/BackupCorrectness.actor.cpp | 2 ++ 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index 63df826cbb..2ff54a6249 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -634,15 +634,6 @@ ACTOR Future commitBatch( // Disabled for the recovery transaction. otherwise, recovery can't finish and keeps doing more recoveries. TEST(true); // Reject transactions in the batch TraceEvent("ProxyReject", self->dbgid).detail("Delay", queuingDelay).detail("N", trs.size()).detail("BatchNumber", localBatchNumber); - int i = 0; - for (const auto tr : trs) { - int j = 0; - for (const auto& m : tr.transaction.mutations) { - TraceEvent("ProxyReject", self->dbgid).detail("T", i).detail("M", j).detail("Mutation", m.toString()); - j++; - } - i++; - } ASSERT(self->latestLocalCommitBatchResolving.get() == localBatchNumber - 1); self->latestLocalCommitBatchResolving.set(localBatchNumber); @@ -850,7 +841,6 @@ ACTOR Future commitBatch( if(firstStateMutations) { ASSERT(committed[t] == ConflictBatch::TransactionCommitted); firstStateMutations = false; - // forceRecovery = false; } } if (forceRecovery) { diff --git a/fdbserver/workloads/BackupCorrectness.actor.cpp b/fdbserver/workloads/BackupCorrectness.actor.cpp index ddf7e879f3..bf318055c0 100644 --- a/fdbserver/workloads/BackupCorrectness.actor.cpp +++ b/fdbserver/workloads/BackupCorrectness.actor.cpp @@ -364,6 +364,7 @@ struct BackupAndRestoreCorrectnessWorkload : TestWorkload { state FileBackupAgent backupAgent; state Future extraBackup; state bool extraTasks = false; + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; TraceEvent("BARW_Arguments").detail("BackupTag", printable(self->backupTag)).detail("PerformRestore", self->performRestore) .detail("BackupAfter", self->backupAfter).detail("RestoreAfter", self->restoreAfter) .detail("AbortAndRestartAfter", self->abortAndRestartAfter).detail("DifferentialAfter", self->stopDifferentialAfter); @@ -661,6 +662,7 @@ struct BackupAndRestoreCorrectnessWorkload : TestWorkload { TraceEvent(SevError, "BackupAndRestoreCorrectness").error(e).GetLastError(); throw; } + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; return Void(); } }; From da55d7388558105d907c863b7034113a230c39d2 Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Sun, 29 Nov 2020 14:07:01 -0800 Subject: [PATCH 028/261] Fix BackupToDBAbort workload w.r.t. proxy rejection --- fdbserver/workloads/BackupToDBAbort.actor.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fdbserver/workloads/BackupToDBAbort.actor.cpp b/fdbserver/workloads/BackupToDBAbort.actor.cpp index 20cfb7ae1e..60c73620b7 100644 --- a/fdbserver/workloads/BackupToDBAbort.actor.cpp +++ b/fdbserver/workloads/BackupToDBAbort.actor.cpp @@ -56,8 +56,6 @@ struct BackupToDBAbort : TestWorkload { ACTOR static Future _setup(BackupToDBAbort* self, Database cx) { state DatabaseBackupAgent backupAgent(cx); try { - // Disable proxy rejection to avoid ApplyMutationsError - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; TraceEvent("BDBA_Submit1"); wait( backupAgent.submitBackup(self->extraDB, BackupAgentBase::getDefaultTag(), self->backupRanges, false, StringRef(), StringRef(), true) ); TraceEvent("BDBA_Submit2"); @@ -65,7 +63,6 @@ struct BackupToDBAbort : TestWorkload { if( e.code() != error_code_backup_duplicate ) throw; } - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; return Void(); } @@ -77,6 +74,9 @@ struct BackupToDBAbort : TestWorkload { ACTOR static Future _start(BackupToDBAbort* self, Database cx) { state DatabaseBackupAgent backupAgent(cx); + // Disable proxy rejection to avoid ApplyMutationsError + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; + TraceEvent("BDBA_Start").detail("Delay", self->abortDelay); wait(delay(self->abortDelay)); TraceEvent("BDBA_Wait"); @@ -94,6 +94,7 @@ struct BackupToDBAbort : TestWorkload { g_simulator.drAgents = ISimulator::NoBackupAgents; } + const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; return Void(); } From 6bf1e5f3f918f35f0c891b23b485a6c2e6a7fffe Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Sun, 29 Nov 2020 14:16:10 -0800 Subject: [PATCH 029/261] Update release notes --- .../sphinx/source/release-notes/release-notes-620.rst | 1 + fdbserver/MasterProxyServer.actor.cpp | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/documentation/sphinx/source/release-notes/release-notes-620.rst b/documentation/sphinx/source/release-notes/release-notes-620.rst index 1d74690caf..82f417717e 100644 --- a/documentation/sphinx/source/release-notes/release-notes-620.rst +++ b/documentation/sphinx/source/release-notes/release-notes-620.rst @@ -8,6 +8,7 @@ Release Notes ====== * Fix invalid memory access on data distributor when snapshotting large clusters. `(PR #4076) `_ * Add human-readable DateTime to trace events `(PR #4087) `_ +* Proxy rejects transaction batch that exceeds MVCC window `(PR #4113) `_ 6.2.28 ====== diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index 2ff54a6249..fcb8561510 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -633,7 +633,10 @@ ACTOR Future commitBatch( trs.size() > 0 && !trs[0].transaction.mutations.empty() && !trs[0].transaction.mutations[0].param1.startsWith(LiteralStringRef("\xff"))) { // Disabled for the recovery transaction. otherwise, recovery can't finish and keeps doing more recoveries. TEST(true); // Reject transactions in the batch - TraceEvent("ProxyReject", self->dbgid).detail("Delay", queuingDelay).detail("N", trs.size()).detail("BatchNumber", localBatchNumber); + TraceEvent(SevWarnAlways, "ProxyReject", self->dbgid) + .detail("QDelay", queuingDelay) + .detail("Transactions", trs.size()) + .detail("BatchNumber", localBatchNumber); ASSERT(self->latestLocalCommitBatchResolving.get() == localBatchNumber - 1); self->latestLocalCommitBatchResolving.set(localBatchNumber); @@ -644,6 +647,7 @@ ACTOR Future commitBatch( tr.reply.sendError(not_committed()); } ++self->stats.commitBatchOut; + self->stats.txnConflicts += trs.size(); return Void(); } From 3d9ac0b050f92af0e9e203ce06d6761a0842eb39 Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Mon, 30 Nov 2020 09:29:18 -0800 Subject: [PATCH 030/261] Address review comments --- fdbserver/MasterProxyServer.actor.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index fcb8561510..7b40ec7a51 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -612,7 +612,7 @@ ACTOR Future commitBatch( if (debugID.present()) g_traceBatch.addEvent("CommitDebug", debugID.get().first(), "MasterProxyServer.commitBatch.Before"); - state double timeStart = g_network->timer(); + state double timeStart = now(); if(localBatchNumber-self->latestLocalCommitBatchResolving.get()>SERVER_KNOBS->RESET_MASTER_BATCHES && now()-self->lastMasterReset>SERVER_KNOBS->RESET_MASTER_DELAY) { TraceEvent(SevWarnAlways, "ConnectionResetMaster", self->dbgid) @@ -628,12 +628,13 @@ ACTOR Future commitBatch( wait(self->latestLocalCommitBatchResolving.whenAtLeast(localBatchNumber-1)); double queuingDelay = g_network->timer() - timeStart; if ((queuingDelay > (double)SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS / SERVER_KNOBS->VERSIONS_PER_SECOND || - (BUGGIFY && g_network->isSimulated() && deterministicRandom()->random01() < 0.01)) && - SERVER_KNOBS->PROXY_REJECT_BATCH_QUEUED_TOO_LONG && - trs.size() > 0 && !trs[0].transaction.mutations.empty() && !trs[0].transaction.mutations[0].param1.startsWith(LiteralStringRef("\xff"))) { + (g_network->isSimulated() && BUGGIFY_WITH_PROB(0.01))) && + SERVER_KNOBS->PROXY_REJECT_BATCH_QUEUED_TOO_LONG && trs.size() > 0 && !trs[0].transaction.mutations.empty() && + !trs[0].transaction.mutations[0].param1.startsWith(LiteralStringRef("\xff"))) { // Disabled for the recovery transaction. otherwise, recovery can't finish and keeps doing more recoveries. TEST(true); // Reject transactions in the batch TraceEvent(SevWarnAlways, "ProxyReject", self->dbgid) + .suppressFor(0.1) .detail("QDelay", queuingDelay) .detail("Transactions", trs.size()) .detail("BatchNumber", localBatchNumber); @@ -644,7 +645,7 @@ ACTOR Future commitBatch( ASSERT(self->latestLocalCommitBatchLogging.get() == localBatchNumber - 1); self->latestLocalCommitBatchLogging.set(localBatchNumber); for (const auto& tr : trs) { - tr.reply.sendError(not_committed()); + tr.reply.sendError(transaction_too_old()); } ++self->stats.commitBatchOut; self->stats.txnConflicts += trs.size(); From 52d238967f5ffb29e72c631fd74f1c590b3eaf5d Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Mon, 30 Nov 2020 21:06:56 -0800 Subject: [PATCH 031/261] Allow backup's "ApplyMutations" to bypass rejection These mutations should always commit. --- fdbserver/MasterProxyServer.actor.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index 7b40ec7a51..fcf9393ab2 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -567,6 +567,19 @@ ACTOR Future releaseResolvingAfter(ProxyCommitData* self, Future rel return Void(); } +// Try to identify recovery transaction and backup's apply mutations. +// Both cannot be rejected and are approximated by looking at first mutation +// starting with 0xff. +bool canReject(const std::vector& trs) { + for (const auto& tr : trs) { + if (tr.transaction.mutations.empty()) continue; + if (tr.transaction.mutations[0].param1.startsWith(LiteralStringRef("\xff"))) { + return false; + } + } + return true; +} + ACTOR Future commitBatch( ProxyCommitData* self, vector trs, @@ -629,8 +642,7 @@ ACTOR Future commitBatch( double queuingDelay = g_network->timer() - timeStart; if ((queuingDelay > (double)SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS / SERVER_KNOBS->VERSIONS_PER_SECOND || (g_network->isSimulated() && BUGGIFY_WITH_PROB(0.01))) && - SERVER_KNOBS->PROXY_REJECT_BATCH_QUEUED_TOO_LONG && trs.size() > 0 && !trs[0].transaction.mutations.empty() && - !trs[0].transaction.mutations[0].param1.startsWith(LiteralStringRef("\xff"))) { + SERVER_KNOBS->PROXY_REJECT_BATCH_QUEUED_TOO_LONG && canReject(trs)) { // Disabled for the recovery transaction. otherwise, recovery can't finish and keeps doing more recoveries. TEST(true); // Reject transactions in the batch TraceEvent(SevWarnAlways, "ProxyReject", self->dbgid) From c63024c5df2492667ce285407a58648af2ba2123 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Wed, 2 Dec 2020 22:37:02 -0800 Subject: [PATCH 032/261] Remove BlobStore.actor.cpp This file was replaced by S3BlobStore.actor.cpp --- fdbclient/BlobStore.actor.cpp | 1200 --------------------------------- 1 file changed, 1200 deletions(-) delete mode 100644 fdbclient/BlobStore.actor.cpp diff --git a/fdbclient/BlobStore.actor.cpp b/fdbclient/BlobStore.actor.cpp deleted file mode 100644 index 816cf5b488..0000000000 --- a/fdbclient/BlobStore.actor.cpp +++ /dev/null @@ -1,1200 +0,0 @@ -/* - * BlobStore.actor.cpp - * - * This source file is part of the FoundationDB open source project - * - * Copyright 2013-2018 Apple Inc. and the FoundationDB project authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "fdbclient/BlobStore.h" - -#include "fdbclient/md5/md5.h" -#include "fdbclient/libb64/encode.h" -#include "fdbclient/sha1/SHA1.h" -#include -#include -#include -#include "fdbrpc/IAsyncFile.h" -#include "fdbclient/rapidxml/rapidxml.hpp" -#include "flow/actorcompiler.h" // has to be last include - -using namespace rapidxml; - -json_spirit::mObject BlobStoreEndpoint::Stats::getJSON() { - json_spirit::mObject o; - - o["requests_failed"] = requests_failed; - o["requests_successful"] = requests_successful; - o["bytes_sent"] = bytes_sent; - - return o; -} - -BlobStoreEndpoint::Stats BlobStoreEndpoint::Stats::operator-(const Stats &rhs) { - Stats r; - r.requests_failed = requests_failed - rhs.requests_failed; - r.requests_successful = requests_successful - rhs.requests_successful; - r.bytes_sent = bytes_sent - rhs.bytes_sent; - return r; -} - -BlobStoreEndpoint::Stats BlobStoreEndpoint::s_stats; - -BlobStoreEndpoint::BlobKnobs::BlobKnobs() { - secure_connection = 1; - connect_tries = CLIENT_KNOBS->BLOBSTORE_CONNECT_TRIES; - connect_timeout = CLIENT_KNOBS->BLOBSTORE_CONNECT_TIMEOUT; - max_connection_life = CLIENT_KNOBS->BLOBSTORE_MAX_CONNECTION_LIFE; - request_tries = CLIENT_KNOBS->BLOBSTORE_REQUEST_TRIES; - request_timeout_min = CLIENT_KNOBS->BLOBSTORE_REQUEST_TIMEOUT_MIN; - requests_per_second = CLIENT_KNOBS->BLOBSTORE_REQUESTS_PER_SECOND; - concurrent_requests = CLIENT_KNOBS->BLOBSTORE_CONCURRENT_REQUESTS; - list_requests_per_second = CLIENT_KNOBS->BLOBSTORE_LIST_REQUESTS_PER_SECOND; - write_requests_per_second = CLIENT_KNOBS->BLOBSTORE_WRITE_REQUESTS_PER_SECOND; - read_requests_per_second = CLIENT_KNOBS->BLOBSTORE_READ_REQUESTS_PER_SECOND; - delete_requests_per_second = CLIENT_KNOBS->BLOBSTORE_DELETE_REQUESTS_PER_SECOND; - multipart_max_part_size = CLIENT_KNOBS->BLOBSTORE_MULTIPART_MAX_PART_SIZE; - multipart_min_part_size = CLIENT_KNOBS->BLOBSTORE_MULTIPART_MIN_PART_SIZE; - concurrent_uploads = CLIENT_KNOBS->BLOBSTORE_CONCURRENT_UPLOADS; - concurrent_lists = CLIENT_KNOBS->BLOBSTORE_CONCURRENT_LISTS; - concurrent_reads_per_file = CLIENT_KNOBS->BLOBSTORE_CONCURRENT_READS_PER_FILE; - concurrent_writes_per_file = CLIENT_KNOBS->BLOBSTORE_CONCURRENT_WRITES_PER_FILE; - read_block_size = CLIENT_KNOBS->BLOBSTORE_READ_BLOCK_SIZE; - read_ahead_blocks = CLIENT_KNOBS->BLOBSTORE_READ_AHEAD_BLOCKS; - read_cache_blocks_per_file = CLIENT_KNOBS->BLOBSTORE_READ_CACHE_BLOCKS_PER_FILE; - max_send_bytes_per_second = CLIENT_KNOBS->BLOBSTORE_MAX_SEND_BYTES_PER_SECOND; - max_recv_bytes_per_second = CLIENT_KNOBS->BLOBSTORE_MAX_RECV_BYTES_PER_SECOND; -} - -bool BlobStoreEndpoint::BlobKnobs::set(StringRef name, int value) { - #define TRY_PARAM(n, sn) if(name == LiteralStringRef(#n) || name == LiteralStringRef(#sn)) { n = value; return true; } - TRY_PARAM(secure_connection, sc) - TRY_PARAM(connect_tries, ct); - TRY_PARAM(connect_timeout, cto); - TRY_PARAM(max_connection_life, mcl); - TRY_PARAM(request_tries, rt); - TRY_PARAM(request_timeout_min, rtom); - // TODO: For backward compatibility because request_timeout was renamed to request_timeout_min - if(name == LiteralStringRef("request_timeout") || name == LiteralStringRef("rto")) { request_timeout_min = value; return true; } - TRY_PARAM(requests_per_second, rps); - TRY_PARAM(list_requests_per_second, lrps); - TRY_PARAM(write_requests_per_second, wrps); - TRY_PARAM(read_requests_per_second, rrps); - TRY_PARAM(delete_requests_per_second, drps); - TRY_PARAM(concurrent_requests, cr); - TRY_PARAM(multipart_max_part_size, maxps); - TRY_PARAM(multipart_min_part_size, minps); - TRY_PARAM(concurrent_uploads, cu); - TRY_PARAM(concurrent_lists, cl); - TRY_PARAM(concurrent_reads_per_file, crpf); - TRY_PARAM(concurrent_writes_per_file, cwpf); - TRY_PARAM(read_block_size, rbs); - TRY_PARAM(read_ahead_blocks, rab); - TRY_PARAM(read_cache_blocks_per_file, rcb); - TRY_PARAM(max_send_bytes_per_second, sbps); - TRY_PARAM(max_recv_bytes_per_second, rbps); - #undef TRY_PARAM - return false; -} - -// Returns a Blob URL parameter string that specifies all of the non-default options for the endpoint using option short names. -std::string BlobStoreEndpoint::BlobKnobs::getURLParameters() const { - static BlobKnobs defaults; - std::string r; - #define _CHECK_PARAM(n, sn) if(n != defaults. n) { r += format("%s%s=%d", r.empty() ? "" : "&", #sn, n); } - _CHECK_PARAM(secure_connection, sc); - _CHECK_PARAM(connect_tries, ct); - _CHECK_PARAM(connect_timeout, cto); - _CHECK_PARAM(max_connection_life, mcl); - _CHECK_PARAM(request_tries, rt); - _CHECK_PARAM(request_timeout_min, rto); - _CHECK_PARAM(requests_per_second, rps); - _CHECK_PARAM(list_requests_per_second, lrps); - _CHECK_PARAM(write_requests_per_second, wrps); - _CHECK_PARAM(read_requests_per_second, rrps); - _CHECK_PARAM(delete_requests_per_second, drps); - _CHECK_PARAM(concurrent_requests, cr); - _CHECK_PARAM(multipart_max_part_size, maxps); - _CHECK_PARAM(multipart_min_part_size, minps); - _CHECK_PARAM(concurrent_uploads, cu); - _CHECK_PARAM(concurrent_lists, cl); - _CHECK_PARAM(concurrent_reads_per_file, crpf); - _CHECK_PARAM(concurrent_writes_per_file, cwpf); - _CHECK_PARAM(read_block_size, rbs); - _CHECK_PARAM(read_ahead_blocks, rab); - _CHECK_PARAM(read_cache_blocks_per_file, rcb); - _CHECK_PARAM(max_send_bytes_per_second, sbps); - _CHECK_PARAM(max_recv_bytes_per_second, rbps); - #undef _CHECK_PARAM - return r; -} - -Reference BlobStoreEndpoint::fromString(std::string const &url, std::string *resourceFromURL, std::string *error, ParametersT *ignored_parameters) { - if(resourceFromURL) - resourceFromURL->clear(); - - try { - StringRef t(url); - StringRef prefix = t.eat("://"); - if(prefix != LiteralStringRef("blobstore")) - throw format("Invalid blobstore URL prefix '%s'", prefix.toString().c_str()); - StringRef cred = t.eat("@"); - uint8_t foundSeparator = 0; - StringRef hostPort = t.eatAny("/?", &foundSeparator); - StringRef resource; - if(foundSeparator == '/') { - resource = t.eat("?"); - } - - // hostPort is at least a host or IP address, optionally followed by :portNumber or :serviceName - StringRef h(hostPort); - StringRef host = h.eat(":"); - if(host.size() == 0) - throw std::string("host cannot be empty"); - - StringRef service = h.eat(); - - BlobKnobs knobs; - HTTP::Headers extraHeaders; - while(1) { - StringRef name = t.eat("="); - if(name.size() == 0) - break; - StringRef value = t.eat("&"); - - // Special case for header - if(name == LiteralStringRef("header")) { - StringRef originalValue = value; - StringRef headerFieldName = value.eat(":"); - StringRef headerFieldValue = value; - if(headerFieldName.size() == 0 || headerFieldValue.size() == 0) { - throw format("'%s' is not a valid value for '%s' parameter. Format is : where strings are not empty.", originalValue.toString().c_str(), name.toString().c_str()); - } - std::string &fieldValue = extraHeaders[headerFieldName.toString()]; - // RFC 2616 section 4.2 says header field names can repeat but only if it is valid to concatenate their values with comma separation - if(!fieldValue.empty()) { - fieldValue.append(","); - } - fieldValue.append(headerFieldValue.toString()); - continue; - } - - // See if the parameter is a knob - // First try setting a dummy value (all knobs are currently numeric) just to see if this parameter is known to BlobStoreEndpoint. - // If it is, then we will set it to a good value or throw below, so the dummy set has no bad side effects. - bool known = knobs.set(name, 0); - - // If the parameter is not known to BlobStoreEndpoint then throw unless there is an ignored_parameters set to add it to - if(!known) { - if(ignored_parameters == nullptr) { - throw format("%s is not a valid parameter name", name.toString().c_str()); - } - (*ignored_parameters)[name.toString()] = value.toString(); - continue; - } - - // The parameter is known to BlobStoreEndpoint so it must be numeric and valid. - char *valueEnd; - int ivalue = strtol(value.toString().c_str(), &valueEnd, 10); - if(*valueEnd || (ivalue == 0 && value.toString() != "0")) - throw format("%s is not a valid value for %s", value.toString().c_str(), name.toString().c_str()); - - // It should not be possible for this set to fail now since the dummy set above had to have worked. - ASSERT(knobs.set(name, ivalue)); - } - - if(resourceFromURL != nullptr) - *resourceFromURL = resource.toString(); - - StringRef c(cred); - StringRef key = c.eat(":"); - StringRef secret = c.eat(); - - return makeReference(host.toString(), service.toString(), key.toString(), secret.toString(), - knobs, extraHeaders); - - } catch(std::string &err) { - if(error != nullptr) - *error = err; - TraceEvent(SevWarnAlways, "BlobStoreEndpointBadURL").suppressFor(60).detail("Description", err).detail("Format", getURLFormat()).detail("URL", url); - throw backup_invalid_url(); - } -} - -std::string BlobStoreEndpoint::getResourceURL(std::string resource, std::string params) { - std::string hostPort = host; - if(!service.empty()) { - hostPort.append(":"); - hostPort.append(service); - } - - // If secret isn't being looked up from credentials files then it was passed explicitly in th URL so show it here. - std::string s; - if(!lookupSecret) - s = std::string(":") + secret; - - std::string r = format("blobstore://%s%s@%s/%s", key.c_str(), s.c_str(), hostPort.c_str(), resource.c_str()); - - // Get params that are deviations from knob defaults - std::string knobParams = knobs.getURLParameters(); - if(!knobParams.empty()) { - if(!params.empty()) { - params.append("&"); - } - params.append(knobParams); - } - - for(auto &kv : extraHeaders) { - if(!params.empty()) { - params.append("&"); - } - params.append("header="); - params.append(HTTP::urlEncode(kv.first)); - params.append(":"); - params.append(HTTP::urlEncode(kv.second)); - } - - if(!params.empty()) - r.append("?").append(params); - - return r; -} - -ACTOR Future bucketExists_impl(Reference b, std::string bucket) { - wait(b->requestRateRead->getAllowance(1)); - - std::string resource = std::string("/") + bucket; - HTTP::Headers headers; - - Reference r = wait(b->doRequest("HEAD", resource, headers, nullptr, 0, {200, 404})); - return r->code == 200; -} - -Future BlobStoreEndpoint::bucketExists(std::string const &bucket) { - return bucketExists_impl(Reference::addRef(this), bucket); -} - -ACTOR Future objectExists_impl(Reference b, std::string bucket, std::string object) { - wait(b->requestRateRead->getAllowance(1)); - - std::string resource = std::string("/") + bucket + "/" + object; - HTTP::Headers headers; - - Reference r = wait(b->doRequest("HEAD", resource, headers, nullptr, 0, {200, 404})); - return r->code == 200; -} - -Future BlobStoreEndpoint::objectExists(std::string const &bucket, std::string const &object) { - return objectExists_impl(Reference::addRef(this), bucket, object); -} - -ACTOR Future deleteObject_impl(Reference b, std::string bucket, std::string object) { - wait(b->requestRateDelete->getAllowance(1)); - - std::string resource = std::string("/") + bucket + "/" + object; - HTTP::Headers headers; - // 200 or 204 means object successfully deleted, 404 means it already doesn't exist, so any of those are considered successful - Reference r = wait(b->doRequest("DELETE", resource, headers, nullptr, 0, {200, 204, 404})); - - // But if the object already did not exist then the 'delete' is assumed to be successful but a warning is logged. - if(r->code == 404) { - TraceEvent(SevWarnAlways, "BlobStoreEndpointDeleteObjectMissing") - .detail("Host", b->host) - .detail("Bucket", bucket) - .detail("Object", object); - } - - return Void(); -} - -Future BlobStoreEndpoint::deleteObject(std::string const &bucket, std::string const &object) { - return deleteObject_impl(Reference::addRef(this), bucket, object); -} - -ACTOR Future deleteRecursively_impl(Reference b, std::string bucket, std::string prefix, int *pNumDeleted, int64_t *pBytesDeleted) { - state PromiseStream resultStream; - // Start a recursive parallel listing which will send results to resultStream as they are received - state Future done = b->listObjectsStream(bucket, resultStream, prefix, '/', std::numeric_limits::max()); - // Wrap done in an actor which will send end_of_stream since listObjectsStream() does not (so that many calls can write to the same stream) - done = map(done, [=](Void) { - resultStream.sendError(end_of_stream()); - return Void(); - }); - - state std::list> deleteFutures; - try { - loop { - choose { - // Throw if done throws, otherwise don't stop until end_of_stream - when(wait(done)) { - done = Never(); - } - - when(BlobStoreEndpoint::ListResult list = waitNext(resultStream.getFuture())) { - for(auto &object : list.objects) { - deleteFutures.push_back(map(b->deleteObject(bucket, object.name), [=](Void) -> Void { - if(pNumDeleted != nullptr) { - ++*pNumDeleted; - } - if(pBytesDeleted != nullptr) { - *pBytesDeleted += object.size; - } - return Void(); - })); - } - } - } - - // This is just a precaution to avoid having too many outstanding delete actors waiting to run - while(deleteFutures.size() > CLIENT_KNOBS->BLOBSTORE_CONCURRENT_REQUESTS) { - wait(deleteFutures.front()); - deleteFutures.pop_front(); - } - } - } catch(Error &e) { - if(e.code() != error_code_end_of_stream) - throw; - } - - while(deleteFutures.size() > 0) { - wait(deleteFutures.front()); - deleteFutures.pop_front(); - } - - return Void(); -} - -Future BlobStoreEndpoint::deleteRecursively(std::string const &bucket, std::string prefix, int *pNumDeleted, int64_t *pBytesDeleted) { - return deleteRecursively_impl(Reference::addRef(this), bucket, prefix, pNumDeleted, pBytesDeleted); -} - -ACTOR Future createBucket_impl(Reference b, std::string bucket) { - wait(b->requestRateWrite->getAllowance(1)); - - bool exists = wait(b->bucketExists(bucket)); - if(!exists) { - std::string resource = std::string("/") + bucket; - HTTP::Headers headers; - Reference r = wait(b->doRequest("PUT", resource, headers, nullptr, 0, {200, 409})); - } - return Void(); -} - -Future BlobStoreEndpoint::createBucket(std::string const &bucket) { - return createBucket_impl(Reference::addRef(this), bucket); -} - -ACTOR Future objectSize_impl(Reference b, std::string bucket, std::string object) { - wait(b->requestRateRead->getAllowance(1)); - - std::string resource = std::string("/") + bucket + "/" + object; - HTTP::Headers headers; - - Reference r = wait(b->doRequest("HEAD", resource, headers, nullptr, 0, {200, 404})); - if(r->code == 404) - throw file_not_found(); - return r->contentLen; -} - -Future BlobStoreEndpoint::objectSize(std::string const &bucket, std::string const &object) { - return objectSize_impl(Reference::addRef(this), bucket, object); -} - -// Try to read a file, parse it as JSON, and return the resulting document. -// It will NOT throw if any errors are encountered, it will just return an empty -// JSON object and will log trace events for the errors encountered. -ACTOR Future> tryReadJSONFile(std::string path) { - state std::string content; - - // Event type to be logged in the event of an exception - state const char *errorEventType = "BlobCredentialFileError"; - - try { - state Reference f = wait(IAsyncFileSystem::filesystem()->open(path, IAsyncFile::OPEN_NO_AIO | IAsyncFile::OPEN_READONLY | IAsyncFile::OPEN_UNCACHED, 0)); - state int64_t size = wait(f->size()); - state Standalone buf = makeString(size); - int r = wait(f->read(mutateString(buf), size, 0)); - ASSERT(r == size); - content = buf.toString(); - - // Any exceptions from hehre forward are parse failures - errorEventType = "BlobCredentialFileParseFailed"; - json_spirit::mValue json; - json_spirit::read_string(content, json); - if(json.type() == json_spirit::obj_type) - return json.get_obj(); - else - TraceEvent(SevWarn, "BlobCredentialFileNotJSONObject").suppressFor(60).detail("File", path); - - } catch(Error &e) { - if(e.code() != error_code_actor_cancelled) - TraceEvent(SevWarn, errorEventType).error(e).suppressFor(60).detail("File", path); - } - - return Optional(); -} - -ACTOR Future updateSecret_impl(Reference b) { - std::vector *pFiles = (std::vector *)g_network->global(INetwork::enBlobCredentialFiles); - if(pFiles == nullptr) - return Void(); - - state std::vector>> reads; - for(auto &f : *pFiles) - reads.push_back(tryReadJSONFile(f)); - - wait(waitForAll(reads)); - - std::string key = b->key + "@" + b->host; - - int invalid = 0; - - for(auto &f : reads) { - // If value not present then the credentials file wasn't readable or valid. Continue to check other results. - if(!f.get().present()) { - ++invalid; - continue; - } - - JSONDoc doc(f.get().get()); - if(doc.has("accounts") && doc.last().type() == json_spirit::obj_type) { - JSONDoc accounts(doc.last().get_obj()); - if(accounts.has(key, false) && accounts.last().type() == json_spirit::obj_type) { - JSONDoc account(accounts.last()); - std::string secret; - // Once we find a matching account, use it. - if(account.tryGet("secret", secret)) { - b->secret = secret; - return Void(); - } - } - } - } - - // If any sources were invalid - if(invalid > 0) - throw backup_auth_unreadable(); - - // All sources were valid but didn't contain the desired info - throw backup_auth_missing(); -} - -Future BlobStoreEndpoint::updateSecret() { - return updateSecret_impl(Reference::addRef(this)); -} - -ACTOR Future connect_impl(Reference b) { - // First try to get a connection from the pool - while(!b->connectionPool.empty()) { - BlobStoreEndpoint::ReusableConnection rconn = b->connectionPool.front(); - b->connectionPool.pop(); - - // If the connection expires in the future then return it - if(rconn.expirationTime > now()) { - TraceEvent("BlobStoreEndpointReusingConnected").suppressFor(60) - .detail("RemoteEndpoint", rconn.conn->getPeerAddress()) - .detail("ExpiresIn", rconn.expirationTime - now()); - return rconn; - } - } - std::string service = b->service; - if (service.empty()) - service = b->knobs.secure_connection ? "https" : "http"; - state Reference conn = wait(INetworkConnections::net()->connect(b->host, service, b->knobs.secure_connection ? true : false)); - wait(conn->connectHandshake()); - - TraceEvent("BlobStoreEndpointNewConnection").suppressFor(60) - .detail("RemoteEndpoint", conn->getPeerAddress()) - .detail("ExpiresIn", b->knobs.max_connection_life); - - if(b->lookupSecret) - wait(b->updateSecret()); - - return BlobStoreEndpoint::ReusableConnection({conn, now() + b->knobs.max_connection_life}); -} - -Future BlobStoreEndpoint::connect() { - return connect_impl(Reference::addRef(this)); -} - -void BlobStoreEndpoint::returnConnection(ReusableConnection &rconn) { - // If it expires in the future then add it to the pool in the front - if(rconn.expirationTime > now()) - connectionPool.push(rconn); - rconn.conn = Reference(); -} - -// Do a request, get a Response. -// Request content is provided as UnsentPacketQueue *pContent which will be depleted as bytes are sent but the queue itself must live for the life of this actor -// and be destroyed by the caller -ACTOR Future> doRequest_impl(Reference bstore, std::string verb, std::string resource, HTTP::Headers headers, UnsentPacketQueue *pContent, int contentLen, std::set successCodes) { - state UnsentPacketQueue contentCopy; - - headers["Content-Length"] = format("%d", contentLen); - headers["Host"] = bstore->host; - headers["Accept"] = "application/xml"; - - // Merge extraHeaders into headers - for(auto &kv : bstore->extraHeaders) { - std::string &fieldValue = headers[kv.first]; - if(!fieldValue.empty()) { - fieldValue.append(","); - } - fieldValue.append(kv.second); - } - - // For requests with content to upload, the request timeout should be at least twice the amount of time - // it would take to upload the content given the upload bandwidth and concurrency limits. - int bandwidthThisRequest = 1 + bstore->knobs.max_send_bytes_per_second / bstore->knobs.concurrent_uploads; - int contentUploadSeconds = contentLen / bandwidthThisRequest; - state int requestTimeout = std::max(bstore->knobs.request_timeout_min, 3 * contentUploadSeconds); - - wait(bstore->concurrentRequests.take()); - state FlowLock::Releaser globalReleaser(bstore->concurrentRequests, 1); - - state int maxTries = std::min(bstore->knobs.request_tries, bstore->knobs.connect_tries); - state int thisTry = 1; - state double nextRetryDelay = 2.0; - - loop { - state Optional err; - state Optional remoteAddress; - state bool connectionEstablished = false; - state Reference r; - - try { - // Start connecting - Future frconn = bstore->connect(); - - // Make a shallow copy of the queue by calling addref() on each buffer in the chain and then prepending that chain to contentCopy - contentCopy.discardAll(); - if(pContent != nullptr) { - PacketBuffer *pFirst = pContent->getUnsent(); - PacketBuffer *pLast = nullptr; - for(PacketBuffer *p = pFirst; p != nullptr; p = p->nextPacketBuffer()) { - p->addref(); - // Also reset the sent count on each buffer - p->bytes_sent = 0; - pLast = p; - } - contentCopy.prependWriteBuffer(pFirst, pLast); - } - - // Finish connecting, do request - state BlobStoreEndpoint::ReusableConnection rconn = wait(timeoutError(frconn, bstore->knobs.connect_timeout)); - connectionEstablished = true; - - // Finish/update the request headers (which includes Date header) - // This must be done AFTER the connection is ready because if credentials are coming from disk they are refreshed - // when a new connection is established and setAuthHeaders() would need the updated secret. - bstore->setAuthHeaders(verb, resource, headers); - remoteAddress = rconn.conn->getPeerAddress(); - wait(bstore->requestRate->getAllowance(1)); - Reference _r = wait(timeoutError(HTTP::doRequest(rconn.conn, verb, resource, headers, &contentCopy, contentLen, bstore->sendRate, &bstore->s_stats.bytes_sent, bstore->recvRate), requestTimeout)); - r = _r; - - // Since the response was parsed successfully (which is why we are here) reuse the connection unless we received the "Connection: close" header. - if(r->headers["Connection"] != "close") - bstore->returnConnection(rconn); - rconn.conn.clear(); - - } catch(Error &e) { - if(e.code() == error_code_actor_cancelled) - throw; - err = e; - } - - // If err is not present then r is valid. - // If r->code is in successCodes then record the successful request and return r. - if(!err.present() && successCodes.count(r->code) != 0) { - bstore->s_stats.requests_successful++; - return r; - } - - // Otherwise, this request is considered failed. Update failure count. - bstore->s_stats.requests_failed++; - - // All errors in err are potentially retryable as well as certain HTTP response codes... - bool retryable = err.present() || r->code == 500 || r->code == 502 || r->code == 503 || r->code == 429; - - // But only if our previous attempt was not the last allowable try. - retryable = retryable && (thisTry < maxTries); - - TraceEvent event(SevWarn, retryable ? "BlobStoreEndpointRequestFailedRetryable" : "BlobStoreEndpointRequestFailed"); - - // Attach err to trace event if present, otherwise extract some stuff from the response - if(err.present()) { - event.error(err.get()); - } - event.suppressFor(60); - if(!err.present()) { - event.detail("ResponseCode", r->code); - } - - event.detail("ConnectionEstablished", connectionEstablished); - - if(remoteAddress.present()) - event.detail("RemoteEndpoint", remoteAddress.get()); - else - event.detail("RemoteHost", bstore->host); - - event.detail("Verb", verb) - .detail("Resource", resource) - .detail("ThisTry", thisTry); - - // If r is not valid or not code 429 then increment the try count. 429's will not count against the attempt limit. - if(!r || r->code != 429) - ++thisTry; - - // We will wait delay seconds before the next retry, start with nextRetryDelay. - double delay = nextRetryDelay; - // Double but limit the *next* nextRetryDelay. - nextRetryDelay = std::min(nextRetryDelay * 2, 60.0); - - if(retryable) { - // If r is valid then obey the Retry-After response header if present. - if(r) { - auto iRetryAfter = r->headers.find("Retry-After"); - if(iRetryAfter != r->headers.end()) { - event.detail("RetryAfterHeader", iRetryAfter->second); - char *pEnd; - double retryAfter = strtod(iRetryAfter->second.c_str(), &pEnd); - if(*pEnd) // If there were other characters then don't trust the parsed value, use a probably safe value of 5 minutes. - retryAfter = 300; - // Update delay - delay = std::max(delay, retryAfter); - } - } - - // Log the delay then wait. - event.detail("RetryDelay", delay); - wait(::delay(delay)); - } - else { - // We can't retry, so throw something. - - // This error code means the authentication header was not accepted, likely the account or key is wrong. - if(r && r->code == 406) - throw http_not_accepted(); - - if(r && r->code == 401) - throw http_auth_failed(); - - // Recognize and throw specific errors - if(err.present()) { - int code = err.get().code(); - - // If we get a timed_out error during the the connect() phase, we'll call that connection_failed despite the fact that - // there was technically never a 'connection' to begin with. It differentiates between an active connection - // timing out vs a connection timing out, though not between an active connection failing vs connection attempt failing. - // TODO: Add more error types? - if(code == error_code_timed_out && !connectionEstablished) - throw connection_failed(); - - if(code == error_code_timed_out || code == error_code_connection_failed || code == error_code_lookup_failed) - throw err.get(); - } - - throw http_request_failed(); - } - } -} - -Future> BlobStoreEndpoint::doRequest(std::string const &verb, std::string const &resource, const HTTP::Headers &headers, UnsentPacketQueue *pContent, int contentLen, std::set successCodes) { - return doRequest_impl(Reference::addRef(this), verb, resource, headers, pContent, contentLen, successCodes); -} - -ACTOR Future listObjectsStream_impl(Reference bstore, std::string bucket, PromiseStream results, Optional prefix, Optional delimiter, int maxDepth, std::function recurseFilter) { - // Request 1000 keys at a time, the maximum allowed - state std::string resource = "/"; - resource.append(bucket); - resource.append("/?max-keys=1000"); - if(prefix.present()) - resource.append("&prefix=").append(HTTP::urlEncode(prefix.get())); - if(delimiter.present()) - resource.append("&delimiter=").append(HTTP::urlEncode(std::string(1, delimiter.get()))); - resource.append("&marker="); - state std::string lastFile; - state bool more = true; - - state std::vector> subLists; - - while(more) { - wait(bstore->concurrentLists.take()); - state FlowLock::Releaser listReleaser(bstore->concurrentLists, 1); - - HTTP::Headers headers; - state std::string fullResource = resource + HTTP::urlEncode(lastFile); - lastFile.clear(); - Reference r = wait(bstore->doRequest("GET", fullResource, headers, nullptr, 0, {200})); - listReleaser.release(); - - try { - BlobStoreEndpoint::ListResult listResult; - xml_document<> doc; - - // Copy content because rapidxml will modify it during parse - std::string content = r->content; - doc.parse<0>((char *)content.c_str()); - - // There should be exactly one node - xml_node<> *result = doc.first_node(); - if(result == nullptr || strcmp(result->name(), "ListBucketResult") != 0) { - throw http_bad_response(); - } - - xml_node<> *n = result->first_node(); - while(n != nullptr) { - const char *name = n->name(); - if(strcmp(name, "IsTruncated") == 0) { - const char *val = n->value(); - if(strcmp(val, "true") == 0) { - more = true; - } - else if(strcmp(val, "false") == 0) { - more = false; - } - else { - throw http_bad_response(); - } - } - else if(strcmp(name, "Contents") == 0) { - BlobStoreEndpoint::ObjectInfo object; - - xml_node<> *key = n->first_node("Key"); - if(key == nullptr) { - throw http_bad_response(); - } - object.name = key->value(); - - xml_node<> *size = n->first_node("Size"); - if(size == nullptr) { - throw http_bad_response(); - } - object.size = strtoull(size->value(), nullptr, 10); - - listResult.objects.push_back(object); - } - else if(strcmp(name, "CommonPrefixes") == 0) { - xml_node<> *prefixNode = n->first_node("Prefix"); - while(prefixNode != nullptr) { - const char *prefix = prefixNode->value(); - // If recursing, queue a sub-request, otherwise add the common prefix to the result. - if(maxDepth > 0) { - // If there is no recurse filter or the filter returns true then start listing the subfolder - if(!recurseFilter || recurseFilter(prefix)) { - subLists.push_back(bstore->listObjectsStream(bucket, results, prefix, delimiter, maxDepth - 1, recurseFilter)); - } - // Since prefix will not be in the final listResult below we have to set lastFile here in case it's greater than the last object - lastFile = prefix; - } - else { - listResult.commonPrefixes.push_back(prefix); - } - - prefixNode = prefixNode->next_sibling("Prefix"); - } - } - - n = n->next_sibling(); - } - - results.send(listResult); - - if(more) { - // lastFile will be the last commonprefix for which a sublist was started, if any. - // If there are any objects and the last one is greater than lastFile then make it the new lastFile. - if(!listResult.objects.empty() && lastFile < listResult.objects.back().name) { - lastFile = listResult.objects.back().name; - } - // If there are any common prefixes and the last one is greater than lastFile then make it the new lastFile. - if(!listResult.commonPrefixes.empty() && lastFile < listResult.commonPrefixes.back()) { - lastFile = listResult.commonPrefixes.back(); - } - - // If lastFile is empty at this point, something has gone wrong. - if(lastFile.empty()) { - TraceEvent(SevWarn, "BlobStoreEndpointListNoNextMarker").suppressFor(60).detail("Resource", fullResource); - throw http_bad_response(); - } - } - } catch(Error &e) { - if(e.code() != error_code_actor_cancelled) - TraceEvent(SevWarn, "BlobStoreEndpointListResultParseError").error(e).suppressFor(60).detail("Resource", fullResource); - throw http_bad_response(); - } - } - - wait(waitForAll(subLists)); - - return Void(); -} - -Future BlobStoreEndpoint::listObjectsStream(std::string const &bucket, PromiseStream results, Optional prefix, Optional delimiter, int maxDepth, std::function recurseFilter) { - return listObjectsStream_impl(Reference::addRef(this), bucket, results, prefix, delimiter, maxDepth, recurseFilter); -} - -ACTOR Future listObjects_impl(Reference bstore, std::string bucket, Optional prefix, Optional delimiter, int maxDepth, std::function recurseFilter) { - state BlobStoreEndpoint::ListResult results; - state PromiseStream resultStream; - state Future done = bstore->listObjectsStream(bucket, resultStream, prefix, delimiter, maxDepth, recurseFilter); - // Wrap done in an actor which sends end_of_stream because list does not so that many lists can write to the same stream - done = map(done, [=](Void) { - resultStream.sendError(end_of_stream()); - return Void(); - }); - - try { - loop { - choose { - // Throw if done throws, otherwise don't stop until end_of_stream - when(wait(done)) { - done = Never(); - } - - when(BlobStoreEndpoint::ListResult info = waitNext(resultStream.getFuture())) { - results.commonPrefixes.insert(results.commonPrefixes.end(), info.commonPrefixes.begin(), info.commonPrefixes.end()); - results.objects.insert(results.objects.end(), info.objects.begin(), info.objects.end()); - } - } - } - } catch(Error &e) { - if(e.code() != error_code_end_of_stream) - throw; - } - - return results; -} - -Future BlobStoreEndpoint::listObjects(std::string const &bucket, Optional prefix, Optional delimiter, int maxDepth, std::function recurseFilter) { - return listObjects_impl(Reference::addRef(this), bucket, prefix, delimiter, maxDepth, recurseFilter); -} - -ACTOR Future> listBuckets_impl(Reference bstore) { - state std::string resource = "/?marker="; - state std::string lastName; - state bool more = true; - state std::vector buckets; - - while(more) { - wait(bstore->concurrentLists.take()); - state FlowLock::Releaser listReleaser(bstore->concurrentLists, 1); - - HTTP::Headers headers; - state std::string fullResource = resource + HTTP::urlEncode(lastName); - Reference r = wait(bstore->doRequest("GET", fullResource, headers, nullptr, 0, {200})); - listReleaser.release(); - - try { - xml_document<> doc; - - // Copy content because rapidxml will modify it during parse - std::string content = r->content; - doc.parse<0>((char *)content.c_str()); - - // There should be exactly one node - xml_node<> *result = doc.first_node(); - if(result == nullptr || strcmp(result->name(), "ListAllMyBucketsResult") != 0) { - throw http_bad_response(); - } - - more = false; - xml_node<> *truncated = result->first_node("IsTruncated"); - if(truncated != nullptr && strcmp(truncated->value(), "true") == 0) { - more = true; - } - - xml_node<> *bucketsNode = result->first_node("Buckets"); - if(bucketsNode != nullptr) { - xml_node<> *bucketNode = bucketsNode->first_node("Bucket"); - while(bucketNode != nullptr) { - xml_node<> *nameNode = bucketNode->first_node("Name"); - if(nameNode == nullptr) { - throw http_bad_response(); - } - const char *name = nameNode->value(); - buckets.push_back(name); - - bucketNode = bucketNode->next_sibling("Bucket"); - } - } - - if(more) { - lastName = buckets.back(); - } - - } catch(Error &e) { - if(e.code() != error_code_actor_cancelled) - TraceEvent(SevWarn, "BlobStoreEndpointListBucketResultParseError").error(e).suppressFor(60).detail("Resource", fullResource); - throw http_bad_response(); - } - } - - return buckets; -} - -Future> BlobStoreEndpoint::listBuckets() { - return listBuckets_impl(Reference::addRef(this)); -} - -std::string BlobStoreEndpoint::hmac_sha1(std::string const &msg) { - std::string key = secret; - - // Hash key to shorten it if it is longer than SHA1 block size - if(key.size() > 64) { - key = SHA1::from_string(key); - } - - // Pad key up to SHA1 block size if needed - key.append(64 - key.size(), '\0'); - - std::string kipad = key; - for(int i = 0; i < 64; ++i) - kipad[i] ^= '\x36'; - - std::string kopad = key; - for(int i = 0; i < 64; ++i) - kopad[i] ^= '\x5c'; - - kipad.append(msg); - std::string hkipad = SHA1::from_string(kipad); - kopad.append(hkipad); - return SHA1::from_string(kopad); -} - -void BlobStoreEndpoint::setAuthHeaders(std::string const &verb, std::string const &resource, HTTP::Headers& headers) { - std::string &date = headers["Date"]; - - char dateBuf[20]; - time_t ts; - time(&ts); - // ISO 8601 format YYYYMMDD'T'HHMMSS'Z' - strftime(dateBuf, 20, "%Y%m%dT%H%M%SZ", gmtime(&ts)); - date = dateBuf; - - std::string msg; - msg.append(verb); - msg.append("\n"); - auto contentMD5 = headers.find("Content-MD5"); - if(contentMD5 != headers.end()) - msg.append(contentMD5->second); - msg.append("\n"); - auto contentType = headers.find("Content-Type"); - if(contentType != headers.end()) - msg.append(contentType->second); - msg.append("\n"); - msg.append(date); - msg.append("\n"); - for(auto h : headers) { - StringRef name = h.first; - if(name.startsWith(LiteralStringRef("x-amz")) || - name.startsWith(LiteralStringRef("x-icloud"))) { - msg.append(h.first); - msg.append(":"); - msg.append(h.second); - msg.append("\n"); - } - } - - msg.append(resource); - if(verb == "GET") { - size_t q = resource.find_last_of('?'); - if(q != resource.npos) - msg.resize(msg.size() - (resource.size() - q)); - } - - std::string sig = base64::encoder::from_string(hmac_sha1(msg)); - // base64 encoded blocks end in \n so remove it. - sig.resize(sig.size() - 1); - std::string auth = "AWS "; - auth.append(key); - auth.append(":"); - auth.append(sig); - headers["Authorization"] = auth; -} - -ACTOR Future readEntireFile_impl(Reference bstore, std::string bucket, std::string object) { - wait(bstore->requestRateRead->getAllowance(1)); - - std::string resource = std::string("/") + bucket + "/" + object; - HTTP::Headers headers; - Reference r = wait(bstore->doRequest("GET", resource, headers, nullptr, 0, {200, 404})); - if(r->code == 404) - throw file_not_found(); - return r->content; -} - -Future BlobStoreEndpoint::readEntireFile(std::string const &bucket, std::string const &object) { - return readEntireFile_impl(Reference::addRef(this), bucket, object); -} - -ACTOR Future writeEntireFileFromBuffer_impl(Reference bstore, std::string bucket, std::string object, UnsentPacketQueue *pContent, int contentLen, std::string contentMD5) { - if(contentLen > bstore->knobs.multipart_max_part_size) - throw file_too_large(); - - wait(bstore->requestRateWrite->getAllowance(1)); - wait(bstore->concurrentUploads.take()); - state FlowLock::Releaser uploadReleaser(bstore->concurrentUploads, 1); - - std::string resource = std::string("/") + bucket + "/" + object; - HTTP::Headers headers; - // Send MD5 sum for content so blobstore can verify it - headers["Content-MD5"] = contentMD5; - state Reference r = wait(bstore->doRequest("PUT", resource, headers, pContent, contentLen, {200})); - - // For uploads, Blobstore returns an MD5 sum of uploaded content so check it. - if (!r->verifyMD5(false, contentMD5)) - throw checksum_failed(); - - return Void(); -} - -ACTOR Future writeEntireFile_impl(Reference bstore, std::string bucket, std::string object, std::string content) { - state UnsentPacketQueue packets; - PacketWriter pw(packets.getWriteBuffer(content.size()), nullptr, Unversioned()); - pw.serializeBytes(content); - if(content.size() > bstore->knobs.multipart_max_part_size) - throw file_too_large(); - - // Yield because we may have just had to copy several MB's into packet buffer chain and next we have to calculate an MD5 sum of it. - // TODO: If this actor is used to send large files then combine the summing and packetization into a loop with a yield() every 20k or so. - wait(yield()); - - MD5_CTX sum; - ::MD5_Init(&sum); - ::MD5_Update(&sum, content.data(), content.size()); - std::string sumBytes; - sumBytes.resize(16); - ::MD5_Final((unsigned char *)sumBytes.data(), &sum); - std::string contentMD5 = base64::encoder::from_string(sumBytes); - contentMD5.resize(contentMD5.size() - 1); - - wait(writeEntireFileFromBuffer_impl(bstore, bucket, object, &packets, content.size(), contentMD5)); - return Void(); -} - -Future BlobStoreEndpoint::writeEntireFile(std::string const &bucket, std::string const &object, std::string const &content) { - return writeEntireFile_impl(Reference::addRef(this), bucket, object, content); -} - -Future BlobStoreEndpoint::writeEntireFileFromBuffer(std::string const &bucket, std::string const &object, UnsentPacketQueue *pContent, int contentLen, std::string const &contentMD5) { - return writeEntireFileFromBuffer_impl(Reference::addRef(this), bucket, object, pContent, contentLen, contentMD5); -} - -ACTOR Future readObject_impl(Reference bstore, std::string bucket, std::string object, void *data, int length, int64_t offset) { - if(length <= 0) - return 0; - wait(bstore->requestRateRead->getAllowance(1)); - - std::string resource = std::string("/") + bucket + "/" + object; - HTTP::Headers headers; - headers["Range"] = format("bytes=%lld-%lld", offset, offset + length - 1); - Reference r = wait(bstore->doRequest("GET", resource, headers, nullptr, 0, {200, 206, 404})); - if(r->code == 404) - throw file_not_found(); - if(r->contentLen != r->content.size()) // Double check that this wasn't a header-only response, probably unnecessary - throw io_error(); - // Copy the output bytes, server could have sent more or less bytes than requested so copy at most length bytes - memcpy(data, r->content.data(), std::min(r->contentLen, length)); - return r->contentLen; -} - -Future BlobStoreEndpoint::readObject(std::string const &bucket, std::string const &object, void *data, int length, int64_t offset) { - return readObject_impl(Reference::addRef(this), bucket, object, data, length, offset); -} - -ACTOR static Future beginMultiPartUpload_impl(Reference bstore, std::string bucket, std::string object) { - wait(bstore->requestRateWrite->getAllowance(1)); - - std::string resource = std::string("/") + bucket + "/" + object + "?uploads"; - HTTP::Headers headers; - Reference r = wait(bstore->doRequest("POST", resource, headers, nullptr, 0, {200})); - - try { - xml_document<> doc; - // Copy content because rapidxml will modify it during parse - std::string content = r->content; - - doc.parse<0>((char *)content.c_str()); - - // There should be exactly one node - xml_node<> *result = doc.first_node(); - if(result != nullptr && strcmp(result->name(), "InitiateMultipartUploadResult") == 0) { - xml_node<> *id = result->first_node("UploadId"); - if(id != nullptr) { - return id->value(); - } - } - } catch(...) { - } - throw http_bad_response(); -} - -Future BlobStoreEndpoint::beginMultiPartUpload(std::string const &bucket, std::string const &object) { - return beginMultiPartUpload_impl(Reference::addRef(this), bucket, object); -} - -ACTOR Future uploadPart_impl(Reference bstore, std::string bucket, std::string object, std::string uploadID, unsigned int partNumber, UnsentPacketQueue *pContent, int contentLen, std::string contentMD5) { - wait(bstore->requestRateWrite->getAllowance(1)); - wait(bstore->concurrentUploads.take()); - state FlowLock::Releaser uploadReleaser(bstore->concurrentUploads, 1); - - std::string resource = format("/%s/%s?partNumber=%d&uploadId=%s", bucket.c_str(), object.c_str(), partNumber, uploadID.c_str()); - HTTP::Headers headers; - // Send MD5 sum for content so blobstore can verify it - headers["Content-MD5"] = contentMD5; - state Reference r = wait(bstore->doRequest("PUT", resource, headers, pContent, contentLen, {200})); - // TODO: In the event that the client times out just before the request completes (so the client is unaware) then the next retry - // will see error 400. That could be detected and handled gracefully by retrieving the etag for the successful request. - - // For uploads, Blobstore returns an MD5 sum of uploaded content so check it. - if (!r->verifyMD5(false, contentMD5)) - throw checksum_failed(); - - // No etag -> bad response. - std::string etag = r->headers["ETag"]; - if(etag.empty()) - throw http_bad_response(); - - return etag; -} - -Future BlobStoreEndpoint::uploadPart(std::string const &bucket, std::string const &object, std::string const &uploadID, unsigned int partNumber, UnsentPacketQueue *pContent, int contentLen, std::string const &contentMD5) { - return uploadPart_impl(Reference::addRef(this), bucket, object, uploadID, partNumber, pContent, contentLen, contentMD5); -} - -ACTOR Future finishMultiPartUpload_impl(Reference bstore, std::string bucket, std::string object, std::string uploadID, BlobStoreEndpoint::MultiPartSetT parts) { - state UnsentPacketQueue part_list; // NonCopyable state var so must be declared at top of actor - wait(bstore->requestRateWrite->getAllowance(1)); - - std::string manifest = ""; - for(auto &p : parts) - manifest += format("%d%s\n", p.first, p.second.c_str()); - manifest += ""; - - std::string resource = format("/%s/%s?uploadId=%s", bucket.c_str(), object.c_str(), uploadID.c_str()); - HTTP::Headers headers; - PacketWriter pw(part_list.getWriteBuffer(manifest.size()), nullptr, Unversioned()); - pw.serializeBytes(manifest); - Reference r = wait(bstore->doRequest("POST", resource, headers, &part_list, manifest.size(), {200})); - // TODO: In the event that the client times out just before the request completes (so the client is unaware) then the next retry - // will see error 400. That could be detected and handled gracefully by HEAD'ing the object before upload to get its (possibly - // nonexistent) eTag, then if an error 400 is seen then retrieve the eTag again and if it has changed then consider the finish complete. - return Void(); -} - -Future BlobStoreEndpoint::finishMultiPartUpload(std::string const &bucket, std::string const &object, std::string const &uploadID, MultiPartSetT const &parts) { - return finishMultiPartUpload_impl(Reference::addRef(this), bucket, object, uploadID, parts); -} From 245cf28ace876a76f02f7bc20910e9e9bb97594e Mon Sep 17 00:00:00 2001 From: Alvin Moore Date: Thu, 3 Dec 2020 02:12:55 -0500 Subject: [PATCH 033/261] Updated docker repositories to Vault repos --- build/Dockerfile | 34 ++++++++++++++++++++++------------ build/Dockerfile.devel | 6 +++--- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index b4cf28ebc0..b230eb4de4 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,17 +1,27 @@ FROM centos:6 +# Clean yum cache, disable default Base repo and enable Vault +RUN yum clean all &&\ + sed -i -e 's/gpgcheck=1/enabled=0/g' /etc/yum.repos.d/CentOS-Base.repo &&\ + sed -i -e 's/enabled=0/enabled=1/g' /etc/yum.repos.d/CentOS-Vault.repo &&\ + sed -i -n '/6.1/q;p' /etc/yum.repos.d/CentOS-Vault.repo &&\ + sed -i -e "s/6\.0/$(cut -d\ -f3 /etc/redhat-release)/g" /etc/yum.repos.d/CentOS-Vault.repo &&\ + yum install -y yum-utils &&\ + yum-config-manager --enable rhel-server-rhscl-7-rpms &&\ + yum -y install centos-release-scl-rh epel-release \ + http://opensource.wandisco.com/centos/6/git/x86_64/wandisco-git-release-6-1.noarch.rpm &&\ + sed -i -e 's/#baseurl=/baseurl=/g' -e 's/mirror.centos.org/vault.centos.org/g' \ + -e 's/mirrorlist=/#mirrorlist=/g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo &&\ + yum clean all + # Install dependencies for developer tools, bindings,\ # documentation, actorcompiler, and packaging tools\ -RUN yum install -y yum-utils &&\ - yum-config-manager --enable rhel-server-rhscl-7-rpms &&\ - yum -y install centos-release-scl epel-release \ - http://opensource.wandisco.com/centos/6/git/x86_64/wandisco-git-release-6-1.noarch.rpm &&\ - yum -y install devtoolset-8-8.1-1.el6 java-1.8.0-openjdk-devel \ - devtoolset-8-gcc-8.3.1 devtoolset-8-gcc-c++-8.3.1 \ - devtoolset-8-libubsan-devel devtoolset-8-libasan-devel devtoolset-8-valgrind-devel \ - rh-python36-python-devel rh-ruby24 golang python27 rpm-build \ - mono-core debbuild python-pip dos2unix valgrind-devel ccache \ - distcc wget git lz4 lz4-devel lz4-static &&\ +RUN yum -y install devtoolset-8-8.1-1.el6 java-1.8.0-openjdk-devel \ + devtoolset-8-gcc-8.3.1 devtoolset-8-gcc-c++-8.3.1 \ + devtoolset-8-libubsan-devel devtoolset-8-libasan-devel devtoolset-8-valgrind-devel \ + rh-python36-python-devel rh-ruby24 golang python27 rpm-build \ + mono-core debbuild python-pip dos2unix valgrind-devel ccache \ + distcc wget git lz4 lz4-devel lz4-static &&\ pip install boto3==1.1.1 USER root @@ -61,8 +71,8 @@ RUN cd /opt/ && curl -L https://github.com/facebook/rocksdb/archive/v6.10.1.tar. ARG TIMEZONEINFO=America/Los_Angeles RUN rm -f /etc/localtime && ln -s /usr/share/zoneinfo/${TIMEZONEINFO} /etc/localtime -LABEL version=0.1.19 -ENV DOCKER_IMAGEVER=0.1.19 +LABEL version=0.1.20 +ENV DOCKER_IMAGEVER=0.1.20 ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0 ENV CC=/opt/rh/devtoolset-8/root/usr/bin/gcc ENV CXX=/opt/rh/devtoolset-8/root/usr/bin/g++ diff --git a/build/Dockerfile.devel b/build/Dockerfile.devel index 33c6d03e36..9de4c1245d 100644 --- a/build/Dockerfile.devel +++ b/build/Dockerfile.devel @@ -1,4 +1,4 @@ -FROM foundationdb/foundationdb-build:0.1.19 +FROM foundationdb/foundationdb-build:0.1.20 USER root @@ -50,8 +50,8 @@ RUN cp -iv /usr/local/bin/clang++ /usr/local/bin/clang++.deref &&\ ldconfig &&\ rm -rf /mnt/artifacts -LABEL version=0.11.10 -ENV DOCKER_IMAGEVER=0.11.10 +LABEL version=0.11.11 +ENV DOCKER_IMAGEVER=0.11.11 ENV CLANGCC=/usr/local/bin/clang.de8a65ef ENV CLANGCXX=/usr/local/bin/clang++.de8a65ef From ae50dc9dae7a55723b225c8b3aa24b13c461145c Mon Sep 17 00:00:00 2001 From: Alvin Moore Date: Thu, 3 Dec 2020 02:16:24 -0500 Subject: [PATCH 034/261] Updated docker compose version --- build/docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/docker-compose.yaml b/build/docker-compose.yaml index 98f0ac691e..048d468dab 100644 --- a/build/docker-compose.yaml +++ b/build/docker-compose.yaml @@ -2,7 +2,7 @@ version: "3" services: common: &common - image: foundationdb/foundationdb-build:0.1.19 + image: foundationdb/foundationdb-build:0.1.20 build-setup: &build-setup <<: *common From beccd6e3c2595cf5790ea24513cb28bddb3a32e5 Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Thu, 3 Dec 2020 11:02:41 -0800 Subject: [PATCH 035/261] Do not reject blind writes, i.e., empty read conflict range --- fdbserver/MasterProxyServer.actor.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index fcf9393ab2..0615ca26c4 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -567,13 +567,14 @@ ACTOR Future releaseResolvingAfter(ProxyCommitData* self, Future rel return Void(); } -// Try to identify recovery transaction and backup's apply mutations. +// Try to identify recovery transaction and backup's apply mutations (blind writes). // Both cannot be rejected and are approximated by looking at first mutation // starting with 0xff. bool canReject(const std::vector& trs) { for (const auto& tr : trs) { if (tr.transaction.mutations.empty()) continue; - if (tr.transaction.mutations[0].param1.startsWith(LiteralStringRef("\xff"))) { + if (tr.transaction.mutations[0].param1.startsWith(LiteralStringRef("\xff")) || + tr.transaction.read_conflict_ranges.empty()) { return false; } } From 7e70537f2c427090542800dfbf505e72c30b3ce5 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Thu, 3 Dec 2020 11:52:59 -0800 Subject: [PATCH 036/261] Add rapidjson dependency to c_unit_tests, used for parsing status json --- bindings/c/CMakeLists.txt | 8 ++++---- bindings/c/test/unit/third_party/CMakeLists.txt | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/bindings/c/CMakeLists.txt b/bindings/c/CMakeLists.txt index f4e5a762ac..fdc20914bb 100644 --- a/bindings/c/CMakeLists.txt +++ b/bindings/c/CMakeLists.txt @@ -100,10 +100,10 @@ if(NOT WIN32) target_link_libraries(fdb_c_ryw_benchmark PRIVATE fdb_c) target_link_libraries(fdb_c_txn_size_test PRIVATE fdb_c) - add_dependencies(fdb_c_setup_tests doctest) - add_dependencies(fdb_c_unit_tests doctest) - target_include_directories(fdb_c_setup_tests PUBLIC ${DOCTEST_INCLUDE_DIR}) - target_include_directories(fdb_c_unit_tests PUBLIC ${DOCTEST_INCLUDE_DIR}) + add_dependencies(fdb_c_setup_tests doctest rapidjson) + add_dependencies(fdb_c_unit_tests doctest rapidjson) + target_include_directories(fdb_c_setup_tests PUBLIC ${DOCTEST_INCLUDE_DIR} ${RAPIDJSON_INCLUDE_DIR}) + target_include_directories(fdb_c_unit_tests PUBLIC ${DOCTEST_INCLUDE_DIR} ${RAPIDJSON_INCLUDE_DIR}) target_link_libraries(fdb_c_setup_tests PRIVATE fdb_c Threads::Threads) target_link_libraries(fdb_c_unit_tests PRIVATE fdb_c Threads::Threads) diff --git a/bindings/c/test/unit/third_party/CMakeLists.txt b/bindings/c/test/unit/third_party/CMakeLists.txt index 6229abb0c9..aea3493a09 100644 --- a/bindings/c/test/unit/third_party/CMakeLists.txt +++ b/bindings/c/test/unit/third_party/CMakeLists.txt @@ -16,3 +16,19 @@ ExternalProject_Add( ExternalProject_Get_Property(doctest source_dir) set(DOCTEST_INCLUDE_DIR ${source_dir}/doctest CACHE INTERNAL "Path to include folder for doctest") + +# Download rapidjson repo. +ExternalProject_Add( + rapidjson + PREFIX ${CMAKE_BINARY_DIR}/rapidjson + GIT_REPOSITORY https://github.com/Tencent/rapidjson.git + GIT_TAG f54b0e47a08782a6131cc3d60f94d038fa6e0a51 # v1.1.0 + TIMEOUT 10 + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + LOG_DOWNLOAD ON +) + +ExternalProject_Get_Property(rapidjson source_dir) +set(RAPIDJSON_INCLUDE_DIR ${source_dir}/include CACHE INTERNAL "Path to include folder for rapidjson") From 88e66545bb0ff1619be71c80df13de2d588a3402 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Thu, 3 Dec 2020 12:01:32 -0800 Subject: [PATCH 037/261] Change the api to return bool instead of int --- fdbclient/DatabaseContext.h | 4 ++-- fdbclient/IClientApi.h | 2 +- fdbclient/MultiVersionTransaction.actor.cpp | 11 ++++++----- fdbclient/MultiVersionTransaction.h | 5 +++-- fdbclient/NativeAPI.actor.cpp | 4 ++-- fdbclient/ThreadSafeTransaction.cpp | 4 ++-- fdbclient/ThreadSafeTransaction.h | 2 +- 7 files changed, 17 insertions(+), 15 deletions(-) diff --git a/fdbclient/DatabaseContext.h b/fdbclient/DatabaseContext.h index 73d4c951c8..67f732e845 100644 --- a/fdbclient/DatabaseContext.h +++ b/fdbclient/DatabaseContext.h @@ -207,8 +207,8 @@ public: bool switchable = false; // Management API - // Attempt to kill or suspend a process - Future rebootWorker(StringRef address, bool check = false, int duration = 0); + // Attempt to kill or suspend a process, return true if successful + Future rebootWorker(StringRef address, bool check = false, int duration = 0); //private: explicit DatabaseContext( Reference>> connectionFile, Reference> clientDBInfo, diff --git a/fdbclient/IClientApi.h b/fdbclient/IClientApi.h index e62ebf9cbb..08b8f4efa7 100644 --- a/fdbclient/IClientApi.h +++ b/fdbclient/IClientApi.h @@ -85,7 +85,7 @@ public: virtual void addref() = 0; virtual void delref() = 0; - virtual ThreadFuture rebootWorker(const StringRef& address, bool check, int duration) = 0; + virtual ThreadFuture rebootWorker(const StringRef& address, bool check, int duration) = 0; }; class IClientApi { diff --git a/fdbclient/MultiVersionTransaction.actor.cpp b/fdbclient/MultiVersionTransaction.actor.cpp index 79d59f7231..e3dc421674 100644 --- a/fdbclient/MultiVersionTransaction.actor.cpp +++ b/fdbclient/MultiVersionTransaction.actor.cpp @@ -282,11 +282,11 @@ void DLDatabase::setOption(FDBDatabaseOptions::Option option, OptionaldatabaseSetOption(db, option, value.present() ? value.get().begin() : nullptr, value.present() ? value.get().size() : 0)); } -ThreadFuture DLDatabase::rebootWorker(const StringRef& address, bool check, int duration) { +ThreadFuture DLDatabase::rebootWorker(const StringRef& address, bool check, int duration) { FdbCApi::FDBFuture *f = api->databaseRebootWorker(db, address.begin(), address.size(), check, duration); - return toThreadFuture(api, f, [](FdbCApi::FDBFuture *f, FdbCApi *api) { - int64_t res; - FdbCApi::fdb_error_t error = api->futureGetInt64(f, &res); + return toThreadFuture(api, f, [](FdbCApi::FDBFuture *f, FdbCApi *api) { + bool res; + FdbCApi::fdb_error_t error = api->futureGetBool(f, &res); ASSERT(!error); return res; }); @@ -353,6 +353,7 @@ void DLApi::init() { loadClientFunction(&api->transactionGetRangeSplitPoints, lib, fdbCPath, "fdb_transaction_get_range_split_points", headerVersion >= 700); + loadClientFunction(&api->futureGetBool, lib, fdbCPath, "fdb_future_get_bool", headerVersion >= 700); loadClientFunction(&api->futureGetInt64, lib, fdbCPath, headerVersion >= 620 ? "fdb_future_get_int64" : "fdb_future_get_version"); loadClientFunction(&api->futureGetError, lib, fdbCPath, "fdb_future_get_error"); loadClientFunction(&api->futureGetKey, lib, fdbCPath, "fdb_future_get_key"); @@ -783,7 +784,7 @@ void MultiVersionDatabase::setOption(FDBDatabaseOptions::Option option, Optional } } -ThreadFuture MultiVersionDatabase::rebootWorker(const StringRef& address, bool check, int duration) { +ThreadFuture MultiVersionDatabase::rebootWorker(const StringRef& address, bool check, int duration) { if (dbState->db) { return dbState->db->rebootWorker(address, check, duration); } diff --git a/fdbclient/MultiVersionTransaction.h b/fdbclient/MultiVersionTransaction.h index b508eceaf2..6510d7c80b 100644 --- a/fdbclient/MultiVersionTransaction.h +++ b/fdbclient/MultiVersionTransaction.h @@ -108,6 +108,7 @@ struct FdbCApi : public ThreadSafeReferenceCounted { //Future fdb_error_t (*futureGetDatabase)(FDBFuture *f, FDBDatabase **outDb); fdb_error_t (*futureGetInt64)(FDBFuture *f, int64_t *outValue); + fdb_error_t (*futureGetBool) (FDBFuture *f, bool *outValue); fdb_error_t (*futureGetError)(FDBFuture *f); fdb_error_t (*futureGetKey)(FDBFuture *f, uint8_t const **outKey, int *outKeyLength); fdb_error_t (*futureGetValue)(FDBFuture *f, fdb_bool_t *outPresent, uint8_t const **outValue, int *outValueLength); @@ -193,7 +194,7 @@ public: void addref() override { ThreadSafeReferenceCounted::addref(); } void delref() override { ThreadSafeReferenceCounted::delref(); } - ThreadFuture rebootWorker(const StringRef& address, bool check, int duration) override; + ThreadFuture rebootWorker(const StringRef& address, bool check, int duration) override; private: const Reference api; @@ -325,7 +326,7 @@ public: static Reference debugCreateFromExistingDatabase(Reference db); - ThreadFuture rebootWorker(const StringRef& address, bool check, int duration); + ThreadFuture rebootWorker(const StringRef& address, bool check, int duration); private: struct DatabaseState; diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index 66651fc70c..cc79d10a0b 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -4732,7 +4732,7 @@ ACTOR Future addInterfaceActor( std::map rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool check, int duration) { +ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool check, int duration) { // fetch the addresses of all workers state std::map> address_interface; // TODO : find out when this is invalid @@ -4753,6 +4753,6 @@ ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool return 1; } -Future DatabaseContext::rebootWorker(StringRef addr, bool check, int duration) { +Future DatabaseContext::rebootWorker(StringRef addr, bool check, int duration) { return rebootWorkerActor(this, addr, check, duration); } diff --git a/fdbclient/ThreadSafeTransaction.cpp b/fdbclient/ThreadSafeTransaction.cpp index d59fa3bfb3..08a00642d8 100644 --- a/fdbclient/ThreadSafeTransaction.cpp +++ b/fdbclient/ThreadSafeTransaction.cpp @@ -67,9 +67,9 @@ void ThreadSafeDatabase::setOption( FDBDatabaseOptions::Option option, Optional< }, &db->deferredError ); } -ThreadFuture ThreadSafeDatabase::rebootWorker(const StringRef& address, bool check, int duration) { +ThreadFuture ThreadSafeDatabase::rebootWorker(const StringRef& address, bool check, int duration) { DatabaseContext *db = this->db; - return onMainThread( [db, address, check, duration]() -> Future { + return onMainThread( [db, address, check, duration]() -> Future { return db->rebootWorker(address, check, duration); } ); } diff --git a/fdbclient/ThreadSafeTransaction.h b/fdbclient/ThreadSafeTransaction.h index 76d29b6e6c..7d2e158b75 100644 --- a/fdbclient/ThreadSafeTransaction.h +++ b/fdbclient/ThreadSafeTransaction.h @@ -41,7 +41,7 @@ public: void addref() { ThreadSafeReferenceCounted::addref(); } void delref() { ThreadSafeReferenceCounted::delref(); } - ThreadFuture rebootWorker(const StringRef& address, bool check, int duration); + ThreadFuture rebootWorker(const StringRef& address, bool check, int duration); private: friend class ThreadSafeTransaction; From 5921d5ef57b8840f66b716dc1b5903cbcf495821 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Thu, 3 Dec 2020 12:02:49 -0800 Subject: [PATCH 038/261] Add reboot_worker to c api and add unit test for it --- bindings/c/fdb_c.cpp | 5 +++ bindings/c/foundationdb/fdb_c.h | 4 ++ bindings/c/test/unit/unit_tests.cpp | 62 +++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) diff --git a/bindings/c/fdb_c.cpp b/bindings/c/fdb_c.cpp index dd3cb60855..c46b239292 100644 --- a/bindings/c/fdb_c.cpp +++ b/bindings/c/fdb_c.cpp @@ -226,6 +226,11 @@ fdb_error_t fdb_future_get_int64( FDBFuture* f, int64_t* out_value ) { CATCH_AND_RETURN( *out_value = TSAV(int64_t, f)->get(); ); } +extern "C" DLLEXPORT +fdb_error_t fdb_future_get_bool( FDBFuture* f, bool* out_value ) { + CATCH_AND_RETURN( *out_value = TSAV(bool, f)->get(); ); +} + extern "C" DLLEXPORT fdb_error_t fdb_future_get_key( FDBFuture* f, uint8_t const** out_key, int* out_key_length ) { diff --git a/bindings/c/foundationdb/fdb_c.h b/bindings/c/foundationdb/fdb_c.h index 13aaa78a8f..2e3ac1ea7f 100644 --- a/bindings/c/foundationdb/fdb_c.h +++ b/bindings/c/foundationdb/fdb_c.h @@ -53,6 +53,7 @@ #define FDB_REMOVED_FUNCTION This_FoundationDB_API_function_is_removed_at_this_FDB_API_VERSION(0) #include +#include #include "fdb_c_options.g.h" @@ -136,6 +137,9 @@ extern "C" { DLLEXPORT WARN_UNUSED_RESULT fdb_error_t fdb_future_get_int64( FDBFuture* f, int64_t* out ); + DLLEXPORT WARN_UNUSED_RESULT fdb_error_t + fdb_future_get_bool( FDBFuture* f, bool* out ); + DLLEXPORT WARN_UNUSED_RESULT fdb_error_t fdb_future_get_key( FDBFuture* f, uint8_t const** out_key, int* out_key_length ); diff --git a/bindings/c/test/unit/unit_tests.cpp b/bindings/c/test/unit/unit_tests.cpp index 5876658ae3..208068c1ff 100644 --- a/bindings/c/test/unit/unit_tests.cpp +++ b/bindings/c/test/unit/unit_tests.cpp @@ -37,6 +37,7 @@ #define DOCTEST_CONFIG_IMPLEMENT #include "doctest.h" +#include "rapidjson/document.h" #include "fdb_api.hpp" @@ -1743,6 +1744,67 @@ TEST_CASE("fdb_transaction_add_conflict_range") { CHECK(success); } +std::string get_valid_status_json() { + fdb::Transaction tr(db); + while (1) { + fdb::ValueFuture f1 = tr.get("\xff\xff/status/json", false); + + fdb_error_t err = wait_future(f1); + if (err) { + fdb::EmptyFuture f2 = tr.on_error(err); + fdb_check(wait_future(f2)); + continue; + } + + int out_present; + char *val; + int vallen; + fdb_check(f1.get(&out_present, (const uint8_t **)&val, &vallen)); + + assert(out_present); + std::string statusJsonStr(val, vallen); + rapidjson::Document statusJson; + statusJson.Parse(statusJsonStr.c_str()); + // make sure it is available + bool available = statusJson["client"]["database_status"]["available"].GetBool(); + if (!available) + continue; // cannot reach to the cluster, retry + return statusJsonStr; + } +} + +TEST_CASE("fdb_database_reboot_worker") { + std::string status_json = get_valid_status_json(); + rapidjson::Document statusJson; + statusJson.Parse(status_json.c_str()); + CHECK(statusJson.HasMember("cluster")); + CHECK(statusJson["cluster"].HasMember("generation")); + int old_generation = statusJson["cluster"]["generation"].GetInt(); + CHECK(statusJson["cluster"].HasMember("processes")); + // Make sure we only have one process in the cluster + // Thus, rebooting the worker ensures a recovery + // Configuration changes may break some contracts here + CHECK(statusJson["cluster"]["processes"].MemberCount() == 1); + auto processPtr = statusJson["cluster"]["processes"].MemberBegin(); + CHECK(processPtr->value.HasMember("address")); + std::string network_address = processPtr->value["address"].GetString(); + while (1) { + FDBFuture* f = fdb_database_reboot_worker(db, (const uint8_t*) network_address.c_str(), network_address.size(), false, 0); + fdb_check(fdb_future_block_until_ready(f)); + bool successful; + fdb_check(fdb_future_get_bool(f, &successful)); + if(successful) break; // retry rebooting until success + } + status_json = get_valid_status_json(); + statusJson.Parse(status_json.c_str()); + CHECK(statusJson.HasMember("cluster")); + CHECK(statusJson["cluster"].HasMember("generation")); + int new_generation = statusJson["cluster"]["generation"].GetInt(); + std::cout << "Old gen: " << old_generation << "; New gen: " << new_generation << std::endl; + // The generation number should increase after the recovery + CHECK(new_generation > old_generation); +} + TEST_CASE("fdb_error_predicate") { CHECK(fdb_error_predicate(FDB_ERROR_PREDICATE_RETRYABLE, 1007)); // transaction_too_old CHECK(fdb_error_predicate(FDB_ERROR_PREDICATE_RETRYABLE, 1020)); // not_committed From 934f7de96e68cb0289c60b4f71b64c5e1583aa36 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Thu, 3 Dec 2020 12:03:35 -0800 Subject: [PATCH 039/261] Update reboot_worker api in flow binding --- bindings/flow/fdb_flow.actor.cpp | 10 +++++----- bindings/flow/fdb_flow.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/bindings/flow/fdb_flow.actor.cpp b/bindings/flow/fdb_flow.actor.cpp index bb12750b31..32a0a83234 100644 --- a/bindings/flow/fdb_flow.actor.cpp +++ b/bindings/flow/fdb_flow.actor.cpp @@ -101,7 +101,7 @@ namespace FDB { Reference createTransaction() override; void setDatabaseOption(FDBDatabaseOption option, Optional value = Optional()) override; - Future rebootWorker(const StringRef& address, bool check = false, int duration = 0) override; + Future rebootWorker(const StringRef& address, bool check = false, int duration = 0) override; private: FDBDatabase* db; @@ -285,11 +285,11 @@ namespace FDB { throw_on_error(fdb_database_set_option(db, option, nullptr, 0)); } - Future DatabaseImpl::rebootWorker(const StringRef &address, bool check, int duration) { - return backToFuture( fdb_database_reboot_worker(db, address.begin(), address.size(), check, duration), [](Reference f) { - int64_t res; + Future DatabaseImpl::rebootWorker(const StringRef &address, bool check, int duration) { + return backToFuture( fdb_database_reboot_worker(db, address.begin(), address.size(), check, duration), [](Reference f) { + bool res; - throw_on_error(fdb_future_get_int64( f->f, &res ) ); + throw_on_error(fdb_future_get_bool( f->f, &res ) ); return res; } ); diff --git a/bindings/flow/fdb_flow.h b/bindings/flow/fdb_flow.h index 9a9b95b1ba..1982dddfb4 100644 --- a/bindings/flow/fdb_flow.h +++ b/bindings/flow/fdb_flow.h @@ -124,7 +124,7 @@ namespace FDB { virtual ~Database(){}; virtual Reference createTransaction() = 0; virtual void setDatabaseOption(FDBDatabaseOption option, Optional value = Optional()) = 0; - virtual Future rebootWorker(const StringRef& address, bool check = false, int duration = 0) = 0; + virtual Future rebootWorker(const StringRef& address, bool check = false, int duration = 0) = 0; }; class API { From dca2207ee7fdd31095a0e26dacfdaf92048b8f4a Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Thu, 3 Dec 2020 12:04:29 -0800 Subject: [PATCH 040/261] update reboot_worker in python binding to return boolean --- bindings/c/test/unit/unit_tests.cpp | 1 - bindings/python/fdb/impl.py | 12 +++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/bindings/c/test/unit/unit_tests.cpp b/bindings/c/test/unit/unit_tests.cpp index 208068c1ff..0bdd0f6812 100644 --- a/bindings/c/test/unit/unit_tests.cpp +++ b/bindings/c/test/unit/unit_tests.cpp @@ -1800,7 +1800,6 @@ TEST_CASE("fdb_database_reboot_worker") { CHECK(statusJson.HasMember("cluster")); CHECK(statusJson["cluster"].HasMember("generation")); int new_generation = statusJson["cluster"]["generation"].GetInt(); - std::cout << "Old gen: " << old_generation << "; New gen: " << new_generation << std::endl; // The generation number should increase after the recovery CHECK(new_generation > old_generation); } diff --git a/bindings/python/fdb/impl.py b/bindings/python/fdb/impl.py index d575431e72..5ddc9f2291 100644 --- a/bindings/python/fdb/impl.py +++ b/bindings/python/fdb/impl.py @@ -733,6 +733,12 @@ class FutureInt64(Future): self.capi.fdb_future_get_int64(self.fpointer, ctypes.byref(value)) return value.value +class FutureBool(Future): + def wait(self): + self.block_until_ready() + value = ctypes.c_bool() + self.capi.fdb_future_get_bool(self.fpointer, ctypes.byref(value)) + return value.value class FutureKeyValueArray(Future): def wait(self): @@ -999,7 +1005,7 @@ class Database(_FDBBase): def reboot_worker(self, address, check, duration): """Reboot the specified process""" addr = paramToBytes(address) - return FutureInt64(self.capi.fdb_database_reboot_worker(self.dpointer, addr, len(addr), check, duration)) + return FutureBool(self.capi.fdb_database_reboot_worker(self.dpointer, addr, len(addr), check, duration)) def _set_option(self, option, param, length): self.capi.fdb_database_set_option(self.dpointer, option, param, length) @@ -1422,6 +1428,10 @@ def init_c_api(): _capi.fdb_future_get_int64.restype = ctypes.c_int _capi.fdb_future_get_int64.errcheck = check_error_code + _capi.fdb_future_get_bool.argtypes = [ctypes.c_void_p, ctypes.POINTER(ctypes.c_bool)] + _capi.fdb_future_get_bool.restype = ctypes.c_bool + _capi.fdb_future_get_bool.errcheck = check_error_code + _capi.fdb_future_get_key.argtypes = [ctypes.c_void_p, ctypes.POINTER(ctypes.POINTER(ctypes.c_byte)), ctypes.POINTER(ctypes.c_int)] _capi.fdb_future_get_key.restype = ctypes.c_int From 8d59dae26de75ab4407ec0b60799043c3be6c250 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Thu, 3 Dec 2020 13:47:59 -0800 Subject: [PATCH 041/261] Add check for existence of databaseRebootWorker in c api --- fdbclient/MultiVersionTransaction.actor.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fdbclient/MultiVersionTransaction.actor.cpp b/fdbclient/MultiVersionTransaction.actor.cpp index e3dc421674..0e825f4b9a 100644 --- a/fdbclient/MultiVersionTransaction.actor.cpp +++ b/fdbclient/MultiVersionTransaction.actor.cpp @@ -283,6 +283,10 @@ void DLDatabase::setOption(FDBDatabaseOptions::Option option, Optional DLDatabase::rebootWorker(const StringRef& address, bool check, int duration) { + if(!api->databaseRebootWorker) { + return unsupported_operation(); + } + FdbCApi::FDBFuture *f = api->databaseRebootWorker(db, address.begin(), address.size(), check, duration); return toThreadFuture(api, f, [](FdbCApi::FDBFuture *f, FdbCApi *api) { bool res; From ac02329d7d181d4f3b2ef438a8d2900a1731bba4 Mon Sep 17 00:00:00 2001 From: Xin Dong Date: Thu, 12 Nov 2020 16:27:55 -0800 Subject: [PATCH 042/261] Added a command in fdbcli to allow user to manually trigger the detailed teams info loggings in data distributor --- fdbcli/fdbcli.actor.cpp | 25 +++++++++++++++++++++++++ fdbclient/SystemData.cpp | 2 ++ fdbclient/SystemData.h | 3 +++ fdbserver/DataDistribution.actor.cpp | 6 +++++- 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/fdbcli/fdbcli.actor.cpp b/fdbcli/fdbcli.actor.cpp index 9ff7efe7ef..2ce357920c 100644 --- a/fdbcli/fdbcli.actor.cpp +++ b/fdbcli/fdbcli.actor.cpp @@ -581,6 +581,9 @@ void initHelp() { CommandHelp("unlock ", "unlock the database with the provided lockUID", "Unlocks the database with the provided lockUID. This is a potentially dangerous operation, so the " "user will be asked to enter a passphrase to confirm their intent."); + helpMap["triggerDDTeamInfoLog"] = + CommandHelp("triggerDDTeamInfoLog", "trigger the data distributor teams logging", + "Trigger the data distributor to log detailed information about its teams."); hiddenCommands.insert("expensive_data_check"); hiddenCommands.insert("datadistribution"); @@ -1692,6 +1695,23 @@ int printStatusFromJSON( std::string const& jsonFileName ) { } } +ACTOR Future triggerDDTeamInfoLog(Database db) { + state ReadYourWritesTransaction tr(db); + loop { + try { + tr.setOption(FDBTransactionOptions::ACCESS_SYSTEM_KEYS); + tr.setOption(FDBTransactionOptions::PRIORITY_SYSTEM_IMMEDIATE); + std::string v = deterministicRandom()->randomUniqueID().toString(); + tr.set(triggerDDTeamInfoPrintKey, v); + wait(tr.commit()); + printf("Triggered team info logging in data distribution.\n"); + return Void(); + } catch (Error& e) { + tr.onError(e); + } + } +} + ACTOR Future timeWarning( double when, const char* msg ) { wait( delay(when) ); fputs( msg, stderr ); @@ -2968,6 +2988,11 @@ ACTOR Future cli(CLIOptions opt, LineNoise* plinenoise) { continue; } + if (tokencmp(tokens[0], "triggerDDTeamInfoLog")) { + wait(triggerDDTeamInfoLog(db)); + continue; + } + if (tokencmp(tokens[0], "configure")) { bool err = wait(configure(db, tokens, db->getConnectionFile(), &linenoise, warn)); if (err) is_error = true; diff --git a/fdbclient/SystemData.cpp b/fdbclient/SystemData.cpp index e9f2e50ff6..b43396dc08 100644 --- a/fdbclient/SystemData.cpp +++ b/fdbclient/SystemData.cpp @@ -360,6 +360,8 @@ ProcessClass decodeProcessClassValue( ValueRef const& value ) { const KeyRangeRef configKeys( LiteralStringRef("\xff/conf/"), LiteralStringRef("\xff/conf0") ); const KeyRef configKeysPrefix = configKeys.begin; +const KeyRef triggerDDTeamInfoPrintKey(LiteralStringRef("\xff/triggerDDTeamInfoPrint")); + const KeyRangeRef excludedServersKeys( LiteralStringRef("\xff/conf/excluded/"), LiteralStringRef("\xff/conf/excluded0") ); const KeyRef excludedServersPrefix = excludedServersKeys.begin; const KeyRef excludedServersVersionKey = LiteralStringRef("\xff/conf/excluded"); diff --git a/fdbclient/SystemData.h b/fdbclient/SystemData.h index 139082e02a..7b90cdd7c2 100644 --- a/fdbclient/SystemData.h +++ b/fdbclient/SystemData.h @@ -122,6 +122,9 @@ UID decodeProcessClassKeyOld( KeyRef const& key ); extern const KeyRangeRef configKeys; extern const KeyRef configKeysPrefix; +// Change the value of this key to anything and that will trigger detailed data distribution team info log. +extern const KeyRef triggerDDTeamInfoPrintKey; + // "\xff/conf/excluded/1.2.3.4" := "" // "\xff/conf/excluded/1.2.3.4:4000" := "" // These are inside configKeysPrefix since they represent a form of configuration and they are convenient diff --git a/fdbserver/DataDistribution.actor.cpp b/fdbserver/DataDistribution.actor.cpp index 4efc299519..03f7a745b2 100644 --- a/fdbserver/DataDistribution.actor.cpp +++ b/fdbserver/DataDistribution.actor.cpp @@ -2604,8 +2604,12 @@ ACTOR Future printSnapshotTeamsInfo(Reference self) { state int traceEventsPrinted = 0; state std::vector serverIDs; state double lastPrintTime = 0; + state ReadYourWritesTransaction tr(self->cx); loop { - wait(self->printDetailedTeamsInfo.onTrigger()); + tr.setOption(FDBTransactionOptions::ACCESS_SYSTEM_KEYS); + state Future watchFuture = tr.watch(triggerDDTeamInfoPrintKey); + wait(tr.commit()); + wait(self->printDetailedTeamsInfo.onTrigger() || watchFuture); if (now() - lastPrintTime < SERVER_KNOBS->DD_TEAMS_INFO_PRINT_INTERVAL) { continue; } From 9505d77ddd37c1d3a9835cdafca56d6766819a75 Mon Sep 17 00:00:00 2001 From: Xin Dong Date: Fri, 13 Nov 2020 10:21:31 -0800 Subject: [PATCH 043/261] Update fdbcli/fdbcli.actor.cpp Co-authored-by: Andrew Noyes <63815641+sfc-gh-anoyes@users.noreply.github.com> --- fdbcli/fdbcli.actor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fdbcli/fdbcli.actor.cpp b/fdbcli/fdbcli.actor.cpp index 2ce357920c..2b635e6f4e 100644 --- a/fdbcli/fdbcli.actor.cpp +++ b/fdbcli/fdbcli.actor.cpp @@ -1707,7 +1707,7 @@ ACTOR Future triggerDDTeamInfoLog(Database db) { printf("Triggered team info logging in data distribution.\n"); return Void(); } catch (Error& e) { - tr.onError(e); + wait(tr.onError(e)); } } } From 78503db523750625abbcab2066d62c48a285cf35 Mon Sep 17 00:00:00 2001 From: Xin Dong Date: Tue, 17 Nov 2020 10:46:03 -0800 Subject: [PATCH 044/261] Reset and retry transaction errors --- fdbserver/DataDistribution.actor.cpp | 317 ++++++++++++++------------- 1 file changed, 162 insertions(+), 155 deletions(-) diff --git a/fdbserver/DataDistribution.actor.cpp b/fdbserver/DataDistribution.actor.cpp index 03f7a745b2..531801c06a 100644 --- a/fdbserver/DataDistribution.actor.cpp +++ b/fdbserver/DataDistribution.actor.cpp @@ -2606,180 +2606,187 @@ ACTOR Future printSnapshotTeamsInfo(Reference self) { state double lastPrintTime = 0; state ReadYourWritesTransaction tr(self->cx); loop { - tr.setOption(FDBTransactionOptions::ACCESS_SYSTEM_KEYS); - state Future watchFuture = tr.watch(triggerDDTeamInfoPrintKey); - wait(tr.commit()); - wait(self->printDetailedTeamsInfo.onTrigger() || watchFuture); - if (now() - lastPrintTime < SERVER_KNOBS->DD_TEAMS_INFO_PRINT_INTERVAL) { - continue; - } - lastPrintTime = now(); + try { + tr.setOption(FDBTransactionOptions::ACCESS_SYSTEM_KEYS); + state Future watchFuture = tr.watch(triggerDDTeamInfoPrintKey); + wait(tr.commit()); + wait(self->printDetailedTeamsInfo.onTrigger() || watchFuture); + tr.reset(); + if (now() - lastPrintTime < SERVER_KNOBS->DD_TEAMS_INFO_PRINT_INTERVAL) { + continue; + } + lastPrintTime = now(); - traceEventsPrinted = 0; + traceEventsPrinted = 0; - double snapshotStart = now(); + double snapshotStart = now(); - configuration = self->configuration; - server_info = self->server_info; - teams = self->teams; - machine_info = self->machine_info; - machineTeams = self->machineTeams; - // internedLocalityRecordKeyNameStrings = self->machineLocalityMap._keymap->_lookuparray; - // machineLocalityMapEntryArraySize = self->machineLocalityMap.size(); - // machineLocalityMapRecordArray = self->machineLocalityMap.getRecordArray(); - std::vector _uids = self->machineLocalityMap.getObjects(); - serverIDs = _uids; + configuration = self->configuration; + server_info = self->server_info; + teams = self->teams; + machine_info = self->machine_info; + machineTeams = self->machineTeams; + // internedLocalityRecordKeyNameStrings = self->machineLocalityMap._keymap->_lookuparray; + // machineLocalityMapEntryArraySize = self->machineLocalityMap.size(); + // machineLocalityMapRecordArray = self->machineLocalityMap.getRecordArray(); + std::vector _uids = self->machineLocalityMap.getObjects(); + serverIDs = _uids; - auto const& keys = self->server_status.getKeys(); - for (auto const& key : keys) { - server_status.emplace(key, self->server_status.get(key)); - } + auto const& keys = self->server_status.getKeys(); + for (auto const& key : keys) { + server_status.emplace(key, self->server_status.get(key)); + } - TraceEvent("DDPrintSnapshotTeasmInfo", self->distributorId) - .detail("SnapshotSpeed", now() - snapshotStart) - .detail("Primary", self->primary); + TraceEvent("DDPrintSnapshotTeasmInfo", self->distributorId) + .detail("SnapshotSpeed", now() - snapshotStart) + .detail("Primary", self->primary); - // Print to TraceEvents - TraceEvent("DDConfig", self->distributorId) - .detail("StorageTeamSize", configuration.storageTeamSize) - .detail("DesiredTeamsPerServer", SERVER_KNOBS->DESIRED_TEAMS_PER_SERVER) - .detail("MaxTeamsPerServer", SERVER_KNOBS->MAX_TEAMS_PER_SERVER) - .detail("Primary", self->primary); + // Print to TraceEvents + TraceEvent("DDConfig", self->distributorId) + .detail("StorageTeamSize", configuration.storageTeamSize) + .detail("DesiredTeamsPerServer", SERVER_KNOBS->DESIRED_TEAMS_PER_SERVER) + .detail("MaxTeamsPerServer", SERVER_KNOBS->MAX_TEAMS_PER_SERVER) + .detail("Primary", self->primary); - TraceEvent("ServerInfo", self->distributorId) - .detail("Size", server_info.size()) - .detail("Primary", self->primary); - state int i; - state std::map>::iterator server = server_info.begin(); - for (i = 0; i < server_info.size(); i++) { TraceEvent("ServerInfo", self->distributorId) - .detail("ServerInfoIndex", i) - .detail("ServerID", server->first.toString()) - .detail("ServerTeamOwned", server->second->teams.size()) - .detail("MachineID", server->second->machine->machineID.contents().toString()) + .detail("Size", server_info.size()) .detail("Primary", self->primary); - server++; - if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { - wait(yield()); - } - } - - server = server_info.begin(); - for (i = 0; i < server_info.size(); i++) { - const UID& uid = server->first; - TraceEvent("ServerStatus", self->distributorId) - .detail("ServerUID", uid) - .detail("Healthy", !server_status.at(uid).isUnhealthy()) - .detail("MachineIsValid", server_info[uid]->machine.isValid()) - .detail("MachineTeamSize", - server_info[uid]->machine.isValid() ? server_info[uid]->machine->machineTeams.size() : -1) - .detail("Primary", self->primary); - server++; - if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { - wait(yield()); - } - } - - TraceEvent("ServerTeamInfo", self->distributorId).detail("Size", teams.size()).detail("Primary", self->primary); - for (i = 0; i < teams.size(); i++) { - const auto& team = teams[i]; - TraceEvent("ServerTeamInfo", self->distributorId) - .detail("TeamIndex", i) - .detail("Healthy", team->isHealthy()) - .detail("TeamSize", team->size()) - .detail("MemberIDs", team->getServerIDsStr()) - .detail("Primary", self->primary); - if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { - wait(yield()); - } - } - - TraceEvent("MachineInfo", self->distributorId) - .detail("Size", machine_info.size()) - .detail("Primary", self->primary); - state std::map, Reference>::iterator machine = machine_info.begin(); - state bool isMachineHealthy = false; - for (i = 0; i < machine_info.size(); i++) { - Reference _machine = machine->second; - if (!_machine.isValid() || machine_info.find(_machine->machineID) == machine_info.end() || - _machine->serversOnMachine.empty()) { - isMachineHealthy = false; - } - - // Healthy machine has at least one healthy server - for (auto& server : _machine->serversOnMachine) { - if (!server_status.at(server->id).isUnhealthy()) { - isMachineHealthy = true; + state int i; + state std::map>::iterator server = server_info.begin(); + for (i = 0; i < server_info.size(); i++) { + TraceEvent("ServerInfo", self->distributorId) + .detail("ServerInfoIndex", i) + .detail("ServerID", server->first.toString()) + .detail("ServerTeamOwned", server->second->teams.size()) + .detail("MachineID", server->second->machine->machineID.contents().toString()) + .detail("Primary", self->primary); + server++; + if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { + wait(yield()); + } + } + + server = server_info.begin(); + for (i = 0; i < server_info.size(); i++) { + const UID& uid = server->first; + TraceEvent("ServerStatus", self->distributorId) + .detail("ServerUID", uid) + .detail("Healthy", !server_status.at(uid).isUnhealthy()) + .detail("MachineIsValid", server_info[uid]->machine.isValid()) + .detail("MachineTeamSize", + server_info[uid]->machine.isValid() ? server_info[uid]->machine->machineTeams.size() : -1) + .detail("Primary", self->primary); + server++; + if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { + wait(yield()); + } + } + + TraceEvent("ServerTeamInfo", self->distributorId) + .detail("Size", teams.size()) + .detail("Primary", self->primary); + for (i = 0; i < teams.size(); i++) { + const auto& team = teams[i]; + TraceEvent("ServerTeamInfo", self->distributorId) + .detail("TeamIndex", i) + .detail("Healthy", team->isHealthy()) + .detail("TeamSize", team->size()) + .detail("MemberIDs", team->getServerIDsStr()) + .detail("Primary", self->primary); + if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { + wait(yield()); } } - isMachineHealthy = false; TraceEvent("MachineInfo", self->distributorId) - .detail("MachineInfoIndex", i) - .detail("Healthy", isMachineHealthy) - .detail("MachineID", machine->first.contents().toString()) - .detail("MachineTeamOwned", machine->second->machineTeams.size()) - .detail("ServerNumOnMachine", machine->second->serversOnMachine.size()) - .detail("ServersID", machine->second->getServersIDStr()) + .detail("Size", machine_info.size()) .detail("Primary", self->primary); - machine++; - if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { - wait(yield()); - } - } + state std::map, Reference>::iterator machine = machine_info.begin(); + state bool isMachineHealthy = false; + for (i = 0; i < machine_info.size(); i++) { + Reference _machine = machine->second; + if (!_machine.isValid() || machine_info.find(_machine->machineID) == machine_info.end() || + _machine->serversOnMachine.empty()) { + isMachineHealthy = false; + } + + // Healthy machine has at least one healthy server + for (auto& server : _machine->serversOnMachine) { + if (!server_status.at(server->id).isUnhealthy()) { + isMachineHealthy = true; + } + } + + isMachineHealthy = false; + TraceEvent("MachineInfo", self->distributorId) + .detail("MachineInfoIndex", i) + .detail("Healthy", isMachineHealthy) + .detail("MachineID", machine->first.contents().toString()) + .detail("MachineTeamOwned", machine->second->machineTeams.size()) + .detail("ServerNumOnMachine", machine->second->serversOnMachine.size()) + .detail("ServersID", machine->second->getServersIDStr()) + .detail("Primary", self->primary); + machine++; + if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { + wait(yield()); + } + } - TraceEvent("MachineTeamInfo", self->distributorId) - .detail("Size", machineTeams.size()) - .detail("Primary", self->primary); - for (i = 0; i < machineTeams.size(); i++) { - const auto& team = machineTeams[i]; TraceEvent("MachineTeamInfo", self->distributorId) - .detail("TeamIndex", i) - .detail("MachineIDs", team->getMachineIDsStr()) - .detail("ServerTeams", team->serverTeams.size()) + .detail("Size", machineTeams.size()) .detail("Primary", self->primary); - if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { - wait(yield()); + for (i = 0; i < machineTeams.size(); i++) { + const auto& team = machineTeams[i]; + TraceEvent("MachineTeamInfo", self->distributorId) + .detail("TeamIndex", i) + .detail("MachineIDs", team->getMachineIDsStr()) + .detail("ServerTeams", team->serverTeams.size()) + .detail("Primary", self->primary); + if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { + wait(yield()); + } } + + // TODO: re-enable the following logging or remove them. + // TraceEvent("LocalityRecordKeyName", self->distributorId) + // .detail("Size", internedLocalityRecordKeyNameStrings.size()) + // .detail("Primary", self->primary); + // for (i = 0; i < internedLocalityRecordKeyNameStrings.size(); i++) { + // TraceEvent("LocalityRecordKeyIndexName", self->distributorId) + // .detail("KeyIndex", i) + // .detail("KeyName", internedLocalityRecordKeyNameStrings[i]) + // .detail("Primary", self->primary); + // if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { + // wait(yield()); + // } + // } + + // TraceEvent("MachineLocalityMap", self->distributorId) + // .detail("Size", machineLocalityMapEntryArraySize) + // .detail("Primary", self->primary); + // for (i = 0; i < serverIDs.size(); i++) { + // const auto& serverID = serverIDs[i]; + // Reference record = machineLocalityMapRecordArray[i]; + // if (record.isValid()) { + // TraceEvent("MachineLocalityMap", self->distributorId) + // .detail("LocalityIndex", i) + // .detail("UID", serverID->toString()) + // .detail("LocalityRecord", record->toString()) + // .detail("Primary", self->primary); + // } else { + // TraceEvent("MachineLocalityMap", self->distributorId) + // .detail("LocalityIndex", i) + // .detail("UID", serverID->toString()) + // .detail("LocalityRecord", "[NotFound]") + // .detail("Primary", self->primary); + // } + // if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { + // wait(yield()); + // } + // } + } catch (Error& e) { + wait(tr.onError(e)); } - - // TODO: re-enable the following logging or remove them. - // TraceEvent("LocalityRecordKeyName", self->distributorId) - // .detail("Size", internedLocalityRecordKeyNameStrings.size()) - // .detail("Primary", self->primary); - // for (i = 0; i < internedLocalityRecordKeyNameStrings.size(); i++) { - // TraceEvent("LocalityRecordKeyIndexName", self->distributorId) - // .detail("KeyIndex", i) - // .detail("KeyName", internedLocalityRecordKeyNameStrings[i]) - // .detail("Primary", self->primary); - // if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { - // wait(yield()); - // } - // } - - // TraceEvent("MachineLocalityMap", self->distributorId) - // .detail("Size", machineLocalityMapEntryArraySize) - // .detail("Primary", self->primary); - // for (i = 0; i < serverIDs.size(); i++) { - // const auto& serverID = serverIDs[i]; - // Reference record = machineLocalityMapRecordArray[i]; - // if (record.isValid()) { - // TraceEvent("MachineLocalityMap", self->distributorId) - // .detail("LocalityIndex", i) - // .detail("UID", serverID->toString()) - // .detail("LocalityRecord", record->toString()) - // .detail("Primary", self->primary); - // } else { - // TraceEvent("MachineLocalityMap", self->distributorId) - // .detail("LocalityIndex", i) - // .detail("UID", serverID->toString()) - // .detail("LocalityRecord", "[NotFound]") - // .detail("Primary", self->primary); - // } - // if (++traceEventsPrinted % SERVER_KNOBS->DD_TEAMS_INFO_PRINT_YIELD_COUNT == 0) { - // wait(yield()); - // } - // } } } From da22308025ae5b64110d1583a95ede5dc23c5188 Mon Sep 17 00:00:00 2001 From: Xin Dong Date: Thu, 3 Dec 2020 14:49:23 -0800 Subject: [PATCH 045/261] Change the new command to be all lower case to follow the convention. Updated the command line interface documentation and the release notes for 6.2.29. --- documentation/sphinx/source/command-line-interface.rst | 5 +++++ .../sphinx/source/release-notes/release-notes-620.rst | 1 + fdbcli/fdbcli.actor.cpp | 6 +++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/documentation/sphinx/source/command-line-interface.rst b/documentation/sphinx/source/command-line-interface.rst index e91147f19e..59f58683b2 100644 --- a/documentation/sphinx/source/command-line-interface.rst +++ b/documentation/sphinx/source/command-line-interface.rst @@ -294,6 +294,11 @@ status json ``status json`` will provide the cluster status in its JSON format. For a detailed description of this format, see :doc:`mr-status`. +triggerddteaminfolog +------ + +The ``triggerddteaminfolog`` command would trigger the data distributor to log very detailed teams information into trace event logs. + unlock ------ diff --git a/documentation/sphinx/source/release-notes/release-notes-620.rst b/documentation/sphinx/source/release-notes/release-notes-620.rst index 1d74690caf..f4017daaf1 100644 --- a/documentation/sphinx/source/release-notes/release-notes-620.rst +++ b/documentation/sphinx/source/release-notes/release-notes-620.rst @@ -8,6 +8,7 @@ Release Notes ====== * Fix invalid memory access on data distributor when snapshotting large clusters. `(PR #4076) `_ * Add human-readable DateTime to trace events `(PR #4087) `_ +* Add a command in fdbcli to manually trigger the detailed teams information loggings in data distribution. `(PR #4060) `_ 6.2.28 ====== diff --git a/fdbcli/fdbcli.actor.cpp b/fdbcli/fdbcli.actor.cpp index 2b635e6f4e..f34534f7b3 100644 --- a/fdbcli/fdbcli.actor.cpp +++ b/fdbcli/fdbcli.actor.cpp @@ -581,8 +581,8 @@ void initHelp() { CommandHelp("unlock ", "unlock the database with the provided lockUID", "Unlocks the database with the provided lockUID. This is a potentially dangerous operation, so the " "user will be asked to enter a passphrase to confirm their intent."); - helpMap["triggerDDTeamInfoLog"] = - CommandHelp("triggerDDTeamInfoLog", "trigger the data distributor teams logging", + helpMap["triggerddteaminfolog"] = + CommandHelp("triggerddteaminfolog", "trigger the data distributor teams logging", "Trigger the data distributor to log detailed information about its teams."); hiddenCommands.insert("expensive_data_check"); @@ -2988,7 +2988,7 @@ ACTOR Future cli(CLIOptions opt, LineNoise* plinenoise) { continue; } - if (tokencmp(tokens[0], "triggerDDTeamInfoLog")) { + if (tokencmp(tokens[0], "triggerddteaminfolog")) { wait(triggerDDTeamInfoLog(db)); continue; } From e499e3ad70141b2dd6d1ce3cacc69f18f4e049f4 Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Thu, 3 Dec 2020 15:06:33 -0800 Subject: [PATCH 046/261] Remove unneeded knob change for workloads --- fdbserver/workloads/AtomicRestore.actor.cpp | 4 ---- fdbserver/workloads/AtomicSwitchover.actor.cpp | 5 ----- fdbserver/workloads/BackupCorrectness.actor.cpp | 2 -- fdbserver/workloads/BackupToDBAbort.actor.cpp | 6 ------ fdbserver/workloads/BackupToDBCorrectness.actor.cpp | 5 ----- fdbserver/workloads/BackupToDBUpgrade.actor.cpp | 5 ----- 6 files changed, 27 deletions(-) diff --git a/fdbserver/workloads/AtomicRestore.actor.cpp b/fdbserver/workloads/AtomicRestore.actor.cpp index bcd1e78d25..4537970f7a 100644 --- a/fdbserver/workloads/AtomicRestore.actor.cpp +++ b/fdbserver/workloads/AtomicRestore.actor.cpp @@ -61,9 +61,6 @@ struct AtomicRestoreWorkload : TestWorkload { ACTOR static Future _start(Database cx, AtomicRestoreWorkload* self) { state FileBackupAgent backupAgent; - // Disable proxy rejection - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; - wait( delay(self->startAfter * deterministicRandom()->random01()) ); TraceEvent("AtomicRestore_Start"); @@ -108,7 +105,6 @@ struct AtomicRestoreWorkload : TestWorkload { } TraceEvent("AtomicRestore_Done"); - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; return Void(); } }; diff --git a/fdbserver/workloads/AtomicSwitchover.actor.cpp b/fdbserver/workloads/AtomicSwitchover.actor.cpp index dc36a82a86..02fcb77866 100644 --- a/fdbserver/workloads/AtomicSwitchover.actor.cpp +++ b/fdbserver/workloads/AtomicSwitchover.actor.cpp @@ -152,9 +152,6 @@ struct AtomicSwitchoverWorkload : TestWorkload { state DatabaseBackupAgent backupAgent(cx); state DatabaseBackupAgent restoreAgent(self->extraDB); - // Disable proxy rejection to avoid ApplyMutationsError - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; - TraceEvent("AS_Wait1"); wait(success( backupAgent.waitBackup(self->extraDB, BackupAgentBase::getDefaultTag(), false) )); TraceEvent("AS_Ready1"); @@ -180,8 +177,6 @@ struct AtomicSwitchoverWorkload : TestWorkload { g_simulator.drAgents = ISimulator::NoBackupAgents; } - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; - return Void(); } }; diff --git a/fdbserver/workloads/BackupCorrectness.actor.cpp b/fdbserver/workloads/BackupCorrectness.actor.cpp index bf318055c0..ddf7e879f3 100644 --- a/fdbserver/workloads/BackupCorrectness.actor.cpp +++ b/fdbserver/workloads/BackupCorrectness.actor.cpp @@ -364,7 +364,6 @@ struct BackupAndRestoreCorrectnessWorkload : TestWorkload { state FileBackupAgent backupAgent; state Future extraBackup; state bool extraTasks = false; - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; TraceEvent("BARW_Arguments").detail("BackupTag", printable(self->backupTag)).detail("PerformRestore", self->performRestore) .detail("BackupAfter", self->backupAfter).detail("RestoreAfter", self->restoreAfter) .detail("AbortAndRestartAfter", self->abortAndRestartAfter).detail("DifferentialAfter", self->stopDifferentialAfter); @@ -662,7 +661,6 @@ struct BackupAndRestoreCorrectnessWorkload : TestWorkload { TraceEvent(SevError, "BackupAndRestoreCorrectness").error(e).GetLastError(); throw; } - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; return Void(); } }; diff --git a/fdbserver/workloads/BackupToDBAbort.actor.cpp b/fdbserver/workloads/BackupToDBAbort.actor.cpp index 60c73620b7..7d242360ec 100644 --- a/fdbserver/workloads/BackupToDBAbort.actor.cpp +++ b/fdbserver/workloads/BackupToDBAbort.actor.cpp @@ -22,8 +22,6 @@ #include "fdbclient/ManagementAPI.actor.h" #include "fdbclient/NativeAPI.actor.h" #include "fdbserver/workloads/workloads.actor.h" -#include "fdbserver/Knobs.h" - #include "flow/actorcompiler.h" // This must be the last #include. struct BackupToDBAbort : TestWorkload { @@ -74,9 +72,6 @@ struct BackupToDBAbort : TestWorkload { ACTOR static Future _start(BackupToDBAbort* self, Database cx) { state DatabaseBackupAgent backupAgent(cx); - // Disable proxy rejection to avoid ApplyMutationsError - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; - TraceEvent("BDBA_Start").detail("Delay", self->abortDelay); wait(delay(self->abortDelay)); TraceEvent("BDBA_Wait"); @@ -94,7 +89,6 @@ struct BackupToDBAbort : TestWorkload { g_simulator.drAgents = ISimulator::NoBackupAgents; } - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; return Void(); } diff --git a/fdbserver/workloads/BackupToDBCorrectness.actor.cpp b/fdbserver/workloads/BackupToDBCorrectness.actor.cpp index 11fd9642d9..bb1ced25eb 100644 --- a/fdbserver/workloads/BackupToDBCorrectness.actor.cpp +++ b/fdbserver/workloads/BackupToDBCorrectness.actor.cpp @@ -442,9 +442,6 @@ struct BackupToDBCorrectnessWorkload : TestWorkload { TraceEvent("BARW_Arguments").detail("BackupTag", printable(self->backupTag)).detail("BackupAfter", self->backupAfter) .detail("AbortAndRestartAfter", self->abortAndRestartAfter).detail("DifferentialAfter", self->stopDifferentialAfter); - // Disable proxy rejection to avoid ApplyMutationsError - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; - state UID randomID = nondeterministicRandom()->randomUniqueID(); // Increment the backup agent requets @@ -578,8 +575,6 @@ struct BackupToDBCorrectnessWorkload : TestWorkload { throw; } - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; - return Void(); } }; diff --git a/fdbserver/workloads/BackupToDBUpgrade.actor.cpp b/fdbserver/workloads/BackupToDBUpgrade.actor.cpp index 3a324e6b1f..3f2afcc717 100644 --- a/fdbserver/workloads/BackupToDBUpgrade.actor.cpp +++ b/fdbserver/workloads/BackupToDBUpgrade.actor.cpp @@ -346,9 +346,6 @@ struct BackupToDBUpgradeWorkload : TestWorkload { state UID logUid; state Version commitVersion; - // Disable proxy rejection to avoid ApplyMutationsError - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = false; - state Future stopDifferential = delay(self->stopDifferentialAfter); state Future waitUpgrade = backupAgent.waitUpgradeToLatestDrVersion(self->extraDB, self->backupTag); wait(success(stopDifferential) && success(waitUpgrade)); @@ -465,8 +462,6 @@ struct BackupToDBUpgradeWorkload : TestWorkload { throw; } - const_cast(SERVER_KNOBS)->PROXY_REJECT_BATCH_QUEUED_TOO_LONG = true; - return Void(); } }; From 2162fd1421ba68d2d81ae381f35df5325e0d5639 Mon Sep 17 00:00:00 2001 From: Xin Dong Date: Thu, 3 Dec 2020 15:19:03 -0800 Subject: [PATCH 047/261] Fix the doc build failure --- documentation/sphinx/source/command-line-interface.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/sphinx/source/command-line-interface.rst b/documentation/sphinx/source/command-line-interface.rst index 59f58683b2..58b6b76e95 100644 --- a/documentation/sphinx/source/command-line-interface.rst +++ b/documentation/sphinx/source/command-line-interface.rst @@ -295,7 +295,7 @@ status json ``status json`` will provide the cluster status in its JSON format. For a detailed description of this format, see :doc:`mr-status`. triggerddteaminfolog ------- +-------------------- The ``triggerddteaminfolog`` command would trigger the data distributor to log very detailed teams information into trace event logs. From 88a5e4593f130aa1de0fb1bc3d04e1c4d993e469 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Fri, 4 Dec 2020 00:32:37 -0800 Subject: [PATCH 048/261] Add wrapper for Database and BoolFuture --- bindings/c/test/unit/fdb_api.cpp | 12 ++++++++++++ bindings/c/test/unit/fdb_api.hpp | 16 ++++++++++++++++ bindings/c/test/unit/unit_tests.cpp | 13 +++++++------ 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/bindings/c/test/unit/fdb_api.cpp b/bindings/c/test/unit/fdb_api.cpp index 4f7c754041..2d9b04817b 100644 --- a/bindings/c/test/unit/fdb_api.cpp +++ b/bindings/c/test/unit/fdb_api.cpp @@ -55,6 +55,12 @@ void Future::cancel() { fdb_future_cancel(future_); } +// BoolFuture + +[[nodiscard]] fdb_error_t BoolFuture::get(bool* out) { + return fdb_future_get_bool(future_, out); +} + // Int64Future [[nodiscard]] fdb_error_t Int64Future::get(int64_t* out) { @@ -92,6 +98,12 @@ void Future::cancel() { return fdb_future_get_keyvalue_array(future_, out_kv, out_count, out_more); } +// Database +BoolFuture Database::reboot_worker(FDBDatabase* db, const uint8_t* address, int address_length, fdb_bool_t check, + int duration) { + return BoolFuture(fdb_database_reboot_worker(db, address, address_length, check, duration)); +} + // Transaction Transaction::Transaction(FDBDatabase* db) { diff --git a/bindings/c/test/unit/fdb_api.hpp b/bindings/c/test/unit/fdb_api.hpp index b36e929322..3c9ef6d24a 100644 --- a/bindings/c/test/unit/fdb_api.hpp +++ b/bindings/c/test/unit/fdb_api.hpp @@ -77,6 +77,16 @@ class Future { FDBFuture* future_; }; +class BoolFuture : public Future { +public: + // Call this function instead of fdb_future_get_bool when using the + // BoolFuture type. It's behavior is identical to fdb_future_get_bool. + fdb_error_t get(bool* out); + +private: + friend class Database; + BoolFuture(FDBFuture* f) : Future(f) {} +}; class Int64Future : public Future { public: @@ -148,6 +158,12 @@ class EmptyFuture : public Future { EmptyFuture(FDBFuture* f) : Future(f) {} }; +// Wrapper around FDBDatabase, providing database-level API +class Database final { +public: + static BoolFuture reboot_worker(FDBDatabase* db, const uint8_t* address, int address_length, fdb_bool_t check, + int duration); +}; // Wrapper around FDBTransaction, providing the same set of calls as the C API. // Handles cleanup of memory, removing the need to call diff --git a/bindings/c/test/unit/unit_tests.cpp b/bindings/c/test/unit/unit_tests.cpp index 0bdd0f6812..de660847f1 100644 --- a/bindings/c/test/unit/unit_tests.cpp +++ b/bindings/c/test/unit/unit_tests.cpp @@ -1783,17 +1783,18 @@ TEST_CASE("fdb_database_reboot_worker") { CHECK(statusJson["cluster"].HasMember("processes")); // Make sure we only have one process in the cluster // Thus, rebooting the worker ensures a recovery - // Configuration changes may break some contracts here + // Configuration changes may break the contract here CHECK(statusJson["cluster"]["processes"].MemberCount() == 1); auto processPtr = statusJson["cluster"]["processes"].MemberBegin(); CHECK(processPtr->value.HasMember("address")); std::string network_address = processPtr->value["address"].GetString(); while (1) { - FDBFuture* f = fdb_database_reboot_worker(db, (const uint8_t*) network_address.c_str(), network_address.size(), false, 0); - fdb_check(fdb_future_block_until_ready(f)); - bool successful; - fdb_check(fdb_future_get_bool(f, &successful)); - if(successful) break; // retry rebooting until success + fdb::BoolFuture f = + fdb::Database::reboot_worker(db, (const uint8_t*)network_address.c_str(), network_address.size(), false, 0); + fdb_check(wait_future(f)); + bool successful; + fdb_check(f.get(&successful)); + if (successful) break; // retry rebooting until success } status_json = get_valid_status_json(); statusJson.Parse(status_json.c_str()); From 5ad08782546be042d8d53511ba6e72df995d4dfd Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Fri, 4 Dec 2020 14:27:49 -0800 Subject: [PATCH 049/261] Update fdbserver/MasterProxyServer.actor.cpp Co-authored-by: A.J. Beamon --- fdbserver/MasterProxyServer.actor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index 0615ca26c4..bce4b056d4 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -640,7 +640,7 @@ ACTOR Future commitBatch( /////// Phase 1: Pre-resolution processing (CPU bound except waiting for a version # which is separately pipelined and *should* be available by now (unless empty commit); ordered; currently atomic but could yield) TEST(self->latestLocalCommitBatchResolving.get() < localBatchNumber-1); // Queuing pre-resolution commit processing wait(self->latestLocalCommitBatchResolving.whenAtLeast(localBatchNumber-1)); - double queuingDelay = g_network->timer() - timeStart; + double queuingDelay = g_network->now() - timeStart; if ((queuingDelay > (double)SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS / SERVER_KNOBS->VERSIONS_PER_SECOND || (g_network->isSimulated() && BUGGIFY_WITH_PROB(0.01))) && SERVER_KNOBS->PROXY_REJECT_BATCH_QUEUED_TOO_LONG && canReject(trs)) { From bf59ab684e0cdf78304639f2e9489531566e0cf4 Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Fri, 4 Dec 2020 16:35:46 -0800 Subject: [PATCH 050/261] Revert change to forceRecovery --- fdbserver/MasterProxyServer.actor.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index bce4b056d4..04ffbec49c 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -859,6 +859,7 @@ ACTOR Future commitBatch( if(firstStateMutations) { ASSERT(committed[t] == ConflictBatch::TransactionCommitted); firstStateMutations = false; + forceRecovery = false; } } if (forceRecovery) { From 75836d6114bcc7ca67728b807b748ce6cccfac8f Mon Sep 17 00:00:00 2001 From: "A.J. Beamon" Date: Mon, 7 Dec 2020 09:01:19 -0800 Subject: [PATCH 051/261] Fix double counting of range reads in TransactionMetrics --- fdbclient/NativeAPI.actor.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index 0be7548c76..da4c362378 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -1902,7 +1902,6 @@ ACTOR Future> getRange( Database cx, ReferencetransactionPhysicalReads; - ++cx->transactionGetRangeRequests; state GetKeyValuesReply rep; try { if (CLIENT_BUGGIFY) { From 207a96ad5a3e315f854a6d1fec54b746b55ee0ef Mon Sep 17 00:00:00 2001 From: Russell Sears Date: Mon, 30 Nov 2020 16:18:30 -0800 Subject: [PATCH 052/261] Add boringssl and ctest2junit to docker; move environment-independent CCACHE flags from Dockerfile.devel to Dockerfile --- build/Dockerfile | 43 ++++++++++++++++++++++++++++++++++++--- build/Dockerfile.devel | 10 ++++----- build/docker-compose.yaml | 2 +- 3 files changed, 45 insertions(+), 10 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index b230eb4de4..4ced205435 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -21,7 +21,7 @@ RUN yum -y install devtoolset-8-8.1-1.el6 java-1.8.0-openjdk-devel \ devtoolset-8-libubsan-devel devtoolset-8-libasan-devel devtoolset-8-valgrind-devel \ rh-python36-python-devel rh-ruby24 golang python27 rpm-build \ mono-core debbuild python-pip dos2unix valgrind-devel ccache \ - distcc wget git lz4 lz4-devel lz4-static &&\ + distcc wget libxslt git lz4 lz4-devel lz4-static &&\ pip install boto3==1.1.1 USER root @@ -51,6 +51,8 @@ RUN curl -L https://github.com/Kitware/CMake/releases/download/v3.13.4/cmake-3.1 # install Ninja RUN cd /tmp && curl -L https://github.com/ninja-build/ninja/archive/v1.9.0.zip -o ninja.zip &&\ + echo "8e2e654a418373f10c22e4cc9bdbe9baeca8527ace8d572e0b421e9d9b85b7ef ninja.zip" > /tmp/ninja-sha.txt &&\ + sha256sum -c /tmp/ninja-sha.txt &&\ unzip ninja.zip && cd ninja-1.9.0 && scl enable devtoolset-8 -- ./configure.py --bootstrap && cp ninja /usr/bin &&\ cd .. && rm -rf ninja-1.9.0 ninja.zip @@ -67,13 +69,48 @@ RUN cd /opt/ && curl -L https://github.com/facebook/rocksdb/archive/v6.10.1.tar. echo "d573d2f15cdda883714f7e0bc87b814a8d4a53a82edde558f08f940e905541ee rocksdb.tar.gz" > rocksdb-sha.txt &&\ sha256sum -c rocksdb-sha.txt && tar xf rocksdb.tar.gz && rm -rf rocksdb.tar.gz rocksdb-sha.txt +RUN cd /opt/ && curl -L https://github.com/manticoresoftware/manticoresearch/raw/master/misc/junit/ctest2junit.xsl -o ctest2junit.xsl + +# Setting this environment variable switches from OpenSSL to BoringSSL +#ENV OPENSSL_ROOT_DIR=/opt/boringssl + +# install BoringSSL: TODO: They don't seem to have releases(?) I picked today's master SHA. +RUN cd /opt &&\ + git clone https://boringssl.googlesource.com/boringssl &&\ + cd boringssl &&\ + git checkout e796cc65025982ed1fb9ef41b3f74e8115092816 &&\ + mkdir build + +# ninja doesn't respect CXXFLAGS, and the boringssl CMakeLists doesn't expose an option to define __STDC_FORMAT_MACROS +# also, enable -fPIC. +# this is moderately uglier than creating a patchfile, but easier to maintain. +RUN cd /opt/boringssl &&\ + for f in crypto/fipsmodule/rand/fork_detect_test.cc \ + include/openssl/bn.h \ + ssl/test/bssl_shim.cc ; do \ + perl -p -i -e 's/#include /#define __STDC_FORMAT_MACROS 1\n#include /g;' $f ; \ + done &&\ + perl -p -i -e 's/-Werror/-Werror -fPIC/' CMakeLists.txt &&\ + git diff + +RUN cd /opt/boringssl/build &&\ + scl enable devtoolset-8 rh-python36 rh-ruby24 -- cmake -GNinja -DCMAKE_BUILD_TYPE=Release .. &&\ + scl enable devtoolset-8 rh-python36 rh-ruby24 -- ninja &&\ + ./ssl/ssl_test &&\ + mkdir -p ../lib && cp crypto/libcrypto.a ssl/libssl.a ../lib + # Localize time zone ARG TIMEZONEINFO=America/Los_Angeles RUN rm -f /etc/localtime && ln -s /usr/share/zoneinfo/${TIMEZONEINFO} /etc/localtime -LABEL version=0.1.20 -ENV DOCKER_IMAGEVER=0.1.20 +LABEL version=0.1.21 +ENV DOCKER_IMAGEVER=0.1.21 ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0 ENV CC=/opt/rh/devtoolset-8/root/usr/bin/gcc ENV CXX=/opt/rh/devtoolset-8/root/usr/bin/g++ + +ENV CCACHE_NOHASHDIR=true +ENV CCACHE_UMASK=0000 +ENV CCACHE_SLOPPINESS="file_macro,time_macros,include_file_mtime,include_file_ctime,file_stat_matches" + CMD scl enable devtoolset-8 rh-python36 rh-ruby24 -- bash diff --git a/build/Dockerfile.devel b/build/Dockerfile.devel index 9de4c1245d..884eae7000 100644 --- a/build/Dockerfile.devel +++ b/build/Dockerfile.devel @@ -1,4 +1,5 @@ -FROM foundationdb/foundationdb-build:0.1.20 +ARG IMAGE_TAG=0.1.21 +FROM foundationdb/foundationdb-build:${IMAGE_TAG} USER root @@ -50,8 +51,8 @@ RUN cp -iv /usr/local/bin/clang++ /usr/local/bin/clang++.deref &&\ ldconfig &&\ rm -rf /mnt/artifacts -LABEL version=0.11.11 -ENV DOCKER_IMAGEVER=0.11.11 +LABEL version=0.11.12 +ENV DOCKER_IMAGEVER=0.11.12 ENV CLANGCC=/usr/local/bin/clang.de8a65ef ENV CLANGCXX=/usr/local/bin/clang++.de8a65ef @@ -63,8 +64,5 @@ ENV CC=/usr/local/bin/clang.de8a65ef ENV CXX=/usr/local/bin/clang++.de8a65ef ENV USE_LD=LLD ENV USE_LIBCXX=1 -ENV CCACHE_NOHASHDIR=true -ENV CCACHE_UMASK=0000 -ENV CCACHE_SLOPPINESS="file_macro,time_macros,include_file_mtime,include_file_ctime,file_stat_matches" CMD scl enable devtoolset-8 rh-python36 rh-ruby24 -- bash diff --git a/build/docker-compose.yaml b/build/docker-compose.yaml index 048d468dab..ad1984b8a3 100644 --- a/build/docker-compose.yaml +++ b/build/docker-compose.yaml @@ -2,7 +2,7 @@ version: "3" services: common: &common - image: foundationdb/foundationdb-build:0.1.20 + image: foundationdb/foundationdb-build:0.1.21 build-setup: &build-setup <<: *common From 9d395a926dd9611701c42e616e000e151c3c7503 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sun, 22 Nov 2020 19:23:49 -0800 Subject: [PATCH 053/261] Make ISimulator::ProcessInfo::getListener const --- fdbrpc/simulator.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fdbrpc/simulator.h b/fdbrpc/simulator.h index a4d31c8b05..ba38f9f085 100644 --- a/fdbrpc/simulator.h +++ b/fdbrpc/simulator.h @@ -120,7 +120,7 @@ public: } } - const Reference getListener(const NetworkAddress& addr) { + Reference getListener(const NetworkAddress& addr) const { auto listener = listenerMap.find(addr); ASSERT( listener != listenerMap.end()); return listener->second; From c914620c10b026a68e847fd302a27c1e02168fff Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sun, 22 Nov 2020 19:29:27 -0800 Subject: [PATCH 054/261] Fix signatures for ISimulator methods --- fdbrpc/simulator.h | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/fdbrpc/simulator.h b/fdbrpc/simulator.h index ba38f9f085..d6fa71019c 100644 --- a/fdbrpc/simulator.h +++ b/fdbrpc/simulator.h @@ -86,7 +86,7 @@ public: bool isAvailable() const { return !isExcluded() && isReliable(); } bool isExcluded() const { return excluded; } bool isCleared() const { return cleared; } - std::string getReliableInfo() { + std::string getReliableInfo() const { std::stringstream ss; ss << "failed:" << failed << " fault_injection_p1:" << fault_injection_p1 << " fault_injection_p2:" << fault_injection_p2; @@ -176,12 +176,12 @@ public: virtual bool datacenterDead(Optional> dcId) const = 0; virtual void displayWorkers() const; - virtual void addRole(NetworkAddress const& address, std::string const& role) { + void addRole(NetworkAddress const& address, std::string const& role) { roleAddresses[address][role] ++; TraceEvent("RoleAdd").detail("Address", address).detail("Role", role).detail("NumRoles", roleAddresses[address].size()).detail("Value", roleAddresses[address][role]); } - virtual void removeRole(NetworkAddress const& address, std::string const& role) { + void removeRole(NetworkAddress const& address, std::string const& role) { auto addressIt = roleAddresses.find(address); if (addressIt != roleAddresses.end()) { auto rolesIt = addressIt->second.find(role); @@ -210,7 +210,7 @@ public: } } - virtual std::string getRoles(NetworkAddress const& address, bool skipWorkers = true) const { + std::string getRoles(NetworkAddress const& address, bool skipWorkers = true) const { auto addressIt = roleAddresses.find(address); std::string roleText; if (addressIt != roleAddresses.end()) { @@ -224,20 +224,20 @@ public: return roleText; } - virtual void clearAddress(NetworkAddress const& address) { + void clearAddress(NetworkAddress const& address) { clearedAddresses[address]++; TraceEvent("ClearAddress").detail("Address", address).detail("Value", clearedAddresses[address]); } - virtual bool isCleared(NetworkAddress const& address) const { + bool isCleared(NetworkAddress const& address) const { return clearedAddresses.find(address) != clearedAddresses.end(); } - virtual void excludeAddress(NetworkAddress const& address) { + void excludeAddress(NetworkAddress const& address) { excludedAddresses[address]++; TraceEvent("ExcludeAddress").detail("Address", address).detail("Value", excludedAddresses[address]); } - virtual void includeAddress(NetworkAddress const& address) { + void includeAddress(NetworkAddress const& address) { auto addressIt = excludedAddresses.find(address); if (addressIt != excludedAddresses.end()) { if (addressIt->second > 1) { @@ -253,29 +253,27 @@ public: TraceEvent(SevWarn,"IncludeAddress").detail("Address", address).detail("Result", "Missing"); } } - virtual void includeAllAddresses() { + void includeAllAddresses() { TraceEvent("IncludeAddressAll").detail("AddressTotal", excludedAddresses.size()); excludedAddresses.clear(); } - virtual bool isExcluded(NetworkAddress const& address) const { + bool isExcluded(NetworkAddress const& address) const { return excludedAddresses.find(address) != excludedAddresses.end(); } - virtual void disableSwapToMachine(Optional> zoneId ) { - swapsDisabled.insert(zoneId); - } - virtual void enableSwapToMachine(Optional> zoneId ) { + void disableSwapToMachine(Optional> zoneId) { swapsDisabled.insert(zoneId); } + void enableSwapToMachine(Optional> zoneId) { swapsDisabled.erase(zoneId); allSwapsDisabled = false; } - virtual bool canSwapToMachine(Optional> zoneId ) { + bool canSwapToMachine(Optional> zoneId) const { return swapsDisabled.count( zoneId ) == 0 && !allSwapsDisabled && !extraDB; } - virtual void enableSwapsToAll() { + void enableSwapsToAll() { swapsDisabled.clear(); allSwapsDisabled = false; } - virtual void disableSwapsToAll() { + void disableSwapsToAll() { swapsDisabled.clear(); allSwapsDisabled = true; } From f3c0d26806f105ef30a902a70369fbf040dfd4e5 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sun, 22 Nov 2020 19:49:16 -0800 Subject: [PATCH 055/261] Make ISimulator::BackupAgentType an enum class --- fdbrpc/simulator.h | 21 ++++++++-------- fdbserver/SimulatedCluster.actor.cpp | 12 ++++----- fdbserver/tester.actor.cpp | 25 ++++++++++--------- fdbserver/workloads/AtomicRestore.actor.cpp | 4 +-- .../workloads/AtomicSwitchover.actor.cpp | 4 +-- ...kupAndParallelRestoreCorrectness.actor.cpp | 4 +-- .../workloads/BackupCorrectness.actor.cpp | 5 ++-- fdbserver/workloads/BackupToDBAbort.actor.cpp | 4 +-- .../workloads/BackupToDBCorrectness.actor.cpp | 5 ++-- .../workloads/BackupToDBUpgrade.actor.cpp | 4 +-- fdbserver/workloads/workloads.actor.h | 18 ++++++------- 11 files changed, 55 insertions(+), 51 deletions(-) diff --git a/fdbrpc/simulator.h b/fdbrpc/simulator.h index d6fa71019c..43a05b2cfc 100644 --- a/fdbrpc/simulator.h +++ b/fdbrpc/simulator.h @@ -35,12 +35,16 @@ enum ClogMode { ClogDefault, ClogAll, ClogSend, ClogReceive }; class ISimulator : public INetwork { public: - ISimulator() : desiredCoordinators(1), physicalDatacenters(1), processesPerMachine(0), listenersPerProcess(1), isStopped(false), lastConnectionFailure(0), connectionFailuresDisableDuration(0), speedUpSimulation(false), allSwapsDisabled(false), backupAgents(WaitForType), drAgents(WaitForType), extraDB(nullptr), allowLogSetKills(true), usableRegions(1) {} + ISimulator() + : desiredCoordinators(1), physicalDatacenters(1), processesPerMachine(0), listenersPerProcess(1), + isStopped(false), lastConnectionFailure(0), connectionFailuresDisableDuration(0), speedUpSimulation(false), + allSwapsDisabled(false), backupAgents(BackupAgentType::WaitForType), drAgents(BackupAgentType::WaitForType), extraDB(nullptr), + allowLogSetKills(true), usableRegions(1) {} // Order matters! enum KillType { KillInstantly, InjectFaults, RebootAndDelete, RebootProcessAndDelete, Reboot, RebootProcess, None }; - enum BackupAgentType { NoBackupAgents, WaitForType, BackupToFile, BackupToDB }; + enum class BackupAgentType { NoBackupAgents, WaitForType, BackupToFile, BackupToDB }; // Subclasses may subclass ProcessInfo as well struct MachineInfo; @@ -150,7 +154,7 @@ public: std::set closingFiles; Optional> machineId; - MachineInfo() : machineProcess(0) {} + MachineInfo() : machineProcess(nullptr) {} }; ProcessInfo* getProcess( Endpoint const& endpoint ) { return getProcessByAddress(endpoint.getPrimaryAddress()); } @@ -325,15 +329,12 @@ public: BackupAgentType backupAgents; BackupAgentType drAgents; - virtual flowGlobalType global(int id) const { return getCurrentProcess()->global(id); }; - virtual void setGlobal(size_t id, flowGlobalType v) { getCurrentProcess()->setGlobal(id,v); }; + flowGlobalType global(int id) const final { return getCurrentProcess()->global(id); }; + void setGlobal(size_t id, flowGlobalType v) final { getCurrentProcess()->setGlobal(id, v); }; - virtual void disableFor(const std::string& desc, double time) { - disabledMap[desc] = time; - } + void disableFor(const std::string& desc, double time) { disabledMap[desc] = time; } - virtual double checkDisabled(const std::string& desc) const - { + double checkDisabled(const std::string& desc) const { auto iter = disabledMap.find(desc); if (iter != disabledMap.end()) { return iter->second; diff --git a/fdbserver/SimulatedCluster.actor.cpp b/fdbserver/SimulatedCluster.actor.cpp index 14f5f65438..1d48330e7b 100644 --- a/fdbserver/SimulatedCluster.actor.cpp +++ b/fdbserver/SimulatedCluster.actor.cpp @@ -58,18 +58,18 @@ T simulate( const T& in ) { ACTOR Future runBackup( Reference connFile ) { state std::vector> agentFutures; - while (g_simulator.backupAgents == ISimulator::WaitForType) { + while (g_simulator.backupAgents == ISimulator::BackupAgentType::WaitForType) { wait(delay(1.0)); } - if (g_simulator.backupAgents == ISimulator::BackupToFile) { + if (g_simulator.backupAgents == ISimulator::BackupAgentType::BackupToFile) { Database cx = Database::createDatabase(connFile, -1); state FileBackupAgent fileAgent; state double backupPollDelay = 1.0 / CLIENT_KNOBS->BACKUP_AGGREGATE_POLL_RATE; agentFutures.push_back(fileAgent.run(cx, &backupPollDelay, CLIENT_KNOBS->SIM_BACKUP_TASKS_PER_AGENT)); - while (g_simulator.backupAgents == ISimulator::BackupToFile) { + while (g_simulator.backupAgents == ISimulator::BackupAgentType::BackupToFile) { wait(delay(1.0)); } @@ -85,11 +85,11 @@ ACTOR Future runBackup( Reference connFile ) { ACTOR Future runDr( Reference connFile ) { state std::vector> agentFutures; - while (g_simulator.drAgents == ISimulator::WaitForType) { + while (g_simulator.drAgents == ISimulator::BackupAgentType::WaitForType) { wait(delay(1.0)); } - if (g_simulator.drAgents == ISimulator::BackupToDB) { + if (g_simulator.drAgents == ISimulator::BackupAgentType::BackupToDB) { Database cx = Database::createDatabase(connFile, -1); auto extraFile = makeReference(*g_simulator.extraDB); @@ -106,7 +106,7 @@ ACTOR Future runDr( Reference connFile ) { agentFutures.push_back(extraAgent.run(cx, &dr1PollDelay, CLIENT_KNOBS->SIM_BACKUP_TASKS_PER_AGENT)); agentFutures.push_back(dbAgent.run(extraDB, &dr2PollDelay, CLIENT_KNOBS->SIM_BACKUP_TASKS_PER_AGENT)); - while (g_simulator.drAgents == ISimulator::BackupToDB) { + while (g_simulator.drAgents == ISimulator::BackupAgentType::BackupToDB) { wait(delay(1.0)); } diff --git a/fdbserver/tester.actor.cpp b/fdbserver/tester.actor.cpp index be5c602600..c8b9168f2c 100644 --- a/fdbserver/tester.actor.cpp +++ b/fdbserver/tester.actor.cpp @@ -992,16 +992,16 @@ std::mapsimBackupAgents = ISimulator::BackupToFile; - else - spec->simBackupAgents = ISimulator::NoBackupAgents; - TraceEvent("TestParserTest").detail("ParsedSimBackupAgents", spec->simBackupAgents); + spec->simBackupAgents = ISimulator::BackupAgentType::BackupToFile; + else + spec->simBackupAgents = ISimulator::BackupAgentType::NoBackupAgents; + TraceEvent("TestParserTest").detail("ParsedSimBackupAgents", spec->simBackupAgents); if (value == "BackupToDB" || value == "BackupToFileAndDB") - spec->simDrAgents = ISimulator::BackupToDB; - else - spec->simDrAgents = ISimulator::NoBackupAgents; - TraceEvent("TestParserTest").detail("ParsedSimDrAgents", spec->simDrAgents); + spec->simDrAgents = ISimulator::BackupAgentType::BackupToDB; + else + spec->simDrAgents = ISimulator::BackupAgentType::NoBackupAgents; + TraceEvent("TestParserTest").detail("ParsedSimDrAgents", spec->simDrAgents); }}, { "checkOnly", [](const std::string& value, TestSpec* spec) { if(value == "true") @@ -1197,8 +1197,8 @@ ACTOR Future runTests( Reference runTests( ReferencewaitForQuiescenceEnd ) waitForQuiescenceEnd = true; startDelay = std::max( startDelay, iter->startDelay ); databasePingDelay = std::min( databasePingDelay, iter->databasePingDelay ); - if (iter->simBackupAgents != ISimulator::NoBackupAgents) simBackupAgents = iter->simBackupAgents; + if (iter->simBackupAgents != ISimulator::BackupAgentType::NoBackupAgents) + simBackupAgents = iter->simBackupAgents; - if (iter->simDrAgents != ISimulator::NoBackupAgents) { + if (iter->simDrAgents != ISimulator::BackupAgentType::NoBackupAgents) { simDrAgents = iter->simDrAgents; } enableDD = enableDD || getOption(iter->options[0], LiteralStringRef("enableDD"), false); diff --git a/fdbserver/workloads/AtomicRestore.actor.cpp b/fdbserver/workloads/AtomicRestore.actor.cpp index 4e4f53e5e5..7b44a5ffd3 100644 --- a/fdbserver/workloads/AtomicRestore.actor.cpp +++ b/fdbserver/workloads/AtomicRestore.actor.cpp @@ -132,8 +132,8 @@ struct AtomicRestoreWorkload : TestWorkload { } // SOMEDAY: Remove after backup agents can exist quiescently - if (g_simulator.backupAgents == ISimulator::BackupToFile) { - g_simulator.backupAgents = ISimulator::NoBackupAgents; + if (g_simulator.backupAgents == ISimulator::BackupAgentType::BackupToFile) { + g_simulator.backupAgents = ISimulator::BackupAgentType::NoBackupAgents; } TraceEvent("AtomicRestore_Done"); diff --git a/fdbserver/workloads/AtomicSwitchover.actor.cpp b/fdbserver/workloads/AtomicSwitchover.actor.cpp index e42cfcd36c..2b4c285223 100644 --- a/fdbserver/workloads/AtomicSwitchover.actor.cpp +++ b/fdbserver/workloads/AtomicSwitchover.actor.cpp @@ -168,8 +168,8 @@ struct AtomicSwitchoverWorkload : TestWorkload { TraceEvent("AS_Done"); // SOMEDAY: Remove after backup agents can exist quiescently - if (g_simulator.drAgents == ISimulator::BackupToDB) { - g_simulator.drAgents = ISimulator::NoBackupAgents; + if (g_simulator.drAgents == ISimulator::BackupAgentType::BackupToDB) { + g_simulator.drAgents = ISimulator::BackupAgentType::NoBackupAgents; } return Void(); diff --git a/fdbserver/workloads/BackupAndParallelRestoreCorrectness.actor.cpp b/fdbserver/workloads/BackupAndParallelRestoreCorrectness.actor.cpp index b340f5efea..0a8ce654d6 100644 --- a/fdbserver/workloads/BackupAndParallelRestoreCorrectness.actor.cpp +++ b/fdbserver/workloads/BackupAndParallelRestoreCorrectness.actor.cpp @@ -712,9 +712,9 @@ struct BackupAndParallelRestoreCorrectnessWorkload : TestWorkload { } // SOMEDAY: Remove after backup agents can exist quiescently - if ((g_simulator.backupAgents == ISimulator::BackupToFile) && + if ((g_simulator.backupAgents == ISimulator::BackupAgentType::BackupToFile) && (!BackupAndParallelRestoreCorrectnessWorkload::backupAgentRequests)) { - g_simulator.backupAgents = ISimulator::NoBackupAgents; + g_simulator.backupAgents = ISimulator::BackupAgentType::NoBackupAgents; } } catch (Error& e) { TraceEvent(SevError, "BackupAndParallelRestoreCorrectness").error(e).GetLastError(); diff --git a/fdbserver/workloads/BackupCorrectness.actor.cpp b/fdbserver/workloads/BackupCorrectness.actor.cpp index 3b340be599..5a261181ac 100644 --- a/fdbserver/workloads/BackupCorrectness.actor.cpp +++ b/fdbserver/workloads/BackupCorrectness.actor.cpp @@ -681,8 +681,9 @@ struct BackupAndRestoreCorrectnessWorkload : TestWorkload { } // SOMEDAY: Remove after backup agents can exist quiescently - if ((g_simulator.backupAgents == ISimulator::BackupToFile) && (!BackupAndRestoreCorrectnessWorkload::backupAgentRequests)) { - g_simulator.backupAgents = ISimulator::NoBackupAgents; + if ((g_simulator.backupAgents == ISimulator::BackupAgentType::BackupToFile) && + (!BackupAndRestoreCorrectnessWorkload::backupAgentRequests)) { + g_simulator.backupAgents = ISimulator::BackupAgentType::NoBackupAgents; } } catch (Error& e) { diff --git a/fdbserver/workloads/BackupToDBAbort.actor.cpp b/fdbserver/workloads/BackupToDBAbort.actor.cpp index 442fe79391..896b741dd4 100644 --- a/fdbserver/workloads/BackupToDBAbort.actor.cpp +++ b/fdbserver/workloads/BackupToDBAbort.actor.cpp @@ -83,8 +83,8 @@ struct BackupToDBAbort : TestWorkload { TraceEvent("BDBA_End"); // SOMEDAY: Remove after backup agents can exist quiescently - if (g_simulator.drAgents == ISimulator::BackupToDB) { - g_simulator.drAgents = ISimulator::NoBackupAgents; + if (g_simulator.drAgents == ISimulator::BackupAgentType::BackupToDB) { + g_simulator.drAgents = ISimulator::BackupAgentType::NoBackupAgents; } return Void(); diff --git a/fdbserver/workloads/BackupToDBCorrectness.actor.cpp b/fdbserver/workloads/BackupToDBCorrectness.actor.cpp index 563c317cf1..110dcdab15 100644 --- a/fdbserver/workloads/BackupToDBCorrectness.actor.cpp +++ b/fdbserver/workloads/BackupToDBCorrectness.actor.cpp @@ -564,8 +564,9 @@ struct BackupToDBCorrectnessWorkload : TestWorkload { } // SOMEDAY: Remove after backup agents can exist quiescently - if ((g_simulator.drAgents == ISimulator::BackupToDB) && (!BackupToDBCorrectnessWorkload::drAgentRequests)) { - g_simulator.drAgents = ISimulator::NoBackupAgents; + if ((g_simulator.drAgents == ISimulator::BackupAgentType::BackupToDB) && + (!BackupToDBCorrectnessWorkload::drAgentRequests)) { + g_simulator.drAgents = ISimulator::BackupAgentType::NoBackupAgents; } } catch (Error& e) { diff --git a/fdbserver/workloads/BackupToDBUpgrade.actor.cpp b/fdbserver/workloads/BackupToDBUpgrade.actor.cpp index 3b8383c046..4a5e2f5fa5 100644 --- a/fdbserver/workloads/BackupToDBUpgrade.actor.cpp +++ b/fdbserver/workloads/BackupToDBUpgrade.actor.cpp @@ -449,8 +449,8 @@ struct BackupToDBUpgradeWorkload : TestWorkload { TraceEvent("DRU_Complete").detail("BackupTag", printable(self->backupTag)); - if (g_simulator.drAgents == ISimulator::BackupToDB) { - g_simulator.drAgents = ISimulator::NoBackupAgents; + if (g_simulator.drAgents == ISimulator::BackupAgentType::BackupToDB) { + g_simulator.drAgents = ISimulator::BackupAgentType::NoBackupAgents; } } catch (Error& e) { TraceEvent(SevError, "BackupAndRestoreCorrectnessError").error(e); diff --git a/fdbserver/workloads/workloads.actor.h b/fdbserver/workloads/workloads.actor.h index a363fbd384..8154edc3f7 100644 --- a/fdbserver/workloads/workloads.actor.h +++ b/fdbserver/workloads/workloads.actor.h @@ -164,16 +164,16 @@ public: waitForQuiescenceEnd = true; simCheckRelocationDuration = false; simConnectionFailuresDisableDuration = 0; - simBackupAgents = ISimulator::NoBackupAgents; - simDrAgents = ISimulator::NoBackupAgents; + simBackupAgents = ISimulator::BackupAgentType::NoBackupAgents; + simDrAgents = ISimulator::BackupAgentType::NoBackupAgents; } - TestSpec( StringRef title, bool dump, bool clear, double startDelay = 30.0, bool useDB = true, double databasePingDelay = -1.0 ) : - title( title ), dumpAfterTest( dump ), - clearAfterTest( clear ), startDelay( startDelay ), - useDB( useDB ), timeout( 600 ), - databasePingDelay( databasePingDelay ), runConsistencyCheck( g_network->isSimulated() ), - waitForQuiescenceBegin( true ), waitForQuiescenceEnd( true ), simCheckRelocationDuration( false ), - simConnectionFailuresDisableDuration( 0 ), simBackupAgents( ISimulator::NoBackupAgents ), simDrAgents( ISimulator::NoBackupAgents ) { + TestSpec(StringRef title, bool dump, bool clear, double startDelay = 30.0, bool useDB = true, + double databasePingDelay = -1.0) + : title(title), dumpAfterTest(dump), clearAfterTest(clear), startDelay(startDelay), useDB(useDB), timeout(600), + databasePingDelay(databasePingDelay), runConsistencyCheck(g_network->isSimulated()), + waitForQuiescenceBegin(true), waitForQuiescenceEnd(true), simCheckRelocationDuration(false), + simConnectionFailuresDisableDuration(0), simBackupAgents(ISimulator::BackupAgentType::NoBackupAgents), + simDrAgents(ISimulator::BackupAgentType::NoBackupAgents) { phases = TestWorkload::SETUP | TestWorkload::EXECUTION | TestWorkload::CHECK | TestWorkload::METRICS; if( databasePingDelay < 0 ) databasePingDelay = g_network->isSimulated() ? 0.0 : 15.0; From 2b92cfbde8aafd690fc4e3051142f4ca6575e25a Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sun, 22 Nov 2020 20:09:10 -0800 Subject: [PATCH 056/261] Fix Net2 method signatures --- flow/Net2.actor.cpp | 104 ++++++++++++++++++++++---------------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/flow/Net2.actor.cpp b/flow/Net2.actor.cpp index 6cf1037908..ba0fa2ca8a 100644 --- a/flow/Net2.actor.cpp +++ b/flow/Net2.actor.cpp @@ -120,7 +120,7 @@ struct OrderedTask { thread_local INetwork* thread_network = 0; -class Net2 sealed : public INetwork, public INetworkConnections { +class Net2 final : public INetwork, public INetworkConnections { public: Net2(const TLSConfig& tlsConfig, bool useThreadPool, bool useMetrics); @@ -129,52 +129,52 @@ public: void initMetrics(); // INetworkConnections interface - virtual Future> connect( NetworkAddress toAddr, std::string host ); - virtual Future> createUDPSocket(NetworkAddress toAddr); - virtual Future> createUDPSocket(bool isV6); - virtual Future> resolveTCPEndpoint( std::string host, std::string service); - virtual Reference listen( NetworkAddress localAddr ); + Future> connect( NetworkAddress toAddr, std::string host ) override; + Future> createUDPSocket(NetworkAddress toAddr) override; + Future> createUDPSocket(bool isV6) override; + Future> resolveTCPEndpoint( std::string host, std::string service) override; + Reference listen( NetworkAddress localAddr ) override; // INetwork interface - virtual double now() const override { return currentTime; }; - virtual double timer() override { return ::timer(); }; + double now() const override { return currentTime; }; + double timer() override { return ::timer(); }; double timer_monotonic() override { return ::timer_monotonic(); }; - virtual Future delay(double seconds, TaskPriority taskId) override; - virtual Future yield(TaskPriority taskID) override; - virtual bool check_yield(TaskPriority taskId) override; - virtual TaskPriority getCurrentTask() const override { return currentTaskID; } - virtual void setCurrentTask(TaskPriority taskID ) { currentTaskID = taskID; priorityMetric = (int64_t)taskID; } - virtual void onMainThread( Promise&& signal, TaskPriority taskID ); + Future delay(double seconds, TaskPriority taskId) override; + Future yield(TaskPriority taskID) override; + bool check_yield(TaskPriority taskId) override; + TaskPriority getCurrentTask() const override { return currentTaskID; } + void setCurrentTask(TaskPriority taskID ) override { currentTaskID = taskID; priorityMetric = (int64_t)taskID; } + void onMainThread( Promise&& signal, TaskPriority taskID ) override; bool isOnMainThread() const override { return thread_network == this; } - virtual void stop() { + void stop() override { if ( thread_network == this ) stopImmediately(); else onMainThreadVoid( [this] { this->stopImmediately(); }, nullptr ); } - virtual void addStopCallback( std::function fn ) { + void addStopCallback( std::function fn ) override { if ( thread_network == this ) stopCallbacks.emplace_back(std::move(fn)); else onMainThreadVoid( [this, fn] { this->stopCallbacks.emplace_back(std::move(fn)); }, nullptr ); } - virtual bool isSimulated() const { return false; } - virtual THREAD_HANDLE startThread( THREAD_FUNC_RETURN (*func) (void*), void *arg); + bool isSimulated() const override { return false; } + THREAD_HANDLE startThread( THREAD_FUNC_RETURN (*func) (void*), void *arg) override; - virtual void getDiskBytes( std::string const& directory, int64_t& free, int64_t& total ); - virtual bool isAddressOnThisHost(NetworkAddress const& addr) const override; + void getDiskBytes( std::string const& directory, int64_t& free, int64_t& total ) override; + bool isAddressOnThisHost(NetworkAddress const& addr) const override; void updateNow(){ currentTime = timer_monotonic(); } - virtual flowGlobalType global(int id) const override { return (globals.size() > id) ? globals[id] : nullptr; } - virtual void setGlobal(size_t id, flowGlobalType v) { globals.resize(std::max(globals.size(),id+1)); globals[id] = v; } + flowGlobalType global(int id) const override { return (globals.size() > id) ? globals[id] : nullptr; } + void setGlobal(size_t id, flowGlobalType v) override { globals.resize(std::max(globals.size(),id+1)); globals[id] = v; } std::vector globals; - virtual const TLSConfig& getTLSConfig() const override { return tlsConfig; } + const TLSConfig& getTLSConfig() const override { return tlsConfig; } - virtual bool checkRunnable() override; + bool checkRunnable() override; bool useThreadPool; @@ -353,12 +353,12 @@ struct SendBufferIterator { } }; -class Connection : public IConnection, ReferenceCounted { +class Connection final : public IConnection, ReferenceCounted { public: virtual void addref() { ReferenceCounted::addref(); } virtual void delref() { ReferenceCounted::delref(); } - virtual void close() { + void close() override { closeSocket(); } @@ -394,12 +394,12 @@ public: init(); } - virtual Future acceptHandshake() { return Void(); } + Future acceptHandshake() override { return Void(); } - virtual Future connectHandshake() { return Void(); } + Future connectHandshake() override { return Void(); } // returns when write() can write at least one byte - virtual Future onWritable() { + Future onWritable() override { ++g_net2->countWriteProbes; BindPromise p("N2_WriteProbeError", id); auto f = p.getFuture(); @@ -408,7 +408,7 @@ public: } // returns when read() can read at least one byte - virtual Future onReadable() { + Future onReadable() override { ++g_net2->countReadProbes; BindPromise p("N2_ReadProbeError", id); auto f = p.getFuture(); @@ -417,7 +417,7 @@ public: } // Reads as many bytes as possible from the read buffer into [begin,end) and returns the number of bytes read (might be 0) - virtual int read( uint8_t* begin, uint8_t* end ) { + int read( uint8_t* begin, uint8_t* end ) override { boost::system::error_code err; ++g_net2->countReads; size_t toRead = end-begin; @@ -438,7 +438,7 @@ public: } // Writes as many bytes as possible from the given SendBuffer chain into the write buffer and returns the number of bytes written (might be 0) - virtual int write( SendBuffer const* data, int limit ) { + int write( SendBuffer const* data, int limit ) override { boost::system::error_code err; ++g_net2->countWrites; @@ -467,9 +467,9 @@ public: return sent; } - virtual NetworkAddress getPeerAddress() const override { return peer_address; } + NetworkAddress getPeerAddress() const override { return peer_address; } - virtual UID getDebugID() const override { return id; } + UID getDebugID() const override { return id; } tcp::socket& getSocket() { return socket; } private: @@ -686,7 +686,7 @@ private: } }; -class Listener : public IListener, ReferenceCounted { +class Listener final : public IListener, ReferenceCounted { boost::asio::io_context& io_service; NetworkAddress listenAddress; tcp::acceptor acceptor; @@ -702,11 +702,11 @@ public: virtual void delref() { ReferenceCounted::delref(); } // Returns one incoming connection when it is available - virtual Future> accept() { + Future> accept() override { return doAccept( this ); } - virtual NetworkAddress getListenAddress() const override { return listenAddress; } + NetworkAddress getListenAddress() const override { return listenAddress; } private: ACTOR static Future> doAccept( Listener* self ) { @@ -732,9 +732,9 @@ private: #ifndef TLS_DISABLED typedef boost::asio::ssl::stream ssl_socket; -struct SSLHandshakerThread : IThreadPoolReceiver { +struct SSLHandshakerThread final : IThreadPoolReceiver { SSLHandshakerThread() {} - virtual void init() {} + void init() override {} struct Handshake final : TypedAction { Handshake(ssl_socket &socket, ssl_socket::handshake_type type) : socket(socket), type(type) { @@ -773,12 +773,12 @@ struct SSLHandshakerThread : IThreadPoolReceiver { } }; -class SSLConnection : public IConnection, ReferenceCounted { +class SSLConnection final : public IConnection, ReferenceCounted { public: virtual void addref() { ReferenceCounted::addref(); } virtual void delref() { ReferenceCounted::delref(); } - virtual void close() { + void close() override { closeSocket(); } @@ -902,7 +902,7 @@ public: } } - virtual Future acceptHandshake() { + Future acceptHandshake() override { return acceptHandshakeWrapper( Reference::addRef(this) ); } @@ -964,12 +964,12 @@ public: } } - virtual Future connectHandshake() { + Future connectHandshake() override { return connectHandshakeWrapper( Reference::addRef(this) ); } // returns when write() can write at least one byte - virtual Future onWritable() { + Future onWritable() override { ++g_net2->countWriteProbes; BindPromise p("N2_WriteProbeError", id); auto f = p.getFuture(); @@ -978,7 +978,7 @@ public: } // returns when read() can read at least one byte - virtual Future onReadable() { + Future onReadable() override { ++g_net2->countReadProbes; BindPromise p("N2_ReadProbeError", id); auto f = p.getFuture(); @@ -987,7 +987,7 @@ public: } // Reads as many bytes as possible from the read buffer into [begin,end) and returns the number of bytes read (might be 0) - virtual int read( uint8_t* begin, uint8_t* end ) { + int read( uint8_t* begin, uint8_t* end ) override { boost::system::error_code err; ++g_net2->countReads; size_t toRead = end-begin; @@ -1008,7 +1008,7 @@ public: } // Writes as many bytes as possible from the given SendBuffer chain into the write buffer and returns the number of bytes written (might be 0) - virtual int write( SendBuffer const* data, int limit ) { + int write( SendBuffer const* data, int limit ) override { #ifdef __APPLE__ // For some reason, writing ssl_sock with more than 2016 bytes when socket is writeable sometimes results in a broken pipe error. limit = std::min(limit, 2016); @@ -1041,9 +1041,9 @@ public: return sent; } - virtual NetworkAddress getPeerAddress() const override { return peer_address; } + NetworkAddress getPeerAddress() const override { return peer_address; } - virtual UID getDebugID() const override { return id; } + UID getDebugID() const override { return id; } tcp::socket& getSocket() { return socket; } @@ -1081,7 +1081,7 @@ private: } }; -class SSLListener : public IListener, ReferenceCounted { +class SSLListener final : public IListener, ReferenceCounted { boost::asio::io_context& io_service; NetworkAddress listenAddress; tcp::acceptor acceptor; @@ -1098,11 +1098,11 @@ public: virtual void delref() { ReferenceCounted::delref(); } // Returns one incoming connection when it is available - virtual Future> accept() { + Future> accept() override { return doAccept( this ); } - virtual NetworkAddress getListenAddress() const override { return listenAddress; } + NetworkAddress getListenAddress() const override { return listenAddress; } private: ACTOR static Future> doAccept( SSLListener* self ) { From d15441e85cf25d6186127a9fda05b021370ae352 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Mon, 23 Nov 2020 11:40:24 -0800 Subject: [PATCH 057/261] Replace non-standard sealed with final --- fdbrpc/AsyncFileNonDurable.actor.h | 4 ++-- fdbrpc/fdbrpc.h | 2 +- flow/Histogram.h | 4 ++-- flow/Platform.h | 11 ----------- flow/actorcompiler/ActorParser.cs | 2 +- flow/flow.h | 4 +--- 6 files changed, 7 insertions(+), 20 deletions(-) diff --git a/fdbrpc/AsyncFileNonDurable.actor.h b/fdbrpc/AsyncFileNonDurable.actor.h index 8e0738211a..1e5e39a993 100644 --- a/fdbrpc/AsyncFileNonDurable.actor.h +++ b/fdbrpc/AsyncFileNonDurable.actor.h @@ -53,7 +53,7 @@ Future sendErrorOnShutdown( Future in ) { } } -class AsyncFileDetachable sealed : public IAsyncFile, public ReferenceCounted{ +class AsyncFileDetachable final : public IAsyncFile, public ReferenceCounted { private: Reference file; Future shutdown; @@ -125,7 +125,7 @@ public: //An async file implementation which wraps another async file and will randomly destroy sectors that it is writing when killed //This is used to simulate a power failure which prevents all written data from being persisted to disk -class AsyncFileNonDurable sealed : public IAsyncFile, public ReferenceCounted{ +class AsyncFileNonDurable final : public IAsyncFile, public ReferenceCounted { public: UID id; std::string filename; diff --git a/fdbrpc/fdbrpc.h b/fdbrpc/fdbrpc.h index 489cd6617f..1bafec365a 100644 --- a/fdbrpc/fdbrpc.h +++ b/fdbrpc/fdbrpc.h @@ -104,7 +104,7 @@ struct NetSAV final : SAV, FlowReceiver, FastAllocated> { }; template -class ReplyPromise sealed : public ComposedIdentifier { +class ReplyPromise final : public ComposedIdentifier { public: template void send(U&& value) const { diff --git a/flow/Histogram.h b/flow/Histogram.h index 7cef45b49f..f730996fde 100644 --- a/flow/Histogram.h +++ b/flow/Histogram.h @@ -56,7 +56,7 @@ HistogramRegistry& GetHistogramRegistry(); * For more information about this technique, see: * https://www.fsl.cs.stonybrook.edu/project-osprof.html */ -class Histogram sealed : public ReferenceCounted { +class Histogram final : public ReferenceCounted { public: enum class Unit { microseconds, bytes, bytes_per_second }; @@ -134,4 +134,4 @@ public: uint32_t buckets[32]; }; -#endif // FLOW_HISTOGRAM_H \ No newline at end of file +#endif // FLOW_HISTOGRAM_H diff --git a/flow/Platform.h b/flow/Platform.h index 85a8934c0b..c31950a0b4 100644 --- a/flow/Platform.h +++ b/flow/Platform.h @@ -87,17 +87,6 @@ #error Missing force inline #endif -/* - * Visual Studio 2005 and beyond allow virtual and sealed while - * targetting native code, and we get better error messages at compile - * time with it where appropriate. Not supported with any other - * compiler. - */ -#if _MSC_VER < 1400 -#define sealed -#define override -#endif - /* * Visual Studio (.NET 2003 and beyond) has an __assume compiler * intrinsic to hint to the compiler that a given condition is true diff --git a/flow/actorcompiler/ActorParser.cs b/flow/actorcompiler/ActorParser.cs index 7c95344952..d92bba9d53 100644 --- a/flow/actorcompiler/ActorParser.cs +++ b/flow/actorcompiler/ActorParser.cs @@ -310,7 +310,7 @@ namespace actorcompiler first = toks.First(NonWhitespace); } // http://nongnu.org/hcb/#class-virt-specifier-seq - toks = toks.SkipWhile(t => Whitespace(t) || t.Value == "final" || t.Value == "explicit" || t.Value == "sealed"); + toks = toks.SkipWhile(t => Whitespace(t) || t.Value == "final" || t.Value == "explicit"); first = toks.First(NonWhitespace); if (first.Value == ":" || first.Value == "{") { diff --git a/flow/flow.h b/flow/flow.h index a72465143d..1c8ec235bc 100644 --- a/flow/flow.h +++ b/flow/flow.h @@ -775,8 +775,7 @@ private: }; template -class Promise sealed -{ +class Promise final { public: template void send(U && value) const { @@ -828,7 +827,6 @@ private: SAV *sav; }; - template class FutureStream { public: From 29e10d1418b5ab14b522607eb4105b613b652a8a Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Mon, 23 Nov 2020 12:20:37 -0800 Subject: [PATCH 058/261] Modernize TDMetric signatures --- flow/TDMetric.actor.h | 128 +++++++++++++++++++----------------------- flow/TDMetric.cpp | 2 +- 2 files changed, 60 insertions(+), 70 deletions(-) diff --git a/flow/TDMetric.actor.h b/flow/TDMetric.actor.h index 92cc8d3751..bf0822e9dc 100755 --- a/flow/TDMetric.actor.h +++ b/flow/TDMetric.actor.h @@ -162,12 +162,16 @@ struct MetricUpdateBatch { } }; -template -inline const StringRef metricTypeName() { +template +inline StringRef metricTypeName() { // If this function does not compile then T is not a supported metric type return T::metric_field_type(); } -#define MAKE_TYPENAME(T, S) template<> inline const StringRef metricTypeName() { return LiteralStringRef(S); } +#define MAKE_TYPENAME(T, S) \ + template <> \ + inline StringRef metricTypeName() { \ + return LiteralStringRef(S); \ + } MAKE_TYPENAME(bool, "Bool") MAKE_TYPENAME(int64_t, "Int64") MAKE_TYPENAME(double, "Double") @@ -211,7 +215,7 @@ public: Standalone address; void checkRoll(uint64_t t, int64_t usedBytes); - bool canLog(int level); + bool canLog(int level) const; }; struct MetricData { @@ -743,9 +747,7 @@ struct BaseMetric { // Combines checking this metric's configured minimum level and any collection-wide throttling // This should only be called after it is determined that a metric is enabled. - bool canLog(int level) { - return level >= minLevel && pCollection->canLog(level); - } + bool canLog(int level) const { return level >= minLevel && pCollection->canLog(level); } Standalone metricName; @@ -777,27 +779,24 @@ struct BaseEventMetric : BaseMetric { // is Void and set does nothing. void set(Void const &val) {} - virtual StringRef getTypeName() = 0; + virtual StringRef getTypeName() const = 0; }; template -struct EventMetric : E, ReferenceCounted>, MetricUtil>, BaseEventMetric { +struct EventMetric final : E, ReferenceCounted>, MetricUtil>, BaseEventMetric { EventField time; bool latestRecorded; decltype( tuple_map( MakeEventField(), typename Descriptor::fields() ) ) values; - virtual void addref() { ReferenceCounted>::addref(); } - virtual void delref() { ReferenceCounted>::delref(); } + void addref() override { ReferenceCounted>::addref(); } + void delref() override { ReferenceCounted>::delref(); } EventMetric( MetricNameRef const &name, Void) : BaseEventMetric(name), latestRecorded(false) { } - virtual ~EventMetric() { - } + StringRef getTypeName() const override { return Descriptor::typeName(); } - virtual StringRef getTypeName() { return Descriptor::typeName(); } - - void onEnable() { + void onEnable() override { // Must initialize fields, previously knobs may not have been set. time.init(); initFields( typename Descriptor::field_indexes()); @@ -866,7 +865,7 @@ struct EventMetric : E, ReferenceCounted>, MetricUtil::field_indexes(), mk, rollTime, batch ); if(!latestRecorded) { @@ -885,7 +884,7 @@ struct EventMetric : E, ReferenceCounted>, MetricUtil::field_indexes(), t ); } @@ -900,7 +899,7 @@ struct EventMetric : E, ReferenceCounted>, MetricUtil>& fieldKeys ) { + void registerFields(MetricKeyRef const& mk, std::vector>& fieldKeys) override { time.registerField( mk, fieldKeys ); registerFields( typename Descriptor::field_indexes(), mk, fieldKeys ); } @@ -914,8 +913,9 @@ struct EventMetric : E, ReferenceCounted>, MetricUtil -struct DynamicField : public DynamicFieldBase, EventField { +template +struct DynamicField final : public DynamicFieldBase, EventField { typedef EventField EventFieldType; DynamicField(const char *name) : DynamicFieldBase(), EventFieldType(DynamicDescriptor(name)), value(T()) {} - virtual ~DynamicField() {} - StringRef fieldName() { return EventFieldType::name(); } + StringRef fieldName() const override { return EventFieldType::name(); } // Get the field's datatype, this is used as a form of RTTI by DynamicFieldBase::safe_downcast() - const StringRef getDerivedTypeName() { return metricTypeName(); } + StringRef getDerivedTypeName() const override { return metricTypeName(); } // Pure virtual implementations - void clear() { value = T(); } + void clear() override { value = T(); } - void log(uint64_t t, int64_t l, bool& overflow, int64_t& bytes) { + void log(uint64_t t, int64_t l, bool& overflow, int64_t& bytes) override { return EventFieldType::log(value, t, l, overflow, bytes); } // Redirects to EventFieldType methods - void nextKey( uint64_t t, int level ) { - return EventFieldType::nextKey(t, level); - } - void nextKeyAllLevels( uint64_t t) { - return EventFieldType::nextKeyAllLevels(t); - } - void rollMetric( uint64_t t ) { - return EventFieldType::rollMetric(t); - } - void flushField(MetricKeyRef const &mk, uint64_t rollTime, MetricUpdateBatch &batch) { + void nextKey(uint64_t t, int level) override { return EventFieldType::nextKey(t, level); } + void nextKeyAllLevels(uint64_t t) override { return EventFieldType::nextKeyAllLevels(t); } + void rollMetric(uint64_t t) override { return EventFieldType::rollMetric(t); } + void flushField(MetricKeyRef const& mk, uint64_t rollTime, MetricUpdateBatch& batch) override { return EventFieldType::flushField(mk, rollTime, batch); } - void registerField(MetricKeyRef const &mk, std::vector>& fieldKeys) { + void registerField(MetricKeyRef const& mk, std::vector>& fieldKeys) override { return EventFieldType::registerField(mk, fieldKeys); } - void init() { - return EventFieldType::init(); - } + void init() override { return EventFieldType::init(); } // Set this field's value to the value of another field of exactly the same type. - void setValueFrom(DynamicFieldBase *src, StringRef eventType) { + void setValueFrom(DynamicFieldBase* src, StringRef eventType) override { DynamicField *s = src->safe_downcast(eventType); if(s != nullptr) set(s->value); @@ -1013,7 +1004,7 @@ struct DynamicField : public DynamicFieldBase, EventField clear(); // Not really necessary with proper use but just in case it is better to clear than use an old value. } - DynamicFieldBase * createNewWithValue(const char *name) { + DynamicFieldBase* createNewWithValue(const char* name) override { DynamicField *n = new DynamicField(name); n->set(value); return n; @@ -1027,7 +1018,9 @@ private: }; // A DynamicEventMetric is an EventMetric whose field set can be modified at runtime. -struct DynamicEventMetric : ReferenceCounted, MetricUtil, BaseEventMetric { +struct DynamicEventMetric final : ReferenceCounted, + MetricUtil, + BaseEventMetric { private: EventField time; bool latestRecorded; @@ -1057,8 +1050,8 @@ public: DynamicEventMetric(MetricNameRef const &name, Void = Void()); ~DynamicEventMetric(); - virtual void addref() { ReferenceCounted::addref(); } - virtual void delref() { ReferenceCounted::delref(); } + void addref() override { ReferenceCounted::addref(); } + void delref() override { ReferenceCounted::delref(); } void onEnable() { // Must initialize fields, previously knobs may not have been set. @@ -1116,7 +1109,7 @@ public: return log(explicitTime); } - StringRef getTypeName() { return metricName.name; } + StringRef getTypeName() const override { return metricName.name; } // Set all of the fields to their default values. void clearFields() { @@ -1127,9 +1120,9 @@ public: uint64_t log(uint64_t explicitTime = 0); // Virtual function implementations - void flushData(MetricKeyRef const &mk, uint64_t rollTime, MetricUpdateBatch &batch); - void rollMetric( uint64_t t ); - void registerFields(MetricKeyRef const &mk, std::vector>& fieldKeys); + void flushData(MetricKeyRef const& mk, uint64_t rollTime, MetricUpdateBatch& batch) override; + void rollMetric(uint64_t t) override; + void registerFields(MetricKeyRef const& mk, std::vector>& fieldKeys) override; }; // Continuous metrics are a single-field metric using an EventField> @@ -1140,7 +1133,7 @@ struct TimeAndValue { T value; // The metric field type for TimeAndValue is just the Value type. - static inline const StringRef metric_field_type() { return metricTypeName(); } + static inline StringRef metric_field_type() { return metricTypeName(); } }; // FieldHeader for continuous metrics, works for T = int, double, bool @@ -1220,7 +1213,10 @@ struct FieldValueBlockEncoding> { }; template -struct ContinuousMetric: NonCopyable, ReferenceCounted>, MetricUtil, T>, BaseMetric { +struct ContinuousMetric final : NonCopyable, + ReferenceCounted>, + MetricUtil, T>, + BaseMetric { // Needed for MetricUtil static const StringRef metricType; @@ -1235,14 +1231,14 @@ public: tv.value = initial; } - virtual void addref() { ReferenceCounted>::addref(); } - virtual void delref() { ReferenceCounted>::delref(); } + void addref() override { ReferenceCounted>::addref(); } + void delref() override { ReferenceCounted>::delref(); } T getValue() const { return tv.value; } - void flushData(const MetricKeyRef &mk, uint64_t rollTime, MetricUpdateBatch &batch) { + void flushData(const MetricKeyRef& mk, uint64_t rollTime, MetricUpdateBatch& batch) override { if( !recorded ) { batch.updates.push_back(std::make_pair(mk.packLatestKey(), getLatestAsValue())); recorded = true; @@ -1251,11 +1247,9 @@ public: field.flushField(mk, rollTime, batch); } - void rollMetric(uint64_t t) { - field.rollMetric(t); - } + void rollMetric(uint64_t t) override { field.rollMetric(t); } - Standalone getLatestAsValue() { + Standalone getLatestAsValue() const { FieldValueBlockEncoding< TimeAndValue< T > > enc; BinaryWriter wr(AssumeVersion(currentProtocolVersion)); // Write a header so the client can treat this value like a normal data value block. @@ -1265,14 +1259,12 @@ public: return wr.toValue(); } - void onEnable() { + void onEnable() override { field.init(); change(); } - void onDisable() { - change(); - } + void onDisable() override { change(); } void set(const T &v) { if(v != tv.value) { @@ -1412,9 +1404,7 @@ struct Traceable> : Traceable { template struct SpecialTraceMetricType> : SpecialTraceMetricType { using parent = SpecialTraceMetricType; - static auto getValue(const MetricHandle& value) -> decltype(parent::getValue(value.getValue())) { - return parent::getValue(value.getValue()); - } + static auto getValue(const MetricHandle& value) { return parent::getValue(value.getValue()); } }; typedef MetricHandle Int64MetricHandle; diff --git a/flow/TDMetric.cpp b/flow/TDMetric.cpp index 5ce2e6b79a..d1482e9e1f 100644 --- a/flow/TDMetric.cpp +++ b/flow/TDMetric.cpp @@ -115,7 +115,7 @@ const Standalone MetricKeyRef::packFieldRegKey() const { return wr.toValue(); } -bool TDMetricCollection::canLog(int level) { +bool TDMetricCollection::canLog(int level) const { // Whether a given level can be logged or not depends on the length of the rollTimes queue. // No restriction until queue size reaches METRIC_LIMIT_START_QUEUE_SIZE From baf751e70698cbf994522bdb731656afcdebd094 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Mon, 23 Nov 2020 16:37:45 -0800 Subject: [PATCH 059/261] Use unique_ptr for DynamicEventMetric fields --- flow/TDMetric.actor.h | 35 ++++++++++++++++------------------- flow/TDMetric.cpp | 29 +++++++++-------------------- 2 files changed, 25 insertions(+), 39 deletions(-) diff --git a/flow/TDMetric.actor.h b/flow/TDMetric.actor.h index bf0822e9dc..ec65383df5 100755 --- a/flow/TDMetric.actor.h +++ b/flow/TDMetric.actor.h @@ -949,7 +949,7 @@ struct DynamicFieldBase { virtual void setValueFrom(DynamicFieldBase *src, StringRef eventType) = 0; // Create a new field of the same type and with the same current value as this one and with the given name - virtual DynamicFieldBase * createNewWithValue(const char *name) = 0; + virtual std::unique_ptr createNewWithValue(const char* name) = 0; // This does a fairly cheap and "safe" downcast without using dynamic_cast / RTTI by checking that the pointer value // of the const char * type string is the same as getDerivedTypeName for this object. @@ -1004,8 +1004,8 @@ struct DynamicField final : public DynamicFieldBase, EventField *n = new DynamicField(name); + std::unique_ptr createNewWithValue(const char* name) override { + auto n = std::make_unique>(name); n->set(value); return n; } @@ -1027,7 +1027,7 @@ private: // TODO: A Standalone key type isn't ideal because on lookups a ref will be made Standalone just for the search // All fields that are set with setField will be in fields. - std::map, DynamicFieldBase *> fields; + std::map, std::unique_ptr> fields; // Set of fields not yet registered std::set > fieldsToRegister; @@ -1048,7 +1048,7 @@ private: public: DynamicEventMetric(MetricNameRef const &name, Void = Void()); - ~DynamicEventMetric(); + ~DynamicEventMetric() = default; void addref() override { ReferenceCounted::addref(); } void delref() override { ReferenceCounted::delref(); } @@ -1057,16 +1057,16 @@ public: // Must initialize fields, previously knobs may not have been set. // Note that future fields will be okay because the field constructor will init and the knobs will be set. time.init(); - for(auto f : fields) - f.second->init(); + for (auto& [name, field] : fields) field->init(); } // Set (or create) a new field in the event template void setField(const char *fieldName, const ValueType &value) { StringRef fname((uint8_t *)fieldName, strlen(fieldName)); - DynamicFieldBase *&p = fields[fname]; - if (p != nullptr) { + auto& p = fields[fname]; + // DynamicFieldBase *&p = fields[fname]; + if (p.get() != nullptr) { // FIXME: This will break for DynamicEventMetric instances that are reused, such as use cases outside // of TraceEvents. Currently there are none in the code, and there may never any be but if you're here // because you reused a DynamicEventMetric and got the error below then this issue must be fixed. One @@ -1075,7 +1075,7 @@ public: TraceEvent(SevError, "DuplicateTraceProperty").detail("Property", fieldName).backtrace(); if (g_network->isSimulated()) ASSERT(false); } - p = new DynamicField(fieldName); + p = std::make_unique>(fieldName); if(pCollection != nullptr) p->init(); newFieldAdded(fname); @@ -1094,17 +1094,15 @@ public: // This provides a way to first set fields in a temporary DynamicEventMetric and then push all of those field values // into another DynamicEventMetric (which is actually logging somewhere) and log the event. uint64_t setFieldsAndLogFrom(DynamicEventMetric *source, uint64_t explicitTime = 0) { - for(auto f : source->fields) - { - DynamicFieldBase *&p = fields[f.first]; - if(p == nullptr) { + for (auto& f : source->fields) { + std::unique_ptr& p = fields[f.first]; + if (p.get() == nullptr) { p = f.second->createNewWithValue(f.first.toString().c_str()); if(pCollection != nullptr) p->init(); newFieldAdded(f.first); - } - else - p->setValueFrom(f.second, getTypeName()); + } else + p->setValueFrom(f.second.get(), getTypeName()); } return log(explicitTime); } @@ -1113,8 +1111,7 @@ public: // Set all of the fields to their default values. void clearFields() { - for(auto f : fields) - f.second->clear(); + for (auto& [name, field] : fields) field->clear(); } uint64_t log(uint64_t explicitTime = 0); diff --git a/flow/TDMetric.cpp b/flow/TDMetric.cpp index d1482e9e1f..f25737ea1c 100644 --- a/flow/TDMetric.cpp +++ b/flow/TDMetric.cpp @@ -143,11 +143,6 @@ DynamicEventMetric::DynamicEventMetric(MetricNameRef const& name, Void) : BaseEventMetric(name), newFields(false), latestRecorded(false) { } -DynamicEventMetric::~DynamicEventMetric() { - for(auto &i : fields) - delete i.second; -} - uint64_t DynamicEventMetric::log(uint64_t explicitTime) { if(!enabled) return 0; @@ -169,8 +164,7 @@ uint64_t DynamicEventMetric::log(uint64_t explicitTime) { if(newFields) { // New fields were added so go to new key for all fields (at all levels) so the field parallel data series line up correctly. time.nextKeyAllLevels(t); - for(auto f : fields) - f.second->nextKeyAllLevels(t); + for (auto& [name, field] : fields) field->nextKeyAllLevels(t); newFields = false; } @@ -178,14 +172,12 @@ uint64_t DynamicEventMetric::log(uint64_t explicitTime) { int64_t bytes = 0; time.log(t, t, l, overflow, bytes); - - for(auto f : fields) - f.second->log(t, l, overflow, bytes); - + + for (auto& [name, field] : fields) field->log(t, l, overflow, bytes); + if(overflow) { time.nextKey(t, l); - for(auto f : fields) - f.second->nextKey(t, l); + for (auto& [name, field] : fields) field->nextKey(t, l); } latestRecorded = false; @@ -196,8 +188,7 @@ uint64_t DynamicEventMetric::log(uint64_t explicitTime) { void DynamicEventMetric::flushData(MetricKeyRef const &mk, uint64_t rollTime, MetricUpdateBatch &batch) { time.flushField( mk, rollTime, batch ); - for(auto f : fields) - f.second->flushField(mk, rollTime, batch); + for (auto& [name, field] : fields) field->flushField(mk, rollTime, batch); if(!latestRecorded) { batch.updates.push_back(std::make_pair(mk.packLatestKey(), StringRef())); latestRecorded = true; @@ -206,8 +197,7 @@ void DynamicEventMetric::flushData(MetricKeyRef const &mk, uint64_t rollTime, Me void DynamicEventMetric::rollMetric( uint64_t t ) { time.rollMetric(t); - for(auto f : fields) - f.second->rollMetric(t); + for (auto& f : fields) f.second->rollMetric(t); } void DynamicEventMetric::registerFields(MetricKeyRef const &mk, std::vector>& fieldKeys) { @@ -215,9 +205,8 @@ void DynamicEventMetric::registerFields(MetricKeyRef const &mk, std::vectorregisterField(mk, fieldKeys); - + for (auto& f : fieldsToRegister) fields[f]->registerField(mk, fieldKeys); + // Clear the to-register set. fieldsToRegister.clear(); } From dd3669886e1ed0a44398a92cbec6eb325e525195 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Mon, 23 Nov 2020 18:02:47 -0800 Subject: [PATCH 060/261] Improve IPeekCursor and ILogSystem method signatures --- fdbserver/LogSystem.h | 257 +++++++++----------- fdbserver/TagPartitionedLogSystem.actor.cpp | 18 +- 2 files changed, 129 insertions(+), 146 deletions(-) diff --git a/fdbserver/LogSystem.h b/fdbserver/LogSystem.h index 53371fa3a7..fa0d434c48 100644 --- a/fdbserver/LogSystem.h +++ b/fdbserver/LogSystem.h @@ -399,7 +399,7 @@ struct ILogSystem { virtual void delref() = 0; }; - struct ServerPeekCursor : IPeekCursor, ReferenceCounted { + struct ServerPeekCursor final : IPeekCursor, ReferenceCounted { Reference>> interf; const Tag tag; @@ -428,37 +428,33 @@ struct ILogSystem { ServerPeekCursor( Reference>> const& interf, Tag tag, Version begin, Version end, bool returnIfBlocked, bool parallelGetMore ); ServerPeekCursor( TLogPeekReply const& results, LogMessageVersion const& messageVersion, LogMessageVersion const& end, TagsAndMessage const& message, bool hasMsg, Version poppedVersion, Tag tag ); - virtual Reference cloneNoMore(); - virtual void setProtocolVersion( ProtocolVersion version ); - virtual Arena& arena(); - virtual ArenaReader* reader(); - virtual bool hasMessage(); - virtual void nextMessage(); - virtual StringRef getMessage(); - virtual StringRef getMessageWithTags(); - virtual VectorRef getTags(); - virtual void advanceTo(LogMessageVersion n); - virtual Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply); - virtual Future onFailed(); - virtual bool isActive(); - virtual bool isExhausted(); - virtual const LogMessageVersion& version(); - virtual Version popped(); - virtual Version getMinKnownCommittedVersion(); - virtual Optional getPrimaryPeekLocation(); + Reference cloneNoMore() override; + void setProtocolVersion(ProtocolVersion version) override; + Arena& arena() override; + ArenaReader* reader() override; + bool hasMessage() override; + void nextMessage() override; + StringRef getMessage() override; + StringRef getMessageWithTags() override; + VectorRef getTags() override; + void advanceTo(LogMessageVersion n) override; + Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply) override; + Future onFailed() override; + bool isActive() override; + bool isExhausted() override; + const LogMessageVersion& version() override; + Version popped() override; + Version getMinKnownCommittedVersion() override; + Optional getPrimaryPeekLocation() override; - virtual void addref() { - ReferenceCounted::addref(); - } + void addref() override { ReferenceCounted::addref(); } - virtual void delref() { - ReferenceCounted::delref(); - } + void delref() override { ReferenceCounted::delref(); } - virtual Version getMaxKnownVersion() { return results.maxKnownVersion; } + Version getMaxKnownVersion() override { return results.maxKnownVersion; } }; - struct MergedPeekCursor : IPeekCursor, ReferenceCounted { + struct MergedPeekCursor final : IPeekCursor, ReferenceCounted { Reference logSet; std::vector< Reference > serverCursors; std::vector locations; @@ -476,37 +472,33 @@ struct ILogSystem { MergedPeekCursor( std::vector>>> const& logServers, int bestServer, int readQuorum, Tag tag, Version begin, Version end, bool parallelGetMore, std::vector const& tLogLocalities, Reference const tLogPolicy, int tLogReplicationFactor ); MergedPeekCursor( std::vector< Reference > const& serverCursors, LogMessageVersion const& messageVersion, int bestServer, int readQuorum, Optional nextVersion, Reference logSet, int tLogReplicationFactor ); - virtual Reference cloneNoMore(); - virtual void setProtocolVersion( ProtocolVersion version ); - virtual Arena& arena(); - virtual ArenaReader* reader(); + Reference cloneNoMore() override; + void setProtocolVersion(ProtocolVersion version) override; + Arena& arena() override; + ArenaReader* reader() override; void calcHasMessage(); void updateMessage(bool usePolicy); - virtual bool hasMessage(); - virtual void nextMessage(); - virtual StringRef getMessage(); - virtual StringRef getMessageWithTags(); - virtual VectorRef getTags(); - virtual void advanceTo(LogMessageVersion n); - virtual Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply); - virtual Future onFailed(); - virtual bool isActive(); - virtual bool isExhausted(); - virtual const LogMessageVersion& version(); - virtual Version popped(); - virtual Version getMinKnownCommittedVersion(); - virtual Optional getPrimaryPeekLocation(); + bool hasMessage() override; + void nextMessage() override; + StringRef getMessage() override; + StringRef getMessageWithTags() override; + VectorRef getTags() override; + void advanceTo(LogMessageVersion n) override; + Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply) override; + Future onFailed() override; + bool isActive() override; + bool isExhausted() override; + const LogMessageVersion& version() override; + Version popped() override; + Version getMinKnownCommittedVersion() override; + Optional getPrimaryPeekLocation() override; - virtual void addref() { - ReferenceCounted::addref(); - } + void addref() override { ReferenceCounted::addref(); } - virtual void delref() { - ReferenceCounted::delref(); - } + void delref() override { ReferenceCounted::delref(); } }; - struct SetPeekCursor : IPeekCursor, ReferenceCounted { + struct SetPeekCursor final : IPeekCursor, ReferenceCounted { std::vector> logSets; std::vector< std::vector< Reference > > serverCursors; Tag tag; @@ -523,72 +515,64 @@ struct ILogSystem { SetPeekCursor( std::vector> const& logSets, int bestSet, int bestServer, Tag tag, Version begin, Version end, bool parallelGetMore ); SetPeekCursor( std::vector> const& logSets, std::vector< std::vector< Reference > > const& serverCursors, LogMessageVersion const& messageVersion, int bestSet, int bestServer, Optional nextVersion, bool useBestSet ); - virtual Reference cloneNoMore(); - virtual void setProtocolVersion( ProtocolVersion version ); - virtual Arena& arena(); - virtual ArenaReader* reader(); + Reference cloneNoMore() override; + void setProtocolVersion(ProtocolVersion version) override; + Arena& arena() override; + ArenaReader* reader() override; void calcHasMessage(); void updateMessage(int logIdx, bool usePolicy); - virtual bool hasMessage(); - virtual void nextMessage(); - virtual StringRef getMessage(); - virtual StringRef getMessageWithTags(); - virtual VectorRef getTags(); - virtual void advanceTo(LogMessageVersion n); - virtual Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply); - virtual Future onFailed(); - virtual bool isActive(); - virtual bool isExhausted(); - virtual const LogMessageVersion& version(); - virtual Version popped(); - virtual Version getMinKnownCommittedVersion(); - virtual Optional getPrimaryPeekLocation(); + bool hasMessage() override; + void nextMessage() override; + StringRef getMessage() override; + StringRef getMessageWithTags() override; + VectorRef getTags() override; + void advanceTo(LogMessageVersion n) override; + Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply) override; + Future onFailed() override; + bool isActive() override; + bool isExhausted() override; + const LogMessageVersion& version() override; + Version popped() override; + Version getMinKnownCommittedVersion() override; + Optional getPrimaryPeekLocation() override; - virtual void addref() { - ReferenceCounted::addref(); - } + void addref() override { ReferenceCounted::addref(); } - virtual void delref() { - ReferenceCounted::delref(); - } + void delref() override { ReferenceCounted::delref(); } }; - struct MultiCursor : IPeekCursor, ReferenceCounted { + struct MultiCursor final : IPeekCursor, ReferenceCounted { std::vector> cursors; std::vector epochEnds; Version poppedVersion; MultiCursor( std::vector> cursors, std::vector epochEnds ); - virtual Reference cloneNoMore(); - virtual void setProtocolVersion( ProtocolVersion version ); - virtual Arena& arena(); - virtual ArenaReader* reader(); - virtual bool hasMessage(); - virtual void nextMessage(); - virtual StringRef getMessage(); - virtual StringRef getMessageWithTags(); - virtual VectorRef getTags(); - virtual void advanceTo(LogMessageVersion n); - virtual Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply); - virtual Future onFailed(); - virtual bool isActive(); - virtual bool isExhausted(); - virtual const LogMessageVersion& version(); - virtual Version popped(); - virtual Version getMinKnownCommittedVersion(); - virtual Optional getPrimaryPeekLocation(); + Reference cloneNoMore() override; + void setProtocolVersion(ProtocolVersion version) override; + Arena& arena() override; + ArenaReader* reader() override; + bool hasMessage() override; + void nextMessage() override; + StringRef getMessage() override; + StringRef getMessageWithTags() override; + VectorRef getTags() override; + void advanceTo(LogMessageVersion n) override; + Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply) override; + Future onFailed() override; + bool isActive() override; + bool isExhausted() override; + const LogMessageVersion& version() override; + Version popped() override; + Version getMinKnownCommittedVersion() override; + Optional getPrimaryPeekLocation() override; - virtual void addref() { - ReferenceCounted::addref(); - } + void addref() override { ReferenceCounted::addref(); } - virtual void delref() { - ReferenceCounted::delref(); - } + void delref() override { ReferenceCounted::delref(); } }; - struct BufferedCursor : IPeekCursor, ReferenceCounted { + struct BufferedCursor final : IPeekCursor, ReferenceCounted { struct BufferedMessage { Arena arena; StringRef message; @@ -632,39 +616,35 @@ struct ILogSystem { BufferedCursor( std::vector> cursors, Version begin, Version end, bool withTags, bool collectTags, bool canDiscardPopped ); BufferedCursor( std::vector>>> const& logServers, Tag tag, Version begin, Version end, bool parallelGetMore ); - virtual Reference cloneNoMore(); - virtual void setProtocolVersion( ProtocolVersion version ); - virtual Arena& arena(); - virtual ArenaReader* reader(); - virtual bool hasMessage(); - virtual void nextMessage(); - virtual StringRef getMessage(); - virtual StringRef getMessageWithTags(); - virtual VectorRef getTags(); - virtual void advanceTo(LogMessageVersion n); - virtual Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply); - virtual Future onFailed(); - virtual bool isActive(); - virtual bool isExhausted(); - virtual const LogMessageVersion& version(); - virtual Version popped(); - virtual Version getMinKnownCommittedVersion(); - virtual Optional getPrimaryPeekLocation(); + Reference cloneNoMore() override; + void setProtocolVersion(ProtocolVersion version) override; + Arena& arena() override; + ArenaReader* reader() override; + bool hasMessage() override; + void nextMessage() override; + StringRef getMessage() override; + StringRef getMessageWithTags() override; + VectorRef getTags() override; + void advanceTo(LogMessageVersion n) override; + Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply) override; + Future onFailed() override; + bool isActive() override; + bool isExhausted() override; + const LogMessageVersion& version() override; + Version popped() override; + Version getMinKnownCommittedVersion() override; + Optional getPrimaryPeekLocation() override; - virtual void addref() { - ReferenceCounted::addref(); - } + void addref() override { ReferenceCounted::addref(); } - virtual void delref() { - ReferenceCounted::delref(); - } + void delref() override { ReferenceCounted::delref(); } }; virtual void addref() = 0; virtual void delref() = 0; - virtual std::string describe() = 0; - virtual UID getDebugID() = 0; + virtual std::string describe() const = 0; + virtual UID getDebugID() const = 0; virtual void toCoreState( DBCoreState& ) = 0; @@ -736,9 +716,10 @@ struct ILogSystem { // Ensures that any calls to push or confirmEpochLive in the current epoch but strictly later than change_epoch will not return // Whenever changes in the set of available log servers require restarting recovery with a different end sequence, outLogSystem will be changed to a new ILogSystem - virtual Version getEnd() = 0; - // Call only on an ILogSystem obtained from recoverAndEndEpoch() - // Returns the first unreadable version number of the recovered epoch (i.e. message version numbers < (get_end(), 0) will be readable) + virtual Version getEnd() const = 0; + // Call only on an ILogSystem obtained from recoverAndEndEpoch() + // Returns the first unreadable version number of the recovered epoch (i.e. message version numbers < (get_end(), 0) + // will be readable) // Returns the start version of current epoch for backup workers. virtual Version getBackupStartVersion() const = 0; @@ -759,15 +740,17 @@ struct ILogSystem { // Call only on an ILogSystem obtained from recoverAndEndEpoch() // Returns an ILogSystem representing a new epoch immediately following this one. The new epoch is only provisional until the caller updates the coordinated DBCoreState - virtual LogSystemConfig getLogSystemConfig() = 0; - // Returns the physical configuration of this LogSystem, that could be used to construct an equivalent LogSystem using fromLogSystemConfig() + virtual LogSystemConfig getLogSystemConfig() const = 0; + // Returns the physical configuration of this LogSystem, that could be used to construct an equivalent LogSystem + // using fromLogSystemConfig() - virtual Standalone getLogsValue() = 0; + virtual Standalone getLogsValue() const = 0; virtual Future onLogSystemConfigChange() = 0; // Returns when the log system configuration has changed due to a tlog rejoin. - virtual void getPushLocations(VectorRef tags, std::vector& locations, bool allLocations = false) = 0; + virtual void getPushLocations(VectorRef tags, std::vector& locations, + bool allLocations = false) const = 0; void getPushLocations(std::vector const& tags, std::vector& locations, bool allLocations = false) { getPushLocations(VectorRef((Tag*)&tags.front(), tags.size()), locations, allLocations); @@ -788,9 +771,9 @@ struct ILogSystem { // Returns the pseudo tag to be popped for the given process class. If the // process class doesn't use pseudo tag, return the same tag. - virtual Tag getPseudoPopTag(Tag tag, ProcessClass::ClassType type) = 0; + virtual Tag getPseudoPopTag(Tag tag, ProcessClass::ClassType type) const = 0; - virtual bool hasPseudoLocality(int8_t locality) = 0; + virtual bool hasPseudoLocality(int8_t locality) const = 0; // Returns the actual version to be popped from the log router tag for the given pseudo tag. // For instance, a pseudo tag (-8, 2) means the actual popping tag is (-2, 2). Assuming there diff --git a/fdbserver/TagPartitionedLogSystem.actor.cpp b/fdbserver/TagPartitionedLogSystem.actor.cpp index 1fc9d3526e..42ce0682aa 100644 --- a/fdbserver/TagPartitionedLogSystem.actor.cpp +++ b/fdbserver/TagPartitionedLogSystem.actor.cpp @@ -227,7 +227,7 @@ struct TagPartitionedLogSystem : ILogSystem, ReferenceCounted::delref(); } - std::string describe() final { + std::string describe() const final { std::string result; for( int i = 0; i < tLogs.size(); i++ ) { result += format("%d: ", i); @@ -238,7 +238,7 @@ struct TagPartitionedLogSystem : ILogSystem, ReferenceCounted 0; } + bool hasPseudoLocality(int8_t locality) const final { return pseudoLocalities.count(locality) > 0; } // Return the min version of all pseudoLocalities, i.e., logRouter and backupTag Version popPseudoLocalityTag(Tag tag, Version upTo) final { @@ -1364,7 +1364,7 @@ struct TagPartitionedLogSystem : ILogSystem, ReferenceCounted::addRef(this), recr, fRemoteWorkers, config, recoveryCount, primaryLocality, remoteLocality, allTags, recruitmentStalled ); } - LogSystemConfig getLogSystemConfig() final { + LogSystemConfig getLogSystemConfig() const final { LogSystemConfig logSystemConfig(epoch); logSystemConfig.logSystemType = logSystemType; logSystemConfig.expectedLogSets = expectedLogSets; @@ -1389,7 +1389,7 @@ struct TagPartitionedLogSystem : ILogSystem, ReferenceCounted getLogsValue() final { + Standalone getLogsValue() const final { vector> logs; vector> oldLogs; for(auto& t : tLogs) { @@ -1434,19 +1434,19 @@ struct TagPartitionedLogSystem : ILogSystem, ReferenceCounted::max(); } - void getPushLocations(VectorRef tags, std::vector& locations, bool allLocations) final { + void getPushLocations(VectorRef tags, std::vector& locations, bool allLocations) const final { int locationOffset = 0; for(auto& log : tLogs) { if(log->isLocal && log->logServers.size()) { From f8934664ee256cf43b005491c650eb4ab214d063 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Mon, 23 Nov 2020 18:58:46 -0800 Subject: [PATCH 061/261] s/NULL/nullptr in FDBLibTLS --- FDBLibTLS/FDBLibTLSPlugin.cpp | 4 +-- FDBLibTLS/FDBLibTLSPolicy.cpp | 58 +++++++++++++++++----------------- FDBLibTLS/FDBLibTLSSession.cpp | 50 ++++++++++++++--------------- FDBLibTLS/FDBLibTLSVerify.cpp | 2 +- 4 files changed, 57 insertions(+), 57 deletions(-) diff --git a/FDBLibTLS/FDBLibTLSPlugin.cpp b/FDBLibTLS/FDBLibTLSPlugin.cpp index 6bcdb48600..bb676dc4c2 100644 --- a/FDBLibTLS/FDBLibTLSPlugin.cpp +++ b/FDBLibTLS/FDBLibTLSPlugin.cpp @@ -38,7 +38,7 @@ ITLSPolicy *FDBLibTLSPlugin::create_policy() { if (rc < 0) { // Log the failure from tls_init during our constructor. TraceEvent(SevError, "FDBLibTLSInitError").detail("LibTLSErrorMessage", "failed to initialize libtls"); - return NULL; + return nullptr; } return new FDBLibTLSPolicy(Reference::addRef(this)); } @@ -47,5 +47,5 @@ extern "C" BOOST_SYMBOL_EXPORT void *get_tls_plugin(const char *plugin_type_name if (strcmp(plugin_type_name_and_version, FDBLibTLSPlugin::get_plugin_type_name_and_version()) == 0) { return new FDBLibTLSPlugin; } - return NULL; + return nullptr; } diff --git a/FDBLibTLS/FDBLibTLSPolicy.cpp b/FDBLibTLS/FDBLibTLSPolicy.cpp index 673b686e83..0ae4a68703 100644 --- a/FDBLibTLS/FDBLibTLSPolicy.cpp +++ b/FDBLibTLS/FDBLibTLSPolicy.cpp @@ -37,11 +37,11 @@ #include #include -FDBLibTLSPolicy::FDBLibTLSPolicy(Reference plugin): - plugin(plugin), tls_cfg(NULL), roots(NULL), session_created(false), ca_data_set(false), - cert_data_set(false), key_data_set(false), verify_peers_set(false) { +FDBLibTLSPolicy::FDBLibTLSPolicy(Reference plugin) + : plugin(plugin), tls_cfg(nullptr), roots(nullptr), session_created(false), ca_data_set(false), cert_data_set(false), + key_data_set(false), verify_peers_set(false) { - if ((tls_cfg = tls_config_new()) == NULL) { + if ((tls_cfg = tls_config_new()) == nullptr) { TraceEvent(SevError, "FDBLibTLSConfigError"); throw std::runtime_error("FDBLibTLSConfigError"); } @@ -55,29 +55,31 @@ FDBLibTLSPolicy::~FDBLibTLSPolicy() { tls_config_free(tls_cfg); } -ITLSSession* FDBLibTLSPolicy::create_session(bool is_client, const char* servername, TLSSendCallbackFunc send_func, void* send_ctx, TLSRecvCallbackFunc recv_func, void* recv_ctx, void* uid) { +ITLSSession* FDBLibTLSPolicy::create_session(bool is_client, const char* servername, TLSSendCallbackFunc send_func, + void* send_ctx, TLSRecvCallbackFunc recv_func, void* recv_ctx, void* uid) { if (is_client) { // If verify peers has been set then there is no point specifying a // servername, since this will be ignored - the servername should be // matched by the verify criteria instead. - if (verify_peers_set && servername != NULL) { + if (verify_peers_set && servername != nullptr) { TraceEvent(SevError, "FDBLibTLSVerifyPeersWithServerName"); - return NULL; + return nullptr; } // If verify peers has not been set, then require a server name to // avoid an accidental lack of name validation. - if (!verify_peers_set && servername == NULL) { + if (!verify_peers_set && servername == nullptr) { TraceEvent(SevError, "FDBLibTLSNoServerName"); - return NULL; + return nullptr; } } session_created = true; try { - return new FDBLibTLSSession(Reference::addRef(this), is_client, servername, send_func, send_ctx, recv_func, recv_ctx, uid); + return new FDBLibTLSSession(Reference::addRef(this), is_client, servername, send_func, + send_ctx, recv_func, recv_ctx, uid); } catch ( ... ) { - return NULL; + return nullptr; } } @@ -87,8 +89,7 @@ static int password_cb(char *buf, int size, int rwflag, void *u) { if (size < 0) return 0; - if (u == NULL) - return 0; + if (u == nullptr) return 0; plen = strlen(password); if (plen > size) @@ -102,24 +103,24 @@ static int password_cb(char *buf, int size, int rwflag, void *u) { } struct stack_st_X509* FDBLibTLSPolicy::parse_cert_pem(const uint8_t* cert_pem, size_t cert_pem_len) { - struct stack_st_X509 *certs = NULL; - X509 *cert = NULL; - BIO *bio = NULL; + struct stack_st_X509* certs = nullptr; + X509* cert = nullptr; + BIO* bio = nullptr; int errnum; if (cert_pem_len > INT_MAX) goto err; - if ((bio = BIO_new_mem_buf((void *)cert_pem, cert_pem_len)) == NULL) { + if ((bio = BIO_new_mem_buf((void*)cert_pem, cert_pem_len)) == nullptr) { TraceEvent(SevError, "FDBLibTLSOutOfMemory"); goto err; } - if ((certs = sk_X509_new_null()) == NULL) { + if ((certs = sk_X509_new_null()) == nullptr) { TraceEvent(SevError, "FDBLibTLSOutOfMemory"); goto err; } ERR_clear_error(); - while ((cert = PEM_read_bio_X509(bio, NULL, password_cb, NULL)) != NULL) { + while ((cert = PEM_read_bio_X509(bio, nullptr, password_cb, nullptr)) != nullptr) { if (!sk_X509_push(certs, cert)) { TraceEvent(SevError, "FDBLibTLSOutOfMemory"); goto err; @@ -150,7 +151,7 @@ struct stack_st_X509* FDBLibTLSPolicy::parse_cert_pem(const uint8_t* cert_pem, s X509_free(cert); BIO_free(bio); - return NULL; + return nullptr; } bool FDBLibTLSPolicy::set_ca_data(const uint8_t* ca_data, int ca_len) { @@ -166,8 +167,7 @@ bool FDBLibTLSPolicy::set_ca_data(const uint8_t* ca_data, int ca_len) { if (ca_len < 0) return false; sk_X509_pop_free(roots, X509_free); - if ((roots = parse_cert_pem(ca_data, ca_len)) == NULL) - return false; + if ((roots = parse_cert_pem(ca_data, ca_len)) == nullptr) return false; if (tls_config_set_ca_mem(tls_cfg, ca_data, ca_len) == -1) { TraceEvent(SevError, "FDBLibTLSCAError").detail("LibTLSErrorMessage", tls_config_error(tls_cfg)); @@ -200,8 +200,8 @@ bool FDBLibTLSPolicy::set_cert_data(const uint8_t* cert_data, int cert_len) { } bool FDBLibTLSPolicy::set_key_data(const uint8_t* key_data, int key_len, const char* password) { - EVP_PKEY *key = NULL; - BIO *bio = NULL; + EVP_PKEY* key = nullptr; + BIO* bio = nullptr; bool rc = false; if (key_data_set) { @@ -213,16 +213,16 @@ bool FDBLibTLSPolicy::set_key_data(const uint8_t* key_data, int key_len, const c goto err; } - if (password != NULL) { + if (password != nullptr) { char *data; long len; - if ((bio = BIO_new_mem_buf((void *)key_data, key_len)) == NULL) { + if ((bio = BIO_new_mem_buf((void*)key_data, key_len)) == nullptr) { TraceEvent(SevError, "FDBLibTLSOutOfMemory"); goto err; } ERR_clear_error(); - if ((key = PEM_read_bio_PrivateKey(bio, NULL, password_cb, (void *)password)) == NULL) { + if ((key = PEM_read_bio_PrivateKey(bio, nullptr, password_cb, (void*)password)) == nullptr) { int errnum = ERR_peek_error(); char errbuf[256]; @@ -236,11 +236,11 @@ bool FDBLibTLSPolicy::set_key_data(const uint8_t* key_data, int key_len, const c goto err; } BIO_free(bio); - if ((bio = BIO_new(BIO_s_mem())) == NULL) { + if ((bio = BIO_new(BIO_s_mem())) == nullptr) { TraceEvent(SevError, "FDBLibTLSOutOfMemory"); goto err; } - if (!PEM_write_bio_PrivateKey(bio, key, NULL, NULL, 0, NULL, NULL)) { + if (!PEM_write_bio_PrivateKey(bio, key, nullptr, nullptr, 0, nullptr, nullptr)) { TraceEvent(SevError, "FDBLibTLSOutOfMemory"); goto err; } diff --git a/FDBLibTLS/FDBLibTLSSession.cpp b/FDBLibTLS/FDBLibTLSSession.cpp index d81dc4e509..1b42859b98 100644 --- a/FDBLibTLS/FDBLibTLSSession.cpp +++ b/FDBLibTLS/FDBLibTLSSession.cpp @@ -60,14 +60,16 @@ static ssize_t tls_write_func(struct tls *ctx, const void *buf, size_t buflen, v return (ssize_t)rv; } -FDBLibTLSSession::FDBLibTLSSession(Reference policy, bool is_client, const char* servername, TLSSendCallbackFunc send_func, void* send_ctx, TLSRecvCallbackFunc recv_func, void* recv_ctx, void* uidptr) : - tls_ctx(NULL), tls_sctx(NULL), is_client(is_client), policy(policy), send_func(send_func), send_ctx(send_ctx), - recv_func(recv_func), recv_ctx(recv_ctx), handshake_completed(false), lastVerifyFailureLogged(0.0) { +FDBLibTLSSession::FDBLibTLSSession(Reference policy, bool is_client, const char* servername, + TLSSendCallbackFunc send_func, void* send_ctx, TLSRecvCallbackFunc recv_func, + void* recv_ctx, void* uidptr) + : tls_ctx(nullptr), tls_sctx(nullptr), is_client(is_client), policy(policy), send_func(send_func), send_ctx(send_ctx), + recv_func(recv_func), recv_ctx(recv_ctx), handshake_completed(false), lastVerifyFailureLogged(0.0) { if (uidptr) uid = * (UID*) uidptr; if (is_client) { - if ((tls_ctx = tls_client()) == NULL) { + if ((tls_ctx = tls_client()) == nullptr) { TraceEvent(SevError, "FDBLibTLSClientError", uid); throw std::runtime_error("FDBLibTLSClientError"); } @@ -82,7 +84,7 @@ FDBLibTLSSession::FDBLibTLSSession(Reference policy, bool is_cl throw std::runtime_error("FDBLibTLSConnectError"); } } else { - if ((tls_sctx = tls_server()) == NULL) { + if ((tls_sctx = tls_server()) == nullptr) { TraceEvent(SevError, "FDBLibTLSServerError", uid); throw std::runtime_error("FDBLibTLSServerError"); } @@ -108,14 +110,13 @@ FDBLibTLSSession::~FDBLibTLSSession() { bool match_criteria_entry(const std::string& criteria, ASN1_STRING* entry, MatchType mt) { bool rc = false; - ASN1_STRING* asn_criteria = NULL; - unsigned char* criteria_utf8 = NULL; + ASN1_STRING* asn_criteria = nullptr; + unsigned char* criteria_utf8 = nullptr; int criteria_utf8_len = 0; - unsigned char* entry_utf8 = NULL; + unsigned char* entry_utf8 = nullptr; int entry_utf8_len = 0; - if ((asn_criteria = ASN1_IA5STRING_new()) == NULL) - goto err; + if ((asn_criteria = ASN1_IA5STRING_new()) == nullptr) goto err; if (ASN1_STRING_set(asn_criteria, criteria.c_str(), criteria.size()) != 1) goto err; if ((criteria_utf8_len = ASN1_STRING_to_UTF8(&criteria_utf8, asn_criteria)) < 1) @@ -152,8 +153,7 @@ bool match_name_criteria(X509_NAME *name, NID nid, const std::string& criteria, return false; if (X509_NAME_get_index_by_NID(name, nid, idx) != -1) return false; - if ((name_entry = X509_NAME_get_entry(name, idx)) == NULL) - return false; + if ((name_entry = X509_NAME_get_entry(name, idx)) == nullptr) return false; return match_criteria_entry(criteria, name_entry->value, mt); } @@ -169,8 +169,9 @@ bool match_extension_criteria(X509 *cert, NID nid, const std::string& value, Mat } std::string value_gen = value.substr(0, pos); std::string value_val = value.substr(pos+1, value.npos); - STACK_OF(GENERAL_NAME)* sans = reinterpret_cast(X509_get_ext_d2i(cert, nid, NULL, NULL)); - if (sans == NULL) { + STACK_OF(GENERAL_NAME)* sans = + reinterpret_cast(X509_get_ext_d2i(cert, nid, nullptr, nullptr)); + if (sans == nullptr) { return false; } int num_sans = sk_GENERAL_NAME_num( sans ); @@ -231,10 +232,10 @@ bool match_criteria(X509* cert, X509_NAME* subject, NID nid, const std::string& } std::tuple FDBLibTLSSession::check_verify(Reference verify, struct stack_st_X509 *certs) { - X509_STORE_CTX *store_ctx = NULL; + X509_STORE_CTX* store_ctx = nullptr; X509_NAME *subject, *issuer; bool rc = false; - X509* cert = NULL; + X509* cert = nullptr; // if returning false, give a reason string std::string reason = ""; @@ -243,12 +244,12 @@ std::tuple FDBLibTLSSession::check_verify(Reference FDBLibTLSSession::check_verify(Referencechain, 0); - if ((subject = X509_get_subject_name(cert)) == NULL) { + if ((subject = X509_get_subject_name(cert)) == nullptr) { reason = "Cert subject error"; goto err; } @@ -276,7 +277,7 @@ std::tuple FDBLibTLSSession::check_verify(Reference FDBLibTLSSession::check_verify(Referencechain, sk_X509_num(store_ctx->chain) - 1); - if ((subject = X509_get_subject_name(cert)) == NULL) { + if ((subject = X509_get_subject_name(cert)) == nullptr) { reason = "Root subject error"; goto err; } @@ -310,7 +311,7 @@ std::tuple FDBLibTLSSession::check_verify(Referenceverify_rules.empty()) return true; - if ((cert_pem = tls_peer_cert_chain_pem(tls_ctx, &cert_pem_len)) == NULL) { + if ((cert_pem = tls_peer_cert_chain_pem(tls_ctx, &cert_pem_len)) == nullptr) { TraceEvent(SevError, "FDBLibTLSNoCertError", uid); goto err; } - if ((certs = policy->parse_cert_pem(cert_pem, cert_pem_len)) == NULL) - goto err; + if ((certs = policy->parse_cert_pem(cert_pem, cert_pem_len)) == nullptr) goto err; // Any matching rule is sufficient. for (auto &verify_rule: policy->verify_rules) { diff --git a/FDBLibTLS/FDBLibTLSVerify.cpp b/FDBLibTLS/FDBLibTLSVerify.cpp index 594389916f..e6b9259e46 100644 --- a/FDBLibTLS/FDBLibTLSVerify.cpp +++ b/FDBLibTLS/FDBLibTLSVerify.cpp @@ -147,7 +147,7 @@ static NID abbrevToNID(std::string const& sn) { static X509Location locationForNID(NID nid) { const char* name = OBJ_nid2ln(nid); - if (name == NULL) { + if (name == nullptr) { throw std::runtime_error("locationForNID"); } if (strncmp(name, "X509v3", 6) == 0) { From c324e80663fa3c1b2adabc2768964ebbcda78fff Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Mon, 23 Nov 2020 19:27:09 -0800 Subject: [PATCH 062/261] Use unique_ptr for g_tracer --- flow/Tracing.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/flow/Tracing.cpp b/flow/Tracing.cpp index 5f3b643cfc..b44f1f847f 100644 --- a/flow/Tracing.cpp +++ b/flow/Tracing.cpp @@ -20,6 +20,8 @@ #include "flow/Tracing.h" +#include + namespace { struct NoopTracer : ITracer { @@ -47,7 +49,7 @@ struct LogfileTracer : ITracer { } }; -ITracer* g_tracer = new NoopTracer(); +std::unique_ptr g_tracer = std::make_unique(); } // namespace @@ -55,13 +57,12 @@ void openTracer(TracerType type) { if (g_tracer->type() == type) { return; } - delete g_tracer; switch (type) { case TracerType::DISABLED: - g_tracer = new NoopTracer{}; + g_tracer = std::make_unique(); break; case TracerType::LOG_FILE: - g_tracer = new LogfileTracer{}; + g_tracer = std::make_unique(); break; case TracerType::END: ASSERT(false); From fad43687d1b06a5a7dc936eaab6f90b83ce2ad39 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Mon, 23 Nov 2020 20:29:56 -0800 Subject: [PATCH 063/261] Make g_net2 a unique_ptr --- flow/Net2.actor.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/flow/Net2.actor.cpp b/flow/Net2.actor.cpp index ba0fa2ca8a..2bd17408bc 100644 --- a/flow/Net2.actor.cpp +++ b/flow/Net2.actor.cpp @@ -55,6 +55,8 @@ #endif #include "flow/actorcompiler.h" // This must be the last #include. +#include + // Defined to track the stack limit extern "C" intptr_t g_stackYieldLimit; intptr_t g_stackYieldLimit = 0; @@ -103,7 +105,7 @@ class Net2; class Peer; class Connection; -Net2 *g_net2 = 0; +std::unique_ptr g_net2 = 0; class Task { public: @@ -1900,7 +1902,7 @@ void ASIOReactor::wake() { INetwork* newNet2(const TLSConfig& tlsConfig, bool useThreadPool, bool useMetrics) { try { - N2::g_net2 = new N2::Net2(tlsConfig, useThreadPool, useMetrics); + N2::g_net2 = std::make_unique(tlsConfig, useThreadPool, useMetrics); } catch(boost::system::system_error e) { TraceEvent("Net2InitError").detail("Message", e.what()); @@ -1911,7 +1913,7 @@ INetwork* newNet2(const TLSConfig& tlsConfig, bool useThreadPool, bool useMetric throw unknown_error(); } - return N2::g_net2; + return N2::g_net2.get(); } struct TestGVR { From 5020e3faa19bb6040b96f6ee515cb791c66669b6 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Mon, 23 Nov 2020 20:59:53 -0800 Subject: [PATCH 064/261] Make ILogSystem::IPeekCursor const-correct --- fdbserver/LogSystem.h | 100 ++++++++++++------------ fdbserver/LogSystemPeekCursor.actor.cpp | 91 +++++++++++---------- 2 files changed, 101 insertions(+), 90 deletions(-) diff --git a/fdbserver/LogSystem.h b/fdbserver/LogSystem.h index fa0d434c48..34df260f05 100644 --- a/fdbserver/LogSystem.h +++ b/fdbserver/LogSystem.h @@ -329,11 +329,11 @@ struct ILogSystem { //if hasMessage() returns true, getMessage(), getMessageWithTags(), or reader() can be called. //does not modify the cursor - virtual bool hasMessage() = 0; + virtual bool hasMessage() const = 0; //pre: only callable if hasMessage() returns true //return the tags associated with the message for the current sequence - virtual VectorRef getTags() = 0; + virtual VectorRef getTags() const = 0; //pre: only callable if hasMessage() returns true //returns the arena containing the contents of getMessage(), getMessageWithTags(), and reader() @@ -374,25 +374,25 @@ struct ILogSystem { // (1) the failure monitor detects that the servers associated with the cursor is failed // (2) the interface is not present // (3) the cursor cannot return any more results - virtual bool isActive() = 0; + virtual bool isActive() const = 0; //returns true if the cursor cannot return any more results - virtual bool isExhausted() = 0; + virtual bool isExhausted() const = 0; // Returns the smallest possible message version which the current message (if any) or a subsequent message might have // (If hasMessage(), this is therefore the message version of the current message) - virtual const LogMessageVersion& version() = 0; + virtual const LogMessageVersion& version() const = 0; //So far, the cursor has returned all messages which both satisfy the criteria passed to peek() to create the cursor AND have (popped(),0) <= message version number <= version() //Other messages might have been skipped - virtual Version popped() = 0; + virtual Version popped() const = 0; // Returns the maximum version known to have been pushed (not necessarily durably) into the log system (0 is always a possible result!) - virtual Version getMaxKnownVersion() { return 0; } + virtual Version getMaxKnownVersion() const { return 0; } - virtual Version getMinKnownCommittedVersion() = 0; + virtual Version getMinKnownCommittedVersion() const = 0; - virtual Optional getPrimaryPeekLocation() = 0; + virtual Optional getPrimaryPeekLocation() const = 0; virtual void addref() = 0; @@ -432,26 +432,26 @@ struct ILogSystem { void setProtocolVersion(ProtocolVersion version) override; Arena& arena() override; ArenaReader* reader() override; - bool hasMessage() override; + bool hasMessage() const override; void nextMessage() override; StringRef getMessage() override; StringRef getMessageWithTags() override; - VectorRef getTags() override; + VectorRef getTags() const override; void advanceTo(LogMessageVersion n) override; Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply) override; Future onFailed() override; - bool isActive() override; - bool isExhausted() override; - const LogMessageVersion& version() override; - Version popped() override; - Version getMinKnownCommittedVersion() override; - Optional getPrimaryPeekLocation() override; + bool isActive() const override; + bool isExhausted() const override; + const LogMessageVersion& version() const override; + Version popped() const override; + Version getMinKnownCommittedVersion() const override; + Optional getPrimaryPeekLocation() const override; void addref() override { ReferenceCounted::addref(); } void delref() override { ReferenceCounted::delref(); } - Version getMaxKnownVersion() override { return results.maxKnownVersion; } + Version getMaxKnownVersion() const override { return results.maxKnownVersion; } }; struct MergedPeekCursor final : IPeekCursor, ReferenceCounted { @@ -478,20 +478,20 @@ struct ILogSystem { ArenaReader* reader() override; void calcHasMessage(); void updateMessage(bool usePolicy); - bool hasMessage() override; + bool hasMessage() const override; void nextMessage() override; StringRef getMessage() override; StringRef getMessageWithTags() override; - VectorRef getTags() override; + VectorRef getTags() const override; void advanceTo(LogMessageVersion n) override; Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply) override; Future onFailed() override; - bool isActive() override; - bool isExhausted() override; - const LogMessageVersion& version() override; - Version popped() override; - Version getMinKnownCommittedVersion() override; - Optional getPrimaryPeekLocation() override; + bool isActive() const override; + bool isExhausted() const override; + const LogMessageVersion& version() const override; + Version popped() const override; + Version getMinKnownCommittedVersion() const override; + Optional getPrimaryPeekLocation() const override; void addref() override { ReferenceCounted::addref(); } @@ -521,20 +521,20 @@ struct ILogSystem { ArenaReader* reader() override; void calcHasMessage(); void updateMessage(int logIdx, bool usePolicy); - bool hasMessage() override; + bool hasMessage() const override; void nextMessage() override; StringRef getMessage() override; StringRef getMessageWithTags() override; - VectorRef getTags() override; + VectorRef getTags() const override; void advanceTo(LogMessageVersion n) override; Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply) override; Future onFailed() override; - bool isActive() override; - bool isExhausted() override; - const LogMessageVersion& version() override; - Version popped() override; - Version getMinKnownCommittedVersion() override; - Optional getPrimaryPeekLocation() override; + bool isActive() const override; + bool isExhausted() const override; + const LogMessageVersion& version() const override; + Version popped() const override; + Version getMinKnownCommittedVersion() const override; + Optional getPrimaryPeekLocation() const override; void addref() override { ReferenceCounted::addref(); } @@ -552,20 +552,20 @@ struct ILogSystem { void setProtocolVersion(ProtocolVersion version) override; Arena& arena() override; ArenaReader* reader() override; - bool hasMessage() override; + bool hasMessage() const override; void nextMessage() override; StringRef getMessage() override; StringRef getMessageWithTags() override; - VectorRef getTags() override; + VectorRef getTags() const override; void advanceTo(LogMessageVersion n) override; Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply) override; Future onFailed() override; - bool isActive() override; - bool isExhausted() override; - const LogMessageVersion& version() override; - Version popped() override; - Version getMinKnownCommittedVersion() override; - Optional getPrimaryPeekLocation() override; + bool isActive() const override; + bool isExhausted() const override; + const LogMessageVersion& version() const override; + Version popped() const override; + Version getMinKnownCommittedVersion() const override; + Optional getPrimaryPeekLocation() const override; void addref() override { ReferenceCounted::addref(); } @@ -620,20 +620,20 @@ struct ILogSystem { void setProtocolVersion(ProtocolVersion version) override; Arena& arena() override; ArenaReader* reader() override; - bool hasMessage() override; + bool hasMessage() const override; void nextMessage() override; StringRef getMessage() override; StringRef getMessageWithTags() override; - VectorRef getTags() override; + VectorRef getTags() const override; void advanceTo(LogMessageVersion n) override; Future getMore(TaskPriority taskID = TaskPriority::TLogPeekReply) override; Future onFailed() override; - bool isActive() override; - bool isExhausted() override; - const LogMessageVersion& version() override; - Version popped() override; - Version getMinKnownCommittedVersion() override; - Optional getPrimaryPeekLocation() override; + bool isActive() const override; + bool isExhausted() const override; + const LogMessageVersion& version() const override; + Version popped() const override; + Version getMinKnownCommittedVersion() const override; + Optional getPrimaryPeekLocation() const override; void addref() override { ReferenceCounted::addref(); } diff --git a/fdbserver/LogSystemPeekCursor.actor.cpp b/fdbserver/LogSystemPeekCursor.actor.cpp index d774d8e438..20d224262f 100644 --- a/fdbserver/LogSystemPeekCursor.actor.cpp +++ b/fdbserver/LogSystemPeekCursor.actor.cpp @@ -62,7 +62,7 @@ ArenaReader* ILogSystem::ServerPeekCursor::reader() { return &rd; } -bool ILogSystem::ServerPeekCursor::hasMessage() { +bool ILogSystem::ServerPeekCursor::hasMessage() const { //TraceEvent("SPC_HasMessage", randomID).detail("HasMsg", hasMsg); return hasMsg; } @@ -116,7 +116,7 @@ StringRef ILogSystem::ServerPeekCursor::getMessageWithTags() { return rawMessage; } -VectorRef ILogSystem::ServerPeekCursor::getTags() { +VectorRef ILogSystem::ServerPeekCursor::getTags() const { return messageAndTags.tags; } @@ -329,7 +329,7 @@ Future ILogSystem::ServerPeekCursor::onFailed() { return serverPeekOnFailed(this); } -bool ILogSystem::ServerPeekCursor::isActive() { +bool ILogSystem::ServerPeekCursor::isActive() const { if( !interf->get().present() ) return false; if( messageVersion >= end ) @@ -337,22 +337,29 @@ bool ILogSystem::ServerPeekCursor::isActive() { return IFailureMonitor::failureMonitor().getState( interf->get().interf().peekMessages.getEndpoint() ).isAvailable(); } -bool ILogSystem::ServerPeekCursor::isExhausted() { +bool ILogSystem::ServerPeekCursor::isExhausted() const { return messageVersion >= end; } -const LogMessageVersion& ILogSystem::ServerPeekCursor::version() { return messageVersion; } // Call only after nextMessage(). The sequence of the current message, or results.end if nextMessage() has returned false. +const LogMessageVersion& ILogSystem::ServerPeekCursor::version() const { + return messageVersion; +} // Call only after nextMessage(). The sequence of the current message, or results.end if nextMessage() has returned + // false. -Version ILogSystem::ServerPeekCursor::getMinKnownCommittedVersion() { return results.minKnownCommittedVersion; } +Version ILogSystem::ServerPeekCursor::getMinKnownCommittedVersion() const { + return results.minKnownCommittedVersion; +} -Optional ILogSystem::ServerPeekCursor::getPrimaryPeekLocation() { +Optional ILogSystem::ServerPeekCursor::getPrimaryPeekLocation() const { if(interf) { return interf->get().id(); } return Optional(); } -Version ILogSystem::ServerPeekCursor::popped() { return poppedVersion; } +Version ILogSystem::ServerPeekCursor::popped() const { + return poppedVersion; +} ILogSystem::MergedPeekCursor::MergedPeekCursor( vector< Reference > const& serverCursors, Version begin ) : serverCursors(serverCursors), bestServer(-1), readQuorum(serverCursors.size()), tag(invalidTag), currentCursor(0), hasNextMessage(false), @@ -486,7 +493,7 @@ void ILogSystem::MergedPeekCursor::updateMessage(bool usePolicy) { } } -bool ILogSystem::MergedPeekCursor::hasMessage() { +bool ILogSystem::MergedPeekCursor::hasMessage() const { return hasNextMessage; } @@ -504,7 +511,7 @@ StringRef ILogSystem::MergedPeekCursor::getMessageWithTags() { return serverCursors[currentCursor]->getMessageWithTags(); } -VectorRef ILogSystem::MergedPeekCursor::getTags() { +VectorRef ILogSystem::MergedPeekCursor::getTags() const { return serverCursors[currentCursor]->getTags(); } @@ -569,29 +576,31 @@ Future ILogSystem::MergedPeekCursor::onFailed() { return Never(); } -bool ILogSystem::MergedPeekCursor::isActive() { +bool ILogSystem::MergedPeekCursor::isActive() const { ASSERT(false); return false; } -bool ILogSystem::MergedPeekCursor::isExhausted() { +bool ILogSystem::MergedPeekCursor::isExhausted() const { return serverCursors[currentCursor]->isExhausted(); } -const LogMessageVersion& ILogSystem::MergedPeekCursor::version() { return messageVersion; } +const LogMessageVersion& ILogSystem::MergedPeekCursor::version() const { + return messageVersion; +} -Version ILogSystem::MergedPeekCursor::getMinKnownCommittedVersion() { +Version ILogSystem::MergedPeekCursor::getMinKnownCommittedVersion() const { return serverCursors[currentCursor]->getMinKnownCommittedVersion(); } -Optional ILogSystem::MergedPeekCursor::getPrimaryPeekLocation() { +Optional ILogSystem::MergedPeekCursor::getPrimaryPeekLocation() const { if(bestServer >= 0) { return serverCursors[bestServer]->getPrimaryPeekLocation(); } return Optional(); } -Version ILogSystem::MergedPeekCursor::popped() { +Version ILogSystem::MergedPeekCursor::popped() const { Version poppedVersion = 0; for (auto& c : serverCursors) poppedVersion = std::max(poppedVersion, c->popped()); @@ -761,7 +770,7 @@ void ILogSystem::SetPeekCursor::updateMessage(int logIdx, bool usePolicy) { } } -bool ILogSystem::SetPeekCursor::hasMessage() { +bool ILogSystem::SetPeekCursor::hasMessage() const { return hasNextMessage; } @@ -777,7 +786,7 @@ StringRef ILogSystem::SetPeekCursor::getMessage() { return serverCursors[current StringRef ILogSystem::SetPeekCursor::getMessageWithTags() { return serverCursors[currentSet][currentCursor]->getMessageWithTags(); } -VectorRef ILogSystem::SetPeekCursor::getTags() { +VectorRef ILogSystem::SetPeekCursor::getTags() const { return serverCursors[currentSet][currentCursor]->getTags(); } @@ -881,29 +890,31 @@ Future ILogSystem::SetPeekCursor::onFailed() { return Never(); } -bool ILogSystem::SetPeekCursor::isActive() { +bool ILogSystem::SetPeekCursor::isActive() const { ASSERT(false); return false; } -bool ILogSystem::SetPeekCursor::isExhausted() { +bool ILogSystem::SetPeekCursor::isExhausted() const { return serverCursors[currentSet][currentCursor]->isExhausted(); } -const LogMessageVersion& ILogSystem::SetPeekCursor::version() { return messageVersion; } +const LogMessageVersion& ILogSystem::SetPeekCursor::version() const { + return messageVersion; +} -Version ILogSystem::SetPeekCursor::getMinKnownCommittedVersion() { +Version ILogSystem::SetPeekCursor::getMinKnownCommittedVersion() const { return serverCursors[currentSet][currentCursor]->getMinKnownCommittedVersion(); } -Optional ILogSystem::SetPeekCursor::getPrimaryPeekLocation() { +Optional ILogSystem::SetPeekCursor::getPrimaryPeekLocation() const { if(bestServer >= 0 && bestSet >= 0) { return serverCursors[bestSet][bestServer]->getPrimaryPeekLocation(); } return Optional(); } -Version ILogSystem::SetPeekCursor::popped() { +Version ILogSystem::SetPeekCursor::popped() const { Version poppedVersion = 0; for (auto& cursors : serverCursors) { for(auto& c : cursors) { @@ -935,7 +946,7 @@ ArenaReader* ILogSystem::MultiCursor::reader() { return cursors.back()->reader(); } -bool ILogSystem::MultiCursor::hasMessage() { +bool ILogSystem::MultiCursor::hasMessage() const { return cursors.back()->hasMessage(); } @@ -951,7 +962,7 @@ StringRef ILogSystem::MultiCursor::getMessageWithTags() { return cursors.back()->getMessageWithTags(); } -VectorRef ILogSystem::MultiCursor::getTags() { +VectorRef ILogSystem::MultiCursor::getTags() const { return cursors.back()->getTags(); } @@ -981,27 +992,27 @@ Future ILogSystem::MultiCursor::onFailed() { return cursors.back()->onFailed(); } -bool ILogSystem::MultiCursor::isActive() { +bool ILogSystem::MultiCursor::isActive() const { return cursors.back()->isActive(); } -bool ILogSystem::MultiCursor::isExhausted() { +bool ILogSystem::MultiCursor::isExhausted() const { return cursors.back()->isExhausted(); } -const LogMessageVersion& ILogSystem::MultiCursor::version() { +const LogMessageVersion& ILogSystem::MultiCursor::version() const { return cursors.back()->version(); } -Version ILogSystem::MultiCursor::getMinKnownCommittedVersion() { +Version ILogSystem::MultiCursor::getMinKnownCommittedVersion() const { return cursors.back()->getMinKnownCommittedVersion(); } -Optional ILogSystem::MultiCursor::getPrimaryPeekLocation() { +Optional ILogSystem::MultiCursor::getPrimaryPeekLocation() const { return cursors.back()->getPrimaryPeekLocation(); } -Version ILogSystem::MultiCursor::popped() { +Version ILogSystem::MultiCursor::popped() const { return std::max(poppedVersion, cursors.back()->popped()); } @@ -1069,7 +1080,7 @@ ArenaReader* ILogSystem::BufferedCursor::reader() { return cursors[0]->reader(); } -bool ILogSystem::BufferedCursor::hasMessage() { +bool ILogSystem::BufferedCursor::hasMessage() const { return hasNextMessage; } @@ -1093,7 +1104,7 @@ StringRef ILogSystem::BufferedCursor::getMessageWithTags() { return messages[messageIndex].message; } -VectorRef ILogSystem::BufferedCursor::getTags() { +VectorRef ILogSystem::BufferedCursor::getTags() const { ASSERT(withTags); return messages[messageIndex].tags; } @@ -1222,32 +1233,32 @@ Future ILogSystem::BufferedCursor::onFailed() { return Never(); } -bool ILogSystem::BufferedCursor::isActive() { +bool ILogSystem::BufferedCursor::isActive() const { ASSERT(false); return false; } -bool ILogSystem::BufferedCursor::isExhausted() { +bool ILogSystem::BufferedCursor::isExhausted() const { ASSERT(false); return false; } -const LogMessageVersion& ILogSystem::BufferedCursor::version() { +const LogMessageVersion& ILogSystem::BufferedCursor::version() const { if(hasNextMessage) { return messages[messageIndex].version; } return messageVersion; } -Version ILogSystem::BufferedCursor::getMinKnownCommittedVersion() { +Version ILogSystem::BufferedCursor::getMinKnownCommittedVersion() const { return minKnownCommittedVersion; } -Optional ILogSystem::BufferedCursor::getPrimaryPeekLocation() { +Optional ILogSystem::BufferedCursor::getPrimaryPeekLocation() const { return Optional(); } -Version ILogSystem::BufferedCursor::popped() { +Version ILogSystem::BufferedCursor::popped() const { if(initialPoppedVersion == poppedVersion) { return 0; } From cb97ab83568ae418ca037a63be3a8a0476fdda2a Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Mon, 23 Nov 2020 21:27:39 -0800 Subject: [PATCH 065/261] Use unique pointers in LatencyBands --- fdbrpc/Stats.h | 30 +++++++++++------------------- fdbrpc/sim2.actor.cpp | 13 ++----------- 2 files changed, 13 insertions(+), 30 deletions(-) diff --git a/fdbrpc/Stats.h b/fdbrpc/Stats.h index 233a558200..4c7862b6b3 100644 --- a/fdbrpc/Stats.h +++ b/fdbrpc/Stats.h @@ -152,15 +152,16 @@ Future traceCounters(std::string const& traceEventName, UID const& traceEv class LatencyBands { public: - LatencyBands(std::string name, UID id, double loggingInterval) : name(name), id(id), loggingInterval(loggingInterval), cc(nullptr), filteredCount(nullptr) {} + LatencyBands(std::string name, UID id, double loggingInterval) + : name(name), id(id), loggingInterval(loggingInterval) {} void addThreshold(double value) { if(value > 0 && bands.count(value) == 0) { if(bands.size() == 0) { ASSERT(!cc && !filteredCount); - cc = new CounterCollection(name, id.toString()); - logger = traceCounters(name, id, loggingInterval, cc, id.toString() + "/" + name); - filteredCount = new Counter("Filtered", *cc); + cc = std::make_unique(name, id.toString()); + logger = traceCounters(name, id, loggingInterval, cc.get(), id.toString() + "/" + name); + filteredCount = std::make_unique("Filtered", *cc); insertBand(std::numeric_limits::infinity()); } @@ -181,18 +182,9 @@ public: void clearBands() { logger = Void(); - - for(auto itr : bands) { - delete itr.second; - } - bands.clear(); - - delete filteredCount; - delete cc; - - filteredCount = nullptr; - cc = nullptr; + filteredCount.reset(); + cc.reset(); } ~LatencyBands() { @@ -200,18 +192,18 @@ public: } private: - std::map bands; - Counter *filteredCount; + std::map> bands; + std::unique_ptr filteredCount; std::string name; UID id; double loggingInterval; - CounterCollection *cc; + std::unique_ptr cc; Future logger; void insertBand(double value) { - bands.insert(std::make_pair(value, new Counter(format("Band%f", value), *cc))); + bands.emplace(std::make_pair(value, std::make_unique(format("Band%f", value), *cc))); } }; diff --git a/fdbrpc/sim2.actor.cpp b/fdbrpc/sim2.actor.cpp index 1dd1202a12..557e44dae4 100644 --- a/fdbrpc/sim2.actor.cpp +++ b/fdbrpc/sim2.actor.cpp @@ -97,18 +97,9 @@ const UID TOKEN_ENDPOINT_NOT_FOUND(-1, -1); int openCount = 0; struct SimClogging { - double getSendDelay( NetworkAddress from, NetworkAddress to ) { - return halfLatency(); - double tnow = now(); - double t = tnow + halfLatency(); + double getSendDelay(NetworkAddress from, NetworkAddress to) const { return halfLatency(); } - if (!g_simulator.speedUpSimulation && clogSendUntil.count( to.ip )) - t = std::max( t, clogSendUntil[ to.ip ] ); - - return t - tnow; - } - - double getRecvDelay( NetworkAddress from, NetworkAddress to ) { + double getRecvDelay(NetworkAddress from, NetworkAddress to) { auto pair = std::make_pair( from.ip, to.ip ); double tnow = now(); From 882ea49b2eb5a97318825ba0ea44577fcaf34b50 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Mon, 23 Nov 2020 21:51:02 -0800 Subject: [PATCH 066/261] Make Profiler::active_profiler a unique pointer --- flow/Profiler.actor.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/flow/Profiler.actor.cpp b/flow/Profiler.actor.cpp index ece9bcfafd..aa28bfdb92 100644 --- a/flow/Profiler.actor.cpp +++ b/flow/Profiler.actor.cpp @@ -25,6 +25,7 @@ #ifdef __linux__ #include +#include #include #include #include @@ -129,7 +130,7 @@ struct Profiler { OutputBuffer* output_buffer; Future actor; sigset_t profilingSignals; - static Profiler* active_profiler; + static std::unique_ptr active_profiler; BinaryWriter environmentInfoWriter; INetwork* network; timer_t periodicTimer; @@ -261,7 +262,7 @@ struct Profiler { } }; -Profiler* Profiler::active_profiler = 0; +std::unique_ptr Profiler::active_profiler; std::string findAndReplace( std::string const& fn, std::string const& symbol, std::string const& value ) { auto i = fn.find(symbol); @@ -287,14 +288,12 @@ void startProfiling(INetwork* network, Optional maybePeriod /*= {}*/, Optio outputFile = findAndReplace(findAndReplace(findAndReplace(outputFile, "%ADDRESS%", findAndReplace(network->getLocalAddress().toString(), ":", ".")), "%PID%", format("%d", getpid())), "%TID%", format("%llx", (long long)sys_gettid())); if (!Profiler::active_profiler) - Profiler::active_profiler = new Profiler( period, outputFile, network ); + Profiler::active_profiler = std::make_unique( period, outputFile, network ); } void stopProfiling() { if (Profiler::active_profiler) { - Profiler *p = Profiler::active_profiler; - Profiler::active_profiler = nullptr; - delete p; + Profiler::active_profiler.reset(); } } From b8a55dd0978727fe494844fed11a9a3b25b9764c Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Mon, 23 Nov 2020 22:25:51 -0800 Subject: [PATCH 067/261] Use unique_ptr for PImpl --- fdbserver/CoordinatedState.actor.cpp | 40 +++++++++++++++------------- fdbserver/CoordinatedState.h | 8 +++--- flow/FileTraceLogWriter.cpp | 12 +++++---- flow/FileTraceLogWriter.h | 12 ++++----- flow/ITrace.h | 2 +- 5 files changed, 39 insertions(+), 35 deletions(-) diff --git a/fdbserver/CoordinatedState.actor.cpp b/fdbserver/CoordinatedState.actor.cpp index f7bdff2cf5..be481f416f 100644 --- a/fdbserver/CoordinatedState.actor.cpp +++ b/fdbserver/CoordinatedState.actor.cpp @@ -189,11 +189,18 @@ struct CoordinatedStateImpl { } }; -CoordinatedState::CoordinatedState( ServerCoordinators const& coord ) : impl( new CoordinatedStateImpl(coord) ) { } -CoordinatedState::~CoordinatedState() { delete impl; } -Future CoordinatedState::read() { return CoordinatedStateImpl::read(impl); } -Future CoordinatedState::onConflict() { return CoordinatedStateImpl::onConflict(impl); } -Future CoordinatedState::setExclusive(Value v) { return CoordinatedStateImpl::setExclusive(impl,v); } +CoordinatedState::CoordinatedState(ServerCoordinators const& coord) + : impl(std::make_unique(coord)) {} +CoordinatedState::~CoordinatedState() = default; +Future CoordinatedState::read() { + return CoordinatedStateImpl::read(impl.get()); +} +Future CoordinatedState::onConflict() { + return CoordinatedStateImpl::onConflict(impl.get()); +} +Future CoordinatedState::setExclusive(Value v) { + return CoordinatedStateImpl::setExclusive(impl.get(), v); +} uint64_t CoordinatedState::getConflict() { return impl->getConflict(); } struct MovableValue { @@ -306,20 +313,15 @@ struct MovableCoordinatedStateImpl { } }; -void MovableCoordinatedState::operator=(MovableCoordinatedState&& av) { - if(impl) { - delete impl; - } - impl = av.impl; - av.impl = 0; +MovableCoordinatedState& MovableCoordinatedState::operator=(MovableCoordinatedState&&) = default; +MovableCoordinatedState::MovableCoordinatedState(class ServerCoordinators const& coord) + : impl(std::make_unique(coord)) {} +MovableCoordinatedState::~MovableCoordinatedState() = default; +Future MovableCoordinatedState::read() { + return MovableCoordinatedStateImpl::read(impl.get()); } -MovableCoordinatedState::MovableCoordinatedState( class ServerCoordinators const& coord ) : impl( new MovableCoordinatedStateImpl(coord) ) {} -MovableCoordinatedState::~MovableCoordinatedState() { - if(impl) { - delete impl; - } -} -Future MovableCoordinatedState::read() { return MovableCoordinatedStateImpl::read(impl); } Future MovableCoordinatedState::onConflict() { return impl->onConflict(); } Future MovableCoordinatedState::setExclusive(Value v) { return impl->setExclusive(v); } -Future MovableCoordinatedState::move( ClusterConnectionString const& nc ) { return MovableCoordinatedStateImpl::move(impl, nc); } +Future MovableCoordinatedState::move(ClusterConnectionString const& nc) { + return MovableCoordinatedStateImpl::move(impl.get(), nc); +} diff --git a/fdbserver/CoordinatedState.h b/fdbserver/CoordinatedState.h index 882effeeab..d9569cb992 100644 --- a/fdbserver/CoordinatedState.h +++ b/fdbserver/CoordinatedState.h @@ -54,13 +54,13 @@ public: uint64_t getConflict(); private: - struct CoordinatedStateImpl *impl; + std::unique_ptr impl; }; class MovableCoordinatedState : NonCopyable { public: MovableCoordinatedState( class ServerCoordinators const& ); - void operator=(MovableCoordinatedState&& av); + MovableCoordinatedState& operator=(MovableCoordinatedState&& av); ~MovableCoordinatedState(); Future read(); @@ -76,7 +76,7 @@ public: // (and therefore the caller should die). private: - struct MovableCoordinatedStateImpl *impl; + std::unique_ptr impl; }; -#endif \ No newline at end of file +#endif diff --git a/flow/FileTraceLogWriter.cpp b/flow/FileTraceLogWriter.cpp index 54b23a81dd..06762ebd42 100644 --- a/flow/FileTraceLogWriter.cpp +++ b/flow/FileTraceLogWriter.cpp @@ -55,7 +55,7 @@ struct IssuesListImpl { issues.insert(issue); } - void retrieveIssues(std::set& out) { + void retrieveIssues(std::set& out) const { MutexHolder h(mutex); for (auto const& i : issues) { out.insert(i); @@ -68,14 +68,16 @@ struct IssuesListImpl { } private: - Mutex mutex; + mutable Mutex mutex; std::set issues; }; -IssuesList::IssuesList() : impl(new IssuesListImpl{}) {} -IssuesList::~IssuesList() { delete impl; } +IssuesList::IssuesList() : impl(std::make_unique()) {} +IssuesList::~IssuesList() = default; void IssuesList::addIssue(std::string issue) { impl->addIssue(issue); } -void IssuesList::retrieveIssues(std::set &out) { impl->retrieveIssues(out); } +void IssuesList::retrieveIssues(std::set& out) const { + impl->retrieveIssues(out); +} void IssuesList::resolveIssue(std::string issue) { impl->resolveIssue(issue); } FileTraceLogWriter::FileTraceLogWriter(std::string directory, std::string processName, std::string basename, diff --git a/flow/FileTraceLogWriter.h b/flow/FileTraceLogWriter.h index 5ffec7817a..cc1d41a2ee 100644 --- a/flow/FileTraceLogWriter.h +++ b/flow/FileTraceLogWriter.h @@ -30,20 +30,20 @@ #include struct IssuesListImpl; -struct IssuesList : ITraceLogIssuesReporter, ThreadSafeReferenceCounted { +struct IssuesList final : ITraceLogIssuesReporter, ThreadSafeReferenceCounted { IssuesList(); - virtual ~IssuesList(); + ~IssuesList(); void addIssue(std::string issue) override; - void retrieveIssues(std::set& out) override; + void retrieveIssues(std::set& out) const override; void resolveIssue(std::string issue) override; - void addref() { ThreadSafeReferenceCounted::addref(); } - void delref() { ThreadSafeReferenceCounted::delref(); } + void addref() override { ThreadSafeReferenceCounted::addref(); } + void delref() override { ThreadSafeReferenceCounted::delref(); } private: - IssuesListImpl* impl; + std::unique_ptr impl; }; class FileTraceLogWriter : public ITraceLogWriter, ReferenceCounted { diff --git a/flow/ITrace.h b/flow/ITrace.h index 45b9d6fa07..9fcd7ac390 100644 --- a/flow/ITrace.h +++ b/flow/ITrace.h @@ -54,7 +54,7 @@ struct ITraceLogIssuesReporter { virtual void addIssue(std::string issue) = 0; virtual void resolveIssue(std::string issue) = 0; - virtual void retrieveIssues(std::set& out) = 0; + virtual void retrieveIssues(std::set& out) const = 0; virtual void addref() = 0; virtual void delref() = 0; From 0740e35621efcd0df2c38ea6be3d84e7304de328 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Thu, 26 Nov 2020 23:24:22 -0800 Subject: [PATCH 068/261] Use unique_ptr for backup args --- fdbbackup/backup.actor.cpp | 59 +++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 33 deletions(-) diff --git a/fdbbackup/backup.actor.cpp b/fdbbackup/backup.actor.cpp index edf8b25288..2ce7b2a3f1 100644 --- a/fdbbackup/backup.actor.cpp +++ b/fdbbackup/backup.actor.cpp @@ -2958,15 +2958,15 @@ int main(int argc, char* argv[]) { enumRestoreType restoreType = RESTORE_UNKNOWN; enumDBType dbType = DB_UNDEFINED; - CSimpleOpt* args = NULL; + std::unique_ptr args; switch (programExe) { case EXE_AGENT: - args = new CSimpleOpt(argc, argv, g_rgAgentOptions, SO_O_EXACT); + args = std::make_unique(argc, argv, g_rgAgentOptions, SO_O_EXACT); break; case EXE_DR_AGENT: - args = new CSimpleOpt(argc, argv, g_rgDBAgentOptions, SO_O_EXACT); + args = std::make_unique(argc, argv, g_rgDBAgentOptions, SO_O_EXACT); break; case EXE_BACKUP: // Display backup help, if no arguments @@ -2982,49 +2982,49 @@ int main(int argc, char* argv[]) { switch (backupType) { case BACKUP_START: - args = new CSimpleOpt(argc-1, &argv[1], g_rgBackupStartOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupStartOptions, SO_O_EXACT); break; case BACKUP_STATUS: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupStatusOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupStatusOptions, SO_O_EXACT); break; case BACKUP_ABORT: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupAbortOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupAbortOptions, SO_O_EXACT); break; case BACKUP_CLEANUP: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupCleanupOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupCleanupOptions, SO_O_EXACT); break; case BACKUP_WAIT: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupWaitOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupWaitOptions, SO_O_EXACT); break; case BACKUP_DISCONTINUE: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupDiscontinueOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupDiscontinueOptions, SO_O_EXACT); break; case BACKUP_PAUSE: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupPauseOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupPauseOptions, SO_O_EXACT); break; case BACKUP_RESUME: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupPauseOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupPauseOptions, SO_O_EXACT); break; case BACKUP_EXPIRE: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupExpireOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupExpireOptions, SO_O_EXACT); break; case BACKUP_DELETE: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupDeleteOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupDeleteOptions, SO_O_EXACT); break; case BACKUP_DESCRIBE: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupDescribeOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupDescribeOptions, SO_O_EXACT); break; case BACKUP_DUMP: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupDumpOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupDumpOptions, SO_O_EXACT); break; case BACKUP_LIST: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupListOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupListOptions, SO_O_EXACT); break; case BACKUP_QUERY: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupQueryOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupQueryOptions, SO_O_EXACT); break; case BACKUP_MODIFY: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgBackupModifyOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgBackupModifyOptions, SO_O_EXACT); break; case BACKUP_UNDEFINED: default: @@ -3058,22 +3058,22 @@ int main(int argc, char* argv[]) { switch (dbType) { case DB_START: - args = new CSimpleOpt(argc-1, &argv[1], g_rgDBStartOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgDBStartOptions, SO_O_EXACT); break; case DB_STATUS: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgDBStatusOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgDBStatusOptions, SO_O_EXACT); break; case DB_SWITCH: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgDBSwitchOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgDBSwitchOptions, SO_O_EXACT); break; case DB_ABORT: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgDBAbortOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgDBAbortOptions, SO_O_EXACT); break; case DB_PAUSE: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgDBPauseOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgDBPauseOptions, SO_O_EXACT); break; case DB_RESUME: - args = new CSimpleOpt(argc - 1, &argv[1], g_rgDBPauseOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, &argv[1], g_rgDBPauseOptions, SO_O_EXACT); break; case DB_UNDEFINED: default: @@ -3114,7 +3114,7 @@ int main(int argc, char* argv[]) { return FDB_EXIT_ERROR; } } - args = new CSimpleOpt(argc - 1, argv + 1, g_rgRestoreOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, argv + 1, g_rgRestoreOptions, SO_O_EXACT); break; case EXE_FASTRESTORE_TOOL: if (argc < 2) { @@ -3134,7 +3134,7 @@ int main(int argc, char* argv[]) { return FDB_EXIT_ERROR; } } - args = new CSimpleOpt(argc - 1, argv + 1, g_rgRestoreOptions, SO_O_EXACT); + args = std::make_unique(argc - 1, argv + 1, g_rgRestoreOptions, SO_O_EXACT); break; case EXE_UNDEFINED: default: @@ -3624,13 +3624,6 @@ int main(int argc, char* argv[]) { } } - // Delete the simple option object, if defined - if (args) - { - delete args; - args = NULL; - } - delete FLOW_KNOBS; FlowKnobs* flowKnobs = new FlowKnobs; FLOW_KNOBS = flowKnobs; From 5059228e9edcca3f2861be5540dd99ce785ddef2 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Thu, 26 Nov 2020 23:24:47 -0800 Subject: [PATCH 069/261] Use unique_ptr for TraceEvent::tmpEventMetric --- flow/Trace.cpp | 12 +++++------- flow/Trace.h | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/flow/Trace.cpp b/flow/Trace.cpp index 4dd36e0b1e..2c36604e6b 100644 --- a/flow/Trace.cpp +++ b/flow/Trace.cpp @@ -729,7 +729,7 @@ TraceEvent::TraceEvent(TraceEvent &&ev) { maxEventLength = ev.maxEventLength; maxFieldLength = ev.maxFieldLength; severity = ev.severity; - tmpEventMetric = ev.tmpEventMetric; + tmpEventMetric = std::move(ev.tmpEventMetric); trackingKey = ev.trackingKey; type = ev.type; timeIndex = ev.timeIndex; @@ -743,7 +743,6 @@ TraceEvent::TraceEvent(TraceEvent &&ev) { ev.initialized = true; ev.enabled = false; ev.logged = true; - ev.tmpEventMetric = nullptr; } TraceEvent& TraceEvent::operator=(TraceEvent &&ev) { @@ -757,7 +756,7 @@ TraceEvent& TraceEvent::operator=(TraceEvent &&ev) { maxEventLength = ev.maxEventLength; maxFieldLength = ev.maxFieldLength; severity = ev.severity; - tmpEventMetric = ev.tmpEventMetric; + tmpEventMetric = std::move(ev.tmpEventMetric); trackingKey = ev.trackingKey; type = ev.type; timeIndex = ev.timeIndex; @@ -771,7 +770,6 @@ TraceEvent& TraceEvent::operator=(TraceEvent &&ev) { ev.initialized = true; ev.enabled = false; ev.logged = true; - ev.tmpEventMetric = nullptr; return *this; } @@ -852,7 +850,7 @@ bool TraceEvent::init() { } if(enabled) { - tmpEventMetric = new DynamicEventMetric(MetricNameRef()); + tmpEventMetric = std::make_unique(MetricNameRef()); if(err.isValid() && err.isInjectedFault() && severity == SevError) { severity = SevWarnAlways; @@ -1107,7 +1105,7 @@ void TraceEvent::log() { // If the event IS logged, a timestamp will be returned, if not then 0. Either way, pass it through to be used if possible // in the Sev* event metrics. - uint64_t event_ts = DynamicEventMetric::getOrCreateInstance(format("TraceEvent.%s", type), StringRef(), true)->setFieldsAndLogFrom(tmpEventMetric); + uint64_t event_ts = DynamicEventMetric::getOrCreateInstance(format("TraceEvent.%s", type), StringRef(), true)->setFieldsAndLogFrom(tmpEventMetric.get()); g_traceLog.log(severity, type, id, event_ts); } } @@ -1115,7 +1113,7 @@ void TraceEvent::log() { } catch( Error &e ) { TraceEvent(SevError, "TraceEventLoggingError").error(e,true); } - delete tmpEventMetric; + tmpEventMetric.reset(); logged = true; --g_allocation_tracing_disabled; } diff --git a/flow/Trace.h b/flow/Trace.h index 1c7c861942..5137d99a68 100644 --- a/flow/Trace.h +++ b/flow/Trace.h @@ -498,7 +498,7 @@ public: // Return the number of invocations of TraceEvent() at the specified logging level. static unsigned long CountEventsLoggedAt(Severity); - DynamicEventMetric *tmpEventMetric; // This just just a place to store fields + std::unique_ptr tmpEventMetric; // This just just a place to store fields private: bool initialized; From 276f80cfce58169743cdfb56838f0b02583eb7aa Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Fri, 27 Nov 2020 10:07:26 -0800 Subject: [PATCH 070/261] Mark Tag::toTagDataIndex const --- fdbclient/FDBTypes.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/fdbclient/FDBTypes.h b/fdbclient/FDBTypes.h index 53968b122b..af9cde95fe 100644 --- a/fdbclient/FDBTypes.h +++ b/fdbclient/FDBTypes.h @@ -71,9 +71,7 @@ struct Tag { bool operator != ( const Tag& r ) const { return locality!=r.locality || id!=r.id; } bool operator < ( const Tag& r ) const { return locality < r.locality || (locality == r.locality && id < r.id); } - int toTagDataIndex() { - return locality >= 0 ? 2 * locality : 1 - (2 * locality); - } + int toTagDataIndex() const { return locality >= 0 ? 2 * locality : 1 - (2 * locality); } std::string toString() const { return format("%d:%d", locality, id); From c8786a65c3d30425433fada7255b7f1de4cbc1f2 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Fri, 27 Nov 2020 10:10:41 -0800 Subject: [PATCH 071/261] Remove unnecessary uses of virtual --- fdbclient/AsyncFileS3BlobStore.actor.h | 12 ++++++------ fdbclient/ReadYourWrites.h | 7 +++---- fdbrpc/AsyncFileCached.actor.h | 6 +++--- fdbrpc/AsyncFileKAIO.actor.h | 6 +++--- fdbrpc/AsyncFileWinASIO.actor.h | 6 +++--- flow/Net2.actor.cpp | 16 ++++++++-------- flow/Profiler.actor.cpp | 21 ++++++++------------- 7 files changed, 34 insertions(+), 40 deletions(-) diff --git a/fdbclient/AsyncFileS3BlobStore.actor.h b/fdbclient/AsyncFileS3BlobStore.actor.h index 49f011ffa7..c12952104d 100644 --- a/fdbclient/AsyncFileS3BlobStore.actor.h +++ b/fdbclient/AsyncFileS3BlobStore.actor.h @@ -54,10 +54,10 @@ static Future joinErrorGroup(Future f, Promise p) { // using multi-part upload and beginning to transfer each part as soon as it is large enough. // All write operations file operations must be sequential and contiguous. // Limits on part sizes, upload speed, and concurrent uploads are taken from the S3BlobStoreEndpoint being used. -class AsyncFileS3BlobStoreWrite : public IAsyncFile, public ReferenceCounted { +class AsyncFileS3BlobStoreWrite final : public IAsyncFile, public ReferenceCounted { public: - virtual void addref() { ReferenceCounted::addref(); } - virtual void delref() { ReferenceCounted::delref(); } + void addref() override { ReferenceCounted::addref(); } + void delref() override { ReferenceCounted::delref(); } struct Part : ReferenceCounted { Part(int n, int minSize) @@ -256,10 +256,10 @@ public: }; // This class represents a read-only file that lives in an S3-style blob store. It reads using the REST API. -class AsyncFileS3BlobStoreRead : public IAsyncFile, public ReferenceCounted { +class AsyncFileS3BlobStoreRead final : public IAsyncFile, public ReferenceCounted { public: - virtual void addref() { ReferenceCounted::addref(); } - virtual void delref() { ReferenceCounted::delref(); } + void addref() override { ReferenceCounted::addref(); } + void delref() override { ReferenceCounted::delref(); } Future read(void* data, int length, int64_t offset) override; diff --git a/fdbclient/ReadYourWrites.h b/fdbclient/ReadYourWrites.h index d7a8cf120f..9dfafb8f8f 100644 --- a/fdbclient/ReadYourWrites.h +++ b/fdbclient/ReadYourWrites.h @@ -58,7 +58,9 @@ struct TransactionDebugInfo : public ReferenceCounted { //Values returned by a ReadYourWritesTransaction will contain a reference to the transaction's arena. Therefore, keeping a reference to a value //longer than its creating transaction would hold all of the memory generated by the transaction -class ReadYourWritesTransaction : NonCopyable, public ReferenceCounted, public FastAllocated { +class ReadYourWritesTransaction final : NonCopyable, + public ReferenceCounted, + public FastAllocated { public: static ReadYourWritesTransaction* allocateOnForeignThread() { ReadYourWritesTransaction *tr = (ReadYourWritesTransaction*)ReadYourWritesTransaction::operator new( sizeof(ReadYourWritesTransaction) ); @@ -115,9 +117,6 @@ public: void operator=(ReadYourWritesTransaction&& r) noexcept; ReadYourWritesTransaction(ReadYourWritesTransaction&& r) noexcept; - virtual void addref() { ReferenceCounted::addref(); } - virtual void delref() { ReferenceCounted::delref(); } - void cancel(); void reset(); void debugTransaction(UID dID) { tr.debugTransaction(dID); } diff --git a/fdbrpc/AsyncFileCached.actor.h b/fdbrpc/AsyncFileCached.actor.h index 5ab91ff860..78af148e5b 100644 --- a/fdbrpc/AsyncFileCached.actor.h +++ b/fdbrpc/AsyncFileCached.actor.h @@ -142,7 +142,7 @@ struct OpenFileInfo : NonCopyable { struct AFCPage; -class AsyncFileCached : public IAsyncFile, public ReferenceCounted { +class AsyncFileCached final : public IAsyncFile, public ReferenceCounted { friend struct AFCPage; public: @@ -221,11 +221,11 @@ public: std::string getFilename() const override { return filename; } - virtual void addref() { + void addref() override { ReferenceCounted::addref(); //TraceEvent("AsyncFileCachedAddRef").detail("Filename", filename).detail("Refcount", debugGetReferenceCount()).backtrace(); } - virtual void delref() { + void delref() override { if (delref_no_destroy()) { // If this is ever ThreadSafeReferenceCounted... // setrefCountUnsafe(0); diff --git a/fdbrpc/AsyncFileKAIO.actor.h b/fdbrpc/AsyncFileKAIO.actor.h index 876a64be74..32e72120f5 100644 --- a/fdbrpc/AsyncFileKAIO.actor.h +++ b/fdbrpc/AsyncFileKAIO.actor.h @@ -52,7 +52,7 @@ DESCR struct SlowAioSubmit { int64_t largestTruncate; }; -class AsyncFileKAIO : public IAsyncFile, public ReferenceCounted { +class AsyncFileKAIO final : public IAsyncFile, public ReferenceCounted { public: #if KAIO_LOGGING @@ -179,8 +179,8 @@ public: static int get_eventfd() { return ctx.evfd; } static void setTimeout(double ioTimeout) { ctx.setIOTimeout(ioTimeout); } - virtual void addref() { ReferenceCounted::addref(); } - virtual void delref() { ReferenceCounted::delref(); } + void addref() override { ReferenceCounted::addref(); } + void delref() override { ReferenceCounted::delref(); } Future read(void* data, int length, int64_t offset) override { ++countFileLogicalReads; diff --git a/fdbrpc/AsyncFileWinASIO.actor.h b/fdbrpc/AsyncFileWinASIO.actor.h index 88306baf61..cb9b510acf 100644 --- a/fdbrpc/AsyncFileWinASIO.actor.h +++ b/fdbrpc/AsyncFileWinASIO.actor.h @@ -35,7 +35,7 @@ #undef min #undef max -class AsyncFileWinASIO : public IAsyncFile, public ReferenceCounted { +class AsyncFileWinASIO final : public IAsyncFile, public ReferenceCounted { public: static void init() {} @@ -84,8 +84,8 @@ public: return buf.st_mtime; } - virtual void addref() { ReferenceCounted::addref(); } - virtual void delref() { ReferenceCounted::delref(); } + void addref() override { ReferenceCounted::addref(); } + void delref() override { ReferenceCounted::delref(); } int64_t debugFD() const override { return (int64_t)(const_cast(file).native_handle()); } diff --git a/flow/Net2.actor.cpp b/flow/Net2.actor.cpp index 2bd17408bc..35f0cc5d95 100644 --- a/flow/Net2.actor.cpp +++ b/flow/Net2.actor.cpp @@ -357,8 +357,8 @@ struct SendBufferIterator { class Connection final : public IConnection, ReferenceCounted { public: - virtual void addref() { ReferenceCounted::addref(); } - virtual void delref() { ReferenceCounted::delref(); } + void addref() override { ReferenceCounted::addref(); } + void delref() override { ReferenceCounted::delref(); } void close() override { closeSocket(); @@ -700,8 +700,8 @@ public: platform::setCloseOnExec(acceptor.native_handle()); } - virtual void addref() { ReferenceCounted::addref(); } - virtual void delref() { ReferenceCounted::delref(); } + void addref() override { ReferenceCounted::addref(); } + void delref() override { ReferenceCounted::delref(); } // Returns one incoming connection when it is available Future> accept() override { @@ -777,8 +777,8 @@ struct SSLHandshakerThread final : IThreadPoolReceiver { class SSLConnection final : public IConnection, ReferenceCounted { public: - virtual void addref() { ReferenceCounted::addref(); } - virtual void delref() { ReferenceCounted::delref(); } + void addref() override { ReferenceCounted::addref(); } + void delref() override { ReferenceCounted::delref(); } void close() override { closeSocket(); @@ -1096,8 +1096,8 @@ public: platform::setCloseOnExec(acceptor.native_handle()); } - virtual void addref() { ReferenceCounted::addref(); } - virtual void delref() { ReferenceCounted::delref(); } + void addref() override { ReferenceCounted::addref(); } + void delref() override { ReferenceCounted::delref(); } // Returns one incoming connection when it is available Future> accept() override { diff --git a/flow/Profiler.actor.cpp b/flow/Profiler.actor.cpp index aa28bfdb92..fb6782321a 100644 --- a/flow/Profiler.actor.cpp +++ b/flow/Profiler.actor.cpp @@ -60,21 +60,16 @@ struct SyncFileForSim : ReferenceCounted { f = fopen(filename.c_str(), "wb"); } - virtual bool isOpen() { - return f != nullptr; - } + bool isOpen() const { return f != nullptr; } - virtual void addref() { ReferenceCounted::addref(); } - virtual void delref() { ReferenceCounted::delref(); } + int64_t debugFD() const { return (int64_t)f; } - virtual int64_t debugFD() { return (int64_t)f; } - - virtual Future read( void* data, int length, int64_t offset ) { + Future read(void* data, int length, int64_t offset) { ASSERT(false); throw internal_error(); } - virtual Future write( void const* data, int length, int64_t offset ) { + Future write(void const* data, int length, int64_t offset) { ASSERT(isOpen()); fseek(f, offset, SEEK_SET); if (fwrite(data, 1, length, f) != length) @@ -82,23 +77,23 @@ struct SyncFileForSim : ReferenceCounted { return Void(); } - virtual Future truncate( int64_t size ) { + Future truncate(int64_t size) { ASSERT( size == 0 ); return Void(); } - virtual Future flush() { + Future flush() { ASSERT(isOpen()); fflush(f); return Void(); } - virtual Future sync() { + Future sync() { ASSERT(false); throw internal_error(); } - virtual Future size() { + Future size() const { ASSERT(false); throw internal_error(); } From afa8e78911b71ab8eb5783b0c12be9761a9513ed Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sun, 29 Nov 2020 18:38:49 -0800 Subject: [PATCH 072/261] Fix Debouncer move constructor and move assignment operator Moving the Debouncer did not previously move the worker future --- flow/genericactors.actor.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flow/genericactors.actor.h b/flow/genericactors.actor.h index 3fcab1f7dd..061c6e4752 100644 --- a/flow/genericactors.actor.h +++ b/flow/genericactors.actor.h @@ -725,8 +725,8 @@ private: class Debouncer : NonCopyable { public: explicit Debouncer( double delay ) { worker = debounceWorker(this, delay); } - Debouncer(Debouncer&& at) : input(std::move(at.input)), output(std::move(at.output)) {} - void operator=(Debouncer&& at) { input = std::move(at.input); output = std::move(at.output); } + Debouncer(Debouncer&& at) = default; + Debouncer& operator=(Debouncer&& at) = default; Future onTrigger() { return output.onChange(); } From c68b62f89b3473793802408cdd447e17e1e212f2 Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Tue, 8 Dec 2020 16:57:59 -0800 Subject: [PATCH 073/261] Update txnCommitOut --- fdbserver/MasterProxyServer.actor.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index 04ffbec49c..cc5f9a2e86 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -661,6 +661,7 @@ ACTOR Future commitBatch( tr.reply.sendError(transaction_too_old()); } ++self->stats.commitBatchOut; + self->stats.txnCommitOut += trs.size(); self->stats.txnConflicts += trs.size(); return Void(); } From aa351d37d37f3971439b2dab6bcab1548acc105c Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Wed, 9 Dec 2020 10:40:39 -0800 Subject: [PATCH 074/261] Increase stable snapshot lower bound to 6.2.29 --- tests/CMakeLists.txt | 16 ++++++++-------- .../SnapCycleRestart-1.txt | 0 .../SnapCycleRestart-2.txt | 0 .../SnapTestAttrition-1.txt | 0 .../SnapTestAttrition-2.txt | 0 .../SnapTestRestart-1.txt | 0 .../SnapTestRestart-2.txt | 0 .../SnapTestSimpleRestart-1.txt | 0 .../SnapTestSimpleRestart-2.txt | 0 9 files changed, 8 insertions(+), 8 deletions(-) rename tests/restarting/{from_6.2.0 => from_6.2.29}/SnapCycleRestart-1.txt (100%) rename tests/restarting/{from_6.2.0 => from_6.2.29}/SnapCycleRestart-2.txt (100%) rename tests/restarting/{from_6.2.0 => from_6.2.29}/SnapTestAttrition-1.txt (100%) rename tests/restarting/{from_6.2.0 => from_6.2.29}/SnapTestAttrition-2.txt (100%) rename tests/restarting/{from_6.2.0 => from_6.2.29}/SnapTestRestart-1.txt (100%) rename tests/restarting/{from_6.2.0 => from_6.2.29}/SnapTestRestart-2.txt (100%) rename tests/restarting/{from_6.2.0 => from_6.2.29}/SnapTestSimpleRestart-1.txt (100%) rename tests/restarting/{from_6.2.0 => from_6.2.29}/SnapTestSimpleRestart-2.txt (100%) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index def5d7de0d..dda134e905 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -173,17 +173,17 @@ if(WITH_PYTHON) TEST_FILES restarting/from_5.0.0/StorefrontTestRestart-1.txt restarting/from_5.0.0/StorefrontTestRestart-2.txt) add_fdb_test( - TEST_FILES restarting/from_6.2.0/SnapTestAttrition-1.txt - restarting/from_6.2.0/SnapTestAttrition-2.txt) + TEST_FILES restarting/from_6.2.29/SnapTestAttrition-1.txt + restarting/from_6.2.29/SnapTestAttrition-2.txt) add_fdb_test( - TEST_FILES restarting/from_6.2.0/SnapTestSimpleRestart-1.txt - restarting/from_6.2.0/SnapTestSimpleRestart-2.txt) + TEST_FILES restarting/from_6.2.29/SnapTestSimpleRestart-1.txt + restarting/from_6.2.29/SnapTestSimpleRestart-2.txt) add_fdb_test( - TEST_FILES restarting/from_6.2.0/SnapTestRestart-1.txt - restarting/from_6.2.0/SnapTestRestart-2.txt) + TEST_FILES restarting/from_6.2.29/SnapTestRestart-1.txt + restarting/from_6.2.29/SnapTestRestart-2.txt) add_fdb_test( - TEST_FILES restarting/from_6.2.0/SnapCycleRestart-1.txt - restarting/from_6.2.0/SnapCycleRestart-2.txt) + TEST_FILES restarting/from_6.2.29/SnapCycleRestart-1.txt + restarting/from_6.2.29/SnapCycleRestart-2.txt) add_fdb_test( TEST_FILES restarting/from_5.1.7/DrUpgradeRestart-1.txt restarting/from_5.1.7/DrUpgradeRestart-2.txt) diff --git a/tests/restarting/from_6.2.0/SnapCycleRestart-1.txt b/tests/restarting/from_6.2.29/SnapCycleRestart-1.txt similarity index 100% rename from tests/restarting/from_6.2.0/SnapCycleRestart-1.txt rename to tests/restarting/from_6.2.29/SnapCycleRestart-1.txt diff --git a/tests/restarting/from_6.2.0/SnapCycleRestart-2.txt b/tests/restarting/from_6.2.29/SnapCycleRestart-2.txt similarity index 100% rename from tests/restarting/from_6.2.0/SnapCycleRestart-2.txt rename to tests/restarting/from_6.2.29/SnapCycleRestart-2.txt diff --git a/tests/restarting/from_6.2.0/SnapTestAttrition-1.txt b/tests/restarting/from_6.2.29/SnapTestAttrition-1.txt similarity index 100% rename from tests/restarting/from_6.2.0/SnapTestAttrition-1.txt rename to tests/restarting/from_6.2.29/SnapTestAttrition-1.txt diff --git a/tests/restarting/from_6.2.0/SnapTestAttrition-2.txt b/tests/restarting/from_6.2.29/SnapTestAttrition-2.txt similarity index 100% rename from tests/restarting/from_6.2.0/SnapTestAttrition-2.txt rename to tests/restarting/from_6.2.29/SnapTestAttrition-2.txt diff --git a/tests/restarting/from_6.2.0/SnapTestRestart-1.txt b/tests/restarting/from_6.2.29/SnapTestRestart-1.txt similarity index 100% rename from tests/restarting/from_6.2.0/SnapTestRestart-1.txt rename to tests/restarting/from_6.2.29/SnapTestRestart-1.txt diff --git a/tests/restarting/from_6.2.0/SnapTestRestart-2.txt b/tests/restarting/from_6.2.29/SnapTestRestart-2.txt similarity index 100% rename from tests/restarting/from_6.2.0/SnapTestRestart-2.txt rename to tests/restarting/from_6.2.29/SnapTestRestart-2.txt diff --git a/tests/restarting/from_6.2.0/SnapTestSimpleRestart-1.txt b/tests/restarting/from_6.2.29/SnapTestSimpleRestart-1.txt similarity index 100% rename from tests/restarting/from_6.2.0/SnapTestSimpleRestart-1.txt rename to tests/restarting/from_6.2.29/SnapTestSimpleRestart-1.txt diff --git a/tests/restarting/from_6.2.0/SnapTestSimpleRestart-2.txt b/tests/restarting/from_6.2.29/SnapTestSimpleRestart-2.txt similarity index 100% rename from tests/restarting/from_6.2.0/SnapTestSimpleRestart-2.txt rename to tests/restarting/from_6.2.29/SnapTestSimpleRestart-2.txt From 7e0d924be9f5a8ab1f37ef3dfcc6ac32a7d07483 Mon Sep 17 00:00:00 2001 From: Meng Xu Date: Thu, 10 Dec 2020 22:12:22 -0800 Subject: [PATCH 075/261] Minor revision and update format for FDB Read and Write Path doc --- .../sphinx/source/read-write-path.rst | 414 ++++++++++++++---- 1 file changed, 324 insertions(+), 90 deletions(-) diff --git a/documentation/sphinx/source/read-write-path.rst b/documentation/sphinx/source/read-write-path.rst index 33185bac88..0674bc1233 100644 --- a/documentation/sphinx/source/read-write-path.rst +++ b/documentation/sphinx/source/read-write-path.rst @@ -8,176 +8,382 @@ FDB Read and Write Path (WiP) This document explains how FDB works at high level in database terms without mentioning FDB internal concepts. -We first discuss the read path and the write path separately for a single transaction. We then describe how the read path and write path work together for a read and write transaction. At the last section, we illustrate how multiple outstanding write transactions are processed and *ordered* in FDB. The processing order of multiple transactions is important because it affects the parallelism of transaction processing and the write throughput. +We first discuss the read path and the write path separately for a single transaction. +We then describe how the read path and write path work together for a read and write transaction. +In the last section, we illustrate how multiple outstanding write transactions are processed and *ordered* in FDB. +The processing order of multiple transactions is important because it affects the parallelism of transaction processing and the write throughput. -The content is based on FDB 6.2 and is true for FDB 6.3. A new timestamp proxy role is introduced in FDB 6.4+, which affects the read path. We will discuss the timestamp proxy role in the future version of this document. +The content is based on FDB 6.2 and is true for FDB 6.3. A new timestamp proxy role is introduced in post FDB 6.3, +which affects the read path. We will discuss the timestamp proxy role in the future version of this document. .. image:: /images/FDB_read_path.png Components ================= -FDB is built on top of several key components. The terms below are common database or distributed system terms, instead of FDB specific terms. +FDB is built on top of several key components. +The terms below are common database or distributed system terms, instead of FDB specific terms. -**Timestamp generator.** It serves logical time, which defines happen-before relation: An event at t1 happens before another event at t2, if t1 < t2. The logic time is used to order events in FDB distributed systems and it is used by concurrency control to decide if two transactions have conflicts. The logical time is the timestamp for a transaction. +**Timestamp generator.** It serves logical time, which defines happen-before relation: +An event at t1 happens before another event at t2, if t1 < t2. +The logic time is used to order events in FDB distributed systems and it is used by concurrency control to decide if two transactions have conflicts. +The logical time is the timestamp for a transaction. * A read-only transaction has only one timestamp which is assigned when the transaction is created; * A read-write transaction has one timestamp at the transaction’s creation time and one timestamp at its commit time. -**Concurrency Control.** It decides if two transactions can be executed concurrently without violating Strict Serializable Isolation (SSI) property. It uses the Optimistic Concurrency Control (OCC) mechanism described in [SSI] to achieve that. +**Concurrency Control.** It decides if two transactions can be executed concurrently without violating Strict Serializable Isolation (SSI) property. +It uses the Optimistic Concurrency Control (OCC) mechanism described in [SSI] to achieve that. -**Client.** It is a library, an FDB application (e.g., CK) uses, to access the database. It exposes the transaction concept to applications. Client in FDB is a *fat* client that does multiple complex operations: (1) It calculates read and write conflict ranges for transactions; (2) it batches transaction requests for better throughput; (3) it automatically retries failed transactions. +**Client.** It is a library, an FDB application uses, to access the database. +It exposes the transaction concept to applications. +Client in FDB is a *fat* client that does multiple complex operations: +(1) It calculates read and write conflict ranges for transactions; +(2) it batches a transaction's operations and send them all together at commit for better throughput; +(3) it automatically retries failed transactions. **Proxies.** It is a subsystem that acts like reverse proxies to serve clients’ requests. Its main purposes is: * Serve for read request by (1) serving the logical time to client; and (2) providing which storage server has data for a key; * Process write transactions on behalf of clients and return the results; -Each proxy has the system’s metadata, called transaction state store (txnStateStore). The metadata decides: (1) which key should go to which storage servers in the storage system; (2) which key should go to which processes in the durable queuing system; (3) is the database locked; etc. +Each proxy has the system’s metadata, called transaction state store (txnStateStore). The metadata decides: +(1) which key should go to which storage servers in the storage system; +(2) which key should go to which processes in the durable queuing system; +(3) is the database locked; etc. -The metadata on all proxies are consistent at any given timestamp. To achieve that, when a proxy has a metadata mutation that changes the metadata at the timestamp V1, the mutation is propagated to all proxies (through the concurrency control component) and its effect is applied on all proxies before any proxy can process transactions after the timestamp V1. +The metadata on all proxies are consistent at any given timestamp. +To achieve that, when a proxy has a metadata mutation that changes the metadata at the timestamp V1, +the mutation is propagated to all proxies (through the concurrency control component), and +its effect is applied on all proxies before any proxy can process transactions after the timestamp V1. -**Durable queuing system.** It is a queuing system for write traffic. Its producers are proxies that send transaction mutation data for durability purpose. Its consumers are storage systems that index data and serve read request. The queuing system is partitioned for the key-space. A shard (i.e., key-range) is mapped to *k* log processes in the queuing system, where *k* is the replication factor. The mapping between shard and storage servers decides the mapping between shard and log processes. +**Durable queuing system.** It is a queuing system for write traffic. +Its producers are proxies that send transaction mutation data for durability purpose. +Its consumers are storage systems that index data and serve read request. +The queuing system is partitioned for the key-space. +A shard (i.e., key-range) is mapped to *k* log processes in the queuing system, where *k* is the replication factor. +The mapping between shard and storage servers decides the mapping between shard and log processes. -**Storage system.** It is a collection of storage servers (SS), each of which is a sqlite database running on a single thread. It indexes data and serves read requests. Each SS has an in-memory p-tree data structure that stores the past 5-second mutations and an on-disk sqlite data. The in-memory data structure can serve multiple versions of key-values in the past 5 seconds. Due to memory limit, the in-memory data cannot hold more than 5 seconds’ multi-version key-values, which is the root cause why FDB’s transactions cannot be longer than 5 seconds. The on-disk sqlite data has only the most-recent key-value. +**Storage system.** It is a collection of storage servers (SS), each of which is a sqlite database running on a single thread. +It indexes data and serves read requests. +Each SS has an in-memory p-tree data structure that stores the past 5-second mutations and an on-disk sqlite data. +The in-memory data structure can serve multiple versions of key-values in the past 5 seconds. +Due to memory limit, the in-memory data cannot hold more than 5 seconds’ multi-version key-values, +which is the root cause why FDB’s transactions cannot be longer than 5 seconds. +The on-disk sqlite data has only the most-recent key-value. **Zookeeper like system.** The system solves two main problems: -* Store the configuration of the transaction system, which includes information such as which processes are proxies, which processes belong to the queuing system, and which processes belong to the concurrency control, etc. The system used to be zookeeper. FDB later replaced it with its own implementation. -* Service discovery. Processes in the zookeeper-like system serve as well-known endpoints for clients to connect to the cluster. These well-known endpoint returns the list of proxies to clients. +* Store the configuration of the transaction system, which includes information such as generations of queuing systems and their processes. + The system used to be zookeeper. FDB later replaced it with its own implementation. + +* Service discovery. Processes in the zookeeper-like system serve as well-known endpoints for clients to connect to the cluster. + These well-known endpoint returns the list of proxies to clients. Read path of a transaction ================================== -Fig. 1 above shows a high-level view of the read path. An application uses FDB client library to read data. It creates a transaction and calls its read() function. The read() operation will lead to several steps. +Fig. 1 above shows a high-level view of the read path. An application uses FDB client library to read data. +It creates a transaction and calls its read() function. The read() operation will lead to several steps. -* **Step 1 (Timestamp request)**: The read operation needs a timestamp. The client initiates the timestamp request through an RPC to proxy. The request will trigger Step 2 and Step 3; - * To improve throughput and reduce load on the server side, each client dynamically batches the timestamp requests. A client keeps adding requests to the current batch until *when* the number of requests in a batch exceeds a configurable threshold or *when* the batching times out at a dynamically computed threshold. Each batch sends only one timestamp request to proxy and all requests in the same batch share the same timestamp. -* **Step 2 ****(Get latest commit version)**: When the timestamp request arrives at a proxy, the proxy wants to get the largest commit version as the return value. So it contacts the rest of (n-1) proxies for their latest commit versions and uses the largest one as the return value for Step 1. - * O(n^2) communication cost: Because each proxy needs to contact the rest of (n-1) proxies to serve clients’ timestamp request, the communication cost is n*(n-1), where n is the number of proxies; - * Batching: To reduce communication cost, each proxy batches clients’ timestamp requests for a configurable time period (say 1ms) and return the same timestamp for requests in the same batch. -* **Step 3 (Confirm proxy’s liveness)**: To prevent proxies that are no longer a part of the system (such as due to network partition) from serving requests, each proxy contacts the queuing system for each timestamp request to confirm it is still valid proxies. This is based on the FDB property that at most one active queuing system is available at any given time. - * Why do we need this step? This is to achieve consensus (i.e., external consistency). Compared to serializable isolation, Strict Serializable Isolation (SSI) requires external consistency. It means the timestamp received by clients cannot decrease. If we do not have step and network partition happens, a set of old proxies that are disconnected from the rest of systems can still serve timestamp requests to clients. These timestamps can be smaller than the new generation of proxies, which breaks the external consistency in SSI. - * O(n * m) communication cost: To confirm a proxy’s liveness, the proxy has to contact all members in the queuing system to ensure the queuing system is still active. This causes *m* network communication, where *m* is the number of processes in the queuing system. A system with n proxies will have O(n * m) network communications at the step 3. In our deployment, n is typically equal to m; - * Do FDB production clusters have this overhead? No. Our production clusters disable the external consistency by configuring the knob ALWAYS_CAUSAL_READ_RISKY. -* **Step 4 (Locality request)**: The client gets which storage servers have its requested keys by sending another RPC to proxy. This step returns a set of *k* storage server interfaces, where k is the replication factor; - * Client cache mechanism: The key location will be cached in client. Future requests will use the cache to directly read from storage servers, which saves a trip to proxy. If location is stale, read will return error and client will retry and refresh the cache. +* **Step 1 (Timestamp request)**: The read operation needs a timestamp. + The client initiates the timestamp request through an RPC to proxy. The request will trigger Step 2 and Step 3; -* **Step 5 (Get data request)**: The client uses the interfaces from step 4 to directly get its keys from those storage servers. - * Direct read from client’s memory: If a key’s value exists in the client’s memory, the client reads it directly from its local memory. This happens when a client updates a key’s value and later reads it. This optimization reduces the amount of unnecessary requests to storage servers. - * Load balance: Each data exists on k storage servers, where k is the replication factor. To balance the load across the k replicas, client has a load balancing algorithm to balance the number of requests to each replica. - * Transaction succeed: If the storage server has the data at the read timestamp, the client will receive the data and return succeed. - * Transaction too old error: If the read request’s timestamp is older than 5 seconds, storage server may have already flushed the data from its in-memory multi-version data structure to its on-disk single-version data structure. This means storage server does not have the data older than 5 seconds. So client will receive transaction too old error. The client will retry with a new timestamp. One scenario that can lead to the error is when it takes too long for a client to send the read request after it gets the timestamp. - * Future transaction error: Each storage server pulls data in increasing order of data’s timestamp from the queuing system. Let’s define a storage server’s timestamp as the largest timestamp of data the storage server has. If the read request’s timestamp is larger than the storage server’s timestamp, the storage server will reply future-transaction-error to the client. The client will retry. One scenario that can lead to the error is when the connection between the SS and the queuing system is slow. - * Wrong shard error: If keys in the request or result depend on data outside this storage server OR if a large selector offset prevents all data from being read in one range read. Client will invalidate its locality cache for the key and retry the read request at the failed key. + * To improve throughput and reduce load on the server side, each client dynamically batches the timestamp requests. + A client keeps adding requests to the current batch until + *when* the number of requests in a batch exceeds a configurable threshold or + *when* the batching times out at a dynamically computed threshold. + Each batch sends only one timestamp request to proxy and all requests in the same batch share the same timestamp. + +* **Step 2 (Get latest commit version)**: When the timestamp request arrives at a proxy, + the proxy wants to get the largest commit version as the return value. + So it contacts the rest of (n-1) proxies for their latest commit versions and + uses the largest one as the return value for Step 1. + + * O(n^2) communication cost: Because each proxy needs to contact the rest of (n-1) proxies to serve clients’ timestamp request, + the communication cost is n*(n-1), where n is the number of proxies; + + * Batching: To reduce communication cost, each proxy batches clients’ timestamp requests for a configurable time period (say 1ms) and + return the same timestamp for requests in the same batch. + +* **Step 3 (Confirm proxy’s liveness)**: To prevent proxies that are no longer a part of the system (such as due to network partition) from serving requests, + each proxy contacts the queuing system for each timestamp request to confirm it is still a valid proxy + (i.e., not replaced by a newer generation proxy process). + This is based on the FDB property that at most one active queuing system is available at any given time. + + * Why do we need this step? This is to achieve consensus (i.e., external consistency). + Compared to serializable isolation, Strict Serializable Isolation (SSI) requires external consistency. + It means the timestamp received by clients cannot decrease. If we do not have step and network partition happens, + a set of old proxies that are disconnected from the rest of systems can still serve timestamp requests to clients. + These timestamps can be smaller than the new generation of proxies, which breaks the external consistency in SSI. + + * O(n * m) communication cost: To confirm a proxy’s liveness, the proxy has to contact all members in the queuing system to + ensure the queuing system is still active. This causes *m* network communication, where *m* is the number of processes in the queuing system. + A system with n proxies will have O(n * m) network communications at the step 3. In our deployment, n is typically equal to m; + + * Do FDB production clusters have this overhead? No. Our production clusters disable the external consistency by + configuring the knob ALWAYS_CAUSAL_READ_RISKY. + +* **Step 4 (Locality request)**: The client gets which storage servers have its requested keys by sending another RPC to proxy. + This step returns a set of *k* storage server interfaces, where k is the replication factor; + + * Client cache mechanism: The key location will be cached in client. + Future requests will use the cache to directly read from storage servers, + which saves a trip to proxy. If location is stale, read will return error and client will retry and refresh the cache. + +* **Step 5 (Get data request)**: The client uses the location information from step 4 to directly query keys from corresponding storage servers. + * Direct read from client’s memory: If a key’s value exists in the client’s memory, the client reads it directly from its local memory. + This happens when a client updates a key’s value and later reads it. + This optimization reduces the amount of unnecessary requests to storage servers. + + * Load balance: Each data exists on k storage servers, where k is the replication factor. + To balance the load across the k replicas, client has a load balancing algorithm to balance the number of requests to each replica. + + * Transaction succeed: If the storage server has the data at the read timestamp, the client will receive the data and return succeed. + + * Transaction too old error: If the read request’s timestamp is older than 5 seconds, + storage server may have already flushed the data from its in-memory multi-version data structure to its on-disk single-version data structure. + This means storage server does not have the data older than 5 seconds. So client will receive transaction too old error. + The client will retry with a new timestamp. + One scenario that can lead to the error is when it takes too long for a client to send the read request after it gets the timestamp. + + * Future transaction error: Each storage server pulls data in increasing order of data’s timestamp from the queuing system. + Let’s define a storage server’s timestamp as the largest timestamp of data the storage server has. + If the read request’s timestamp is larger than the storage server’s timestamp, + the storage server will reply future-transaction-error to the client. + The client will retry. One scenario that can lead to the error is when the connection between the SS and the queuing system is slow. + + * Wrong shard error: If keys in the request or result depend on data outside this storage server OR + if a large selector offset prevents all data from being read in one range read. + Client will invalidate its locality cache for the key and retry the read request at the failed key. Implementation of FDB read path ------------------------------------------ * **Step 1 (Timestamp request)**: - * Each read request tries to get a timestamp if its transaction has not got one: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L2104 - * Client batches the get-timestamp requests: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L3172 - * Dynamic batching algorithm: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L3101-L3104 -* **Step 2 (Get latest commit version)**: Contacting (n-1) proxies for commit version: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbserver/MasterProxyServer.actor.cpp#L1196 + * Each read request tries to get a timestamp if its transaction has not got one: + https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L2104 + * Client batches the get-timestamp requests: + https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L3172 + * Dynamic batching algorithm: + https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L3101-L3104 + +* **Step 2 (Get latest commit version)**: Contacting (n-1) proxies for commit version: + https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbserver/MasterProxyServer.actor.cpp#L1196 + * **Step 3 (Confirm proxy’s liveness)**: * We typically set our clusters’ knob ALWAYS_CAUSAL_READ_RISKY to 1 to skip this step - * Proxy confirm queuing system is alive: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbserver/MasterProxyServer.actor.cpp#L1199 - * How is confirmEpochLive(..) implemented for the above item. https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbserver/TagPartitionedLogSystem.actor.cpp#L1216-L1225 -* **Step 4 (Locality request)**: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L1312-L1313 + * Proxy confirm queuing system is alive: + https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbserver/MasterProxyServer.actor.cpp#L1199 + * How is confirmEpochLive(..) implemented for the above item: + https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbserver/TagPartitionedLogSystem.actor.cpp#L1216-L1225 + +* **Step 4 (Locality request)**: + https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L1312-L1313 + * **Step 5 (Get data request)**: - * Logics of handling get value request: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L1306-L1396 - * Load balance algorithm: The loadBalance() at https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L1342-L1344 + * Logics of handling get value request: + https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L1306-L1396 + * Load balance algorithm: The loadBalance() at + https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L1342-L1344 Write path of a transaction ================================ -Suppose a client has a write-only transaction. Fig. 2 below shows the write path in a non-HA cluster. We will discuss how a transaction with both read and write works in the next section. +Suppose a client has a write-only transaction. Fig. 2 below shows the write path in a non-HA cluster. +We will discuss how a transaction with both read and write works in the next section. .. image:: /images/FDB_write_path.png -To simplify the explanation, the steps below do not include transaction batching on proxy, which is a typical database technique to increase transaction throughput. +To simplify the explanation, the steps below do not include transaction batching on proxy, +which is a typical database technique to increase transaction throughput. + +* **Step 1 (Client buffers write mutations):** Client buffers all writes in a transaction until commit is called on the transaction. + In the rest of document, a write is also named as a mutation. + + * Client is a fat client that preprocess transactions: + (a) For atomic operations, if client knows the key value, it will convert atomic operations to set operations; + (b) For version stamp atomic operations, client adds extra bytes to key or value for the version stamp; + (c) If a key has multiple operations, client coalesces them to one operation whenever possible. + + * How client buffers mutations: + https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbclient/NativeAPI.actor.cpp#L2345-L2361 -* **Step 1 (Client buffers write mutations):** Client buffers all writes in a transaction until commit is called on the transaction. In the rest of document, a write is also named as a mutation. - * Client is a fat client that preprocess transactions: (a) For atomic operations, if client knows the key value, it will convert atomic operations to set operations; (b) For version stamp atomic operations, client adds extra bytes to key for the version stamp; (c) If a key has multiple operations, client coalesces them to one operation, etc. - * How client buffers mutations: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbclient/NativeAPI.actor.cpp#L2345-L2361 * **Step 2 (Client commits the transaction):** When a client calls commit(), it performs several operations: - * **Step 2-1**: Add extra conflict ranges that are added by user but cannot be calculated from mutations. - * **Step 2-2**: Get a timestamp as the transaction’s start time. The timestamp does not need causal consistency because the transaction has no read. - * This request goes to one of proxies. The proxy will contact all other (n-1) proxies to get the most recent commit version as it does in read path. The proxy does not need to contact log systems to confirm its activeness because it does not need causal consistency. - * **Step 2-3**: Sends the transaction’s information to a proxy. Load balancer in client decides which proxy will be used to handle a transaction. A transaction’s information includes: + + * **Step 2-1**: Add extra conflict ranges that are added by user but cannot be calculated from mutations. + + * **Step 2-2**: Get a timestamp as the transaction’s start time. The timestamp does not need causal consistency because the transaction has no read. + * This request goes to one of proxies. The proxy will contact all other (n-1) proxies to get the most recent commit version as it does in read path. + The proxy does not need to contact log systems to confirm its activeness because it does not need causal consistency. + + * **Step 2-3**: Sends the transaction’s information to a proxy. Load balancer in client decides which proxy will be used to handle a transaction. + A transaction’s information includes: + * All of its mutations; * Read and write conflict range; - * Transaction options that control a transaction’s behavior. For example, should the transaction write when the DB is locked? Shall the transaction uses the first proxy in the proxy list to commit? + * Transaction options that control a transaction’s behavior. For example, should the transaction write when the DB is locked? + Shall the transaction uses the first proxy in the proxy list to commit? + * Implementation: * Transaction commit function: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbclient/NativeAPI.actor.cpp#L2895-L2899 * Major work of commit in client side is done at here: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbclient/NativeAPI.actor.cpp#L2784-L2868 * Step 2-1: Add extra conflict ranges: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbclient/NativeAPI.actor.cpp#L2826-L2828 * Step 2-2: getReadVersion at commit which does not need external consistency because we do not have read in the transaction: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbclient/NativeAPI.actor.cpp#L2822-L2823 * Step 2-3: Send transaction to a proxy via RPC: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbclient/NativeAPI.actor.cpp#L2691-L2700 + * When a proxy receives clients’ transactions, it commits the transaction on behalf of clients with Step 3 - 9. + * **Step 3 (Proxy gets commit timestamp)**: The proxy gets the timestamp of the transaction’s commit time from the time oracle through an RPC call. - * To improve transaction throughput and reduce network communication overhead, each proxy dynamically batch transactions and process transactions in batches. A proxy keeps batching transactions until the batch time exceeds a configurable timeout value or until the number of transactions exceed a configurable value or until the total bytes of the batch exceeds a dynamically calculated desired size. + + * To improve transaction throughput and reduce network communication overhead, + each proxy dynamically batch transactions and process transactions in batches. + A proxy keeps batching transactions until the batch time exceeds a configurable timeout value or + until the number of transactions exceed a configurable value or + until the total bytes of the batch exceeds a dynamically calculated desired size. + * The network overhead is 1 network communication per batch of commit transactions; + * How is the dynamically calculated batch size calculated: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbserver/MasterProxyServer.actor.cpp#L1770-L1774 * How commit transactions are batched: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbserver/MasterProxyServer.actor.cpp#L416-L486 * How each transaction batch is handled: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbserver/MasterProxyServer.actor.cpp#L523-L1174 * Where does proxy sends commit timestamp request to the timestamp generator: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbserver/MasterProxyServer.actor.cpp#L586-L587 -* **Step 4 (Proxy builds transactions’ conflict ranges)**: Because the concurrency control component may have multiple processes, each of which is responsible for resolving conflicts in a key range, the proxy needs to build one transaction-conflict-resolution request for each concurrency control process: For each transaction, the proxy splits its read and write conflict ranges based on concurrency control process’ responsible ranges. The proxy will create k conflict resolution requests for each transaction, where k is the number of processes in the concurrency control component. - * Implementation: https://github.com/xumengpanda/foundationdb/blob/4086e3a2750b776cc8bfb0f0e463fe00ac905595/fdbserver/MasterProxyServer.actor.cpp#L607-L618 -* **Step 5 (Proxy sends conflict resolution requests to concurrency control)**: Each concurrency control process is responsible for checking conflicts in a key range. Each process checks if the transaction has conflicts with other transactions in its key-range. Each process returns the conflict checking result back to the proxy. - * What is conflict range? - * A transaction’s write conflict range includes any key and key-ranges that are modified in the transactions. - * A transaction’s read conflict range includes any key and key-ranges that are read in the transaction. - * Client can also use transaction options to add explicit read-conflict-range or write-conflict-range. Example: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L2634-L2635 - * **Piggy-back metadata change**. If the transaction changes database’s metadata, such as locking the database, the change is considered as a special mutation and also checked for conflicts by the concurrency control component. The primary difference between metadata mutation and normal mutations is that the metadata change must be propagated to all proxies so that all proxies have a consistent view of database’s metadata. This is achieved by piggy-backing metadata change in the reply from resolver to proxies. + +* **Step 4 (Proxy builds transactions’ conflict ranges)**: Because the concurrency control component may have multiple processes, + each of which is responsible for resolving conflicts in a key range, + the proxy needs to build one transaction-conflict-resolution request for each concurrency control process: + For each transaction, the proxy splits its read and write conflict ranges based on concurrency control process’ responsible ranges. + The proxy will create k conflict resolution requests for each transaction, where k is the number of processes in the concurrency control component. + + * Implementation: https://github.com/apple/foundationdb/blob/4086e3a2750b776cc8bfb0f0e463fe00ac905595/fdbserver/MasterProxyServer.actor.cpp#L607-L618 + +* **Step 5 (Proxy sends conflict resolution requests to concurrency control)**: + Each concurrency control process is responsible for checking conflicts in a key range. + Each process checks if the transaction has conflicts with other transactions in its key-range. + Each process returns the conflict checking result back to the proxy. + + * What is conflict range? + * A transaction’s write conflict range includes any key and key-ranges that are modified in the transactions. + * A transaction’s read conflict range includes any key and key-ranges that are read in the transaction. + * Client can also use transaction options to add explicit read-conflict-range or write-conflict-range. + Example: https://github.com/apple/foundationdb/blob/4b0fba6ea89b51b82df7868ca24b81f6997db4e4/fdbclient/NativeAPI.actor.cpp#L2634-L2635 + + * **Piggy-back metadata change**. If the transaction changes database’s metadata, such as locking the database, + the change is considered as a special mutation and also checked for conflicts by the concurrency control component. + The primary difference between metadata mutation and normal mutations is that the metadata change must be propagated to all proxies + so that all proxies have a consistent view of database’s metadata. + This is achieved by piggy-backing metadata change in the reply from resolver to proxies. + * Implementation * Create conflict resolution requests for a batch of transactions: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/MasterProxyServer.actor.cpp#L607-L618 * Metadata mutations are sent from proxy to concurrency control processes: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/MasterProxyServer.actor.cpp#L366-L369 -* **Step 6 (Resolve conflicts among concurrent transactions)**: Each concurrency control process checks conflicts among transactions based on the theory in [1]. In a nutshell, it checks for read-write conflicts. Suppose two transactions operates on the same key. If a write transaction’s time overlaps between another read-write transaction’s start time and commit time, only one transaction can commit: the one that arrives first at all concurrency control processes will commit. + +* **Step 6 (Resolve conflicts among concurrent transactions)**: + Each concurrency control process checks conflicts among transactions based on the theory in [1]. + In a nutshell, it checks for read-write conflicts. Suppose two transactions operates on the same key. + If a write transaction’s time overlaps between another read-write transaction’s start time and commit time, + only one transaction can commit: the one that arrives first at all concurrency control processes will commit. + * Implementation * Proxy sends conflict checking request: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/MasterProxyServer.actor.cpp#L626-L629 * Concurrency control process handles the request: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/Resolver.actor.cpp#L320-L322 -* **Step 7 (Proxy’s post resolution processing)**: Once the proxy receives conflict-resolution replies from all concurrency control processes, it performs three steps - * **Step 7-1 (Apply metadata effect caused by other proxies)**: As mentioned above, when a proxy changes database’s metadata, the metadata mutations will be propagated via the concurrency control component to other proxies. So the proxy needs to first compute and apply these metadata mutations onto the proxy’s local states. Otherwise, the proxy will operate in a different view of database’s metadata. + +* **Step 7 (Proxy’s post resolution processing)**: + Once the proxy receives conflict-resolution replies from all concurrency control processes, it performs three steps + + * **Step 7-1 (Apply metadata effect caused by other proxies)**: As mentioned above, when a proxy changes database’s metadata, + the metadata mutations will be propagated via the concurrency control component to other proxies. + So the proxy needs to first compute and apply these metadata mutations onto the proxy’s local states. + Otherwise, the proxy will operate in a different view of database’s metadata. + * For example, if one proxy locks the database in a committed transaction at time t1, all other proxies should have seen the lock immediately after t1. Since another proxy may have transactions in flight already at t1, the proxy must first apply the “lock“ effect before it can process its in-flight transactions. * How metadata effect is applied in implementation: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/MasterProxyServer.actor.cpp#L678-L719 - * **Step 7-2 (Determine which transactions are committed)**: Proxy combines results from all concurrency control processes. Only if all concurrency control processes say a transaction is committed, will the transaction be considered as committed by the proxy. + + * **Step 7-2 (Determine which transactions are committed)**: Proxy combines results from all concurrency control processes. + Only if all concurrency control processes say a transaction is committed, will the transaction be considered as committed by the proxy. + * Implementation: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/MasterProxyServer.actor.cpp#L721-L757 - * **Step 7-3 (Apply metadata effect caused by this proxy)**: For each committed transaction, this proxy applies its metadata mutations to the proxy’s local state. - * Note: These metadata mutations are also sent to concurrency control processes and propagated to other proxies at Step 5. This step is to apply metadata effect on its own proxy’s states. + + * **Step 7-3 (Apply metadata effect caused by this proxy)**: For each committed transaction, + this proxy applies its metadata mutations to the proxy’s local state. + + * Note: These metadata mutations are also sent to concurrency control processes and propagated to other proxies at Step 5. + This step is to apply metadata effect on its own proxy’s states. * Implementation: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/MasterProxyServer.actor.cpp#L763-L777 - * **Step 7-4 (Assign mutations to storage servers and serialize them)**: In order to let the rest of system (the queuing system and storage system) know which process a mutation should be routed to, the proxy needs to add tags to mutations. The proxy serializes mutations with the same tag into the same message and sends the serialized message to the queuing system. + + * **Step 7-4 (Assign mutations to storage servers and serialize them)**: + In order to let the rest of system (the queuing system and storage system) know which process a mutation should be routed to, + the proxy needs to add tags to mutations. + The proxy serializes mutations with the same tag into the same message and sends the serialized message to the queuing system. + * Implementation of adding tags and serializing mutations into messages: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/MasterProxyServer.actor.cpp#L800-L910 * The lines that add tags to a mutation and serialize it: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/MasterProxyServer.actor.cpp#L846-L847 - * **Step 7-5 (Duplicate and serialize mutations to backup system keyspace)**: When backup or disaster recovery (DR) is enabled, each proxy captures mutation streams into a dedicated system keyspace. Mutations in a transaction batch are serialized as a single mutation in a dedicated system keyspace. + + * **Step 7-5 (Duplicate and serialize mutations to backup system keyspace)**: + When backup or disaster recovery (DR) is enabled, each proxy captures mutation streams into a dedicated system keyspace. + Mutations in a transaction batch are serialized as a single mutation in a dedicated system keyspace. + * How mutations are duplicated for backup and DR: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/MasterProxyServer.actor.cpp#L912-L986 - * Note: FDB will have a new backup system that avoids duplicating mutations to the system keyspace. Its design is similar to database’s Change Data Capture (CDC) design. The new backup system is not production-ready yet. -* **Step 8 (Make mutation messages durable in the queuing system)**: Proxy sends serialized mutation messages to the queuing system. The queuing system will append the mutation to an append-only file, fsync it, and send the respnose back. Each message has a tag, which decides which process in the queuing system the message should be sent to. The queuing system returns to the proxy the minimum known committed version, which is the smallest commit version among all proxies. The minimum known commit version is used when the system recovers from fault. + * Note: FDB will have a new backup system that avoids duplicating mutations to the system keyspace. + Its design is similar to database’s Change Data Capture (CDC) design. The new backup system is not production-ready yet. + +* **Step 8 (Make mutation messages durable in the queuing system)**: + Proxy sends serialized mutation messages to the queuing system. + The queuing system will append the mutation to an append-only file, fsync it, and send the respnose back. + Each message has a tag, which decides which process in the queuing system the message should be sent to. + The queuing system returns to the proxy the minimum known committed version, which is the smallest commit version among all proxies. + The minimum known commit version is used when the system recovers from fault. + * Sending messages to the queuing system is abstracted into a push() operation: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/MasterProxyServer.actor.cpp#L1045 * The minimum known committed version is called minKnownCommittedVersion. It is updated for each commit: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/MasterProxyServer.actor.cpp#L1067 -* **Step 9 (Reply to client)**: Proxy replies the transaction’s result to client. If the transaction fails (say due to transaction conflicts), proxy sends the error message to the client. + +* **Step 9 (Reply to client)**: Proxy replies the transaction’s result to client. + If the transaction fails (say due to transaction conflicts), proxy sends the error message to the client. + * Reply to clients based on different transaction’s results: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/MasterProxyServer.actor.cpp#L1117-L1138 -* **Step 10 (Storage systems pull data from queuing system)**: Storage system asynchronously pulls data from queuing system and indexes data for read path. - * Each SS has a primary process (called primary tLog) in the queuing system to pull data from the SS’s data from the queuing system. Each SS only gets in-ordered streams of mutations that are owned by the SS. - * In failure scenario when a SS cannot reach the primary tLog, the SS will pull data from different tLogs that have part of the SS’s data. The SS will then merge the stream of data from different tLogs. - * Each SS does not make its pulled data durable to disk until the data becomes at least 5 seconds older than the most recent data the SS has pulled. This allows each SS to roll back at least 5 seconds of mutations. - * Why do we need roll back feature for SS? This comes from an optimization used in FDB. To make a mutation available in a SS as soon as possible, a SS may fetch a mutation from the queuing system that has not been fully replicated. The mutation’s transaction may be aborted in rare situations, such as when FDB has to recover from faults and decides to throw away the last few non-fully-durable transactions. SSes must throw away data in the aborted transactions. - * Why does SS not make data durable until 5 seconds later? This is because today’s SS does not support rolling back data that has already been made durable on disk. To support roll back, SS keeps data that might be rolled back in memory. When roll-back is needed, SS just throws away the in-memory data. This simplifies the SS implementation. + +* **Step 10 (Storage systems pull data from queuing system)**: + Storage system asynchronously pulls data from queuing system and indexes data for read path. + + * Each SS has a primary process (called primary tLog) in the queuing system to pull data from the SS’s data from the queuing system. + Each SS only gets in-ordered streams of mutations that are owned by the SS. + + * In failure scenario when a SS cannot reach the primary tLog, the SS will pull data from different tLogs that have part of the SS’s data. + The SS will then merge the stream of data from different tLogs. + + * Each SS does not make its pulled data durable to disk until the data becomes + at least 5 seconds older than the most recent data the SS has pulled. + This allows each SS to roll back at least 5 seconds of mutations. + + * Why do we need roll back feature for SS? This comes from an optimization used in FDB. + To make a mutation available in a SS as soon as possible, + a SS may fetch a mutation from the queuing system that has not been fully replicated. + The mutation’s transaction may be aborted in rare situations, such as + when FDB has to recover from faults and decides to throw away the last few non-fully-durable transactions. + SSes must throw away data in the aborted transactions. + + * Why does SS not make data durable until 5 seconds later? + This is because today’s SS does not support rolling back data that has already been made durable on disk. + To support roll back, SS keeps data that might be rolled back in memory. + When roll-back is needed, SS just throws away the in-memory data. This simplifies the SS implementation. * Each storage process pulls data from the queuing system: https://github.com/apple/foundationdb/blob/07e354c499158630d760283aa845440cbeaaa1ca/fdbserver/storageserver.actor.cpp#L3593-L3599 + + Read write path of a transaction ==================================== This section uses an example transaction to describe how a transaction with both read and write operation works in FDB. -Suppose application creates the following transaction, where *Future* is an object that holds an asynchronous call and becomes ready when the async call returns, and *wait()* is a synchronous point when the code waits for futures to be ready. +Suppose application creates the following transaction, where *Future* is an object that holds an asynchronous call and +becomes ready when the async call returns, and *wait()* is a synchronous point when the code waits for futures to be ready. The following code reads key k1 and k2 from database, increases k1’s value by 1 and write back k1’s new value into database. **Example Transaction** :: @@ -192,36 +398,64 @@ The following code reads key k1 and k2 from database, increases k1’s value by The transaction starts with the read path: -* When tr.get() is called, FDB client issues a timestamp request to proxies *if* the transaction has not set its start timestamp. The logic is the Step 1 in the read path; +* When tr.get() is called, FDB client issues a timestamp request to proxies *if* the transaction has not set its start timestamp. + The logic is the Step 1 in the read path; + * Batching timestamp requests. When another tr.get() is called, it will try to get a timestamp as well. If we let every get request to follow the Step 1 in the read path, the performance overhead (especially network communication) will be a lot. In addition, this is not necessary because a transaction has only one start timestamp. To solve this problem, client chooses to batch timestamp requests from the same transaction and only issues one timestamp request when the transaction size reaches a preconfigured threshold or when the transaction duration reaches the batching timeout threshold. - * Timestamp requests are batched: https://github.com/xumengpanda/foundationdb/blob/4086e3a2750b776cc8bfb0f0e463fe00ac905595/fdbclient/NativeAPI.actor.cpp#L3185 - * Thresholds for client to send the timestamp request: https://github.com/xumengpanda/foundationdb/blob/4086e3a2750b776cc8bfb0f0e463fe00ac905595/fdbclient/NativeAPI.actor.cpp#L3095-L3098 + * Timestamp requests are batched: https://github.com/apple/foundationdb/blob/4086e3a2750b776cc8bfb0f0e463fe00ac905595/fdbclient/NativeAPI.actor.cpp#L3185 + * Thresholds for client to send the timestamp request: https://github.com/apple/foundationdb/blob/4086e3a2750b776cc8bfb0f0e463fe00ac905595/fdbclient/NativeAPI.actor.cpp#L3095-L3098 + * Each read request, i.e., tr.get operation in the example, will follow the read path to get data from storage servers, except that they will share the same timestamp; - * These read requests are sent to FDB cluster in parallel. The ordering of which read request will be ready first depends on requests’ network path and storage servers’ load. + * These read requests are sent to FDB cluster in parallel. + The ordering of which read request will be ready first depends on requests’ network path and storage servers’ load. * In the example, tr.get(k2) may return result earlier than tr.get(k1). + * Client will likely block at the synchronization point at Line 4, until the value is returned from the cluster. - * To maximize clients’ performance, a client can issue multiple transactions concurrently. When one transaction is blocked at the synchronization point, the client can switch to work on the other transactions concurrently. -* Client may or may not block at the synchronization point at Line 5. If tr.get(k2) returns earlier than tr.get(k1), the future fv2 is already ready when the client arrives at Line 5. -* At Line 6, client starts the write path. Because the transaction already has its start timestamp, client does not need to request for the transaction’s start time any more and can skip the Step 2-2 in the write path. + * To maximize clients’ performance, a client can issue multiple transactions concurrently. + When one transaction is blocked at the synchronization point, + the client can switch to work on the other transactions concurrently. + +* Client may or may not block at the synchronization point at Line 5. + If tr.get(k2) returns earlier than tr.get(k1), the future fv2 is already ready when the client arrives at Line 5. + +* At Line 6, client starts the write path. Because the transaction already has its start timestamp, + client does not need to request for the transaction’s start time any more and can skip the Step 2-2 in the write path. + * At Line 7, client commits the transaction, which will trigger the operations from Step 2 in the write path. A transaction can get more complex than the example above. -* A transaction can have more writes operations between Line 6 and Line 7. Those writes will be buffered in client’s memory, which is the Step 1 in the write path. Only when the client calls commit(), will the rest of steps in the write path will be triggered; +* A transaction can have more writes operations between Line 6 and Line 7. + Those writes will be buffered in client’s memory, which is the Step 1 in the write path. + Only when the client calls commit(), will the rest of steps in the write path will be triggered; + * A transaction can have reads operations between Line 6 and Line 7 as well. -* A transaction may return commit_unknown_result, which indicate the transaction may or may not succeed. If application simply retries the transaction, the transaction may get executed twice. To solve this problem, the application can adds a transaction id to the transaction and check if the transaction id exists on the commit_unknown_result error. + +* A transaction may return commit_unknown_result, which indicate the transaction may or may not succeed. + If application simply retries the transaction, the transaction may get executed twice. + To solve this problem, the application can adds a transaction id to the transaction and + check if the transaction id exists on the commit_unknown_result error. Concurrency and ordering of multiple write transactions ======================================================================= -FDB orders concurrent transactions in increasing order of the transactions’ commit timestamp. The ordering is enforced in the timestamp generator, the concurrency control component and the durable queuing system. +FDB orders concurrent transactions in increasing order of the transactions’ commit timestamp. +The ordering is enforced in the timestamp generator, the concurrency control component and the durable queuing system. -* When timestamp generator serves the commit timestamp request from a proxy, the reply includes not only the commit timestamp but also the latest commit timestamp the generator has sent out. For example, the timestamp generator just gave out the commit timestamp 50. When the next request arrives, the generator’s timestamp is 100 and the generator replies (50, 100). When the second request arrives and the generator’s timestamp is 200, the generator replies (100, 200). -* When a proxy sends conflict resolution requests to concurrency control processes or durable requests to the queuing system, each request includes both the current transaction’s commit timestamp and the previous transaction’s commit timestamp. -* Each concurrency control process and each process in the queuing system always process requests in the strict order of the request’s commit version. The semantics is do not process a request whose commit timestamp is V2 until the request at its previous commit timestamp V1 has been processed. +* When timestamp generator serves the commit timestamp request from a proxy, + the reply includes not only the commit timestamp but also the latest commit timestamp the generator has sent out. + For example, the timestamp generator just gave out the commit timestamp 50. + When the next request arrives, the generator’s timestamp is 100 and the generator replies (50, 100). + When the second request arrives and the generator’s timestamp is 200, the generator replies (100, 200). + +* When a proxy sends conflict resolution requests to concurrency control processes or durable requests to the queuing system, + each request includes both the current transaction’s commit timestamp and the previous transaction’s commit timestamp. + +* Each concurrency control process and each process in the queuing system always process requests in the strict order of the request’s commit version. + The semantics is do not process a request whose commit timestamp is V2 until the request at its previous commit timestamp V1 has been processed. We use the following example and draw its swimlane diagram to illustrate how two write transactions are ordered in FDB. From cea7336baed0c55fca6e2d93909fc7b4e413e25b Mon Sep 17 00:00:00 2001 From: Meng Xu Date: Fri, 11 Dec 2020 10:18:02 -0800 Subject: [PATCH 076/261] Remove WiP from Read and Write Path doc --- documentation/sphinx/source/read-write-path.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/sphinx/source/read-write-path.rst b/documentation/sphinx/source/read-write-path.rst index 0674bc1233..c9459a03fd 100644 --- a/documentation/sphinx/source/read-write-path.rst +++ b/documentation/sphinx/source/read-write-path.rst @@ -1,5 +1,5 @@ ############################## -FDB Read and Write Path (WiP) +FDB Read and Write Path ############################## | Author: Meng Xu From d7ebae07f5adb051fe00fbe755bb3aa460b33192 Mon Sep 17 00:00:00 2001 From: Steve Atherton Date: Sat, 12 Dec 2020 02:40:06 -0800 Subject: [PATCH 077/261] Added yield to remap cleanup loop to prevent a stack overflow if too many queue entries are processed without waiting on IO. --- fdbserver/VersionedBTree.actor.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fdbserver/VersionedBTree.actor.cpp b/fdbserver/VersionedBTree.actor.cpp index 40a7763c2c..26da92f01c 100644 --- a/fdbserver/VersionedBTree.actor.cpp +++ b/fdbserver/VersionedBTree.actor.cpp @@ -1837,6 +1837,7 @@ public: state Version minStopVersion = cutoff.version - (BUGGIFY ? deterministicRandom()->randomInt(0, 10) : (self->remapCleanupWindow * SERVER_KNOBS->REDWOOD_REMAP_CLEANUP_LAG)); self->remapDestinationsSimOnly.clear(); + state int sinceYield = 0; loop { state Optional p = wait(self->remapQueue.pop(cutoff)); debug_printf("DWALPager(%s) remapCleanup popped %s\n", self->filename.c_str(), ::toString(p).c_str()); @@ -1855,6 +1856,11 @@ public: if (self->remapCleanupStop && p.get().version >= minStopVersion) { break; } + + if(++sinceYield >= 100) { + sinceYield = 0; + wait(yield()); + } } debug_printf("DWALPager(%s) remapCleanup stopped (stop=%d)\n", self->filename.c_str(), self->remapCleanupStop); From 15ac27ef94cfc0a4a3545c287b9ba5fea2b31571 Mon Sep 17 00:00:00 2001 From: Xin Dong Date: Wed, 16 Dec 2020 11:16:13 -0800 Subject: [PATCH 078/261] Added a metric into ProxyMetrics to expose current commit batching window, which can be used as an indicator of the load on the proxy. --- fdbserver/MasterProxyServer.actor.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index cc5f9a2e86..d7c078d5c9 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -65,6 +65,7 @@ struct ProxyStats { Version lastCommitVersionAssigned; double transactionRateAllowed, batchTransactionRateAllowed; double transactionLimit, batchTransactionLimit; + double commitBatchInterval; // how much of the GRV requests queue was processed in one attempt to hand out read version. double percentageOfDefaultGRVQueueProcessed; double percentageOfBatchGRVQueueProcessed; @@ -122,6 +123,7 @@ struct ProxyStats { [this]() { return this->percentageOfDefaultGRVQueueProcessed; }); specialCounter(cc, "PercentageOfBatchGRVQueueProcessed", [this]() { return this->percentageOfBatchGRVQueueProcessed; }); + specialCounter(cc, "DynamicCommitBatchWindow", [this]() { return this->commitBatchInterval; }); logger = traceCounters("ProxyMetrics", id, SERVER_KNOBS->WORKER_LOGGING_INTERVAL, &cc, "ProxyMetrics"); } }; @@ -1253,6 +1255,7 @@ ACTOR Future commitBatch( std::min(SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_MAX, target_latency * SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_SMOOTHER_ALPHA + self->commitBatchInterval * (1-SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_SMOOTHER_ALPHA))); + self->stats.commitBatchInterval = self->commitBatchInterval; self->commitBatchesMemBytesCount -= currentBatchMemBytesCount; ASSERT_ABORT(self->commitBatchesMemBytesCount >= 0); From 35e8bf3ec7bab3ea7166dd0b48ea1e7a206171f2 Mon Sep 17 00:00:00 2001 From: Xin Dong Date: Fri, 18 Dec 2020 16:33:46 -0800 Subject: [PATCH 079/261] Change from logging point value to logging histogram. --- fdbserver/MasterProxyServer.actor.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index d7c078d5c9..1c4814800e 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -65,7 +65,6 @@ struct ProxyStats { Version lastCommitVersionAssigned; double transactionRateAllowed, batchTransactionRateAllowed; double transactionLimit, batchTransactionLimit; - double commitBatchInterval; // how much of the GRV requests queue was processed in one attempt to hand out read version. double percentageOfDefaultGRVQueueProcessed; double percentageOfBatchGRVQueueProcessed; @@ -79,6 +78,8 @@ struct ProxyStats { LatencyBands commitLatencyBands; LatencyBands grvLatencyBands; + LatencySample commitBatchingWindowSize; + Future logger; explicit ProxyStats(UID id, Version* pVersion, NotifiedVersion* pCommittedVersion, @@ -102,6 +103,8 @@ struct ProxyStats { SERVER_KNOBS->LATENCY_SAMPLE_SIZE), grvLatencySample("GRVLatencyMetrics", id, SERVER_KNOBS->LATENCY_METRICS_LOGGING_INTERVAL, SERVER_KNOBS->LATENCY_SAMPLE_SIZE), + commitBatchingWindowSize("CommitBatchingWindowSize", id, SERVER_KNOBS->LATENCY_METRICS_LOGGING_INTERVAL, + SERVER_KNOBS->LATENCY_SAMPLE_SIZE), commitLatencyBands("CommitLatencyBands", id, SERVER_KNOBS->STORAGE_LOGGING_DELAY), grvLatencyBands("GRVLatencyBands", id, SERVER_KNOBS->STORAGE_LOGGING_DELAY), defaultTxnGRVTimeInQueue("DefaultTxnGRVTimeInQueue", id, SERVER_KNOBS->LATENCY_METRICS_LOGGING_INTERVAL, @@ -123,7 +126,6 @@ struct ProxyStats { [this]() { return this->percentageOfDefaultGRVQueueProcessed; }); specialCounter(cc, "PercentageOfBatchGRVQueueProcessed", [this]() { return this->percentageOfBatchGRVQueueProcessed; }); - specialCounter(cc, "DynamicCommitBatchWindow", [this]() { return this->commitBatchInterval; }); logger = traceCounters("ProxyMetrics", id, SERVER_KNOBS->WORKER_LOGGING_INTERVAL, &cc, "ProxyMetrics"); } }; @@ -1255,7 +1257,7 @@ ACTOR Future commitBatch( std::min(SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_MAX, target_latency * SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_SMOOTHER_ALPHA + self->commitBatchInterval * (1-SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_SMOOTHER_ALPHA))); - self->stats.commitBatchInterval = self->commitBatchInterval; + self->stats.commitBatchingWindowSize.addMeasurement(self->commitBatchInterval); self->commitBatchesMemBytesCount -= currentBatchMemBytesCount; ASSERT_ABORT(self->commitBatchesMemBytesCount >= 0); From adc916121e91a206d0628390af55b1e1802fc116 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Sun, 20 Dec 2020 22:44:04 -0800 Subject: [PATCH 080/261] Copy the network address stringref --- fdbclient/ThreadSafeTransaction.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fdbclient/ThreadSafeTransaction.cpp b/fdbclient/ThreadSafeTransaction.cpp index 08a00642d8..db5c7d49c8 100644 --- a/fdbclient/ThreadSafeTransaction.cpp +++ b/fdbclient/ThreadSafeTransaction.cpp @@ -69,8 +69,9 @@ void ThreadSafeDatabase::setOption( FDBDatabaseOptions::Option option, Optional< ThreadFuture ThreadSafeDatabase::rebootWorker(const StringRef& address, bool check, int duration) { DatabaseContext *db = this->db; - return onMainThread( [db, address, check, duration]() -> Future { - return db->rebootWorker(address, check, duration); + Key addressKey = address; + return onMainThread( [db, addressKey, check, duration]() -> Future { + return db->rebootWorker(addressKey, check, duration); } ); } From 7b4f7ce4e0b090421fc717eda56bb4f9917ea3c8 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Sun, 20 Dec 2020 22:47:55 -0800 Subject: [PATCH 081/261] update comments --- fdbclient/NativeAPI.actor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index cc79d10a0b..37a60f2339 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -4735,11 +4735,11 @@ ACTOR Future addInterfaceActor( std::map rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool check, int duration) { // fetch the addresses of all workers state std::map> address_interface; - // TODO : find out when this is invalid if (!cx->getConnectionFile()) return 0; Standalone kvs = wait(getWorkerInterfaces(cx->getConnectionFile())); ASSERT(!kvs.more); + // Note: reuse this knob from fdbcli, change it if necessary Reference connectLock(new FlowLock(CLIENT_KNOBS->CLI_CONNECT_PARALLELISM)); std::vector> addInterfs; for( auto it : kvs ) { From e69f1a804e7a152f1d4715f566364be1737742a8 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Sun, 20 Dec 2020 22:52:38 -0800 Subject: [PATCH 082/261] Add RebootWorker java bindings --- bindings/java/CMakeLists.txt | 1 + bindings/java/fdbJNI.cpp | 34 +++++++++++++++++ .../main/com/apple/foundationdb/Database.java | 9 +++++ .../com/apple/foundationdb/FDBDatabase.java | 13 ++++++- .../com/apple/foundationdb/FutureBoolean.java | 37 +++++++++++++++++++ 5 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 bindings/java/src/main/com/apple/foundationdb/FutureBoolean.java diff --git a/bindings/java/CMakeLists.txt b/bindings/java/CMakeLists.txt index 2fc24ecf98..bf3e91f928 100644 --- a/bindings/java/CMakeLists.txt +++ b/bindings/java/CMakeLists.txt @@ -30,6 +30,7 @@ set(JAVA_BINDING_SRCS src/main/com/apple/foundationdb/FDB.java src/main/com/apple/foundationdb/FDBDatabase.java src/main/com/apple/foundationdb/FDBTransaction.java + src/main/com/apple/foundationdb/FutureBoolean.java src/main/com/apple/foundationdb/FutureInt64.java src/main/com/apple/foundationdb/FutureKey.java src/main/com/apple/foundationdb/FutureKeyArray.java diff --git a/bindings/java/fdbJNI.cpp b/bindings/java/fdbJNI.cpp index 1cf889649e..3fb4d4f647 100644 --- a/bindings/java/fdbJNI.cpp +++ b/bindings/java/fdbJNI.cpp @@ -267,6 +267,23 @@ JNIEXPORT jlong JNICALL Java_com_apple_foundationdb_FutureInt64_FutureInt64_1get return (jlong)value; } +JNIEXPORT jboolean JNICALL Java_com_apple_foundationdb_FutureBoolean_FutureBoolean_1get(JNIEnv *jenv, jobject, jlong future) { + if (!future) { + throwParamNotNull(jenv); + return 0; + } + FDBFuture *f = (FDBFuture *)future; + + bool value = false; + fdb_error_t err = fdb_future_get_bool(f, &value); + if (err) { + safeThrow(jenv, getThrowable(jenv, err)); + return 0; + } + + return (jboolean)value; +} + JNIEXPORT jobject JNICALL Java_com_apple_foundationdb_FutureStrings_FutureStrings_1get(JNIEnv *jenv, jobject, jlong future) { if( !future ) { throwParamNotNull(jenv); @@ -524,6 +541,23 @@ JNIEXPORT jlong JNICALL Java_com_apple_foundationdb_FDBDatabase_Database_1create return (jlong)tr; } +JNIEXPORT jlong JNICALL Java_com_apple_foundationdb_FDBDatabase_Database_1rebootWorker(JNIEnv *jenv, jobject, jlong dbPtr, jbyteArray addressBytes, jboolean check, jint duration) { + if( !dbPtr ) { + throwParamNotNull(jenv); + return 0; + } + FDBDatabase *database = (FDBDatabase *)dbPtr; + uint8_t *buffer = (uint8_t *)jenv->GetByteArrayElements( addressBytes, JNI_NULL ); + if (!buffer) { + if( !jenv->ExceptionOccurred() ) + throwRuntimeEx( jenv, "Error getting handle to native resources" ); + return 0; + } + FDBFuture *f = fdb_database_reboot_worker( database, buffer, jenv->GetArrayLength( addressBytes ), check, duration); + jenv->ReleaseByteArrayElements( addressBytes, (jbyte*)buffer, JNI_ABORT ); + return (jlong)f; +} + JNIEXPORT void JNICALL Java_com_apple_foundationdb_FDBDatabase_Database_1dispose(JNIEnv *jenv, jobject, jlong dPtr) { if( !dPtr ) { throwParamNotNull(jenv); diff --git a/bindings/java/src/main/com/apple/foundationdb/Database.java b/bindings/java/src/main/com/apple/foundationdb/Database.java index 86e06e42a9..8e86f9e5ad 100644 --- a/bindings/java/src/main/com/apple/foundationdb/Database.java +++ b/bindings/java/src/main/com/apple/foundationdb/Database.java @@ -62,6 +62,15 @@ public interface Database extends AutoCloseable, TransactionContext { */ Transaction createTransaction(Executor e); + /** + * Reboot the specificed process in the {@code Database} + * @param address network address of the process + * @param check whether to make sure the data is durable + * @param duration duration(seconds) for the process to be suspended before reboot + * @return whether the reboot is successful or not + */ + CompletableFuture rebootWorker(byte[] address, boolean check, int duration); + /** * Returns a set of options that can be set on a {@code Database} * diff --git a/bindings/java/src/main/com/apple/foundationdb/FDBDatabase.java b/bindings/java/src/main/com/apple/foundationdb/FDBDatabase.java index 038aacb2e6..b043094228 100644 --- a/bindings/java/src/main/com/apple/foundationdb/FDBDatabase.java +++ b/bindings/java/src/main/com/apple/foundationdb/FDBDatabase.java @@ -129,6 +129,16 @@ class FDBDatabase extends NativeObjectWrapper implements Database, OptionConsume } } + @Override + public CompletableFuture rebootWorker(byte[] address, boolean check, int duration) { + pointerReadLock.lock(); + try { + return new FutureBoolean(Database_rebootWorker(getPtr(), address, check, duration), executor); + } finally { + pointerReadLock.unlock(); + } + } + @Override public void setOption(int code, byte[] value) { pointerReadLock.lock(); @@ -150,6 +160,7 @@ class FDBDatabase extends NativeObjectWrapper implements Database, OptionConsume } private native long Database_createTransaction(long cPtr); + private native long Database_rebootWorker(long cPtr, byte[] address, boolean check, int duration); private native void Database_dispose(long cPtr); private native void Database_setOption(long cPtr, int code, byte[] value) throws FDBException; -} \ No newline at end of file +} diff --git a/bindings/java/src/main/com/apple/foundationdb/FutureBoolean.java b/bindings/java/src/main/com/apple/foundationdb/FutureBoolean.java new file mode 100644 index 0000000000..1e733e9987 --- /dev/null +++ b/bindings/java/src/main/com/apple/foundationdb/FutureBoolean.java @@ -0,0 +1,37 @@ +/* + * FutureBoolean.java + * + * This source file is part of the FoundationDB open source project + * + * Copyright 2013-2020 Apple Inc. and the FoundationDB project authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.apple.foundationdb; + +import java.util.concurrent.Executor; + +public class FutureBoolean extends NativeFuture { + FutureBoolean(long cPtr, Executor executor) { + super(cPtr); + registerMarshalCallback(executor); + } + + @Override + protected Boolean getIfDone_internal(long cPtr) throws FDBException { + return FutureBoolean_get(cPtr); + } + + private native boolean FutureBoolean_get(long cPtr) throws FDBException; +} From 9db9a847988406b190c9e8ba9dd6915f7dcd04d0 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Mon, 21 Dec 2020 13:29:16 -0800 Subject: [PATCH 083/261] Ignore negative duration value --- fdbclient/NativeAPI.actor.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index 6a2aaf619a..bfb8416fc5 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -4808,6 +4808,8 @@ ACTOR Future addInterfaceActor( std::map rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool check, int duration) { + // ignore negative value + if (duration < 0) duration = 0; // fetch the addresses of all workers state std::map> address_interface; if (!cx->getConnectionFile()) @@ -4820,11 +4822,11 @@ ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool ch for( auto it : kvs ) { addInterfs.push_back(addInterfaceActor(&address_interface, connectLock, it)); } - wait( waitForAll(addInterfs) ); - if (!address_interface.count(addr)) - return 0; + wait(waitForAll(addInterfs)); + if (!address_interface.count(addr)) return 0; - BinaryReader::fromStringRef(address_interface[addr].first, IncludeVersion()).reboot.send( RebootRequest(false, check, duration)); + BinaryReader::fromStringRef(address_interface[addr].first, IncludeVersion()) + .reboot.send(RebootRequest(false, check, duration)); return 1; } From 83b2a994c398ea9bea988f4d5d3589df021de353 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Mon, 21 Dec 2020 14:01:17 -0800 Subject: [PATCH 084/261] Add release notes --- documentation/sphinx/source/api-c.rst | 25 +++++++++++++++++++ .../release-notes/release-notes-700.rst | 3 ++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/documentation/sphinx/source/api-c.rst b/documentation/sphinx/source/api-c.rst index 8b85a12dcf..515c6ebf2f 100644 --- a/documentation/sphinx/source/api-c.rst +++ b/documentation/sphinx/source/api-c.rst @@ -301,6 +301,12 @@ See :ref:`developer-guide-programming-with-futures` for further (language-indepe |future-get-return1| |future-get-return2|. +.. function:: fdb_error_t fdb_future_get_bool(FDBFuture* future, bool* out) + + Extracts a bool from an :type:`FDBFuture*` into a caller-provided variable of type ``bool``. |future-warning| + + |future-get-return1| |future-get-return2|. + .. function:: fdb_error_t fdb_future_get_key_array( FDBFuture* f, FDBKey const** out_key_array, int* out_count) Extracts an array of :type:`FDBKey` from an :type:`FDBFuture*` into a caller-provided variable of type ``FDBKey*``. The size of the array will also be extracted and passed back by a caller-provided variable of type ``int`` |future-warning| @@ -426,6 +432,25 @@ An |database-blurb1| Modifications to a database are performed via transactions. ``*out_transaction`` Set to point to the newly created :type:`FDBTransaction`. +.. function:: FDBFuture* fdb_database_reboot_worker(FDBDatabase* database, uint8_t const* address, int address_length, fdb_bool_t check, int duration) + + Reboot the specified process in the database. + + |future-return0| a :type:`bool` represents whether the reboot request is successful or not. |future-return1| call :func:`fdb_future_get_bool()` to extract the result, |future-return2| + + ``address`` + A pointer to the network address of the process. + + ``address_length`` + |length-of| ``address``. + + ``check`` + whether to make sure the data is durable on disk + + ``duration`` + If positive, the process will be first suspended for ``duration`` seconds before being rebooted. + + Transaction =========== diff --git a/documentation/sphinx/source/release-notes/release-notes-700.rst b/documentation/sphinx/source/release-notes/release-notes-700.rst index cac8e12be6..66e6dd3606 100644 --- a/documentation/sphinx/source/release-notes/release-notes-700.rst +++ b/documentation/sphinx/source/release-notes/release-notes-700.rst @@ -35,7 +35,8 @@ Status Bindings -------- * Python: The function ``get_estimated_range_size_bytes`` will now throw an error if the ``begin_key`` or ``end_key`` is ``None``. `(PR #3394) `_ - +* Added a new API to reboot the specified process, e.g., ``fdb_database_reboot_worker`` in the C binding. `(PR #4094) `_. +* C: Added ``fdb_future_get_bool`` to read a bool value from FDBFuture. `(PR #4094) `_. Other Changes ------------- From 3715cf50a26c384fb0f2caf409c798a8949b9fba Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Mon, 21 Dec 2020 18:04:45 -0800 Subject: [PATCH 085/261] merge conflict --- bindings/python/fdb/impl.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/bindings/python/fdb/impl.py b/bindings/python/fdb/impl.py index 058d6f458f..b7cc49d305 100644 --- a/bindings/python/fdb/impl.py +++ b/bindings/python/fdb/impl.py @@ -1434,15 +1434,13 @@ def init_c_api(): _capi.fdb_future_get_int64.restype = ctypes.c_int _capi.fdb_future_get_int64.errcheck = check_error_code -<<<<<<< HEAD - _capi.fdb_future_get_bool.argtypes = [ctypes.c_void_p, ctypes.POINTER(ctypes.c_bool)] - _capi.fdb_future_get_bool.restype = ctypes.c_bool - _capi.fdb_future_get_bool.errcheck = check_error_code -======= _capi.fdb_future_get_uint64.argtypes = [ctypes.c_void_p, ctypes.POINTER(ctypes.c_uint64)] _capi.fdb_future_get_uint64.restype = ctypes.c_uint _capi.fdb_future_get_uint64.errcheck = check_error_code ->>>>>>> upstream/master + + _capi.fdb_future_get_bool.argtypes = [ctypes.c_void_p, ctypes.POINTER(ctypes.c_bool)] + _capi.fdb_future_get_bool.restype = ctypes.c_bool + _capi.fdb_future_get_bool.errcheck = check_error_code _capi.fdb_future_get_key.argtypes = [ctypes.c_void_p, ctypes.POINTER(ctypes.POINTER(ctypes.c_byte)), ctypes.POINTER(ctypes.c_int)] From 9b7c93ca8697ec670bb3480a297175c052920c6e Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Tue, 22 Dec 2020 10:30:07 -0800 Subject: [PATCH 086/261] Make sure that fdb_c.h is c89 compliant --- bindings/c/CMakeLists.txt | 6 ++++++ bindings/c/test/fdb_c89_test.c | 7 +++++++ 2 files changed, 13 insertions(+) create mode 100644 bindings/c/test/fdb_c89_test.c diff --git a/bindings/c/CMakeLists.txt b/bindings/c/CMakeLists.txt index f4e5a762ac..7e3ba1fc84 100644 --- a/bindings/c/CMakeLists.txt +++ b/bindings/c/CMakeLists.txt @@ -111,6 +111,12 @@ if(NOT WIN32) set_property(TARGET mako PROPERTY SKIP_BUILD_RPATH TRUE) target_link_libraries(mako PRIVATE fdb_c) + # Make sure that fdb_c.h is compatible with c89 + add_executable(fdb_c89_test test/fdb_c89_test.c) + set_property(TARGET fdb_c89_test PROPERTY C_STANDARD 90) + target_compile_options(fdb_c89_test PRIVATE -Wall -Wextra -Wpedantic -Werror) + target_link_libraries(fdb_c89_test PRIVATE fdb_c) + add_fdbclient_test( NAME fdb_c_setup_tests COMMAND $) diff --git a/bindings/c/test/fdb_c89_test.c b/bindings/c/test/fdb_c89_test.c new file mode 100644 index 0000000000..f26b2513c1 --- /dev/null +++ b/bindings/c/test/fdb_c89_test.c @@ -0,0 +1,7 @@ +#define FDB_API_VERSION 700 +#include + +int main(int argc, char* argv[]) { + fdb_select_api_version(700); + return 0; +} From c3b152113c29a114ff98c2c42508dc547c8f7cbf Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Tue, 22 Dec 2020 13:57:13 -0800 Subject: [PATCH 087/261] Update release notes and download links. --- documentation/sphinx/source/downloads.rst | 24 +++++++++---------- .../release-notes/release-notes-620.rst | 3 +++ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/documentation/sphinx/source/downloads.rst b/documentation/sphinx/source/downloads.rst index 065440b8c5..e4de4ac711 100644 --- a/documentation/sphinx/source/downloads.rst +++ b/documentation/sphinx/source/downloads.rst @@ -10,38 +10,38 @@ macOS The macOS installation package is supported on macOS 10.7+. It includes the client and (optionally) the server. -* `FoundationDB-6.2.28.pkg `_ +* `FoundationDB-6.2.29.pkg `_ Ubuntu ------ The Ubuntu packages are supported on 64-bit Ubuntu 12.04+, but beware of the Linux kernel bug in Ubuntu 12.x. -* `foundationdb-clients-6.2.28-1_amd64.deb `_ -* `foundationdb-server-6.2.28-1_amd64.deb `_ (depends on the clients package) +* `foundationdb-clients-6.2.29-1_amd64.deb `_ +* `foundationdb-server-6.2.29-1_amd64.deb `_ (depends on the clients package) RHEL/CentOS EL6 --------------- The RHEL/CentOS EL6 packages are supported on 64-bit RHEL/CentOS 6.x. -* `foundationdb-clients-6.2.28-1.el6.x86_64.rpm `_ -* `foundationdb-server-6.2.28-1.el6.x86_64.rpm `_ (depends on the clients package) +* `foundationdb-clients-6.2.29-1.el6.x86_64.rpm `_ +* `foundationdb-server-6.2.29-1.el6.x86_64.rpm `_ (depends on the clients package) RHEL/CentOS EL7 --------------- The RHEL/CentOS EL7 packages are supported on 64-bit RHEL/CentOS 7.x. -* `foundationdb-clients-6.2.28-1.el7.x86_64.rpm `_ -* `foundationdb-server-6.2.28-1.el7.x86_64.rpm `_ (depends on the clients package) +* `foundationdb-clients-6.2.29-1.el7.x86_64.rpm `_ +* `foundationdb-server-6.2.29-1.el7.x86_64.rpm `_ (depends on the clients package) Windows ------- The Windows installer is supported on 64-bit Windows XP and later. It includes the client and (optionally) the server. -* `foundationdb-6.2.28-x64.msi `_ +* `foundationdb-6.2.29-x64.msi `_ API Language Bindings ===================== @@ -58,18 +58,18 @@ On macOS and Windows, the FoundationDB Python API bindings are installed as part If you need to use the FoundationDB Python API from other Python installations or paths, download the Python package: -* `foundationdb-6.2.28.tar.gz `_ +* `foundationdb-6.2.29.tar.gz `_ Ruby 1.9.3/2.0.0+ ----------------- -* `fdb-6.2.28.gem `_ +* `fdb-6.2.29.gem `_ Java 8+ ------- -* `fdb-java-6.2.28.jar `_ -* `fdb-java-6.2.28-javadoc.jar `_ +* `fdb-java-6.2.29.jar `_ +* `fdb-java-6.2.29-javadoc.jar `_ Go 1.11+ -------- diff --git a/documentation/sphinx/source/release-notes/release-notes-620.rst b/documentation/sphinx/source/release-notes/release-notes-620.rst index 07f3ce02d7..fa51a8190f 100644 --- a/documentation/sphinx/source/release-notes/release-notes-620.rst +++ b/documentation/sphinx/source/release-notes/release-notes-620.rst @@ -10,6 +10,9 @@ Release Notes * Add human-readable DateTime to trace events `(PR #4087) `_ * Proxy rejects transaction batch that exceeds MVCC window `(PR #4113) `_ * Add a command in fdbcli to manually trigger the detailed teams information loggings in data distribution. `(PR #4060) `_ +* Add documentation on read and write Path. `(PR #4099) `_ +* Add a histogram to expose commit batching window on Proxies. `(PR #4166) `_ +* Fix double counting of range reads in TransactionMetrics. `(PR #4130) `_ 6.2.28 ====== From a1809f7d8610531b5be9034df9c34b7bfd4b3cca Mon Sep 17 00:00:00 2001 From: Vishesh Yadav Date: Tue, 15 Dec 2020 14:42:07 -0800 Subject: [PATCH 088/261] doc: Fault Tolerance and Region Configuration --- fdbclient/DatabaseConfiguration.h | 143 ++++++++++++++++++++---------- fdbserver/LogSystemConfig.h | 2 +- fdbserver/Status.actor.cpp | 1 + 3 files changed, 96 insertions(+), 50 deletions(-) diff --git a/fdbclient/DatabaseConfiguration.h b/fdbclient/DatabaseConfiguration.h index 46f1d76dba..7f6b410eb3 100644 --- a/fdbclient/DatabaseConfiguration.h +++ b/fdbclient/DatabaseConfiguration.h @@ -51,9 +51,19 @@ struct RegionInfo { int32_t priority; Reference satelliteTLogPolicy; + + // Number of tLogs that should be recruited in satellite datacenters. int32_t satelliteDesiredTLogCount; + + // Total number of copies made for each mutation across all satellite tLogs in all DCs. int32_t satelliteTLogReplicationFactor; + + // Number of tLog replies we can ignore when waiting for quorum. Hence, effective quorum is + // satelliteDesiredTLogCount - satelliteTLogWriteAntiQuorum. Locality of individual tLogs is not taken + // into account. int32_t satelliteTLogWriteAntiQuorum; + + // Number of satellite datacenters for current region, as set by `satellite_redundancy_mode`. int32_t satelliteTLogUsableDcs; Reference satelliteTLogPolicyFallback; @@ -63,27 +73,32 @@ struct RegionInfo { std::vector satellites; - RegionInfo() : priority(0), satelliteDesiredTLogCount(-1), satelliteTLogReplicationFactor(0), satelliteTLogWriteAntiQuorum(0), satelliteTLogUsableDcs(1), - satelliteTLogReplicationFactorFallback(0), satelliteTLogWriteAntiQuorumFallback(0), satelliteTLogUsableDcsFallback(0) {} + RegionInfo() + : priority(0), satelliteDesiredTLogCount(-1), satelliteTLogReplicationFactor(0), satelliteTLogWriteAntiQuorum(0), + satelliteTLogUsableDcs(1), satelliteTLogReplicationFactorFallback(0), satelliteTLogWriteAntiQuorumFallback(0), + satelliteTLogUsableDcsFallback(0) {} struct sort_by_priority { - bool operator ()(RegionInfo const&a, RegionInfo const& b) const { return a.priority > b.priority; } + bool operator()(RegionInfo const& a, RegionInfo const& b) const { return a.priority > b.priority; } }; template void serialize(Ar& ar) { - serializer(ar, dcId, priority, satelliteTLogPolicy, satelliteDesiredTLogCount, satelliteTLogReplicationFactor, satelliteTLogWriteAntiQuorum, satelliteTLogUsableDcs, - satelliteTLogPolicyFallback, satelliteTLogReplicationFactorFallback, satelliteTLogWriteAntiQuorumFallback, satelliteTLogUsableDcsFallback, satellites); + serializer(ar, dcId, priority, satelliteTLogPolicy, satelliteDesiredTLogCount, satelliteTLogReplicationFactor, + satelliteTLogWriteAntiQuorum, satelliteTLogUsableDcs, satelliteTLogPolicyFallback, + satelliteTLogReplicationFactorFallback, satelliteTLogWriteAntiQuorumFallback, + satelliteTLogUsableDcsFallback, satellites); } }; struct DatabaseConfiguration { DatabaseConfiguration(); - void applyMutation( MutationRef mutation ); - bool set( KeyRef key, ValueRef value ); // Returns true if a configuration option that requires recovery to take effect is changed - bool clear( KeyRangeRef keys ); - Optional get( KeyRef key ) const; + void applyMutation(MutationRef mutation); + bool set(KeyRef key, + ValueRef value); // Returns true if a configuration option that requires recovery to take effect is changed + bool clear(KeyRangeRef keys); + Optional get(KeyRef key) const; bool isValid() const; @@ -92,62 +107,73 @@ struct DatabaseConfiguration { std::string toString() const; StatusObject toJSON(bool noPolicies = false) const; StatusArray getRegionJSON() const; - - RegionInfo getRegion( Optional dcId ) const { - if(!dcId.present()) { + + RegionInfo getRegion(Optional dcId) const { + if (!dcId.present()) { return RegionInfo(); } - for(auto& r : regions) { - if(r.dcId == dcId.get()) { + for (auto& r : regions) { + if (r.dcId == dcId.get()) { return r; } } return RegionInfo(); } - int expectedLogSets( Optional dcId ) const { + int expectedLogSets(Optional dcId) const { int result = 1; - if(dcId.present() && getRegion(dcId.get()).satelliteTLogReplicationFactor > 0 && usableRegions > 1) { + if (dcId.present() && getRegion(dcId.get()).satelliteTLogReplicationFactor > 0 && usableRegions > 1) { result++; } - - if(usableRegions > 1) { + + if (usableRegions > 1) { result++; } return result; } + // Counts the number of DCs required including remote and satellites for current database configuraiton. int32_t minDatacentersRequired() const { int minRequired = 0; - for(auto& r : regions) { + for (auto& r : regions) { minRequired += 1 + r.satellites.size(); } return minRequired; } + int32_t minZonesRequiredPerDatacenter() const { - int minRequired = std::max( remoteTLogReplicationFactor, std::max(tLogReplicationFactor, storageTeamSize) ); - for(auto& r : regions) { - minRequired = std::max( minRequired, r.satelliteTLogReplicationFactor/std::max(1, r.satelliteTLogUsableDcs) ); + int minRequired = std::max(remoteTLogReplicationFactor, std::max(tLogReplicationFactor, storageTeamSize)); + for (auto& r : regions) { + minRequired = + std::max(minRequired, r.satelliteTLogReplicationFactor / std::max(1, r.satelliteTLogUsableDcs)); } return minRequired; } - //Killing an entire datacenter counts as killing one zone in modes that support it + // Retuns the maximum number of discrete failures a cluster can tolerate. + // In HA mode, `fullyReplicatedRegions` is set to false initially when data is being + // replicated to remote, and will be true later. `forAvailablity` is set to true + // if we want to account the number for machines that can recruit new tLogs/SS after failures. + // Killing an entire datacenter counts as killing one zone in modes that support it int32_t maxZoneFailuresTolerated(int fullyReplicatedRegions, bool forAvailability) const { int worstSatellite = regions.size() ? std::numeric_limits::max() : 0; int regionsWithNonNegativePriority = 0; - for(auto& r : regions) { - if(r.priority >= 0) { + for (auto& r : regions) { + if (r.priority >= 0) { regionsWithNonNegativePriority++; } - worstSatellite = std::min(worstSatellite, r.satelliteTLogReplicationFactor - r.satelliteTLogWriteAntiQuorum); - if(r.satelliteTLogUsableDcsFallback > 0) { - worstSatellite = std::min(worstSatellite, r.satelliteTLogReplicationFactorFallback - r.satelliteTLogWriteAntiQuorumFallback); + worstSatellite = + std::min(worstSatellite, r.satelliteTLogReplicationFactor - r.satelliteTLogWriteAntiQuorum); + if (r.satelliteTLogUsableDcsFallback > 0) { + worstSatellite = std::min(worstSatellite, r.satelliteTLogReplicationFactorFallback - + r.satelliteTLogWriteAntiQuorumFallback); } } - if(usableRegions > 1 && fullyReplicatedRegions > 1 && worstSatellite > 0 && (!forAvailability || regionsWithNonNegativePriority > 1)) { - return 1 + std::min(std::max(tLogReplicationFactor - 1 - tLogWriteAntiQuorum, worstSatellite - 1), storageTeamSize - 1); - } else if(worstSatellite > 0) { + if (usableRegions > 1 && fullyReplicatedRegions > 1 && worstSatellite > 0 && + (!forAvailability || regionsWithNonNegativePriority > 1)) { + return 1 + std::min(std::max(tLogReplicationFactor - 1 - tLogWriteAntiQuorum, worstSatellite - 1), + storageTeamSize - 1); + } else if (worstSatellite > 0) { return std::min(tLogReplicationFactor + worstSatellite - 2 - tLogWriteAntiQuorum, storageTeamSize - 1); } return std::min(tLogReplicationFactor - 1 - tLogWriteAntiQuorum, storageTeamSize - 1); @@ -185,27 +211,47 @@ struct DatabaseConfiguration { // Backup Workers bool backupWorkerEnabled; - //Data centers - int32_t usableRegions; + // Data centers + int32_t usableRegions; // Number of regions which have a replica of the database. int32_t repopulateRegionAntiQuorum; std::vector regions; // Excluded servers (no state should be here) - bool isExcludedServer( NetworkAddressList ) const; + bool isExcludedServer(NetworkAddressList) const; std::set getExcludedServers() const; - int32_t getDesiredProxies() const { if(masterProxyCount == -1) return autoMasterProxyCount; return masterProxyCount; } - int32_t getDesiredResolvers() const { if(resolverCount == -1) return autoResolverCount; return resolverCount; } - int32_t getDesiredLogs() const { if(desiredTLogCount == -1) return autoDesiredTLogCount; return desiredTLogCount; } - int32_t getDesiredRemoteLogs() const { if(remoteDesiredTLogCount == -1) return getDesiredLogs(); return remoteDesiredTLogCount; } - int32_t getDesiredSatelliteLogs( Optional dcId ) const { - auto desired = getRegion(dcId).satelliteDesiredTLogCount; - if(desired == -1) return autoDesiredTLogCount; return desired; + int32_t getDesiredProxies() const { + if (masterProxyCount == -1) return autoMasterProxyCount; + return masterProxyCount; } - int32_t getRemoteTLogReplicationFactor() const { if(remoteTLogReplicationFactor == 0) return tLogReplicationFactor; return remoteTLogReplicationFactor; } - Reference getRemoteTLogPolicy() const { if(remoteTLogReplicationFactor == 0) return tLogPolicy; return remoteTLogPolicy; } + int32_t getDesiredResolvers() const { + if (resolverCount == -1) return autoResolverCount; + return resolverCount; + } + int32_t getDesiredLogs() const { + if (desiredTLogCount == -1) return autoDesiredTLogCount; + return desiredTLogCount; + } + int32_t getDesiredRemoteLogs() const { + if (remoteDesiredTLogCount == -1) return getDesiredLogs(); + return remoteDesiredTLogCount; + } + int32_t getDesiredSatelliteLogs(Optional dcId) const { - bool operator == ( DatabaseConfiguration const& rhs ) const { + auto desired = getRegion(dcId).satelliteDesiredTLogCount; + if (desired == -1) return autoDesiredTLogCount; + return desired; + } + int32_t getRemoteTLogReplicationFactor() const { + if (remoteTLogReplicationFactor == 0) return tLogReplicationFactor; + return remoteTLogReplicationFactor; + } + Reference getRemoteTLogPolicy() const { + if (remoteTLogReplicationFactor == 0) return tLogPolicy; + return remoteTLogPolicy; + } + + bool operator==(DatabaseConfiguration const& rhs) const { const_cast(this)->makeConfigurationImmutable(); const_cast(&rhs)->makeConfigurationImmutable(); return rawConfiguration == rhs.rawConfiguration; @@ -216,8 +262,7 @@ struct DatabaseConfiguration { if (!ar.isDeserializing) makeConfigurationImmutable(); serializer(ar, rawConfiguration); if (ar.isDeserializing) { - for(auto c=rawConfiguration.begin(); c!=rawConfiguration.end(); ++c) - setInternal(c->key, c->value); + for (auto c = rawConfiguration.begin(); c != rawConfiguration.end(); ++c) setInternal(c->key, c->value); setDefaultReplicationPolicy(); } } @@ -225,13 +270,13 @@ struct DatabaseConfiguration { void fromKeyValues(Standalone> rawConfig); private: - Optional< std::map > mutableConfiguration; // If present, rawConfiguration is not valid - Standalone> rawConfiguration; // sorted by key + Optional> mutableConfiguration; // If present, rawConfiguration is not valid + Standalone> rawConfiguration; // sorted by key void makeConfigurationMutable(); void makeConfigurationImmutable(); - bool setInternal( KeyRef key, ValueRef value ); + bool setInternal(KeyRef key, ValueRef value); void resetInternal(); void setDefaultReplicationPolicy(); diff --git a/fdbserver/LogSystemConfig.h b/fdbserver/LogSystemConfig.h index 37834f63d2..1697cf8c70 100644 --- a/fdbserver/LogSystemConfig.h +++ b/fdbserver/LogSystemConfig.h @@ -78,7 +78,7 @@ struct serializable_traits> : std::true_type { } }; - +// Contains a generation of tLogs for an individual DC. struct TLogSet { constexpr static FileIdentifier file_identifier = 6302317; std::vector> tLogs; diff --git a/fdbserver/Status.actor.cpp b/fdbserver/Status.actor.cpp index 649875be00..d5ae2c6dbf 100644 --- a/fdbserver/Status.actor.cpp +++ b/fdbserver/Status.actor.cpp @@ -1607,6 +1607,7 @@ ACTOR static Future>> getProxie return results; } +// Returns the number of zones eligble for recruiting new tLogs after failures, to maintain the current replication factor. static int getExtraTLogEligibleZones(const vector& workers, const DatabaseConfiguration& configuration) { std::set allZones; std::map> dcId_zone; From 6957e648863e9233a5a48577ad41729e7f7f9b9e Mon Sep 17 00:00:00 2001 From: Vishesh Yadav Date: Tue, 22 Dec 2020 16:26:19 -0800 Subject: [PATCH 089/261] fix: Calculate fault tolerance when keys are not fully replicated Whem the database is not fully replicated to remote, fault tolerance can be calculated by couting total number of tLogs replicas in primary and satellite - 1, as we can lose all but one of those, but we were subtracting 2 instead of 1. --- fdbclient/DatabaseConfiguration.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fdbclient/DatabaseConfiguration.h b/fdbclient/DatabaseConfiguration.h index 7f6b410eb3..1d85c93606 100644 --- a/fdbclient/DatabaseConfiguration.h +++ b/fdbclient/DatabaseConfiguration.h @@ -174,7 +174,8 @@ struct DatabaseConfiguration { return 1 + std::min(std::max(tLogReplicationFactor - 1 - tLogWriteAntiQuorum, worstSatellite - 1), storageTeamSize - 1); } else if (worstSatellite > 0) { - return std::min(tLogReplicationFactor + worstSatellite - 2 - tLogWriteAntiQuorum, storageTeamSize - 1); + // Primary and Satellite tLogs are synchronously replicated, hence we can lose all but 1. + return std::min(tLogReplicationFactor + worstSatellite - 1 - tLogWriteAntiQuorum, storageTeamSize - 1); } return std::min(tLogReplicationFactor - 1 - tLogWriteAntiQuorum, storageTeamSize - 1); } From d1a715a85c4852fe8e7d2b2e96abbb59cf829c3d Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Tue, 22 Dec 2020 21:32:23 -0800 Subject: [PATCH 090/261] update version to 6.2.30 --- CMakeLists.txt | 2 +- versions.target | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 567d81c91f..0e18f25556 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ # limitations under the License. cmake_minimum_required(VERSION 3.12) project(foundationdb - VERSION 6.2.29 + VERSION 6.2.30 DESCRIPTION "FoundationDB is a scalable, fault-tolerant, ordered key-value store with full ACID transactions." HOMEPAGE_URL "http://www.foundationdb.org/" LANGUAGES C CXX ASM) diff --git a/versions.target b/versions.target index 0347371b31..75e3f0fe92 100644 --- a/versions.target +++ b/versions.target @@ -1,7 +1,7 @@ - 6.2.29 + 6.2.30 6.2 From a3d2607ca310cbef594f2f692da0bc43f071d8ad Mon Sep 17 00:00:00 2001 From: Jingyu Zhou Date: Tue, 22 Dec 2020 21:32:23 -0800 Subject: [PATCH 091/261] update installer WIX GUID following release --- packaging/msi/FDBInstaller.wxs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/msi/FDBInstaller.wxs b/packaging/msi/FDBInstaller.wxs index 2c6c498372..8e97797d6e 100644 --- a/packaging/msi/FDBInstaller.wxs +++ b/packaging/msi/FDBInstaller.wxs @@ -32,7 +32,7 @@ Date: Wed, 23 Dec 2020 14:33:30 -0800 Subject: [PATCH 092/261] Resolver merge conflicts --- CMakeLists.txt | 4 --- .../sphinx/source/command-line-interface.rst | 4 +-- documentation/sphinx/source/downloads.rst | 36 ------------------- fdbserver/MasterProxyServer.actor.cpp | 7 ---- packaging/msi/FDBInstaller.wxs | 4 --- versions.target | 5 --- 6 files changed, 1 insertion(+), 59 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ee2d0bafbf..844d302637 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,11 +18,7 @@ # limitations under the License. cmake_minimum_required(VERSION 3.13) project(foundationdb -<<<<<<< HEAD VERSION 6.3.10 -======= - VERSION 6.2.30 ->>>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 DESCRIPTION "FoundationDB is a scalable, fault-tolerant, ordered key-value store with full ACID transactions." HOMEPAGE_URL "http://www.foundationdb.org/" LANGUAGES C CXX ASM) diff --git a/documentation/sphinx/source/command-line-interface.rst b/documentation/sphinx/source/command-line-interface.rst index 61f2aa74b1..84eef0d696 100644 --- a/documentation/sphinx/source/command-line-interface.rst +++ b/documentation/sphinx/source/command-line-interface.rst @@ -393,7 +393,6 @@ status json ``status json`` will provide the cluster status in its JSON format. For a detailed description of this format, see :doc:`mr-status`. -<<<<<<< HEAD .. _cli-throttle: throttle @@ -469,12 +468,11 @@ list Prints a list of currently active transaction tag throttles. ``LIMIT`` - The number of throttles to print. Defaults to 100. -======= + triggerddteaminfolog -------------------- The ``triggerddteaminfolog`` command would trigger the data distributor to log very detailed teams information into trace event logs. ->>>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 unlock ------ diff --git a/documentation/sphinx/source/downloads.rst b/documentation/sphinx/source/downloads.rst index 5b470ab5cc..825eefab40 100644 --- a/documentation/sphinx/source/downloads.rst +++ b/documentation/sphinx/source/downloads.rst @@ -10,61 +10,38 @@ macOS The macOS installation package is supported on macOS 10.7+. It includes the client and (optionally) the server. -<<<<<<< HEAD * `FoundationDB-6.3.9.pkg `_ -======= -* `FoundationDB-6.2.29.pkg `_ ->>>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 Ubuntu ------ The Ubuntu packages are supported on 64-bit Ubuntu 12.04+, but beware of the Linux kernel bug in Ubuntu 12.x. -<<<<<<< HEAD * `foundationdb-clients-6.3.9-1_amd64.deb `_ * `foundationdb-server-6.3.9-1_amd64.deb `_ (depends on the clients package) -======= -* `foundationdb-clients-6.2.29-1_amd64.deb `_ -* `foundationdb-server-6.2.29-1_amd64.deb `_ (depends on the clients package) ->>>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 RHEL/CentOS EL6 --------------- The RHEL/CentOS EL6 packages are supported on 64-bit RHEL/CentOS 6.x. -<<<<<<< HEAD * `foundationdb-clients-6.3.9-1.el6.x86_64.rpm `_ * `foundationdb-server-6.3.9-1.el6.x86_64.rpm `_ (depends on the clients package) -======= -* `foundationdb-clients-6.2.29-1.el6.x86_64.rpm `_ -* `foundationdb-server-6.2.29-1.el6.x86_64.rpm `_ (depends on the clients package) ->>>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 RHEL/CentOS EL7 --------------- The RHEL/CentOS EL7 packages are supported on 64-bit RHEL/CentOS 7.x. -<<<<<<< HEAD * `foundationdb-clients-6.3.9-1.el7.x86_64.rpm `_ * `foundationdb-server-6.3.9-1.el7.x86_64.rpm `_ (depends on the clients package) -======= -* `foundationdb-clients-6.2.29-1.el7.x86_64.rpm `_ -* `foundationdb-server-6.2.29-1.el7.x86_64.rpm `_ (depends on the clients package) ->>>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 Windows ------- The Windows installer is supported on 64-bit Windows XP and later. It includes the client and (optionally) the server. -<<<<<<< HEAD * `foundationdb-6.3.9-x64.msi `_ -======= -* `foundationdb-6.2.29-x64.msi `_ ->>>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 API Language Bindings ===================== @@ -81,31 +58,18 @@ On macOS and Windows, the FoundationDB Python API bindings are installed as part If you need to use the FoundationDB Python API from other Python installations or paths, use the Python package manager ``pip`` (``pip install foundationdb``) or download the Python package: -<<<<<<< HEAD * `foundationdb-6.3.9.tar.gz `_ -======= -* `foundationdb-6.2.29.tar.gz `_ ->>>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 Ruby 1.9.3/2.0.0+ ----------------- -<<<<<<< HEAD * `fdb-6.3.9.gem `_ -======= -* `fdb-6.2.29.gem `_ ->>>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 Java 8+ ------- -<<<<<<< HEAD * `fdb-java-6.3.9.jar `_ * `fdb-java-6.3.9-javadoc.jar `_ -======= -* `fdb-java-6.2.29.jar `_ -* `fdb-java-6.2.29-javadoc.jar `_ ->>>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 Go 1.11+ -------- diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index d8ea9673c2..fe15a73e74 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -1509,20 +1509,13 @@ ACTOR Future commitBatch( // Dynamic batching for commits double target_latency = (now() - t1) * SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_LATENCY_FRACTION; -<<<<<<< HEAD self->commitBatchInterval = std::max( SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_MIN, std::min(SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_MAX, target_latency * SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_SMOOTHER_ALPHA + self->commitBatchInterval * (1 - SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_SMOOTHER_ALPHA))); -======= - self->commitBatchInterval = - std::max(SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_MIN, - std::min(SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_MAX, - target_latency * SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_SMOOTHER_ALPHA + self->commitBatchInterval * (1-SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_SMOOTHER_ALPHA))); self->stats.commitBatchingWindowSize.addMeasurement(self->commitBatchInterval); ->>>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 self->commitBatchesMemBytesCount -= currentBatchMemBytesCount; ASSERT_ABORT(self->commitBatchesMemBytesCount >= 0); diff --git a/packaging/msi/FDBInstaller.wxs b/packaging/msi/FDBInstaller.wxs index 689f28c2db..63a724ab46 100644 --- a/packaging/msi/FDBInstaller.wxs +++ b/packaging/msi/FDBInstaller.wxs @@ -32,11 +32,7 @@ >>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 UpgradeCode='{A95EA002-686E-4164-8356-C715B7F8B1C8}' Version='$(var.Version)' Manufacturer='$(var.Manufacturer)' diff --git a/versions.target b/versions.target index 7822ca96b5..8b1467c77e 100644 --- a/versions.target +++ b/versions.target @@ -1,12 +1,7 @@ -<<<<<<< HEAD 6.3.10 6.3 -======= - 6.2.30 - 6.2 ->>>>>>> 5a2b1ab258ecb3cb8992823e6ffe50637ff7e545 From fed1a039504bf46d53321eae2dfafee1ffe31f72 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 19 Dec 2020 15:46:07 -0800 Subject: [PATCH 093/261] Added SimExternalConnection (most methods not implemented yet) --- fdbrpc/CMakeLists.txt | 2 + fdbrpc/SimExternalConnection.actor.cpp | 87 ++++++++++++++++++++++++++ fdbrpc/SimExternalConnection.h | 50 +++++++++++++++ fdbrpc/sim2.actor.cpp | 9 ++- flow/Net2.actor.cpp | 5 ++ flow/network.h | 2 + 6 files changed, 153 insertions(+), 2 deletions(-) create mode 100644 fdbrpc/SimExternalConnection.actor.cpp create mode 100644 fdbrpc/SimExternalConnection.h diff --git a/fdbrpc/CMakeLists.txt b/fdbrpc/CMakeLists.txt index b4fb20098d..e369b4dda2 100644 --- a/fdbrpc/CMakeLists.txt +++ b/fdbrpc/CMakeLists.txt @@ -22,6 +22,8 @@ set(FDBRPC_SRCS ReplicationPolicy.cpp ReplicationTypes.cpp ReplicationUtils.cpp + SimExternalConnection.actor.cpp + SimExternalConnection.h Stats.actor.cpp Stats.h sim2.actor.cpp diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp new file mode 100644 index 0000000000..f4fcd86ffb --- /dev/null +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -0,0 +1,87 @@ +/* + * SimExternalConnection.actor.cpp + * + * This source file is part of the FoundationDB open source project + * + * Copyright 2013-2018 Apple Inc. and the FoundationDB project authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "fdbrpc/SimExternalConnection.h" +#include "flow/actorcompiler.h" // This must be the last #include. + +using namespace boost::asio; + +io_service SimExternalConnection::ios; + +void SimExternalConnection::close() {} + +Future SimExternalConnection::acceptHandshake() { + ASSERT(false); + return Void(); +} + +Future SimExternalConnection::connectHandshake() { + return Void(); +} + +Future SimExternalConnection::onWritable() { + return Void(); +} + +Future SimExternalConnection::onReadable() { + return Void(); +} + +int SimExternalConnection::read(uint8_t* begin, uint8_t* end) { + return 0; +} + +int SimExternalConnection::write(SendBuffer const* buffer, int limit) { + return 0; +} + +NetworkAddress SimExternalConnection::getPeerAddress() const { + return NetworkAddress{}; +} + +UID SimExternalConnection::getDebugID() const { + return UID{}; +} + +Future> SimExternalConnection::resolveTCPEndpoint(const std::string& host, + const std::string& service) { + ip::tcp::resolver resolver(ios); + ip::tcp::resolver::query query(host, service); + auto iter = resolver.resolve(query); + decltype(iter) end; + std::vector addrs; + while (iter != end) { + auto endpoint = iter->endpoint(); + auto addr = endpoint.address(); + if (addr.is_v6()) { + addrs.emplace_back(IPAddress(addr.to_v6().to_bytes()), endpoint.port()); + } else { + addrs.emplace_back(addr.to_v4().to_ulong(), endpoint.port()); + } + ++iter; + } + return addrs; +} + +Future> SimExternalConnection::connect(NetworkAddress toAddr) { + return Reference(new SimExternalConnection); +} diff --git a/fdbrpc/SimExternalConnection.h b/fdbrpc/SimExternalConnection.h new file mode 100644 index 0000000000..cee4aed70c --- /dev/null +++ b/fdbrpc/SimExternalConnection.h @@ -0,0 +1,50 @@ +/* + * SimExternalConnection.h + * + * This source file is part of the FoundationDB open source project + * + * Copyright 2013-2018 Apple Inc. and the FoundationDB project authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef FDBRPC_SIM_EXTERNAL_CONNECTION_H +#define FDBRPC_SIM_EXTERNAL_CONNECTION_H +#pragma once + +#include "flow/FastRef.h" +#include "flow/network.h" +#include "flow/flow.h" + +#include + +class SimExternalConnection : public IConnection, public ReferenceCounted { + static boost::asio::io_service ios; + +public: + void addref() override { return ReferenceCounted::addref(); } + void delref() override { return ReferenceCounted::delref(); } + void close() override; + Future acceptHandshake() override; + Future connectHandshake() override; + Future onWritable() override; + Future onReadable() override; + int read(uint8_t* begin, uint8_t* end) override; + int write(SendBuffer const* buffer, int limit) override; + NetworkAddress getPeerAddress() const override; + UID getDebugID() const override; + static Future> resolveTCPEndpoint(const std::string& host, const std::string& service); + static Future> connect(NetworkAddress toAddr); +}; + +#endif diff --git a/fdbrpc/sim2.actor.cpp b/fdbrpc/sim2.actor.cpp index 1dd1202a12..f9ec294628 100644 --- a/fdbrpc/sim2.actor.cpp +++ b/fdbrpc/sim2.actor.cpp @@ -24,6 +24,7 @@ #include #include "fdbrpc/simulator.h" +#include "fdbrpc/SimExternalConnection.h" #include "flow/ActorCollection.h" #include "flow/IRandom.h" #include "flow/IThreadPool.h" @@ -821,11 +822,15 @@ public: return onConnect( ::delay(0.5*deterministicRandom()->random01()), myc ); } + Future> connectExternal(NetworkAddress toAddr, std::string host) override { + return SimExternalConnection::connect(toAddr); + } + Future> createUDPSocket(NetworkAddress toAddr) override; Future> createUDPSocket(bool isV6 = false) override; - Future> resolveTCPEndpoint(std::string host, std::string service) override { - throw lookup_failed(); + Future> resolveTCPEndpoint(std::string host, std::string service) override { + return SimExternalConnection::resolveTCPEndpoint(host, service); } ACTOR static Future> onConnect( Future ready, Reference conn ) { wait(ready); diff --git a/flow/Net2.actor.cpp b/flow/Net2.actor.cpp index 6cf1037908..61ef0bda21 100644 --- a/flow/Net2.actor.cpp +++ b/flow/Net2.actor.cpp @@ -130,6 +130,7 @@ public: // INetworkConnections interface virtual Future> connect( NetworkAddress toAddr, std::string host ); + virtual Future> connectExternal(NetworkAddress toAddr, std::string host); virtual Future> createUDPSocket(NetworkAddress toAddr); virtual Future> createUDPSocket(bool isV6); virtual Future> resolveTCPEndpoint( std::string host, std::string service); @@ -1717,6 +1718,10 @@ Future< Reference > Net2::connect( NetworkAddress toAddr, std::stri return Connection::connect(&this->reactor.ios, toAddr); } +Future> Net2::connectExternal(NetworkAddress toAddr, std::string host) { + return connect(toAddr, host); +} + ACTOR static Future> resolveTCPEndpoint_impl( Net2 *self, std::string host, std::string service) { state tcp::resolver tcpResolver(self->reactor.ios); Promise> promise; diff --git a/flow/network.h b/flow/network.h index 0f025a5b35..d02278be06 100644 --- a/flow/network.h +++ b/flow/network.h @@ -582,6 +582,8 @@ public: // Make an outgoing connection to the given address. May return an error or block indefinitely in case of connection problems! virtual Future> connect( NetworkAddress toAddr, std::string host = "") = 0; + virtual Future> connectExternal(NetworkAddress toAddr, std::string host = "") = 0; + // Make an outgoing udp connection and connect to the passed address. virtual Future> createUDPSocket(NetworkAddress toAddr) = 0; // Make an outgoing udp connection without establishing a connection From 9f22ae7831a62eb76d6ec81a958a6787ae84bd91 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 19 Dec 2020 17:24:36 -0800 Subject: [PATCH 094/261] Implement SimExternalConnection::connect --- fdbrpc/SimExternalConnection.actor.cpp | 19 ++++++++++++++++--- fdbrpc/SimExternalConnection.h | 3 ++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index f4fcd86ffb..21de2bbd35 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -25,9 +25,11 @@ using namespace boost::asio; -io_service SimExternalConnection::ios; +static io_service ios; -void SimExternalConnection::close() {} +void SimExternalConnection::close() { + socket.close(); +} Future SimExternalConnection::acceptHandshake() { ASSERT(false); @@ -83,5 +85,16 @@ Future> SimExternalConnection::resolveTCPEndpoint(co } Future> SimExternalConnection::connect(NetworkAddress toAddr) { - return Reference(new SimExternalConnection); + ip::tcp::socket socket(ios); + auto ip = toAddr.ip; + ip::address address; + if (ip.isV6()) { + address = boost::asio::ip::address_v6(ip.toV6()); + } else { + address = boost::asio::ip::address_v4(ip.toV4()); + } + socket.connect(ip::tcp::endpoint(address, toAddr.port)); + return Reference(new SimExternalConnection(std::move(socket))); } + +SimExternalConnection::SimExternalConnection(ip::tcp::socket&& socket) : socket(std::move(socket)) {} diff --git a/fdbrpc/SimExternalConnection.h b/fdbrpc/SimExternalConnection.h index cee4aed70c..1d16bdd31a 100644 --- a/fdbrpc/SimExternalConnection.h +++ b/fdbrpc/SimExternalConnection.h @@ -29,7 +29,8 @@ #include class SimExternalConnection : public IConnection, public ReferenceCounted { - static boost::asio::io_service ios; + boost::asio::ip::tcp::socket socket; + SimExternalConnection(boost::asio::ip::tcp::socket&& socket); public: void addref() override { return ReferenceCounted::addref(); } From 87282eda475445800deaf0d357b8ff3e11998d7e Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 19 Dec 2020 17:31:08 -0800 Subject: [PATCH 095/261] Implemented SimExternalConnection::getPeerAddress --- fdbrpc/SimExternalConnection.actor.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index 21de2bbd35..b3e01c563a 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -57,7 +57,13 @@ int SimExternalConnection::write(SendBuffer const* buffer, int limit) { } NetworkAddress SimExternalConnection::getPeerAddress() const { - return NetworkAddress{}; + auto endpoint = socket.remote_endpoint(); + auto addr = endpoint.address(); + if (addr.is_v6()) { + return NetworkAddress(IPAddress(addr.to_v6().to_bytes()), endpoint.port()); + } else { + return NetworkAddress(addr.to_v4().to_ulong(), endpoint.port()); + } } UID SimExternalConnection::getDebugID() const { From 1e7ea8ece1b7dfe2ed0a1082cfe1958d72d4e917 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 19 Dec 2020 18:09:30 -0800 Subject: [PATCH 096/261] Implemented SimExternalConnection::write --- fdbrpc/SimExternalConnection.actor.cpp | 8 ++++- flow/Net2.actor.cpp | 46 ++++++++++---------------- flow/network.h | 20 +++++++++++ 3 files changed, 44 insertions(+), 30 deletions(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index b3e01c563a..7ec3cfc17c 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -19,6 +19,7 @@ */ #include +#include #include "fdbrpc/SimExternalConnection.h" #include "flow/actorcompiler.h" // This must be the last #include. @@ -53,7 +54,12 @@ int SimExternalConnection::read(uint8_t* begin, uint8_t* end) { } int SimExternalConnection::write(SendBuffer const* buffer, int limit) { - return 0; + boost::system::error_code err; + int sent = socket.write_some( + boost::iterator_range(SendBufferIterator(buffer, limit), SendBufferIterator()), err); + ASSERT(!err); + ASSERT(sent); + return sent; } NetworkAddress SimExternalConnection::getPeerAddress() const { diff --git a/flow/Net2.actor.cpp b/flow/Net2.actor.cpp index 61ef0bda21..cae12443c8 100644 --- a/flow/Net2.actor.cpp +++ b/flow/Net2.actor.cpp @@ -325,34 +325,6 @@ public: } }; -struct SendBufferIterator { - typedef boost::asio::const_buffer value_type; - typedef std::forward_iterator_tag iterator_category; - typedef size_t difference_type; - typedef boost::asio::const_buffer* pointer; - typedef boost::asio::const_buffer& reference; - - SendBuffer const* p; - int limit; - - SendBufferIterator(SendBuffer const* p=0, int limit = std::numeric_limits::max()) : p(p), limit(limit) { - ASSERT(limit > 0); - } - - bool operator == (SendBufferIterator const& r) const { return p == r.p; } - bool operator != (SendBufferIterator const& r) const { return p != r.p; } - void operator++() { - limit -= p->bytes_written - p->bytes_sent; - if(limit > 0) - p = p->next; - else - p = nullptr; - } - - boost::asio::const_buffer operator*() const { - return boost::asio::const_buffer(p->data() + p->bytes_sent, std::min(limit, p->bytes_written - p->bytes_sent)); - } -}; class Connection : public IConnection, ReferenceCounted { public: @@ -1901,7 +1873,7 @@ void ASIOReactor::wake() { ios.post( nullCompletionHandler ); } -} // namespace net2 +} // namespace N2 INetwork* newNet2(const TLSConfig& tlsConfig, bool useThreadPool, bool useMetrics) { try { @@ -2062,3 +2034,19 @@ void net2_test() { printf(" Used: %lld\n", FastAllocator<4096>::getTotalMemory()); */ }; + +SendBufferIterator::SendBufferIterator(SendBuffer const* p, int limit) : p(p), limit(limit) { + ASSERT(limit > 0); +} + +void SendBufferIterator::operator++() { + limit -= p->bytes_written - p->bytes_sent; + if (limit > 0) + p = p->next; + else + p = nullptr; +} + +boost::asio::const_buffer SendBufferIterator::operator*() const { + return boost::asio::const_buffer(p->data() + p->bytes_sent, std::min(limit, p->bytes_written - p->bytes_sent)); +} diff --git a/flow/network.h b/flow/network.h index d02278be06..0169503320 100644 --- a/flow/network.h +++ b/flow/network.h @@ -603,4 +603,24 @@ public: // Returns the interface that should be used to make and accept socket connections }; +// TODO: Move into header file that is included only where necessary +struct SendBufferIterator { + typedef boost::asio::const_buffer value_type; + typedef std::forward_iterator_tag iterator_category; + typedef size_t difference_type; + typedef boost::asio::const_buffer* pointer; + typedef boost::asio::const_buffer& reference; + + SendBuffer const* p; + int limit; + + SendBufferIterator(SendBuffer const* p = nullptr, int limit = std::numeric_limits::max()); + + bool operator==(SendBufferIterator const& r) const { return p == r.p; } + bool operator!=(SendBufferIterator const& r) const { return p != r.p; } + void operator++(); + + boost::asio::const_buffer operator*() const; +}; + #endif From 16476ec9e198f79bb7c35211f912e22e54900ddc Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 19 Dec 2020 18:12:19 -0800 Subject: [PATCH 097/261] Implemented SimExternalConnection::read --- fdbrpc/SimExternalConnection.actor.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index 7ec3cfc17c..a7b7929945 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -50,7 +50,12 @@ Future SimExternalConnection::onReadable() { } int SimExternalConnection::read(uint8_t* begin, uint8_t* end) { - return 0; + boost::system::error_code err; + size_t toRead = end - begin; + size_t size = socket.read_some(boost::asio::mutable_buffers_1(begin, toRead), err); + ASSERT(!err); + ASSERT(size); + return size; } int SimExternalConnection::write(SendBuffer const* buffer, int limit) { From 8cb029b777ec2c0b594391803bfe7eb1fa9d2f62 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 19 Dec 2020 19:57:03 -0800 Subject: [PATCH 098/261] Made SimExternalConnection reading and writing deterministic --- fdbrpc/SimExternalConnection.actor.cpp | 34 ++++++++++++++++++-------- fdbrpc/SimExternalConnection.h | 4 ++- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index a7b7929945..81f2c4d2ed 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -20,6 +20,8 @@ #include #include +#include +#include #include "fdbrpc/SimExternalConnection.h" #include "flow/actorcompiler.h" // This must be the last #include. @@ -50,21 +52,32 @@ Future SimExternalConnection::onReadable() { } int SimExternalConnection::read(uint8_t* begin, uint8_t* end) { - boost::system::error_code err; size_t toRead = end - begin; - size_t size = socket.read_some(boost::asio::mutable_buffers_1(begin, toRead), err); - ASSERT(!err); - ASSERT(size); - return size; + ASSERT(toRead <= readBuffer.size()); + // TODO: Improve performance + for (int i = 0; i < toRead; ++i) { + *(begin + i) = readBuffer.front(); + readBuffer.pop_front(); + } + return toRead; } int SimExternalConnection::write(SendBuffer const* buffer, int limit) { boost::system::error_code err; - int sent = socket.write_some( + int bytesSent = socket.write_some( boost::iterator_range(SendBufferIterator(buffer, limit), SendBufferIterator()), err); ASSERT(!err); - ASSERT(sent); - return sent; + ASSERT(bytesSent > 0); + std::this_thread::sleep_for(std::chrono::seconds(1)); + const auto bytesReadable = socket.available(); + std::vector tempReadBuffer(bytesReadable); + for (int index = 0; index < bytesReadable;) { + index += socket.read_some(mutable_buffers_1(&tempReadBuffer[index], bytesReadable), err); + } + std::copy(tempReadBuffer.begin(), tempReadBuffer.end(), std::inserter(readBuffer, readBuffer.end())); + ASSERT(!err); + ASSERT(socket.available() == 0); + return bytesSent; } NetworkAddress SimExternalConnection::getPeerAddress() const { @@ -78,7 +91,7 @@ NetworkAddress SimExternalConnection::getPeerAddress() const { } UID SimExternalConnection::getDebugID() const { - return UID{}; + return dbgid; } Future> SimExternalConnection::resolveTCPEndpoint(const std::string& host, @@ -114,4 +127,5 @@ Future> SimExternalConnection::connect(NetworkAddress toA return Reference(new SimExternalConnection(std::move(socket))); } -SimExternalConnection::SimExternalConnection(ip::tcp::socket&& socket) : socket(std::move(socket)) {} +SimExternalConnection::SimExternalConnection(ip::tcp::socket&& socket) + : socket(std::move(socket)), dbgid(deterministicRandom()->randomUniqueID()) {} diff --git a/fdbrpc/SimExternalConnection.h b/fdbrpc/SimExternalConnection.h index 1d16bdd31a..b8f7f23015 100644 --- a/fdbrpc/SimExternalConnection.h +++ b/fdbrpc/SimExternalConnection.h @@ -28,9 +28,11 @@ #include -class SimExternalConnection : public IConnection, public ReferenceCounted { +class SimExternalConnection final : public IConnection, public ReferenceCounted { boost::asio::ip::tcp::socket socket; SimExternalConnection(boost::asio::ip::tcp::socket&& socket); + UID dbgid; + std::deque readBuffer; public: void addref() override { return ReferenceCounted::addref(); } From 94d7c17978f231fa82a1cec88bedfd50af2ef3b3 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 19 Dec 2020 20:15:02 -0800 Subject: [PATCH 099/261] Implemented SimExternalConnection::onReadable --- fdbrpc/SimExternalConnection.actor.cpp | 7 +++++-- fdbrpc/SimExternalConnection.h | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index 81f2c4d2ed..e1abab898b 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -35,7 +35,6 @@ void SimExternalConnection::close() { } Future SimExternalConnection::acceptHandshake() { - ASSERT(false); return Void(); } @@ -48,7 +47,7 @@ Future SimExternalConnection::onWritable() { } Future SimExternalConnection::onReadable() { - return Void(); + return onReadableTrigger.onTrigger(); } int SimExternalConnection::read(uint8_t* begin, uint8_t* end) { @@ -64,6 +63,7 @@ int SimExternalConnection::read(uint8_t* begin, uint8_t* end) { int SimExternalConnection::write(SendBuffer const* buffer, int limit) { boost::system::error_code err; + bool triggerReaders = (socket.available() == 0); int bytesSent = socket.write_some( boost::iterator_range(SendBufferIterator(buffer, limit), SendBufferIterator()), err); ASSERT(!err); @@ -77,6 +77,9 @@ int SimExternalConnection::write(SendBuffer const* buffer, int limit) { std::copy(tempReadBuffer.begin(), tempReadBuffer.end(), std::inserter(readBuffer, readBuffer.end())); ASSERT(!err); ASSERT(socket.available() == 0); + if (triggerReaders) { + onReadableTrigger.trigger(); + } return bytesSent; } diff --git a/fdbrpc/SimExternalConnection.h b/fdbrpc/SimExternalConnection.h index b8f7f23015..550486e76f 100644 --- a/fdbrpc/SimExternalConnection.h +++ b/fdbrpc/SimExternalConnection.h @@ -33,6 +33,7 @@ class SimExternalConnection final : public IConnection, public ReferenceCounted< SimExternalConnection(boost::asio::ip::tcp::socket&& socket); UID dbgid; std::deque readBuffer; + AsyncTrigger onReadableTrigger; public: void addref() override { return ReferenceCounted::addref(); } From 201857541d29db2da0ecbb4e5409602429e423f4 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Wed, 23 Dec 2020 16:31:31 -0400 Subject: [PATCH 100/261] Remove unnecessary copies from INetworkConnections interface --- fdbrpc/sim2.actor.cpp | 6 +++--- flow/Net2.actor.cpp | 12 ++++++------ flow/network.cpp | 6 +++--- flow/network.h | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/fdbrpc/sim2.actor.cpp b/fdbrpc/sim2.actor.cpp index f9ec294628..0015c34d49 100644 --- a/fdbrpc/sim2.actor.cpp +++ b/fdbrpc/sim2.actor.cpp @@ -797,7 +797,7 @@ public: TaskPriority getCurrentTask() const override { return currentTaskID; } void setCurrentTask(TaskPriority taskID) override { currentTaskID = taskID; } // Sets the taskID/priority of the current task, without yielding - Future> connect(NetworkAddress toAddr, std::string host) override { + Future> connect(NetworkAddress toAddr, const std::string &host) override { ASSERT( host.empty()); if (!addressMap.count( toAddr )) { return waitForProcessAndConnect( toAddr, this ); @@ -822,14 +822,14 @@ public: return onConnect( ::delay(0.5*deterministicRandom()->random01()), myc ); } - Future> connectExternal(NetworkAddress toAddr, std::string host) override { + Future> connectExternal(NetworkAddress toAddr, const std::string &host) override { return SimExternalConnection::connect(toAddr); } Future> createUDPSocket(NetworkAddress toAddr) override; Future> createUDPSocket(bool isV6 = false) override; - Future> resolveTCPEndpoint(std::string host, std::string service) override { + Future> resolveTCPEndpoint(const std::string &host, const std::string &service) override { return SimExternalConnection::resolveTCPEndpoint(host, service); } ACTOR static Future> onConnect( Future ready, Reference conn ) { diff --git a/flow/Net2.actor.cpp b/flow/Net2.actor.cpp index cae12443c8..913ea9f0b7 100644 --- a/flow/Net2.actor.cpp +++ b/flow/Net2.actor.cpp @@ -129,11 +129,11 @@ public: void initMetrics(); // INetworkConnections interface - virtual Future> connect( NetworkAddress toAddr, std::string host ); - virtual Future> connectExternal(NetworkAddress toAddr, std::string host); + virtual Future> connect( NetworkAddress toAddr, const std::string &host ); + virtual Future> connectExternal(NetworkAddress toAddr, const std::string &host); virtual Future> createUDPSocket(NetworkAddress toAddr); virtual Future> createUDPSocket(bool isV6); - virtual Future> resolveTCPEndpoint( std::string host, std::string service); + virtual Future> resolveTCPEndpoint( const std::string &host, const std::string &service); virtual Reference listen( NetworkAddress localAddr ); // INetwork interface @@ -1679,7 +1679,7 @@ THREAD_HANDLE Net2::startThread( THREAD_FUNC_RETURN (*func) (void*), void *arg ) return ::startThread(func, arg); } -Future< Reference > Net2::connect( NetworkAddress toAddr, std::string host ) { +Future< Reference > Net2::connect( NetworkAddress toAddr, const std::string &host ) { #ifndef TLS_DISABLED initTLS(ETLSInitState::CONNECT); if ( toAddr.isTLS() ) { @@ -1690,7 +1690,7 @@ Future< Reference > Net2::connect( NetworkAddress toAddr, std::stri return Connection::connect(&this->reactor.ios, toAddr); } -Future> Net2::connectExternal(NetworkAddress toAddr, std::string host) { +Future> Net2::connectExternal(NetworkAddress toAddr, const std::string &host) { return connect(toAddr, host); } @@ -1741,7 +1741,7 @@ Future> Net2::createUDPSocket(bool isV6) { return UDPSocket::connect(&reactor.ios, Optional(), isV6); } -Future> Net2::resolveTCPEndpoint( std::string host, std::string service) { +Future> Net2::resolveTCPEndpoint( const std::string &host, const std::string &service) { return resolveTCPEndpoint_impl(this, host, service); } diff --git a/flow/network.cpp b/flow/network.cpp index 62f7262a8c..0233bc1e5a 100644 --- a/flow/network.cpp +++ b/flow/network.cpp @@ -125,10 +125,10 @@ std::string NetworkAddress::toString() const { return formatIpPort(ip, port) + (isTLS() ? ":tls" : ""); } -std::string toIPVectorString(std::vector ips) { +std::string toIPVectorString(const std::vector &ips) { std::string output; const char* space = ""; - for (auto ip : ips) { + for (const auto &ip : ips) { output += format("%s%d.%d.%d.%d", space, (ip >> 24) & 0xff, (ip >> 16) & 0xff, (ip >> 8) & 0xff, ip & 0xff); space = " "; } @@ -150,7 +150,7 @@ std::string formatIpPort(const IPAddress& ip, uint16_t port) { return format(patt, ip.toString().c_str(), port); } -Future> INetworkConnections::connect( std::string host, std::string service, bool useTLS ) { +Future> INetworkConnections::connect( const std::string &host, const std::string &service, bool useTLS ) { // Use map to create an actor that returns an endpoint or throws Future pickEndpoint = map(resolveTCPEndpoint(host, service), [=](std::vector const &addresses) -> NetworkAddress { NetworkAddress addr = addresses[deterministicRandom()->randomInt(0, addresses.size())]; diff --git a/flow/network.h b/flow/network.h index 0169503320..766d1fa9cf 100644 --- a/flow/network.h +++ b/flow/network.h @@ -580,9 +580,9 @@ public: // security to override only these operations without having to delegate everything in INetwork. // Make an outgoing connection to the given address. May return an error or block indefinitely in case of connection problems! - virtual Future> connect( NetworkAddress toAddr, std::string host = "") = 0; + virtual Future> connect( NetworkAddress toAddr, const std::string &host = "") = 0; - virtual Future> connectExternal(NetworkAddress toAddr, std::string host = "") = 0; + virtual Future> connectExternal(NetworkAddress toAddr, const std::string &host = "") = 0; // Make an outgoing udp connection and connect to the passed address. virtual Future> createUDPSocket(NetworkAddress toAddr) = 0; @@ -590,11 +590,11 @@ public: virtual Future> createUDPSocket(bool isV6 = false) = 0; // Resolve host name and service name (such as "http" or can be a plain number like "80") to a list of 1 or more NetworkAddresses - virtual Future> resolveTCPEndpoint( std::string host, std::string service ) = 0; + virtual Future> resolveTCPEndpoint(const std::string &host, const std::string &service ) = 0; // Convenience function to resolve host/service and connect to one of its NetworkAddresses randomly // useTLS has to be a parameter here because it is passed to connect() as part of the toAddr object. - virtual Future> connect( std::string host, std::string service, bool useTLS = false); + virtual Future> connect( const std::string &host, const std::string &service, bool useTLS = false); // Listen for connections on the given local address virtual Reference listen( NetworkAddress localAddr ) = 0; From 555c3d95fcc53fa98fd15410ac215127472edfe4 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Wed, 23 Dec 2020 19:54:01 -0400 Subject: [PATCH 101/261] Added fdbrpc/SimExternalClient unit test --- fdbrpc/SimExternalConnection.actor.cpp | 68 ++++++++++++++++++++++++- fdbserver/workloads/UnitTests.actor.cpp | 2 + 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index e1abab898b..40ceaed586 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -23,7 +23,10 @@ #include #include +#include "fdbclient/FDBTypes.h" #include "fdbrpc/SimExternalConnection.h" +#include "flow/Net2Packet.h" +#include "flow/UnitTest.h" #include "flow/actorcompiler.h" // This must be the last #include. using namespace boost::asio; @@ -47,6 +50,9 @@ Future SimExternalConnection::onWritable() { } Future SimExternalConnection::onReadable() { + if (!readBuffer.empty()) { + return Void(); + } return onReadableTrigger.onTrigger(); } @@ -126,9 +132,67 @@ Future> SimExternalConnection::connect(NetworkAddress toA } else { address = boost::asio::ip::address_v4(ip.toV4()); } - socket.connect(ip::tcp::endpoint(address, toAddr.port)); - return Reference(new SimExternalConnection(std::move(socket))); + boost::system::error_code err; + socket.connect(ip::tcp::endpoint(address, toAddr.port), err); + if (err) { + return Reference(); + } else { + return Reference(new SimExternalConnection(std::move(socket))); + } } SimExternalConnection::SimExternalConnection(ip::tcp::socket&& socket) : socket(std::move(socket)), dbgid(deterministicRandom()->randomUniqueID()) {} + +static constexpr auto testEchoServerPort = 8000; + +static void testEchoServer() { + io_service ios; + ip::tcp::acceptor acceptor(ios, ip::tcp::endpoint(ip::tcp::v4(), testEchoServerPort)); + + ip::tcp::socket socket(ios); + acceptor.accept(socket); + loop { + char data[10000]; + boost::system::error_code err; + auto length = socket.read_some(buffer(data), err); + if (err == boost::asio::error::eof) { + return; + } + ASSERT(!err); + write(socket, buffer(data, length)); + } +} + +TEST_CASE("fdbrpc/SimExternalClient") { + state const size_t maxDataLength = 10000; + state std::thread serverThread([] { return testEchoServer(); }); + state UnsentPacketQueue packetQueue; + state Reference externalConn; + state const IPAddress localhost = IPAddress::parse("127.0.0.1").get(); + loop { + // Wait until server is ready + Reference _externalConn = + wait(INetworkConnections::net()->connectExternal(NetworkAddress(localhost, testEchoServerPort))); + if (_externalConn.isValid()) { + externalConn = std::move(_externalConn); + break; + } + std::this_thread::sleep_for(std::chrono::seconds(1)); + } + state Key data = deterministicRandom()->randomAlphaNumeric(deterministicRandom()->randomInt(0, maxDataLength + 1)); + PacketWriter packetWriter(packetQueue.getWriteBuffer(data.size()), nullptr, Unversioned()); + packetWriter.serializeBytes(data); + wait(externalConn->onWritable()); + externalConn->write(packetQueue.getUnsent()); + wait(externalConn->onReadable()); + std::vector vec(data.size()); + externalConn->read(&vec[0], &vec[0] + vec.size()); + externalConn->close(); + StringRef echo(&vec[0], vec.size()); + ASSERT(echo.toString() == data.toString()); + serverThread.join(); + return Void(); +} + +void forceLinkSimExternalConnectionTests() {} diff --git a/fdbserver/workloads/UnitTests.actor.cpp b/fdbserver/workloads/UnitTests.actor.cpp index 10fa028354..d81d85636d 100644 --- a/fdbserver/workloads/UnitTests.actor.cpp +++ b/fdbserver/workloads/UnitTests.actor.cpp @@ -28,6 +28,7 @@ void forceLinkFlowTests(); void forceLinkVersionedMapTests(); void forceLinkMemcpyTests(); void forceLinkMemcpyPerfTests(); +void forceLinkSimExternalConnectionTests(); struct UnitTestWorkload : TestWorkload { bool enabled; @@ -49,6 +50,7 @@ struct UnitTestWorkload : TestWorkload { forceLinkVersionedMapTests(); forceLinkMemcpyTests(); forceLinkMemcpyPerfTests(); + forceLinkSimExternalConnectionTests(); } std::string description() const override { return "UnitTests"; } From 917da45c3f37e1c794a04a1566aa2d099961ecbb Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Wed, 23 Dec 2020 20:09:15 -0400 Subject: [PATCH 102/261] Miscellaneous improvements to SimExternalConnection unit test --- fdbrpc/SimExternalConnection.actor.cpp | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index 40ceaed586..697001b7e0 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -50,10 +50,7 @@ Future SimExternalConnection::onWritable() { } Future SimExternalConnection::onReadable() { - if (!readBuffer.empty()) { - return Void(); - } - return onReadableTrigger.onTrigger(); + return readBuffer.empty() ? onReadableTrigger.onTrigger() : Void(); } int SimExternalConnection::read(uint8_t* begin, uint8_t* end) { @@ -147,20 +144,20 @@ SimExternalConnection::SimExternalConnection(ip::tcp::socket&& socket) static constexpr auto testEchoServerPort = 8000; static void testEchoServer() { + static constexpr auto readBufferSize = 1000; io_service ios; ip::tcp::acceptor acceptor(ios, ip::tcp::endpoint(ip::tcp::v4(), testEchoServerPort)); - ip::tcp::socket socket(ios); acceptor.accept(socket); loop { - char data[10000]; + char readBuffer[readBufferSize]; boost::system::error_code err; - auto length = socket.read_some(buffer(data), err); + auto length = socket.read_some(mutable_buffers_1(readBuffer, readBufferSize), err); if (err == boost::asio::error::eof) { return; } ASSERT(!err); - write(socket, buffer(data, length)); + write(socket, buffer(readBuffer, length)); } } @@ -169,16 +166,15 @@ TEST_CASE("fdbrpc/SimExternalClient") { state std::thread serverThread([] { return testEchoServer(); }); state UnsentPacketQueue packetQueue; state Reference externalConn; - state const IPAddress localhost = IPAddress::parse("127.0.0.1").get(); + state const NetworkAddress serverAddress = NetworkAddress(IPAddress::parse("127.0.0.1").get(), testEchoServerPort); loop { - // Wait until server is ready - Reference _externalConn = - wait(INetworkConnections::net()->connectExternal(NetworkAddress(localhost, testEchoServerPort))); + Reference _externalConn = wait(INetworkConnections::net()->connectExternal(serverAddress)); if (_externalConn.isValid()) { externalConn = std::move(_externalConn); break; } - std::this_thread::sleep_for(std::chrono::seconds(1)); + // Wait until server is ready + std::this_thread::sleep_for(std::chrono::milliseconds(10)); } state Key data = deterministicRandom()->randomAlphaNumeric(deterministicRandom()->randomInt(0, maxDataLength + 1)); PacketWriter packetWriter(packetQueue.getWriteBuffer(data.size()), nullptr, Unversioned()); From d9b5309f4f440c35b82ceb4075cb5b1e8340a0e1 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Wed, 23 Dec 2020 22:25:20 -0400 Subject: [PATCH 103/261] Add random delays to SimExternalConnection --- fdbrpc/SimExternalConnection.actor.cpp | 57 ++++++++++++++++++-------- fdbrpc/SimExternalConnection.h | 1 + 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index 697001b7e0..aab864afd4 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -33,6 +33,36 @@ using namespace boost::asio; static io_service ios; +class SimExternalConnectionImpl { +public: + ACTOR static Future onReadable(SimExternalConnection* self) { + wait(delayJittered(0.1)); + if (self->readBuffer.empty()) { + wait(self->onReadableTrigger.onTrigger()); + } + return Void(); + } + + ACTOR static Future> connect(NetworkAddress toAddr) { + wait(delayJittered(0.1)); + ip::tcp::socket socket(ios); + auto ip = toAddr.ip; + ip::address address; + if (ip.isV6()) { + address = boost::asio::ip::address_v6(ip.toV6()); + } else { + address = boost::asio::ip::address_v4(ip.toV4()); + } + boost::system::error_code err; + socket.connect(ip::tcp::endpoint(address, toAddr.port), err); + if (err) { + return Reference(); + } else { + return Reference(new SimExternalConnection(std::move(socket))); + } + } +}; + void SimExternalConnection::close() { socket.close(); } @@ -50,7 +80,7 @@ Future SimExternalConnection::onWritable() { } Future SimExternalConnection::onReadable() { - return readBuffer.empty() ? onReadableTrigger.onTrigger() : Void(); + return SimExternalConnectionImpl::onReadable(this); } int SimExternalConnection::read(uint8_t* begin, uint8_t* end) { @@ -100,8 +130,8 @@ UID SimExternalConnection::getDebugID() const { return dbgid; } -Future> SimExternalConnection::resolveTCPEndpoint(const std::string& host, - const std::string& service) { +ACTOR static Future> resolveTCPEndpointImpl(std::string host, std::string service) { + wait(delayJittered(0.1)); ip::tcp::resolver resolver(ios); ip::tcp::resolver::query query(host, service); auto iter = resolver.resolve(query); @@ -120,22 +150,13 @@ Future> SimExternalConnection::resolveTCPEndpoint(co return addrs; } +Future> SimExternalConnection::resolveTCPEndpoint(const std::string& host, + const std::string& service) { + return resolveTCPEndpointImpl(host, service); +} + Future> SimExternalConnection::connect(NetworkAddress toAddr) { - ip::tcp::socket socket(ios); - auto ip = toAddr.ip; - ip::address address; - if (ip.isV6()) { - address = boost::asio::ip::address_v6(ip.toV6()); - } else { - address = boost::asio::ip::address_v4(ip.toV4()); - } - boost::system::error_code err; - socket.connect(ip::tcp::endpoint(address, toAddr.port), err); - if (err) { - return Reference(); - } else { - return Reference(new SimExternalConnection(std::move(socket))); - } + return SimExternalConnectionImpl::connect(toAddr); } SimExternalConnection::SimExternalConnection(ip::tcp::socket&& socket) diff --git a/fdbrpc/SimExternalConnection.h b/fdbrpc/SimExternalConnection.h index 550486e76f..fc1b485a66 100644 --- a/fdbrpc/SimExternalConnection.h +++ b/fdbrpc/SimExternalConnection.h @@ -34,6 +34,7 @@ class SimExternalConnection final : public IConnection, public ReferenceCounted< UID dbgid; std::deque readBuffer; AsyncTrigger onReadableTrigger; + friend class SimExternalConnectionImpl; public: void addref() override { return ReferenceCounted::addref(); } From 1dfa2acb93d81d0cb07beaebf1adcd65d915f293 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Wed, 23 Dec 2020 22:30:01 -0400 Subject: [PATCH 104/261] Reduce sleep in SimExternalConnection::write --- fdbrpc/SimExternalConnection.actor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index aab864afd4..2432672e8e 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -101,7 +101,7 @@ int SimExternalConnection::write(SendBuffer const* buffer, int limit) { boost::iterator_range(SendBufferIterator(buffer, limit), SendBufferIterator()), err); ASSERT(!err); ASSERT(bytesSent > 0); - std::this_thread::sleep_for(std::chrono::seconds(1)); + std::this_thread::sleep_for(std::chrono::milliseconds(100)); const auto bytesReadable = socket.available(); std::vector tempReadBuffer(bytesReadable); for (int index = 0; index < bytesReadable;) { From a7202a5b42083b929ddc708217e9bfb8488e9e21 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Thu, 24 Dec 2020 16:54:13 -0400 Subject: [PATCH 105/261] Use connectExernal in INetworkConnections::connect --- fdbrpc/SimExternalConnection.actor.cpp | 4 ++-- flow/network.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index 2432672e8e..261739ef26 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -187,9 +187,9 @@ TEST_CASE("fdbrpc/SimExternalClient") { state std::thread serverThread([] { return testEchoServer(); }); state UnsentPacketQueue packetQueue; state Reference externalConn; - state const NetworkAddress serverAddress = NetworkAddress(IPAddress::parse("127.0.0.1").get(), testEchoServerPort); loop { - Reference _externalConn = wait(INetworkConnections::net()->connectExternal(serverAddress)); + Reference _externalConn = + wait(INetworkConnections::net()->connect("localhost", std::to_string(testEchoServerPort))); if (_externalConn.isValid()) { externalConn = std::move(_externalConn); break; diff --git a/flow/network.cpp b/flow/network.cpp index 0233bc1e5a..200ba9eb61 100644 --- a/flow/network.cpp +++ b/flow/network.cpp @@ -161,10 +161,10 @@ Future> INetworkConnections::connect( const std::string & // Wait for the endpoint to return, then wait for connect(endpoint) and return it. // Template types are being provided explicitly because they can't be automatically deduced for some reason. - return mapAsync>(NetworkAddress const &)>, Reference > - (pickEndpoint, [=](NetworkAddress const &addr) -> Future> { - return connect(addr, host); - }); + return mapAsync>(NetworkAddress const&)>, + Reference>( + pickEndpoint, + [=](NetworkAddress const& addr) -> Future> { return connectExternal(addr, host); }); } IUDPSocket::~IUDPSocket() {} From 0b45c969b98c0844eb42a384d75b6140243895e2 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Thu, 24 Dec 2020 17:53:46 -0400 Subject: [PATCH 106/261] Remove invalid assertion from SimExternalConnection::read --- fdbrpc/SimExternalConnection.actor.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index 261739ef26..feca41d349 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -84,8 +84,7 @@ Future SimExternalConnection::onReadable() { } int SimExternalConnection::read(uint8_t* begin, uint8_t* end) { - size_t toRead = end - begin; - ASSERT(toRead <= readBuffer.size()); + auto toRead = std::min(end - begin, readBuffer.size()); // TODO: Improve performance for (int i = 0; i < toRead; ++i) { *(begin + i) = readBuffer.front(); From 1dc034309224af2ada7cef90e62def343db6135c Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Thu, 3 Dec 2020 11:32:30 -0800 Subject: [PATCH 107/261] Update blob backup test files --- fdbserver/workloads/BackupToBlob.actor.cpp | 18 ++- fdbserver/workloads/RestoreFromBlob.actor.cpp | 18 ++- tests/CMakeLists.txt | 3 +- ...s.toml => BackupAzureBlobCorrectness.toml} | 0 tests/fast/BackupS3BlobCorrectness.toml | 107 ++++++++++++++++++ 5 files changed, 143 insertions(+), 3 deletions(-) rename tests/fast/{BackupBlobCorrectness.toml => BackupAzureBlobCorrectness.toml} (100%) create mode 100644 tests/fast/BackupS3BlobCorrectness.toml diff --git a/fdbserver/workloads/BackupToBlob.actor.cpp b/fdbserver/workloads/BackupToBlob.actor.cpp index 78a448826b..9eef4ae321 100644 --- a/fdbserver/workloads/BackupToBlob.actor.cpp +++ b/fdbserver/workloads/BackupToBlob.actor.cpp @@ -35,7 +35,23 @@ struct BackupToBlobWorkload : TestWorkload { BackupToBlobWorkload(WorkloadContext const& wcx) : TestWorkload(wcx) { backupAfter = getOption(options, LiteralStringRef("backupAfter"), 10.0); backupTag = getOption(options, LiteralStringRef("backupTag"), BackupAgentBase::getDefaultTag()); - backupURL = getOption(options, LiteralStringRef("backupURL"), LiteralStringRef("http://0.0.0.0:10000")); + auto backupURLString = + getOption(options, LiteralStringRef("backupURL"), LiteralStringRef("http://0.0.0.0:10000")).toString(); + auto accessKeyVar = + getOption(options, LiteralStringRef("accessKeyVar"), LiteralStringRef("BLOB_ACCESS_KEY")).toString(); + auto secretKeyVar = + getOption(options, LiteralStringRef("secretKeyVar"), LiteralStringRef("BLOB_SECRET_KEY")).toString(); + std::string accessKey = std::getenv(accessKeyVar.c_str()); + std::string secretKey = std::getenv(secretKeyVar.c_str()); + { + auto pos = backupURLString.find(""); + backupURLString.replace(pos, 12, accessKey); + } + { + auto pos = backupURLString.find(""); + backupURLString.replace(pos, 12, secretKey); + } + backupURL = backupURLString; } std::string description() const override { return DESCRIPTION; } diff --git a/fdbserver/workloads/RestoreFromBlob.actor.cpp b/fdbserver/workloads/RestoreFromBlob.actor.cpp index c94a867b66..bde92cc9df 100644 --- a/fdbserver/workloads/RestoreFromBlob.actor.cpp +++ b/fdbserver/workloads/RestoreFromBlob.actor.cpp @@ -36,8 +36,24 @@ struct RestoreFromBlobWorkload : TestWorkload { RestoreFromBlobWorkload(WorkloadContext const& wcx) : TestWorkload(wcx) { restoreAfter = getOption(options, LiteralStringRef("restoreAfter"), 10.0); backupTag = getOption(options, LiteralStringRef("backupTag"), BackupAgentBase::getDefaultTag()); - backupURL = getOption(options, LiteralStringRef("backupURL"), LiteralStringRef("http://0.0.0.0:10000")); + auto backupURLString = + getOption(options, LiteralStringRef("backupURL"), LiteralStringRef("http://0.0.0.0:10000")).toString(); + auto accessKeyVar = + getOption(options, LiteralStringRef("accessKeyVar"), LiteralStringRef("BLOB_ACCESS_KEY")).toString(); + auto secretKeyVar = + getOption(options, LiteralStringRef("secretKeyVar"), LiteralStringRef("BLOB_SECRET_KEY")).toString(); waitForComplete = getOption(options, LiteralStringRef("waitForComplete"), true); + std::string accessKey = std::getenv(accessKeyVar.c_str()); + std::string secretKey = std::getenv(secretKeyVar.c_str()); + { + auto pos = backupURLString.find(""); + backupURLString.replace(pos, 12, accessKey); + } + { + auto pos = backupURLString.find(""); + backupURLString.replace(pos, 12, secretKey); + } + backupURL = backupURLString; } std::string description() const override { return DESCRIPTION; } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 1f1bf35476..0686e8fe8d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -106,7 +106,8 @@ if(WITH_PYTHON) add_fdb_test(TEST_FILES fast/AtomicBackupToDBCorrectness.toml) add_fdb_test(TEST_FILES fast/AtomicOps.toml) add_fdb_test(TEST_FILES fast/AtomicOpsApiCorrectness.toml) - add_fdb_test(TEST_FILES fast/BackupBlobCorrectness.toml IGNORE) + add_fdb_test(TEST_FILES fast/BackupAzureBlobCorrectness.toml IGNORE) + add_fdb_test(TEST_FILES fast/BackupS3BlobCorrectness.toml IGNORE) add_fdb_test(TEST_FILES fast/BackupCorrectness.toml) add_fdb_test(TEST_FILES fast/BackupCorrectnessClean.toml) add_fdb_test(TEST_FILES fast/BackupToDBCorrectness.toml) diff --git a/tests/fast/BackupBlobCorrectness.toml b/tests/fast/BackupAzureBlobCorrectness.toml similarity index 100% rename from tests/fast/BackupBlobCorrectness.toml rename to tests/fast/BackupAzureBlobCorrectness.toml diff --git a/tests/fast/BackupS3BlobCorrectness.toml b/tests/fast/BackupS3BlobCorrectness.toml new file mode 100644 index 0000000000..811ad7a65a --- /dev/null +++ b/tests/fast/BackupS3BlobCorrectness.toml @@ -0,0 +1,107 @@ +[[test]] +testTitle = 'Cycle' +clearAfterTest = 'false' +simBackupAgents = 'BackupToFile' + + [[test.workload]] + testName = 'Cycle' + nodeCount = 3000 + testDuration = 10.0 + expectedRate = 0 + + [[test.workload]] + testName = 'RandomClogging' + testDuration = 10.0 + + [[test.workload]] + testName = 'Rollback' + meanDelay = 5.0 + testDuration = 10.0 + + [[test.workload]] + testName = 'Attrition' + machinesToKill = 10 + machinesToLeave = 3 + reboot = true + testDuration = 10.0 + + [[test.workload]] + testName = 'Attrition' + machinesToKill = 10 + machinesToLeave = 3 + reboot = true + testDuration = 10.0 + +[[test]] +testTitle = 'Backup' + + [[test.workload]] + testName = 'BackupToBlob' + backupAfter = 0.0 + backupTag = 'default' + backupURL = 'blobstore://:@127.0.0.1:9000/resource?bucket=bucketname' + + [[test.workload]] + testName = 'RandomClogging' + testDuration = 10.0 + + [[test.workload]] + testName = 'Rollback' + meanDelay = 5.0 + testDuration = 10.0 + + [[test.workload]] + testName = 'Attrition' + machinesToKill = 10 + machinesToLeave = 3 + reboot = true + testDuration = 10.0 + + [[test.workload]] + testName = 'Attrition' + machinesToKill = 10 + machinesToLeave = 3 + reboot = true + testDuration = 10.0 + +[[test]] +testTitle = 'Restore' +clearAfterTest = 'false' + + [[test.workload]] + testName = 'RestoreFromBlob' + restoreAfter = 0.0 + backupTag = 'default' + backupURL = 'blobstore://:@127.0.0.1:9000/resource?bucket=bucketname' + + [[test.workload]] + testName = 'RandomClogging' + testDuration = 60.0 + + [[test.workload]] + testName = 'Rollback' + meanDelay = 5.0 + testDuration = 10.0 + + [[test.workload]] + testName = 'Attrition' + machinesToKill = 10 + machinesToLeave = 3 + reboot = true + testDuration = 10.0 + + [[test.workload]] + testName = 'Attrition' + machinesToKill = 10 + machinesToLeave = 3 + reboot = true + testDuration = 10.0 + +[[test]] +testTitle = 'CycleCheck' +checkOnly = 'true' + + [[test.workload]] + testName = 'Cycle' + nodeCount = 3000 + expectedRate = 0 From 2a8f97173305846d4f7e24203c4af92f54cba2f6 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Thu, 24 Dec 2020 20:57:51 -0400 Subject: [PATCH 108/261] Fix Azure blob storage backup test --- fdbserver/workloads/BackupToBlob.actor.cpp | 21 +++++++++++-------- fdbserver/workloads/RestoreFromBlob.actor.cpp | 21 +++++++++++-------- tests/fast/BackupS3BlobCorrectness.toml | 4 +++- 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/fdbserver/workloads/BackupToBlob.actor.cpp b/fdbserver/workloads/BackupToBlob.actor.cpp index 9eef4ae321..b28e8174d5 100644 --- a/fdbserver/workloads/BackupToBlob.actor.cpp +++ b/fdbserver/workloads/BackupToBlob.actor.cpp @@ -41,15 +41,18 @@ struct BackupToBlobWorkload : TestWorkload { getOption(options, LiteralStringRef("accessKeyVar"), LiteralStringRef("BLOB_ACCESS_KEY")).toString(); auto secretKeyVar = getOption(options, LiteralStringRef("secretKeyVar"), LiteralStringRef("BLOB_SECRET_KEY")).toString(); - std::string accessKey = std::getenv(accessKeyVar.c_str()); - std::string secretKey = std::getenv(secretKeyVar.c_str()); - { - auto pos = backupURLString.find(""); - backupURLString.replace(pos, 12, accessKey); - } - { - auto pos = backupURLString.find(""); - backupURLString.replace(pos, 12, secretKey); + bool provideKeys = getOption(options, LiteralStringRef("provideKeys"), false); + if (provideKeys) { + std::string accessKey = std::getenv(accessKeyVar.c_str()); + std::string secretKey = std::getenv(secretKeyVar.c_str()); + { + auto pos = backupURLString.find(""); + backupURLString.replace(pos, 12, accessKey); + } + { + auto pos = backupURLString.find(""); + backupURLString.replace(pos, 12, secretKey); + } } backupURL = backupURLString; } diff --git a/fdbserver/workloads/RestoreFromBlob.actor.cpp b/fdbserver/workloads/RestoreFromBlob.actor.cpp index bde92cc9df..301b70a44c 100644 --- a/fdbserver/workloads/RestoreFromBlob.actor.cpp +++ b/fdbserver/workloads/RestoreFromBlob.actor.cpp @@ -42,16 +42,19 @@ struct RestoreFromBlobWorkload : TestWorkload { getOption(options, LiteralStringRef("accessKeyVar"), LiteralStringRef("BLOB_ACCESS_KEY")).toString(); auto secretKeyVar = getOption(options, LiteralStringRef("secretKeyVar"), LiteralStringRef("BLOB_SECRET_KEY")).toString(); + bool provideKeys = getOption(options, LiteralStringRef("provideKeys"), false); waitForComplete = getOption(options, LiteralStringRef("waitForComplete"), true); - std::string accessKey = std::getenv(accessKeyVar.c_str()); - std::string secretKey = std::getenv(secretKeyVar.c_str()); - { - auto pos = backupURLString.find(""); - backupURLString.replace(pos, 12, accessKey); - } - { - auto pos = backupURLString.find(""); - backupURLString.replace(pos, 12, secretKey); + if (provideKeys) { + std::string accessKey = std::getenv(accessKeyVar.c_str()); + std::string secretKey = std::getenv(secretKeyVar.c_str()); + { + auto pos = backupURLString.find(""); + backupURLString.replace(pos, 12, accessKey); + } + { + auto pos = backupURLString.find(""); + backupURLString.replace(pos, 12, secretKey); + } } backupURL = backupURLString; } diff --git a/tests/fast/BackupS3BlobCorrectness.toml b/tests/fast/BackupS3BlobCorrectness.toml index 811ad7a65a..e80fa847b0 100644 --- a/tests/fast/BackupS3BlobCorrectness.toml +++ b/tests/fast/BackupS3BlobCorrectness.toml @@ -40,7 +40,8 @@ testTitle = 'Backup' backupAfter = 0.0 backupTag = 'default' backupURL = 'blobstore://:@127.0.0.1:9000/resource?bucket=bucketname' - + provideKeys = true + [[test.workload]] testName = 'RandomClogging' testDuration = 10.0 @@ -73,6 +74,7 @@ clearAfterTest = 'false' restoreAfter = 0.0 backupTag = 'default' backupURL = 'blobstore://:@127.0.0.1:9000/resource?bucket=bucketname' + provideKeys = true [[test.workload]] testName = 'RandomClogging' From 2c8ca5d7f97ca8191fe695addf6cee1cbde85f90 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Thu, 24 Dec 2020 21:57:53 -0400 Subject: [PATCH 109/261] Added BlobStoreWorkload.h --- fdbserver/CMakeLists.txt | 3 +- fdbserver/workloads/BackupToBlob.actor.cpp | 16 ++----- fdbserver/workloads/BlobStoreWorkload.h | 43 +++++++++++++++++++ fdbserver/workloads/RestoreFromBlob.actor.cpp | 16 ++----- 4 files changed, 53 insertions(+), 25 deletions(-) create mode 100644 fdbserver/workloads/BlobStoreWorkload.h diff --git a/fdbserver/CMakeLists.txt b/fdbserver/CMakeLists.txt index bf266069cb..a0116d3814 100644 --- a/fdbserver/CMakeLists.txt +++ b/fdbserver/CMakeLists.txt @@ -119,7 +119,6 @@ set(FDBSERVER_SRCS workloads/AsyncFileRead.actor.cpp workloads/AsyncFileWrite.actor.cpp workloads/AtomicOps.actor.cpp - workloads/ReadHotDetection.actor.cpp workloads/AtomicOpsApiCorrectness.actor.cpp workloads/AtomicRestore.actor.cpp workloads/AtomicSwitchover.actor.cpp @@ -131,6 +130,7 @@ set(FDBSERVER_SRCS workloads/BackupToDBAbort.actor.cpp workloads/BackupToDBCorrectness.actor.cpp workloads/BackupToDBUpgrade.actor.cpp + workloads/BlobStoreWorkload.h workloads/BulkLoad.actor.cpp workloads/BulkSetup.actor.h workloads/Cache.actor.cpp @@ -184,6 +184,7 @@ set(FDBSERVER_SRCS workloads/RandomMoveKeys.actor.cpp workloads/RandomSelector.actor.cpp workloads/ReadAfterWrite.actor.cpp + workloads/ReadHotDetection.actor.cpp workloads/ReadWrite.actor.cpp workloads/RemoveServersSafely.actor.cpp workloads/ReportConflictingKeys.actor.cpp diff --git a/fdbserver/workloads/BackupToBlob.actor.cpp b/fdbserver/workloads/BackupToBlob.actor.cpp index b28e8174d5..94e000a169 100644 --- a/fdbserver/workloads/BackupToBlob.actor.cpp +++ b/fdbserver/workloads/BackupToBlob.actor.cpp @@ -21,6 +21,7 @@ #include "fdbrpc/simulator.h" #include "fdbclient/BackupAgent.actor.h" #include "fdbclient/BackupContainer.h" +#include "fdbserver/workloads/BlobStoreWorkload.h" #include "fdbserver/workloads/workloads.actor.h" #include "flow/actorcompiler.h" // This must be the last #include. @@ -37,22 +38,13 @@ struct BackupToBlobWorkload : TestWorkload { backupTag = getOption(options, LiteralStringRef("backupTag"), BackupAgentBase::getDefaultTag()); auto backupURLString = getOption(options, LiteralStringRef("backupURL"), LiteralStringRef("http://0.0.0.0:10000")).toString(); - auto accessKeyVar = + auto accessKeyEnvVar = getOption(options, LiteralStringRef("accessKeyVar"), LiteralStringRef("BLOB_ACCESS_KEY")).toString(); - auto secretKeyVar = + auto secretKeyEnvVar = getOption(options, LiteralStringRef("secretKeyVar"), LiteralStringRef("BLOB_SECRET_KEY")).toString(); bool provideKeys = getOption(options, LiteralStringRef("provideKeys"), false); if (provideKeys) { - std::string accessKey = std::getenv(accessKeyVar.c_str()); - std::string secretKey = std::getenv(secretKeyVar.c_str()); - { - auto pos = backupURLString.find(""); - backupURLString.replace(pos, 12, accessKey); - } - { - auto pos = backupURLString.find(""); - backupURLString.replace(pos, 12, secretKey); - } + updateBackupURL(backupURLString, accessKeyEnvVar, "", secretKeyEnvVar, ""); } backupURL = backupURLString; } diff --git a/fdbserver/workloads/BlobStoreWorkload.h b/fdbserver/workloads/BlobStoreWorkload.h new file mode 100644 index 0000000000..a6ac10121c --- /dev/null +++ b/fdbserver/workloads/BlobStoreWorkload.h @@ -0,0 +1,43 @@ +/* + * BlobStoreWorkload.h + * + * This source file is part of the FoundationDB open source project + * + * Copyright 2013-2018 Apple Inc. and the FoundationDB project authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef FDBSERVER_BLOB_STORE_WORKLOAD_H +#define FDBSERVER_BLOB_STORE_WORKLOAD_H +#pragma once + +#include +#include + +inline void updateBackupURL(std::string& backupURL, const std::string& accessKeyEnvVar, + const std::string& accessKeyPlaceholder, const std::string& secretKeyEnvVar, + const std::string& secretKeyPlaceholder) { + std::string accessKey = std::getenv(accessKeyEnvVar.c_str()); + std::string secretKey = std::getenv(secretKeyEnvVar.c_str()); + { + auto pos = backupURL.find(accessKeyPlaceholder.c_str()); + backupURL.replace(pos, accessKeyPlaceholder.size(), accessKey); + } + { + auto pos = backupURL.find(secretKeyPlaceholder.c_str()); + backupURL.replace(pos, secretKeyPlaceholder.size(), secretKey); + } +} + +#endif diff --git a/fdbserver/workloads/RestoreFromBlob.actor.cpp b/fdbserver/workloads/RestoreFromBlob.actor.cpp index 301b70a44c..57c18e7c07 100644 --- a/fdbserver/workloads/RestoreFromBlob.actor.cpp +++ b/fdbserver/workloads/RestoreFromBlob.actor.cpp @@ -21,6 +21,7 @@ #include "fdbrpc/simulator.h" #include "fdbclient/BackupAgent.actor.h" #include "fdbclient/BackupContainer.h" +#include "fdbserver/workloads/BlobStoreWorkload.h" #include "fdbserver/workloads/workloads.actor.h" #include "fdbserver/workloads/BulkSetup.actor.h" #include "flow/actorcompiler.h" // This must be the last #include. @@ -38,23 +39,14 @@ struct RestoreFromBlobWorkload : TestWorkload { backupTag = getOption(options, LiteralStringRef("backupTag"), BackupAgentBase::getDefaultTag()); auto backupURLString = getOption(options, LiteralStringRef("backupURL"), LiteralStringRef("http://0.0.0.0:10000")).toString(); - auto accessKeyVar = + auto accessKeyEnvVar = getOption(options, LiteralStringRef("accessKeyVar"), LiteralStringRef("BLOB_ACCESS_KEY")).toString(); - auto secretKeyVar = + auto secretKeyEnvVar = getOption(options, LiteralStringRef("secretKeyVar"), LiteralStringRef("BLOB_SECRET_KEY")).toString(); bool provideKeys = getOption(options, LiteralStringRef("provideKeys"), false); waitForComplete = getOption(options, LiteralStringRef("waitForComplete"), true); if (provideKeys) { - std::string accessKey = std::getenv(accessKeyVar.c_str()); - std::string secretKey = std::getenv(secretKeyVar.c_str()); - { - auto pos = backupURLString.find(""); - backupURLString.replace(pos, 12, accessKey); - } - { - auto pos = backupURLString.find(""); - backupURLString.replace(pos, 12, secretKey); - } + updateBackupURL(backupURLString, accessKeyEnvVar, "", secretKeyEnvVar, ""); } backupURL = backupURLString; } From f6ad4559a78771938c5889c0204ea27cfafc621a Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 26 Dec 2020 13:24:21 -0400 Subject: [PATCH 110/261] Remove MasterProxyServer.actor.cpp --- fdbserver/MasterProxyServer.actor.cpp | 2339 ------------------------- 1 file changed, 2339 deletions(-) delete mode 100644 fdbserver/MasterProxyServer.actor.cpp diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp deleted file mode 100644 index e8e81c1a4b..0000000000 --- a/fdbserver/MasterProxyServer.actor.cpp +++ /dev/null @@ -1,2339 +0,0 @@ -/* - * MasterProxyServer.actor.cpp - * - * This source file is part of the FoundationDB open source project - * - * Copyright 2013-2018 Apple Inc. and the FoundationDB project authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "fdbclient/Atomic.h" -#include "fdbclient/DatabaseConfiguration.h" -#include "fdbclient/FDBTypes.h" -#include "fdbclient/KeyRangeMap.h" -#include "fdbclient/Knobs.h" -#include "fdbclient/MasterProxyInterface.h" -#include "fdbclient/NativeAPI.actor.h" -#include "fdbclient/Notified.h" -#include "fdbclient/SystemData.h" -#include "fdbrpc/sim_validation.h" -#include "fdbrpc/Stats.h" -#include "fdbserver/ApplyMetadataMutation.h" -#include "fdbserver/ConflictSet.h" -#include "fdbserver/DataDistributorInterface.h" -#include "fdbserver/FDBExecHelper.actor.h" -#include "fdbserver/IKeyValueStore.h" -#include "fdbserver/Knobs.h" -#include "fdbserver/LatencyBandConfig.h" -#include "fdbserver/LogSystem.h" -#include "fdbserver/LogSystemDiskQueueAdapter.h" -#include "fdbserver/MasterInterface.h" -#include "fdbserver/RecoveryState.h" -#include "fdbserver/ServerDBInfo.h" -#include "fdbserver/WaitFailure.h" -#include "fdbserver/WorkerInterface.actor.h" -#include "flow/ActorCollection.h" -#include "flow/Knobs.h" -#include "flow/TDMetric.actor.h" -#include "flow/actorcompiler.h" // This must be the last #include. - -ACTOR Future broadcastTxnRequest(TxnStateRequest req, int sendAmount, bool sendReply) { - state ReplyPromise reply = req.reply; - resetReply( req ); - std::vector> replies; - int currentStream = 0; - std::vector broadcastEndpoints = req.broadcastInfo; - for(int i = 0; i < sendAmount && currentStream < broadcastEndpoints.size(); i++) { - std::vector endpoints; - RequestStream cur(broadcastEndpoints[currentStream++]); - while(currentStream < broadcastEndpoints.size()*(i+1)/sendAmount) { - endpoints.push_back(broadcastEndpoints[currentStream++]); - } - req.broadcastInfo = endpoints; - replies.push_back(brokenPromiseToNever( cur.getReply( req ) )); - resetReply( req ); - } - wait( waitForAll(replies) ); - if(sendReply) { - reply.send(Void()); - } - return Void(); -} - -struct ProxyStats { - CounterCollection cc; - Counter txnRequestIn, txnRequestOut, txnRequestErrors; - Counter txnStartIn, txnStartOut, txnStartBatch; - Counter txnSystemPriorityStartIn, txnSystemPriorityStartOut; - Counter txnBatchPriorityStartIn, txnBatchPriorityStartOut; - Counter txnDefaultPriorityStartIn, txnDefaultPriorityStartOut; - Counter txnCommitIn, txnCommitVersionAssigned, txnCommitResolving, txnCommitResolved, txnCommitOut, txnCommitOutSuccess, txnCommitErrors; - Counter txnConflicts; - Counter txnThrottled; - Counter commitBatchIn, commitBatchOut; - Counter mutationBytes; - Counter mutations; - Counter conflictRanges; - Counter keyServerLocationIn, keyServerLocationOut, keyServerLocationErrors; - Version lastCommitVersionAssigned; - double transactionRateAllowed, batchTransactionRateAllowed; - double transactionLimit, batchTransactionLimit; - // how much of the GRV requests queue was processed in one attempt to hand out read version. - double percentageOfDefaultGRVQueueProcessed; - double percentageOfBatchGRVQueueProcessed; - - LatencySample defaultTxnGRVTimeInQueue; - LatencySample batchTxnGRVTimeInQueue; - - LatencySample commitLatencySample; - LatencySample grvLatencySample; - - LatencyBands commitLatencyBands; - LatencyBands grvLatencyBands; - - Future logger; - - int recentRequests; - Deque requestBuckets; - double lastBucketBegin; - double bucketInterval; - - int64_t maxComputeNS; - int64_t minComputeNS; - - void updateRequestBuckets() { - while(now() - lastBucketBegin > bucketInterval) { - lastBucketBegin += bucketInterval; - recentRequests -= requestBuckets.front(); - requestBuckets.pop_front(); - requestBuckets.push_back(0); - } - } - - void addRequest(int transactionCount) { - updateRequestBuckets(); - recentRequests += transactionCount; - requestBuckets.back() += transactionCount; - } - - int getRecentRequests() { - updateRequestBuckets(); - return recentRequests/(FLOW_KNOBS->BASIC_LOAD_BALANCE_UPDATE_RATE-(lastBucketBegin+bucketInterval-now())); - } - - int64_t getAndResetMaxCompute() { - int64_t r = maxComputeNS; - maxComputeNS = 0; - return r; - } - - int64_t getAndResetMinCompute() { - int64_t r = minComputeNS; - minComputeNS = 1e12; - return r; - } - - explicit ProxyStats(UID id, Version* pVersion, NotifiedVersion* pCommittedVersion, - int64_t* commitBatchesMemBytesCountPtr) - : cc("ProxyStats", id.toString()), recentRequests(0), lastBucketBegin(now()), maxComputeNS(0), minComputeNS(1e12), - bucketInterval(FLOW_KNOBS->BASIC_LOAD_BALANCE_UPDATE_RATE / FLOW_KNOBS->BASIC_LOAD_BALANCE_BUCKETS), - txnRequestIn("TxnRequestIn", cc), txnRequestOut("TxnRequestOut", cc), txnRequestErrors("TxnRequestErrors", cc), - txnStartIn("TxnStartIn", cc), txnStartOut("TxnStartOut", cc), txnStartBatch("TxnStartBatch", cc), - txnSystemPriorityStartIn("TxnSystemPriorityStartIn", cc), - txnSystemPriorityStartOut("TxnSystemPriorityStartOut", cc), - txnBatchPriorityStartIn("TxnBatchPriorityStartIn", cc), - txnBatchPriorityStartOut("TxnBatchPriorityStartOut", cc), - txnDefaultPriorityStartIn("TxnDefaultPriorityStartIn", cc), - txnDefaultPriorityStartOut("TxnDefaultPriorityStartOut", cc), txnCommitIn("TxnCommitIn", cc), - txnCommitVersionAssigned("TxnCommitVersionAssigned", cc), txnCommitResolving("TxnCommitResolving", cc), - txnCommitResolved("TxnCommitResolved", cc), txnCommitOut("TxnCommitOut", cc), - txnCommitOutSuccess("TxnCommitOutSuccess", cc), txnCommitErrors("TxnCommitErrors", cc), - txnConflicts("TxnConflicts", cc), txnThrottled("TxnThrottled", cc), commitBatchIn("CommitBatchIn", cc), - commitBatchOut("CommitBatchOut", cc), mutationBytes("MutationBytes", cc), mutations("Mutations", cc), - conflictRanges("ConflictRanges", cc), keyServerLocationIn("KeyServerLocationIn", cc), - keyServerLocationOut("KeyServerLocationOut", cc), keyServerLocationErrors("KeyServerLocationErrors", cc), - lastCommitVersionAssigned(0), - commitLatencySample("CommitLatencyMetrics", id, SERVER_KNOBS->LATENCY_METRICS_LOGGING_INTERVAL, - SERVER_KNOBS->LATENCY_SAMPLE_SIZE), - grvLatencySample("GRVLatencyMetrics", id, SERVER_KNOBS->LATENCY_METRICS_LOGGING_INTERVAL, - SERVER_KNOBS->LATENCY_SAMPLE_SIZE), - commitLatencyBands("CommitLatencyBands", id, SERVER_KNOBS->STORAGE_LOGGING_DELAY), - grvLatencyBands("GRVLatencyBands", id, SERVER_KNOBS->STORAGE_LOGGING_DELAY), - defaultTxnGRVTimeInQueue("DefaultTxnGRVTimeInQueue", id, SERVER_KNOBS->LATENCY_METRICS_LOGGING_INTERVAL, - SERVER_KNOBS->LATENCY_SAMPLE_SIZE), - batchTxnGRVTimeInQueue("BatchTxnGRVTimeInQueue", id, SERVER_KNOBS->LATENCY_METRICS_LOGGING_INTERVAL, - SERVER_KNOBS->LATENCY_SAMPLE_SIZE), - transactionRateAllowed(0), batchTransactionRateAllowed(0), transactionLimit(0), batchTransactionLimit(0), - percentageOfDefaultGRVQueueProcessed(0), percentageOfBatchGRVQueueProcessed(0) { - specialCounter(cc, "LastAssignedCommitVersion", [this](){return this->lastCommitVersionAssigned;}); - specialCounter(cc, "Version", [pVersion](){return *pVersion; }); - specialCounter(cc, "CommittedVersion", [pCommittedVersion](){ return pCommittedVersion->get(); }); - specialCounter(cc, "CommitBatchesMemBytesCount", [commitBatchesMemBytesCountPtr]() { return *commitBatchesMemBytesCountPtr; }); - specialCounter(cc, "MaxCompute", [this](){ return this->getAndResetMaxCompute(); }); - specialCounter(cc, "MinCompute", [this](){ return this->getAndResetMinCompute(); }); - // The rate at which the limit(budget) is allowed to grow. - specialCounter(cc, "SystemAndDefaultTxnRateAllowed", [this]() { return this->transactionRateAllowed; }); - specialCounter(cc, "BatchTransactionRateAllowed", [this]() { return this->batchTransactionRateAllowed; }); - specialCounter(cc, "SystemAndDefaultTxnLimit", [this]() { return this->transactionLimit; }); - specialCounter(cc, "BatchTransactionLimit", [this]() { return this->batchTransactionLimit; }); - specialCounter(cc, "PercentageOfDefaultGRVQueueProcessed", - [this]() { return this->percentageOfDefaultGRVQueueProcessed; }); - specialCounter(cc, "PercentageOfBatchGRVQueueProcessed", - [this]() { return this->percentageOfBatchGRVQueueProcessed; }); - logger = traceCounters("ProxyMetrics", id, SERVER_KNOBS->WORKER_LOGGING_INTERVAL, &cc, "ProxyMetrics"); - for(int i = 0; i < FLOW_KNOBS->BASIC_LOAD_BALANCE_BUCKETS; i++) { - requestBuckets.push_back(0); - } - } -}; - -struct TransactionRateInfo { - double rate; - double limit; - double budget; - - bool disabled; - - Smoother smoothRate; - Smoother smoothReleased; - - TransactionRateInfo(double rate) : rate(rate), limit(0), budget(0), disabled(true), smoothRate(SERVER_KNOBS->START_TRANSACTION_RATE_WINDOW), - smoothReleased(SERVER_KNOBS->START_TRANSACTION_RATE_WINDOW) {} - - void reset() { - // Determine the number of transactions that this proxy is allowed to release - // Roughly speaking, this is done by computing the number of transactions over some historical window that we could - // have started but didn't, and making that our limit. More precisely, we track a smoothed rate limit and release rate, - // the difference of which is the rate of additional transactions that we could have released based on that window. - // Then we multiply by the window size to get a number of transactions. - // - // Limit can be negative in the event that we are releasing more transactions than we are allowed (due to the use of - // our budget or because of higher priority transactions). - double releaseRate = smoothRate.smoothTotal() - smoothReleased.smoothRate(); - limit = SERVER_KNOBS->START_TRANSACTION_RATE_WINDOW * releaseRate; - } - - bool canStart(int64_t numAlreadyStarted, int64_t count) { - return numAlreadyStarted + count <= std::min(limit + budget, SERVER_KNOBS->START_TRANSACTION_MAX_TRANSACTIONS_TO_START); - } - - void updateBudget(int64_t numStartedAtPriority, bool queueEmptyAtPriority, double elapsed) { - // Update the budget to accumulate any extra capacity available or remove any excess that was used. - // The actual delta is the portion of the limit we didn't use multiplied by the fraction of the window that elapsed. - // - // We may have exceeded our limit due to the budget or because of higher priority transactions, in which case this - // delta will be negative. The delta can also be negative in the event that our limit was negative, which can happen - // if we had already started more transactions in our window than our rate would have allowed. - // - // This budget has the property that when the budget is required to start transactions (because batches are big), - // the sum limit+budget will increase linearly from 0 to the batch size over time and decrease by the batch size - // upon starting a batch. In other words, this works equivalently to a model where we linearly accumulate budget over - // time in the case that our batches are too big to take advantage of the window based limits. - budget = std::max(0.0, budget + elapsed * (limit - numStartedAtPriority) / SERVER_KNOBS->START_TRANSACTION_RATE_WINDOW); - - // If we are emptying out the queue of requests, then we don't need to carry much budget forward - // If we did keep accumulating budget, then our responsiveness to changes in workflow could be compromised - if(queueEmptyAtPriority) { - budget = std::min(budget, SERVER_KNOBS->START_TRANSACTION_MAX_EMPTY_QUEUE_BUDGET); - } - - smoothReleased.addDelta(numStartedAtPriority); - } - - void disable() { - disabled = true; - rate = 0; - smoothRate.reset(0); - } - - void setRate(double rate) { - ASSERT(rate >= 0 && rate != std::numeric_limits::infinity() && !std::isnan(rate)); - - this->rate = rate; - if(disabled) { - smoothRate.reset(rate); - disabled = false; - } - else { - smoothRate.setTotal(rate); - } - } -}; - -ACTOR Future getRate(UID myID, Reference> db, int64_t* inTransactionCount, - int64_t* inBatchTransactionCount, TransactionRateInfo* transactionRateInfo, - TransactionRateInfo* batchTransactionRateInfo, GetHealthMetricsReply* healthMetricsReply, - GetHealthMetricsReply* detailedHealthMetricsReply, - TransactionTagMap* transactionTagCounter, - PrioritizedTransactionTagMap* throttledTags, ProxyStats* stats) { - state Future nextRequestTimer = Never(); - state Future leaseTimeout = Never(); - state Future reply = Never(); - state double lastDetailedReply = 0.0; // request detailed metrics immediately - state bool expectingDetailedReply = false; - state int64_t lastTC = 0; - - if (db->get().ratekeeper.present()) nextRequestTimer = Void(); - loop choose { - when ( wait( db->onChange() ) ) { - if ( db->get().ratekeeper.present() ) { - TraceEvent("ProxyRatekeeperChanged", myID) - .detail("RKID", db->get().ratekeeper.get().id()); - nextRequestTimer = Void(); // trigger GetRate request - } else { - TraceEvent("ProxyRatekeeperDied", myID); - nextRequestTimer = Never(); - reply = Never(); - } - } - when ( wait( nextRequestTimer ) ) { - nextRequestTimer = Never(); - bool detailed = now() - lastDetailedReply > SERVER_KNOBS->DETAILED_METRIC_UPDATE_RATE; - - TransactionTagMap tagCounts; - for(auto itr : *throttledTags) { - for(auto priorityThrottles : itr.second) { - tagCounts[priorityThrottles.first] = (*transactionTagCounter)[priorityThrottles.first]; - } - } - reply = brokenPromiseToNever(db->get().ratekeeper.get().getRateInfo.getReply(GetRateInfoRequest(myID, *inTransactionCount, *inBatchTransactionCount, tagCounts, detailed))); - transactionTagCounter->clear(); - expectingDetailedReply = detailed; - } - when ( GetRateInfoReply rep = wait(reply) ) { - reply = Never(); - - transactionRateInfo->setRate(rep.transactionRate); - batchTransactionRateInfo->setRate(rep.batchTransactionRate); - //TraceEvent("MasterProxyRate", myID).detail("Rate", rep.transactionRate).detail("BatchRate", rep.batchTransactionRate).detail("Lease", rep.leaseDuration).detail("ReleasedTransactions", *inTransactionCount - lastTC); - - stats->transactionRateAllowed = rep.transactionRate; - stats->batchTransactionRateAllowed = rep.batchTransactionRate; - // TraceEvent("MasterProxyTxRate", myID) - // .detail("RKID", db->get().ratekeeper.get().id()) - // .detail("RateAllowed", rep.transactionRate) - // .detail("BatchRateAllowed", rep.batchTransactionRate) - // .detail("Lease", rep.leaseDuration) - // .detail("ReleasedTransactions", *inTransactionCount - lastTC); - lastTC = *inTransactionCount; - leaseTimeout = delay(rep.leaseDuration); - nextRequestTimer = delayJittered(rep.leaseDuration / 2); - healthMetricsReply->update(rep.healthMetrics, expectingDetailedReply, true); - if (expectingDetailedReply) { - detailedHealthMetricsReply->update(rep.healthMetrics, true, true); - lastDetailedReply = now(); - } - - // Replace our throttles with what was sent by ratekeeper. Because we do this, - // we are not required to expire tags out of the map - if(rep.throttledTags.present()) { - *throttledTags = std::move(rep.throttledTags.get()); - } - } - when ( wait( leaseTimeout ) ) { - transactionRateInfo->disable(); - batchTransactionRateInfo->disable(); - TraceEvent(SevWarn, "MasterProxyRateLeaseExpired", myID).suppressFor(5.0); - //TraceEvent("MasterProxyRate", myID).detail("Rate", 0.0).detail("BatchRate", 0.0).detail("Lease", 0); - leaseTimeout = Never(); - } - } -} - -ACTOR Future queueTransactionStartRequests( - Reference> db, - Deque *systemQueue, - Deque *defaultQueue, - Deque *batchQueue, - FutureStream readVersionRequests, - PromiseStream GRVTimer, double *lastGRVTime, - double *GRVBatchTime, FutureStream replyTimes, - ProxyStats* stats, TransactionRateInfo* batchRateInfo, - TransactionTagMap* transactionTagCounter) -{ - loop choose{ - when(GetReadVersionRequest req = waitNext(readVersionRequests)) { - //WARNING: this code is run at a high priority, so it needs to do as little work as possible - if( stats->txnRequestIn.getValue() - stats->txnRequestOut.getValue() > SERVER_KNOBS->START_TRANSACTION_MAX_QUEUE_SIZE ) { - ++stats->txnRequestErrors; - //FIXME: send an error instead of giving an unreadable version when the client can support the error: req.reply.sendError(proxy_memory_limit_exceeded()); - GetReadVersionReply rep; - rep.version = 1; - rep.locked = true; - req.reply.send(rep); - TraceEvent(SevWarnAlways, "ProxyGRVThresholdExceeded").suppressFor(60); - } else { - stats->addRequest(req.transactionCount); - // TODO: check whether this is reasonable to do in the fast path - for(auto tag : req.tags) { - (*transactionTagCounter)[tag.first] += tag.second; - } - - if (req.debugID.present()) - g_traceBatch.addEvent("TransactionDebug", req.debugID.get().first(), "MasterProxyServer.queueTransactionStartRequests.Before"); - - if (systemQueue->empty() && defaultQueue->empty() && batchQueue->empty()) { - forwardPromise(GRVTimer, delayJittered(std::max(0.0, *GRVBatchTime - (now() - *lastGRVTime)), TaskPriority::ProxyGRVTimer)); - } - - ++stats->txnRequestIn; - stats->txnStartIn += req.transactionCount; - if (req.priority >= TransactionPriority::IMMEDIATE) { - stats->txnSystemPriorityStartIn += req.transactionCount; - systemQueue->push_back(req); - } else if (req.priority >= TransactionPriority::DEFAULT) { - stats->txnDefaultPriorityStartIn += req.transactionCount; - defaultQueue->push_back(req); - } else { - // Return error for batch_priority GRV requests - int64_t proxiesCount = std::max((int)db->get().client.proxies.size(), 1); - if (batchRateInfo->rate <= (1.0 / proxiesCount)) { - req.reply.sendError(batch_transaction_throttled()); - stats->txnThrottled += req.transactionCount; - continue; - } - - stats->txnBatchPriorityStartIn += req.transactionCount; - batchQueue->push_back(req); - } - } - } - // dynamic batching monitors reply latencies - when(double reply_latency = waitNext(replyTimes)) { - double target_latency = reply_latency * SERVER_KNOBS->START_TRANSACTION_BATCH_INTERVAL_LATENCY_FRACTION; - *GRVBatchTime = std::max( - SERVER_KNOBS->START_TRANSACTION_BATCH_INTERVAL_MIN, - std::min(SERVER_KNOBS->START_TRANSACTION_BATCH_INTERVAL_MAX, - target_latency * SERVER_KNOBS->START_TRANSACTION_BATCH_INTERVAL_SMOOTHER_ALPHA + - *GRVBatchTime * (1 - SERVER_KNOBS->START_TRANSACTION_BATCH_INTERVAL_SMOOTHER_ALPHA))); - } - } -} - -ACTOR void discardCommit(UID id, Future fcm, Future dummyCommitState) { - ASSERT(!dummyCommitState.isReady()); - LogSystemDiskQueueAdapter::CommitMessage cm = wait(fcm); - TraceEvent("Discarding", id).detail("Count", cm.messages.size()); - cm.acknowledge.send(Void()); - ASSERT(dummyCommitState.isReady()); -} - -DESCR struct SingleKeyMutation { - Standalone shardBegin; - Standalone shardEnd; - int64_t tag1; - int64_t tag2; - int64_t tag3; -}; - -struct ProxyCommitData { - UID dbgid; - int64_t commitBatchesMemBytesCount; - ProxyStats stats; - MasterInterface master; - vector resolvers; - LogSystemDiskQueueAdapter* logAdapter; - Reference logSystem; - IKeyValueStore* txnStateStore; - NotifiedVersion committedVersion; // Provided that this recovery has succeeded or will succeed, this version is fully committed (durable) - Version minKnownCommittedVersion; // No version smaller than this one will be used as the known committed version - // during recovery - Version version; // The version at which txnStateStore is up to date - Promise validState; // Set once txnStateStore and version are valid - double lastVersionTime; - KeyRangeMap> vecBackupKeys; - uint64_t commitVersionRequestNumber; - uint64_t mostRecentProcessedRequestNumber; - KeyRangeMap>> keyResolvers; - KeyRangeMap keyInfo; - KeyRangeMap cacheInfo; - std::map uid_applyMutationsData; - bool firstProxy; - double lastCoalesceTime; - bool locked; - Optional metadataVersion; - double commitBatchInterval; - - int64_t localCommitBatchesStarted; - NotifiedVersion latestLocalCommitBatchResolving; - NotifiedVersion latestLocalCommitBatchLogging; - - RequestStream getConsistentReadVersion; - RequestStream commit; - Database cx; - Reference> db; - EventMetricHandle singleKeyMutationEvent; - - std::map> storageCache; - std::map tag_popped; - Deque> txsPopVersions; - Version lastTxsPop; - bool popRemoteTxs; - vector> whitelistedBinPathVec; - - Optional latencyBandConfig; - double lastStartCommit; - double lastCommitLatency; - int updateCommitRequests = 0; - NotifiedDouble lastCommitTime; - - vector commitComputePerOperation; - double lastMasterReset; - double lastResolverReset; - - //The tag related to a storage server rarely change, so we keep a vector of tags for each key range to be slightly more CPU efficient. - //When a tag related to a storage server does change, we empty out all of these vectors to signify they must be repopulated. - //We do not repopulate them immediately to avoid a slow task. - const vector& tagsForKey(StringRef key) { - auto& tags = keyInfo[key].tags; - if(!tags.size()) { - auto& r = keyInfo.rangeContaining(key).value(); - for(auto info : r.src_info) { - r.tags.push_back(info->tag); - } - for(auto info : r.dest_info) { - r.tags.push_back(info->tag); - } - uniquify(r.tags); - return r.tags; - } - return tags; - } - - bool needsCacheTag(KeyRangeRef range) { - auto ranges = cacheInfo.intersectingRanges(range); - for(auto r : ranges) { - if(r.value()) { - return true; - } - } - return false; - } - - void updateLatencyBandConfig(Optional newLatencyBandConfig) { - if(newLatencyBandConfig.present() != latencyBandConfig.present() - || (newLatencyBandConfig.present() && newLatencyBandConfig.get().grvConfig != latencyBandConfig.get().grvConfig)) - { - TraceEvent("LatencyBandGrvUpdatingConfig").detail("Present", newLatencyBandConfig.present()); - stats.grvLatencyBands.clearBands(); - if(newLatencyBandConfig.present()) { - for(auto band : newLatencyBandConfig.get().grvConfig.bands) { - stats.grvLatencyBands.addThreshold(band); - } - } - } - - if(newLatencyBandConfig.present() != latencyBandConfig.present() - || (newLatencyBandConfig.present() && newLatencyBandConfig.get().commitConfig != latencyBandConfig.get().commitConfig)) - { - TraceEvent("LatencyBandCommitUpdatingConfig").detail("Present", newLatencyBandConfig.present()); - stats.commitLatencyBands.clearBands(); - if(newLatencyBandConfig.present()) { - for(auto band : newLatencyBandConfig.get().commitConfig.bands) { - stats.commitLatencyBands.addThreshold(band); - } - } - } - - latencyBandConfig = newLatencyBandConfig; - } - - ProxyCommitData(UID dbgid, MasterInterface master, RequestStream getConsistentReadVersion, Version recoveryTransactionVersion, RequestStream commit, Reference> db, bool firstProxy) - : dbgid(dbgid), stats(dbgid, &version, &committedVersion, &commitBatchesMemBytesCount), master(master), - logAdapter(NULL), txnStateStore(NULL), popRemoteTxs(false), - committedVersion(recoveryTransactionVersion), version(0), minKnownCommittedVersion(0), - lastVersionTime(0), commitVersionRequestNumber(1), mostRecentProcessedRequestNumber(0), - getConsistentReadVersion(getConsistentReadVersion), commit(commit), lastCoalesceTime(0), - localCommitBatchesStarted(0), locked(false), commitBatchInterval(SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_MIN), - firstProxy(firstProxy), cx(openDBOnServer(db, TaskPriority::DefaultEndpoint, true, true)), db(db), - singleKeyMutationEvent(LiteralStringRef("SingleKeyMutation")), commitBatchesMemBytesCount(0), - lastTxsPop(0), lastStartCommit(0), lastCommitLatency(SERVER_KNOBS->REQUIRED_MIN_RECOVERY_DURATION), - lastCommitTime(0), lastMasterReset(now()), lastResolverReset(now()) - { - commitComputePerOperation.resize(SERVER_KNOBS->PROXY_COMPUTE_BUCKETS,0.0); - } -}; - -struct ResolutionRequestBuilder { - ProxyCommitData* self; - vector requests; - vector> transactionResolverMap; - vector outTr; - std::vector>> - txReadConflictRangeIndexMap; // Used to report conflicting keys, the format is - // [CommitTransactionRef_Index][Resolver_Index][Read_Conflict_Range_Index_on_Resolver] - // -> read_conflict_range's original index in the commitTransactionRef - - ResolutionRequestBuilder( ProxyCommitData* self, Version version, Version prevVersion, Version lastReceivedVersion) : self(self), requests(self->resolvers.size()) { - for(auto& req : requests) { - req.prevVersion = prevVersion; - req.version = version; - req.lastReceivedVersion = lastReceivedVersion; - } - } - - CommitTransactionRef& getOutTransaction(int resolver, Version read_snapshot) { - CommitTransactionRef *& out = outTr[resolver]; - if (!out) { - ResolveTransactionBatchRequest& request = requests[resolver]; - request.transactions.resize(request.arena, request.transactions.size() + 1); - out = &request.transactions.back(); - out->read_snapshot = read_snapshot; - } - return *out; - } - - void addTransaction(CommitTransactionRequest& trRequest, int transactionNumberInBatch) { - auto& trIn = trRequest.transaction; - // SOMEDAY: There are a couple of unnecessary O( # resolvers ) steps here - outTr.assign(requests.size(), NULL); - ASSERT( transactionNumberInBatch >= 0 && transactionNumberInBatch < 32768 ); - - bool isTXNStateTransaction = false; - for (auto & m : trIn.mutations) { - if (m.type == MutationRef::SetVersionstampedKey) { - transformVersionstampMutation( m, &MutationRef::param1, requests[0].version, transactionNumberInBatch ); - trIn.write_conflict_ranges.push_back( requests[0].arena, singleKeyRange( m.param1, requests[0].arena ) ); - } else if (m.type == MutationRef::SetVersionstampedValue) { - transformVersionstampMutation( m, &MutationRef::param2, requests[0].version, transactionNumberInBatch ); - } - if (isMetadataMutation(m)) { - isTXNStateTransaction = true; - getOutTransaction(0, trIn.read_snapshot).mutations.push_back(requests[0].arena, m); - } - } - if (isTXNStateTransaction && !trRequest.isLockAware()) { - // This mitigates https://github.com/apple/foundationdb/issues/3647. Since this transaction is not lock - // aware, if this transaction got a read version then \xff/dbLocked must not have been set at this - // transaction's read snapshot. If that changes by commit time, then it won't commit on any proxy because of - // a conflict. A client could set a read version manually so this isn't totally bulletproof. - trIn.read_conflict_ranges.push_back(trRequest.arena, KeyRangeRef(databaseLockedKey, databaseLockedKeyEnd)); - } - std::vector> rCRIndexMap( - requests.size()); // [resolver_index][read_conflict_range_index_on_the_resolver] - // -> read_conflict_range's original index - for (int idx = 0; idx < trIn.read_conflict_ranges.size(); ++idx) { - const auto& r = trIn.read_conflict_ranges[idx]; - auto ranges = self->keyResolvers.intersectingRanges( r ); - std::set resolvers; - for(auto &ir : ranges) { - auto& version_resolver = ir.value(); - for(int i = version_resolver.size()-1; i >= 0; i--) { - resolvers.insert(version_resolver[i].second); - if( version_resolver[i].first < trIn.read_snapshot ) - break; - } - } - ASSERT(resolvers.size()); - for (int resolver : resolvers) { - getOutTransaction( resolver, trIn.read_snapshot ).read_conflict_ranges.push_back( requests[resolver].arena, r ); - rCRIndexMap[resolver].push_back(idx); - } - } - txReadConflictRangeIndexMap.push_back(std::move(rCRIndexMap)); - for(auto& r : trIn.write_conflict_ranges) { - auto ranges = self->keyResolvers.intersectingRanges( r ); - std::set resolvers; - for(auto &ir : ranges) - resolvers.insert(ir.value().back().second); - ASSERT(resolvers.size()); - for(int resolver : resolvers) - getOutTransaction( resolver, trIn.read_snapshot ).write_conflict_ranges.push_back( requests[resolver].arena, r ); - } - if (isTXNStateTransaction) - for (int r = 0; r resolversUsed; - for (int r = 0; rreport_conflicting_keys = trIn.report_conflicting_keys; - } - transactionResolverMap.push_back(std::move(resolversUsed)); - } -}; - -ACTOR Future commitBatcher(ProxyCommitData *commitData, PromiseStream, int> > out, FutureStream in, int desiredBytes, int64_t memBytesLimit) { - wait(delayJittered(commitData->commitBatchInterval, TaskPriority::ProxyCommitBatcher)); - - state double lastBatch = 0; - - loop{ - state Future timeout; - state std::vector batch; - state int batchBytes = 0; - - if(SERVER_KNOBS->MAX_COMMIT_BATCH_INTERVAL <= 0) { - timeout = Never(); - } - else { - timeout = delayJittered(SERVER_KNOBS->MAX_COMMIT_BATCH_INTERVAL, TaskPriority::ProxyCommitBatcher); - } - - while(!timeout.isReady() && !(batch.size() == SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_COUNT_MAX || batchBytes >= desiredBytes)) { - choose{ - when(CommitTransactionRequest req = waitNext(in)) { - //WARNING: this code is run at a high priority, so it needs to do as little work as possible - int bytes = getBytes(req); - - // Drop requests if memory is under severe pressure - if(commitData->commitBatchesMemBytesCount + bytes > memBytesLimit) { - ++commitData->stats.txnCommitErrors; - req.reply.sendError(proxy_memory_limit_exceeded()); - TraceEvent(SevWarnAlways, "ProxyCommitBatchMemoryThresholdExceeded").suppressFor(60).detail("MemBytesCount", commitData->commitBatchesMemBytesCount).detail("MemLimit", memBytesLimit); - continue; - } - - if (bytes > FLOW_KNOBS->PACKET_WARNING) { - TraceEvent(!g_network->isSimulated() ? SevWarnAlways : SevWarn, "LargeTransaction") - .suppressFor(1.0) - .detail("Size", bytes) - .detail("Client", req.reply.getEndpoint().getPrimaryAddress()); - } - ++commitData->stats.txnCommitIn; - - if(req.debugID.present()) { - g_traceBatch.addEvent("CommitDebug", req.debugID.get().first(), "MasterProxyServer.batcher"); - } - - if(!batch.size()) { - if(now() - lastBatch > commitData->commitBatchInterval) { - timeout = delayJittered(SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_FROM_IDLE, TaskPriority::ProxyCommitBatcher); - } - else { - timeout = delayJittered(commitData->commitBatchInterval - (now() - lastBatch), TaskPriority::ProxyCommitBatcher); - } - } - - if((batchBytes + bytes > CLIENT_KNOBS->TRANSACTION_SIZE_LIMIT || req.firstInBatch()) && batch.size()) { - out.send({ std::move(batch), batchBytes }); - lastBatch = now(); - timeout = delayJittered(commitData->commitBatchInterval, TaskPriority::ProxyCommitBatcher); - batch = std::vector(); - batchBytes = 0; - } - - batch.push_back(req); - batchBytes += bytes; - commitData->commitBatchesMemBytesCount += bytes; - } - when(wait(timeout)) {} - } - } - out.send({ std::move(batch), batchBytes }); - lastBatch = now(); - } -} - -void createWhitelistBinPathVec(const std::string& binPath, vector>& binPathVec) { - TraceEvent(SevDebug, "BinPathConverter").detail("Input", binPath); - StringRef input(binPath); - while (input != StringRef()) { - StringRef token = input.eat(LiteralStringRef(",")); - if (token != StringRef()) { - const uint8_t* ptr = token.begin(); - while (ptr != token.end() && *ptr == ' ') { - ptr++; - } - if (ptr != token.end()) { - Standalone newElement(token.substr(ptr - token.begin())); - TraceEvent(SevDebug, "BinPathItem").detail("Element", newElement); - binPathVec.push_back(newElement); - } - } - } - return; -} - -bool isWhitelisted(const vector>& binPathVec, StringRef binPath) { - TraceEvent("BinPath").detail("Value", binPath); - for (const auto& item : binPathVec) { - TraceEvent("Element").detail("Value", item); - } - return std::find(binPathVec.begin(), binPathVec.end(), binPath) != binPathVec.end(); -} - -ACTOR Future addBackupMutations(ProxyCommitData* self, std::map* logRangeMutations, - LogPushData* toCommit, Version commitVersion, double* computeDuration, double* computeStart) { - state std::map::iterator logRangeMutation = logRangeMutations->begin(); - state int32_t version = commitVersion / CLIENT_KNOBS->LOG_RANGE_BLOCK_SIZE; - state int yieldBytes = 0; - state BinaryWriter valueWriter(Unversioned()); - - // Serialize the log range mutations within the map - for (; logRangeMutation != logRangeMutations->end(); ++logRangeMutation) - { - //FIXME: this is re-implementing the serialize function of MutationListRef in order to have a yield - valueWriter = BinaryWriter(IncludeVersion(ProtocolVersion::withBackupMutations())); - valueWriter << logRangeMutation->second.totalSize(); - - state MutationListRef::Blob* blobIter = logRangeMutation->second.blob_begin; - while(blobIter) { - if(yieldBytes > SERVER_KNOBS->DESIRED_TOTAL_BYTES) { - yieldBytes = 0; - if(g_network->check_yield(TaskPriority::ProxyCommitYield1)) { - *computeDuration += g_network->timer() - *computeStart; - wait(delay(0, TaskPriority::ProxyCommitYield1)); - *computeStart = g_network->timer(); - } - } - valueWriter.serializeBytes(blobIter->data); - yieldBytes += blobIter->data.size(); - blobIter = blobIter->next; - } - - Key val = valueWriter.toValue(); - - BinaryWriter wr(Unversioned()); - - // Serialize the log destination - wr.serializeBytes( logRangeMutation->first ); - - // Write the log keys and version information - wr << (uint8_t)hashlittle(&version, sizeof(version), 0); - wr << bigEndian64(commitVersion); - - MutationRef backupMutation; - backupMutation.type = MutationRef::SetValue; - uint32_t* partBuffer = NULL; - - for (int part = 0; part * CLIENT_KNOBS->MUTATION_BLOCK_SIZE < val.size(); part++) { - - // Assign the second parameter as the part - backupMutation.param2 = val.substr(part * CLIENT_KNOBS->MUTATION_BLOCK_SIZE, - std::min(val.size() - part * CLIENT_KNOBS->MUTATION_BLOCK_SIZE, CLIENT_KNOBS->MUTATION_BLOCK_SIZE)); - - // Write the last part of the mutation to the serialization, if the buffer is not defined - if (!partBuffer) { - // Serialize the part to the writer - wr << bigEndian32(part); - - // Define the last buffer part - partBuffer = (uint32_t*) ((char*) wr.getData() + wr.getLength() - sizeof(uint32_t)); - } - else { - *partBuffer = bigEndian32(part); - } - - // Define the mutation type and and location - backupMutation.param1 = wr.toValue(); - ASSERT( backupMutation.param1.startsWith(logRangeMutation->first) ); // We are writing into the configured destination - - auto& tags = self->tagsForKey(backupMutation.param1); - toCommit->addTags(tags); - toCommit->addTypedMessage(backupMutation); - -// if (debugMutation("BackupProxyCommit", commitVersion, backupMutation)) { -// TraceEvent("BackupProxyCommitTo", self->dbgid).detail("To", describe(tags)).detail("BackupMutation", backupMutation.toString()) -// .detail("BackupMutationSize", val.size()).detail("Version", commitVersion).detail("DestPath", logRangeMutation.first) -// .detail("PartIndex", part).detail("PartIndexEndian", bigEndian32(part)).detail("PartData", backupMutation.param1); -// } - } - } - return Void(); -} - -ACTOR Future releaseResolvingAfter(ProxyCommitData* self, Future releaseDelay, int64_t localBatchNumber) { - wait(releaseDelay); - ASSERT(self->latestLocalCommitBatchResolving.get() == localBatchNumber-1); - self->latestLocalCommitBatchResolving.set(localBatchNumber); - return Void(); -} - -// Commit one batch of transactions trs -ACTOR Future commitBatch( - ProxyCommitData* self, - vector trs, - int currentBatchMemBytesCount) -{ - //WARNING: this code is run at a high priority (until the first delay(0)), so it needs to do as little work as possible - state int64_t localBatchNumber = ++self->localCommitBatchesStarted; - state LogPushData toCommit(self->logSystem); - state double t1 = now(); - state Optional debugID; - state bool forceRecovery = false; - state int batchOperations = 0; - int64_t batchBytes = 0; - for (int t = 0; t(SERVER_KNOBS->PROXY_COMPUTE_BUCKETS-1,SERVER_KNOBS->PROXY_COMPUTE_BUCKETS*batchBytes/(batchOperations*(CLIENT_KNOBS->VALUE_SIZE_LIMIT+CLIENT_KNOBS->KEY_SIZE_LIMIT))); - - ASSERT(SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS <= SERVER_KNOBS->MAX_VERSIONS_IN_FLIGHT); // since we are using just the former to limit the number of versions actually in flight! - - // Active load balancing runs at a very high priority (to obtain accurate estimate of memory used by commit batches) so we need to downgrade here - wait(delay(0, TaskPriority::ProxyCommit)); - - self->lastVersionTime = t1; - - ++self->stats.commitBatchIn; - - for (int t = 0; trandomUniqueID(); - g_traceBatch.addAttach("CommitAttachID", trs[t].debugID.get().first(), debugID.get().first()); - } - } - - if(localBatchNumber == 2 && !debugID.present() && self->firstProxy && !g_network->isSimulated()) { - debugID = deterministicRandom()->randomUniqueID(); - TraceEvent("SecondCommitBatch", self->dbgid).detail("DebugID", debugID.get()); - } - - if (debugID.present()) - g_traceBatch.addEvent("CommitDebug", debugID.get().first(), "MasterProxyServer.commitBatch.Before"); - - if(localBatchNumber-self->latestLocalCommitBatchResolving.get()>SERVER_KNOBS->RESET_MASTER_BATCHES && now()-self->lastMasterReset>SERVER_KNOBS->RESET_MASTER_DELAY) { - TraceEvent(SevWarnAlways, "ConnectionResetMaster", self->dbgid) - .detail("PeerAddress", self->master.address()) - .detail("CurrentBatch", localBatchNumber) - .detail("InProcessBatch", self->latestLocalCommitBatchResolving.get()); - FlowTransport::transport().resetConnection(self->master.address()); - self->lastMasterReset=now(); - } - - /////// Phase 1: Pre-resolution processing (CPU bound except waiting for a version # which is separately pipelined and *should* be available by now (unless empty commit); ordered; currently atomic but could yield) - - // Queuing pre-resolution commit processing - TEST(self->latestLocalCommitBatchResolving.get() < localBatchNumber - 1); - wait(self->latestLocalCommitBatchResolving.whenAtLeast(localBatchNumber-1)); - state Future releaseDelay = delay(std::min(SERVER_KNOBS->MAX_PROXY_COMPUTE, batchOperations*self->commitComputePerOperation[latencyBucket]), TaskPriority::ProxyMasterVersionReply); - - if (debugID.present()) - g_traceBatch.addEvent("CommitDebug", debugID.get().first(), "MasterProxyServer.commitBatch.GettingCommitVersion"); - - GetCommitVersionRequest req(self->commitVersionRequestNumber++, self->mostRecentProcessedRequestNumber, self->dbgid); - GetCommitVersionReply versionReply = wait( brokenPromiseToNever(self->master.getCommitVersion.getReply(req, TaskPriority::ProxyMasterVersionReply)) ); - self->mostRecentProcessedRequestNumber = versionReply.requestNum; - - self->stats.txnCommitVersionAssigned += trs.size(); - self->stats.lastCommitVersionAssigned = versionReply.version; - - state Version commitVersion = versionReply.version; - state Version prevVersion = versionReply.prevVersion; - - for(auto it : versionReply.resolverChanges) { - auto rs = self->keyResolvers.modify(it.range); - for(auto r = rs.begin(); r != rs.end(); ++r) - r->value().emplace_back(versionReply.resolverChangesVersion,it.dest); - } - - //TraceEvent("ProxyGotVer", self->dbgid).detail("Commit", commitVersion).detail("Prev", prevVersion); - - if (debugID.present()) - g_traceBatch.addEvent("CommitDebug", debugID.get().first(), "MasterProxyServer.commitBatch.GotCommitVersion"); - - ResolutionRequestBuilder requests( self, commitVersion, prevVersion, self->version ); - int conflictRangeCount = 0; - state int64_t maxTransactionBytes = 0; - for (int t = 0; tdbgid).detail("Snapshot", trs[t].transaction.read_snapshot); - //for(auto& m : trs[t].transaction.mutations) - maxTransactionBytes = std::max(maxTransactionBytes, trs[t].transaction.expectedSize()); - // TraceEvent("MPTransactionsDump", self->dbgid).detail("Mutation", m.toString()); - } - self->stats.conflictRanges += conflictRangeCount; - - for (int r = 1; rresolvers.size(); r++) - ASSERT(requests.requests[r].txnStateTransactions.size() == requests.requests[0].txnStateTransactions.size()); - - // Sending these requests is the fuzzy border between phase 1 and phase 2; it could conceivably overlap with resolution processing but is still using CPU - self->stats.txnCommitResolving += trs.size(); - vector< Future > replies; - for (int r = 0; rresolvers.size(); r++) { - requests.requests[r].debugID = debugID; - replies.push_back(brokenPromiseToNever(self->resolvers[r].resolve.getReply(requests.requests[r], TaskPriority::ProxyResolverReply))); - } - - state vector> transactionResolverMap = std::move( requests.transactionResolverMap ); - state std::vector>> txReadConflictRangeIndexMap = - std::move(requests.txReadConflictRangeIndexMap); // used to report conflicting keys - state Future releaseFuture = releaseResolvingAfter(self, releaseDelay, localBatchNumber); - - if (localBatchNumber - self->latestLocalCommitBatchLogging.get() > SERVER_KNOBS->RESET_RESOLVER_BATCHES && - now() - self->lastResolverReset > SERVER_KNOBS->RESET_RESOLVER_DELAY) { - - for (int r = 0; rresolvers.size(); r++) { - TraceEvent(SevWarnAlways, "ConnectionResetResolver", self->dbgid) - .detail("PeerAddr", self->resolvers[r].address()) - .detail("CurrentBatch", localBatchNumber) - .detail("InProcessBatch", self->latestLocalCommitBatchLogging.get()); - FlowTransport::transport().resetConnection(self->resolvers[r].address()); - } - self->lastResolverReset=now(); - } - - /////// Phase 2: Resolution (waiting on the network; pipelined) - state vector resolution = wait( getAll(replies) ); - - if (debugID.present()) - g_traceBatch.addEvent("CommitDebug", debugID.get().first(), "MasterProxyServer.commitBatch.AfterResolution"); - - ////// Phase 3: Post-resolution processing (CPU bound except for very rare situations; ordered; currently atomic but doesn't need to be) - TEST(self->latestLocalCommitBatchLogging.get() < localBatchNumber - 1); // Queuing post-resolution commit processing - wait(self->latestLocalCommitBatchLogging.whenAtLeast(localBatchNumber-1)); - wait(yield(TaskPriority::ProxyCommitYield1)); - - state double computeStart = g_network->timer(); - state double computeDuration = 0; - self->stats.txnCommitResolved += trs.size(); - - if (debugID.present()) - g_traceBatch.addEvent("CommitDebug", debugID.get().first(), "MasterProxyServer.commitBatch.ProcessingMutations"); - - state Arena arena; - state bool isMyFirstBatch = !self->version; - state Optional oldCoordinators = self->txnStateStore->readValue(coordinatorsKey).get(); - - //TraceEvent("ResolutionResult", self->dbgid).detail("Sequence", sequence).detail("Version", commitVersion).detail("StateMutationProxies", resolution[0].stateMutations.size()).detail("WaitForResolution", now()-t1).detail("R0Committed", resolution[0].committed.size()) - // .detail("Transactions", trs.size()); - - for(int r=1; r, Future> > storeCommits; - for (int versionIndex = 0; versionIndex < resolution[0].stateMutations.size(); versionIndex++) { - // self->logAdapter->setNextVersion( ??? ); << Ideally we would be telling the log adapter that the pushes in this commit will be in the version at which these state mutations were committed by another proxy, but at present we don't have that information here. So the disk queue may be unnecessarily conservative about popping. - - for (int transactionIndex = 0; transactionIndex < resolution[0].stateMutations[versionIndex].size() && !forceRecovery; transactionIndex++) { - bool committed = true; - for (int resolver = 0; resolver < resolution.size(); resolver++) - committed = committed && resolution[resolver].stateMutations[versionIndex][transactionIndex].committed; - if (committed) - applyMetadataMutations( self->dbgid, arena, resolution[0].stateMutations[versionIndex][transactionIndex].mutations, self->txnStateStore, nullptr, &forceRecovery, self->logSystem, 0, &self->vecBackupKeys, &self->keyInfo, &self->cacheInfo, self->firstProxy ? &self->uid_applyMutationsData : nullptr, self->commit, self->cx, &self->committedVersion, &self->storageCache, &self->tag_popped); - - if( resolution[0].stateMutations[versionIndex][transactionIndex].mutations.size() && firstStateMutations ) { - ASSERT(committed); - firstStateMutations = false; - forceRecovery = false; - } - //TraceEvent("MetadataTransaction", self->dbgid).detail("Committed", committed).detail("Mutations", resolution[0].stateMutations[versionIndex][transactionIndex].second.size()).detail("R1Mutations", resolution.back().stateMutations[versionIndex][transactionIndex].second.size()); - } - //TraceEvent("MetadataBatch", self->dbgid).detail("Transactions", resolution[0].stateMutations[versionIndex].size()); - - // These changes to txnStateStore will be committed by the other proxy, so we simply discard the commit message - auto fcm = self->logAdapter->getCommitMessage(); - storeCommits.emplace_back(fcm, self->txnStateStore->commit()); - //discardCommit( dbgid, fcm, txnStateStore->commit() ); - - if (initialState) { - //TraceEvent("ResyncLog", dbgid); - initialState = false; - forceRecovery = false; - self->txnStateStore->resyncLog(); - - for (auto &p : storeCommits) { - ASSERT(!p.second.isReady()); - p.first.get().acknowledge.send(Void()); - ASSERT(p.second.isReady()); - } - storeCommits.clear(); - } - } - - // Determine which transactions actually committed (conservatively) by combining results from the resolvers - state vector committed(trs.size()); - ASSERT(transactionResolverMap.size() == committed.size()); - // For each commitTransactionRef, it is only sent to resolvers specified in transactionResolverMap - // Thus, we use this nextTr to track the correct transaction index on each resolver. - state vector nextTr(resolution.size()); - for (int t = 0; tlogAdapter->setNextVersion(commitVersion); - - state Optional lockedKey = self->txnStateStore->readValue(databaseLockedKey).get(); - state bool locked = lockedKey.present() && lockedKey.get().size(); - - state Optional mustContainSystemKey = self->txnStateStore->readValue(mustContainSystemMutationsKey).get(); - if(mustContainSystemKey.present() && mustContainSystemKey.get().size()) { - for (int t = 0; t= nonMetadataSystemKeys.end) { - foundSystem = true; - break; - } - } - if(!foundSystem) { - committed[t] = ConflictBatch::TransactionConflict; - } - } - } - } - - if(forceRecovery) { - wait( Future(Never()) ); - } - - // This first pass through committed transactions deals with "metadata" effects (modifications of txnStateStore, changes to storage servers' responsibilities) - int t; - state int commitCount = 0; - for (t = 0; t < trs.size() && !forceRecovery; t++) - { - if (committed[t] == ConflictBatch::TransactionCommitted && (!locked || trs[t].isLockAware())) { - commitCount++; - applyMetadataMutations(self->dbgid, arena, trs[t].transaction.mutations, self->txnStateStore, &toCommit, &forceRecovery, self->logSystem, commitVersion+1, &self->vecBackupKeys, &self->keyInfo, &self->cacheInfo, self->firstProxy ? &self->uid_applyMutationsData : NULL, self->commit, self->cx, &self->committedVersion, &self->storageCache, &self->tag_popped); - } - if(firstStateMutations) { - ASSERT(committed[t] == ConflictBatch::TransactionCommitted); - firstStateMutations = false; - forceRecovery = false; - } - } - if (forceRecovery) { - for (; tdbgid).detail("Stage", "AwaitCommit"); - } - - lockedKey = self->txnStateStore->readValue(databaseLockedKey).get(); - state bool lockedAfter = lockedKey.present() && lockedKey.get().size(); - - state Optional metadataVersionAfter = self->txnStateStore->readValue(metadataVersionKey).get(); - - auto fcm = self->logAdapter->getCommitMessage(); - storeCommits.emplace_back(fcm, self->txnStateStore->commit()); - self->version = commitVersion; - if (!self->validState.isSet()) self->validState.send(Void()); - ASSERT(commitVersion); - - if (!isMyFirstBatch && self->txnStateStore->readValue( coordinatorsKey ).get().get() != oldCoordinators.get()) { - wait( brokenPromiseToNever( self->master.changeCoordinators.getReply( ChangeCoordinatorsRequest( self->txnStateStore->readValue( coordinatorsKey ).get().get() ) ) ) ); - ASSERT(false); // ChangeCoordinatorsRequest should always throw - } - - // This second pass through committed transactions assigns the actual mutations to the appropriate storage servers' tags - state int mutationCount = 0; - state int mutationBytes = 0; - - state std::map logRangeMutations; - state Arena logRangeMutationsArena; - state int transactionNum = 0; - state int yieldBytes = 0; - - for (; transactionNum* pMutations = &trs[transactionNum].transaction.mutations; - for (; mutationNum < pMutations->size(); mutationNum++) { - if(yieldBytes > SERVER_KNOBS->DESIRED_TOTAL_BYTES) { - yieldBytes = 0; - if(g_network->check_yield(TaskPriority::ProxyCommitYield1)) { - computeDuration += g_network->timer() - computeStart; - wait(delay(0, TaskPriority::ProxyCommitYield1)); - computeStart = g_network->timer(); - } - } - - auto& m = (*pMutations)[mutationNum]; - mutationCount++; - mutationBytes += m.expectedSize(); - yieldBytes += m.expectedSize(); - // Determine the set of tags (responsible storage servers) for the mutation, splitting it - // if necessary. Serialize (splits of) the mutation into the message buffer and add the tags. - - if (isSingleKeyMutation((MutationRef::Type) m.type)) { - auto& tags = self->tagsForKey(m.param1); - - if(self->singleKeyMutationEvent->enabled) { - KeyRangeRef shard = self->keyInfo.rangeContaining(m.param1).range(); - self->singleKeyMutationEvent->tag1 = (int64_t)tags[0].id; - self->singleKeyMutationEvent->tag2 = (int64_t)tags[1].id; - self->singleKeyMutationEvent->tag3 = (int64_t)tags[2].id; - self->singleKeyMutationEvent->shardBegin = shard.begin; - self->singleKeyMutationEvent->shardEnd = shard.end; - self->singleKeyMutationEvent->log(); - } - - if (debugMutation("ProxyCommit", commitVersion, m)) - TraceEvent("ProxyCommitTo", self->dbgid).detail("To", describe(tags)).detail("Mutation", m.toString()).detail("Version", commitVersion); - - toCommit.addTags(tags); - if(self->cacheInfo[m.param1]) { - toCommit.addTag(cacheTag); - } - toCommit.addTypedMessage(m); - } - else if (m.type == MutationRef::ClearRange) { - KeyRangeRef clearRange(KeyRangeRef(m.param1, m.param2)); - auto ranges = self->keyInfo.intersectingRanges(clearRange); - auto firstRange = ranges.begin(); - ++firstRange; - if (firstRange == ranges.end()) { - // Fast path - if (debugMutation("ProxyCommit", commitVersion, m)) - TraceEvent("ProxyCommitTo", self->dbgid).detail("To", describe(ranges.begin().value().tags)).detail("Mutation", m.toString()).detail("Version", commitVersion); - - ranges.begin().value().populateTags(); - toCommit.addTags(ranges.begin().value().tags); - } - else { - TEST(true); //A clear range extends past a shard boundary - std::set allSources; - for (auto r : ranges) { - r.value().populateTags(); - allSources.insert(r.value().tags.begin(), r.value().tags.end()); - } - if (debugMutation("ProxyCommit", commitVersion, m)) - TraceEvent("ProxyCommitTo", self->dbgid).detail("To", describe(allSources)).detail("Mutation", m.toString()).detail("Version", commitVersion); - - toCommit.addTags(allSources); - } - if(self->needsCacheTag(clearRange)) { - toCommit.addTag(cacheTag); - } - toCommit.addTypedMessage(m); - } else - UNREACHABLE(); - - - // Check on backing up key, if backup ranges are defined and a normal key - if (self->vecBackupKeys.size() > 1 && (normalKeys.contains(m.param1) || m.param1 == metadataVersionKey)) { - if (m.type != MutationRef::Type::ClearRange) { - // Add the mutation to the relevant backup tag - for (auto backupName : self->vecBackupKeys[m.param1]) { - logRangeMutations[backupName].push_back_deep(logRangeMutationsArena, m); - } - } - else { - KeyRangeRef mutationRange(m.param1, m.param2); - KeyRangeRef intersectionRange; - - // Identify and add the intersecting ranges of the mutation to the array of mutations to serialize - for (auto backupRange : self->vecBackupKeys.intersectingRanges(mutationRange)) - { - // Get the backup sub range - const auto& backupSubrange = backupRange.range(); - - // Determine the intersecting range - intersectionRange = mutationRange & backupSubrange; - - // Create the custom mutation for the specific backup tag - MutationRef backupMutation(MutationRef::Type::ClearRange, intersectionRange.begin, intersectionRange.end); - - // Add the mutation to the relevant backup tag - for (auto backupName : backupRange.value()) { - logRangeMutations[backupName].push_back_deep(logRangeMutationsArena, backupMutation); - } - } - } - } - } - } - } - - // Serialize and backup the mutations as a single mutation - if ((self->vecBackupKeys.size() > 1) && logRangeMutations.size()) { - wait( addBackupMutations(self, &logRangeMutations, &toCommit, commitVersion, &computeDuration, &computeStart) ); - } - - self->stats.mutations += mutationCount; - self->stats.mutationBytes += mutationBytes; - - // Storage servers mustn't make durable versions which are not fully committed (because then they are impossible to roll back) - // We prevent this by limiting the number of versions which are semi-committed but not fully committed to be less than the MVCC window - if(self->committedVersion.get() < commitVersion - SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS) { - computeDuration += g_network->timer() - computeStart; - while (self->committedVersion.get() < commitVersion - SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS) { - // This should be *extremely* rare in the real world, but knob buggification should make it happen in simulation - TEST(true); // Semi-committed pipeline limited by MVCC window - //TraceEvent("ProxyWaitingForCommitted", self->dbgid).detail("CommittedVersion", self->committedVersion.get()).detail("NeedToCommit", commitVersion); - choose{ - when(wait(self->committedVersion.whenAtLeast(commitVersion - SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS))) { - wait(yield()); - break; - } - when(GetReadVersionReply v = wait(self->getConsistentReadVersion.getReply(GetReadVersionRequest(0, TransactionPriority::IMMEDIATE, GetReadVersionRequest::FLAG_CAUSAL_READ_RISKY)))) { - if(v.version > self->committedVersion.get()) { - self->locked = v.locked; - self->metadataVersion = v.metadataVersion; - self->committedVersion.set(v.version); - } - - if (self->committedVersion.get() < commitVersion - SERVER_KNOBS->MAX_READ_TRANSACTION_LIFE_VERSIONS) - wait(delay(SERVER_KNOBS->PROXY_SPIN_DELAY)); - } - } - } - computeStart = g_network->timer(); - } - - state LogSystemDiskQueueAdapter::CommitMessage msg = storeCommits.back().first.get(); - - if (debugID.present()) - g_traceBatch.addEvent("CommitDebug", debugID.get().first(), "MasterProxyServer.commitBatch.AfterStoreCommits"); - - // txnState (transaction subsystem state) tag: message extracted from log adapter - bool firstMessage = true; - for(auto m : msg.messages) { - if(firstMessage) { - toCommit.addTxsTag(); - } - toCommit.addMessage(StringRef(m.begin(), m.size()), !firstMessage); - firstMessage = false; - } - - if ( prevVersion && commitVersion - prevVersion < SERVER_KNOBS->MAX_VERSIONS_IN_FLIGHT/2 ) - debug_advanceMaxCommittedVersion( UID(), commitVersion ); //< Is this valid? - - //TraceEvent("ProxyPush", self->dbgid).detail("PrevVersion", prevVersion).detail("Version", commitVersion) - // .detail("TransactionsSubmitted", trs.size()).detail("TransactionsCommitted", commitCount).detail("TxsPopTo", msg.popTo); - - if ( prevVersion && commitVersion - prevVersion < SERVER_KNOBS->MAX_VERSIONS_IN_FLIGHT/2 ) - debug_advanceMaxCommittedVersion(UID(), commitVersion); - - state double commitStartTime = now(); - self->lastStartCommit = commitStartTime; - Future loggingComplete = self->logSystem->push( prevVersion, commitVersion, self->committedVersion.get(), self->minKnownCommittedVersion, toCommit, debugID ); - - if (!forceRecovery) { - ASSERT(self->latestLocalCommitBatchLogging.get() == localBatchNumber-1); - self->latestLocalCommitBatchLogging.set(localBatchNumber); - } - - computeDuration += g_network->timer() - computeStart; - if(batchOperations > 0) { - double computePerOperation = std::min( SERVER_KNOBS->MAX_COMPUTE_PER_OPERATION, computeDuration/batchOperations ); - if(computePerOperation <= self->commitComputePerOperation[latencyBucket]) { - self->commitComputePerOperation[latencyBucket] = computePerOperation; - } else { - self->commitComputePerOperation[latencyBucket] = SERVER_KNOBS->PROXY_COMPUTE_GROWTH_RATE*computePerOperation + ((1.0-SERVER_KNOBS->PROXY_COMPUTE_GROWTH_RATE)*self->commitComputePerOperation[latencyBucket]); - } - self->stats.maxComputeNS = std::max(self->stats.maxComputeNS, 1e9*self->commitComputePerOperation[latencyBucket]); - self->stats.minComputeNS = std::min(self->stats.minComputeNS, 1e9*self->commitComputePerOperation[latencyBucket]); - } - - /////// Phase 4: Logging (network bound; pipelined up to MAX_READ_TRANSACTION_LIFE_VERSIONS (limited by loop above)) - - try { - choose { - when(Version ver = wait(loggingComplete)) { - self->minKnownCommittedVersion = std::max(self->minKnownCommittedVersion, ver); - } - when(wait(self->committedVersion.whenAtLeast( commitVersion+1 ))) {} - } - } catch(Error &e) { - if(e.code() == error_code_broken_promise) { - throw master_tlog_failed(); - } - throw; - } - self->lastCommitLatency = now()-commitStartTime; - self->lastCommitTime = std::max(self->lastCommitTime.get(), commitStartTime); - wait(yield(TaskPriority::ProxyCommitYield2)); - - if( self->popRemoteTxs && msg.popTo > ( self->txsPopVersions.size() ? self->txsPopVersions.back().second : self->lastTxsPop ) ) { - if(self->txsPopVersions.size() >= SERVER_KNOBS->MAX_TXS_POP_VERSION_HISTORY) { - TraceEvent(SevWarnAlways, "DiscardingTxsPopHistory").suppressFor(1.0); - self->txsPopVersions.pop_front(); - } - - self->txsPopVersions.emplace_back(commitVersion, msg.popTo); - } - self->logSystem->popTxs(msg.popTo); - - /////// Phase 5: Replies (CPU bound; no particular order required, though ordered execution would be best for latency) - if ( prevVersion && commitVersion - prevVersion < SERVER_KNOBS->MAX_VERSIONS_IN_FLIGHT/2 ) - debug_advanceMinCommittedVersion(UID(), commitVersion); - - //TraceEvent("ProxyPushed", self->dbgid).detail("PrevVersion", prevVersion).detail("Version", commitVersion); - if (debugID.present()) - g_traceBatch.addEvent("CommitDebug", debugID.get().first(), "MasterProxyServer.commitBatch.AfterLogPush"); - - for (auto &p : storeCommits) { - ASSERT(!p.second.isReady()); - p.first.get().acknowledge.send(Void()); - ASSERT(p.second.isReady()); - } - - TEST(self->committedVersion.get() > commitVersion); // A later version was reported committed first - if( commitVersion > self->committedVersion.get() ) { - self->locked = lockedAfter; - self->metadataVersion = metadataVersionAfter; - self->committedVersion.set(commitVersion); - } - - if (forceRecovery) { - TraceEvent(SevWarn, "RestartingTxnSubsystem", self->dbgid).detail("Stage", "ProxyShutdown"); - throw worker_removed(); - } - - // Send replies to clients - double endTime = g_network->timer(); - // Reset all to zero, used to track the correct index of each commitTransacitonRef on each resolver - std::fill(nextTr.begin(), nextTr.end(), 0); - for (int t = 0; t < trs.size(); t++) { - if (committed[t] == ConflictBatch::TransactionCommitted && (!locked || trs[t].isLockAware())) { - ASSERT_WE_THINK(commitVersion != invalidVersion); - trs[t].reply.send(CommitID(commitVersion, t, metadataVersionAfter)); - } - else if (committed[t] == ConflictBatch::TransactionTooOld) { - trs[t].reply.sendError(transaction_too_old()); - } - else { - // If enable the option to report conflicting keys from resolvers, we send back all keyranges' indices - // through CommitID - if (trs[t].transaction.report_conflicting_keys) { - Standalone> conflictingKRIndices; - for (int resolverInd : transactionResolverMap[t]) { - auto const& cKRs = - resolution[resolverInd] - .conflictingKeyRangeMap[nextTr[resolverInd]]; // nextTr[resolverInd] -> index of this trs[t] - // on the resolver - for (auto const& rCRIndex : cKRs) - // read_conflict_range can change when sent to resolvers, mapping the index from resolver-side - // to original index in commitTransactionRef - conflictingKRIndices.push_back(conflictingKRIndices.arena(), - txReadConflictRangeIndexMap[t][resolverInd][rCRIndex]); - } - // At least one keyRange index should be returned - ASSERT(conflictingKRIndices.size()); - trs[t].reply.send(CommitID(invalidVersion, t, Optional(), - Optional>>(conflictingKRIndices))); - } else { - trs[t].reply.sendError(not_committed()); - } - } - - // Update corresponding transaction indices on each resolver - for (int resolverInd : transactionResolverMap[t]) nextTr[resolverInd]++; - - // TODO: filter if pipelined with large commit - double duration = endTime - trs[t].requestTime(); - self->stats.commitLatencySample.addMeasurement(duration); - if(self->latencyBandConfig.present()) { - bool filter = maxTransactionBytes > self->latencyBandConfig.get().commitConfig.maxCommitBytes.orDefault(std::numeric_limits::max()); - self->stats.commitLatencyBands.addMeasurement(duration, filter); - } - } - - ++self->stats.commitBatchOut; - self->stats.txnCommitOut += trs.size(); - self->stats.txnConflicts += trs.size() - commitCount; - self->stats.txnCommitOutSuccess += commitCount; - - if(now() - self->lastCoalesceTime > SERVER_KNOBS->RESOLVER_COALESCE_TIME) { - self->lastCoalesceTime = now(); - int lastSize = self->keyResolvers.size(); - auto rs = self->keyResolvers.ranges(); - Version oldestVersion = prevVersion - SERVER_KNOBS->MAX_WRITE_TRANSACTION_LIFE_VERSIONS; - for(auto r = rs.begin(); r != rs.end(); ++r) { - while(r->value().size() > 1 && r->value()[1].first < oldestVersion) - r->value().pop_front(); - if(r->value().size() && r->value().front().first < oldestVersion) - r->value().front().first = 0; - } - self->keyResolvers.coalesce(allKeys); - if(self->keyResolvers.size() != lastSize) - TraceEvent("KeyResolverSize", self->dbgid).detail("Size", self->keyResolvers.size()); - } - - // Dynamic batching for commits - double target_latency = (now() - t1) * SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_LATENCY_FRACTION; - self->commitBatchInterval = std::max( - SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_MIN, - std::min(SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_MAX, - target_latency * SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_SMOOTHER_ALPHA + - self->commitBatchInterval * (1 - SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_INTERVAL_SMOOTHER_ALPHA))); - - self->commitBatchesMemBytesCount -= currentBatchMemBytesCount; - ASSERT_ABORT(self->commitBatchesMemBytesCount >= 0); - wait(releaseFuture); - return Void(); -} - -ACTOR Future updateLastCommit(ProxyCommitData* self, Optional debugID = Optional()) { - state double confirmStart = now(); - self->lastStartCommit = confirmStart; - self->updateCommitRequests++; - wait(self->logSystem->confirmEpochLive(debugID)); - self->updateCommitRequests--; - self->lastCommitLatency = now()-confirmStart; - self->lastCommitTime = std::max(self->lastCommitTime.get(), confirmStart); - return Void(); -} - -ACTOR Future getLiveCommittedVersion(ProxyCommitData* commitData, uint32_t flags, vector *otherProxies, Optional debugID, - int transactionCount, int systemTransactionCount, int defaultPriTransactionCount, int batchPriTransactionCount) -{ - // Returns a version which (1) is committed, and (2) is >= the latest version reported committed (by a commit response) when this request was sent - // (1) The version returned is the committedVersion of some proxy at some point before the request returns, so it is committed. - // (2) No proxy on our list reported committed a higher version before this request was received, because then its committedVersion would have been higher, - // and no other proxy could have already committed anything without first ending the epoch - ++commitData->stats.txnStartBatch; - - state vector> proxyVersions; - for (auto const& p : *otherProxies) - proxyVersions.push_back(brokenPromiseToNever(p.getRawCommittedVersion.getReply(GetRawCommittedVersionRequest(debugID), TaskPriority::TLogConfirmRunningReply))); - - if (!SERVER_KNOBS->ALWAYS_CAUSAL_READ_RISKY && !(flags&GetReadVersionRequest::FLAG_CAUSAL_READ_RISKY)) { - wait(updateLastCommit(commitData, debugID)); - } else if (SERVER_KNOBS->REQUIRED_MIN_RECOVERY_DURATION > 0 && now() - SERVER_KNOBS->REQUIRED_MIN_RECOVERY_DURATION > commitData->lastCommitTime.get()) { - wait(commitData->lastCommitTime.whenAtLeast(now() - SERVER_KNOBS->REQUIRED_MIN_RECOVERY_DURATION)); - } - - if (debugID.present()) { - g_traceBatch.addEvent("TransactionDebug", debugID.get().first(), "MasterProxyServer.getLiveCommittedVersion.confirmEpochLive"); - } - - vector versions = wait(getAll(proxyVersions)); - GetReadVersionReply rep; - rep.version = commitData->committedVersion.get(); - rep.locked = commitData->locked; - rep.metadataVersion = commitData->metadataVersion; - - for (auto v : versions) { - if(v.version > rep.version) { - rep = v; - } - } - rep.processBusyTime = FLOW_KNOBS->BASIC_LOAD_BALANCE_COMPUTE_PRECISION*std::min((std::numeric_limits::max()/FLOW_KNOBS->BASIC_LOAD_BALANCE_COMPUTE_PRECISION)-1,commitData->stats.getRecentRequests()); - rep.processBusyTime += FLOW_KNOBS->BASIC_LOAD_BALANCE_COMPUTE_PRECISION*(g_network->isSimulated() ? deterministicRandom()->random01() : g_network->networkInfo.metrics.lastRunLoopBusyness); - - if (debugID.present()) { - g_traceBatch.addEvent("TransactionDebug", debugID.get().first(), "MasterProxyServer.getLiveCommittedVersion.After"); - } - - commitData->stats.txnStartOut += transactionCount; - commitData->stats.txnSystemPriorityStartOut += systemTransactionCount; - commitData->stats.txnDefaultPriorityStartOut += defaultPriTransactionCount; - commitData->stats.txnBatchPriorityStartOut += batchPriTransactionCount; - - return rep; -} - -ACTOR Future sendGrvReplies(Future replyFuture, std::vector requests, - ProxyStats* stats, Version minKnownCommittedVersion, PrioritizedTransactionTagMap throttledTags) { - GetReadVersionReply _reply = wait(replyFuture); - GetReadVersionReply reply = _reply; - Version replyVersion = reply.version; - - double end = g_network->timer(); - for(GetReadVersionRequest const& request : requests) { - double duration = end - request.requestTime(); - if(request.priority == TransactionPriority::DEFAULT) { - stats->grvLatencySample.addMeasurement(duration); - } - if(request.priority >= TransactionPriority::DEFAULT) { - stats->grvLatencyBands.addMeasurement(duration); - } - - if (request.flags & GetReadVersionRequest::FLAG_USE_MIN_KNOWN_COMMITTED_VERSION) { - // Only backup worker may infrequently use this flag. - reply.version = minKnownCommittedVersion; - } - else { - reply.version = replyVersion; - } - - reply.tagThrottleInfo.clear(); - - if(!request.tags.empty()) { - auto& priorityThrottledTags = throttledTags[request.priority]; - for(auto tag : request.tags) { - auto tagItr = priorityThrottledTags.find(tag.first); - if(tagItr != priorityThrottledTags.end()) { - if(tagItr->second.expiration > now()) { - if(tagItr->second.tpsRate == std::numeric_limits::max()) { - TEST(true); // Auto TPS rate is unlimited - } - else { - TEST(true); // Proxy returning tag throttle - reply.tagThrottleInfo[tag.first] = tagItr->second; - } - } - else { - // This isn't required, but we might as well - TEST(true); // Proxy expiring tag throttle - priorityThrottledTags.erase(tagItr); - } - } - } - } - - request.reply.send(reply); - ++stats->txnRequestOut; - } - - return Void(); -} - -ACTOR static Future transactionStarter(MasterProxyInterface proxy, Reference> db, - PromiseStream> addActor, ProxyCommitData* commitData, - GetHealthMetricsReply* healthMetricsReply, - GetHealthMetricsReply* detailedHealthMetricsReply, ProxyStats* stats) { - state double lastGRVTime = 0; - state PromiseStream GRVTimer; - state double GRVBatchTime = SERVER_KNOBS->START_TRANSACTION_BATCH_INTERVAL_MIN; - - state int64_t transactionCount = 0; - state int64_t batchTransactionCount = 0; - state TransactionRateInfo normalRateInfo(10); - state TransactionRateInfo batchRateInfo(0); - - state Deque systemQueue; - state Deque defaultQueue; - state Deque batchQueue; - state vector otherProxies; - - state TransactionTagMap transactionTagCounter; - state PrioritizedTransactionTagMap throttledTags; - - state PromiseStream replyTimes; - addActor.send(getRate(proxy.id(), db, &transactionCount, &batchTransactionCount, &normalRateInfo, &batchRateInfo, - healthMetricsReply, detailedHealthMetricsReply, &transactionTagCounter, &throttledTags, - stats)); - addActor.send(queueTransactionStartRequests(db, &systemQueue, &defaultQueue, &batchQueue, proxy.getConsistentReadVersion.getFuture(), - GRVTimer, &lastGRVTime, &GRVBatchTime, replyTimes.getFuture(), &commitData->stats, &batchRateInfo, - &transactionTagCounter)); - - // Get a list of the other proxies that go together with us - while (std::find(db->get().client.proxies.begin(), db->get().client.proxies.end(), proxy) == db->get().client.proxies.end()) - wait(db->onChange()); - for (MasterProxyInterface mp : db->get().client.proxies) { - if (mp != proxy) - otherProxies.push_back(mp); - } - - ASSERT(db->get().recoveryState >= RecoveryState::ACCEPTING_COMMITS); // else potentially we could return uncommitted read versions (since self->committedVersion is only a committed version if this recovery succeeds) - - TraceEvent("ProxyReadyForTxnStarts", proxy.id()); - - loop{ - waitNext(GRVTimer.getFuture()); - // Select zero or more transactions to start - double t = now(); - double elapsed = now() - lastGRVTime; - lastGRVTime = t; - - if(elapsed == 0) elapsed = 1e-15; // resolve a possible indeterminant multiplication with infinite transaction rate - - normalRateInfo.reset(); - batchRateInfo.reset(); - - stats->transactionLimit = normalRateInfo.limit; - stats->batchTransactionLimit = batchRateInfo.limit; - - int transactionsStarted[2] = {0,0}; - int systemTransactionsStarted[2] = {0,0}; - int defaultPriTransactionsStarted[2] = { 0, 0 }; - int batchPriTransactionsStarted[2] = { 0, 0 }; - - vector> start(2); // start[0] is transactions starting with !(flags&CAUSAL_READ_RISKY), start[1] is transactions starting with flags&CAUSAL_READ_RISKY - Optional debugID; - - int requestsToStart = 0; - - uint32_t defaultQueueSize = defaultQueue.size(); - uint32_t batchQueueSize = batchQueue.size(); - while (requestsToStart < SERVER_KNOBS->START_TRANSACTION_MAX_REQUESTS_TO_START) { - Deque* transactionQueue; - if(!systemQueue.empty()) { - transactionQueue = &systemQueue; - } else if(!defaultQueue.empty()) { - transactionQueue = &defaultQueue; - } else if(!batchQueue.empty()) { - transactionQueue = &batchQueue; - } else { - break; - } - - auto& req = transactionQueue->front(); - int tc = req.transactionCount; - - if(req.priority < TransactionPriority::DEFAULT && !batchRateInfo.canStart(transactionsStarted[0] + transactionsStarted[1], tc)) { - break; - } - else if(req.priority < TransactionPriority::IMMEDIATE && !normalRateInfo.canStart(transactionsStarted[0] + transactionsStarted[1], tc)) { - break; - } - - if (req.debugID.present()) { - if (!debugID.present()) debugID = nondeterministicRandom()->randomUniqueID(); - g_traceBatch.addAttach("TransactionAttachID", req.debugID.get().first(), debugID.get().first()); - } - - transactionsStarted[req.flags&1] += tc; - double currentTime = g_network->timer(); - if (req.priority >= TransactionPriority::IMMEDIATE) { - systemTransactionsStarted[req.flags & 1] += tc; - } else if (req.priority >= TransactionPriority::DEFAULT) { - defaultPriTransactionsStarted[req.flags & 1] += tc; - stats->defaultTxnGRVTimeInQueue.addMeasurement(currentTime - req.requestTime()); - } else { - batchPriTransactionsStarted[req.flags & 1] += tc; - stats->batchTxnGRVTimeInQueue.addMeasurement(currentTime - req.requestTime()); - } - - start[req.flags & 1].push_back(std::move(req)); static_assert(GetReadVersionRequest::FLAG_CAUSAL_READ_RISKY == 1, "Implementation dependent on flag value"); - transactionQueue->pop_front(); - requestsToStart++; - } - - if (!systemQueue.empty() || !defaultQueue.empty() || !batchQueue.empty()) { - forwardPromise(GRVTimer, delayJittered(SERVER_KNOBS->START_TRANSACTION_BATCH_QUEUE_CHECK_INTERVAL, TaskPriority::ProxyGRVTimer)); - } - - /*TraceEvent("GRVBatch", proxy.id()) - .detail("Elapsed", elapsed) - .detail("NTransactionToStart", nTransactionsToStart) - .detail("TransactionRate", transactionRate) - .detail("TransactionQueueSize", transactionQueue.size()) - .detail("NumTransactionsStarted", transactionsStarted[0] + transactionsStarted[1]) - .detail("NumSystemTransactionsStarted", systemTransactionsStarted[0] + systemTransactionsStarted[1]) - .detail("NumNonSystemTransactionsStarted", transactionsStarted[0] + transactionsStarted[1] - - systemTransactionsStarted[0] - systemTransactionsStarted[1]) - .detail("TransactionBudget", transactionBudget) - .detail("BatchTransactionBudget", batchTransactionBudget);*/ - - int systemTotalStarted = systemTransactionsStarted[0] + systemTransactionsStarted[1]; - int normalTotalStarted = defaultPriTransactionsStarted[0] + defaultPriTransactionsStarted[1]; - int batchTotalStarted = batchPriTransactionsStarted[0] + batchPriTransactionsStarted[1]; - - transactionCount += transactionsStarted[0] + transactionsStarted[1]; - batchTransactionCount += batchTotalStarted; - - normalRateInfo.updateBudget(systemTotalStarted + normalTotalStarted, systemQueue.empty() && defaultQueue.empty(), elapsed); - batchRateInfo.updateBudget(systemTotalStarted + normalTotalStarted + batchTotalStarted, systemQueue.empty() && defaultQueue.empty() && batchQueue.empty(), elapsed); - - if (debugID.present()) { - g_traceBatch.addEvent("TransactionDebug", debugID.get().first(), "MasterProxyServer.masterProxyServerCore.Broadcast"); - } - - int defaultGRVProcessed = 0; - int batchGRVProcessed = 0; - for (int i = 0; i < start.size(); i++) { - if (start[i].size()) { - Future readVersionReply = getLiveCommittedVersion(commitData, i, &otherProxies, debugID, transactionsStarted[i], systemTransactionsStarted[i], defaultPriTransactionsStarted[i], batchPriTransactionsStarted[i]); - addActor.send(sendGrvReplies(readVersionReply, start[i], &commitData->stats, - commitData->minKnownCommittedVersion, throttledTags)); - - // for now, base dynamic batching on the time for normal requests (not read_risky) - if (i == 0) { - addActor.send(timeReply(readVersionReply, replyTimes)); - } - defaultGRVProcessed += defaultPriTransactionsStarted[i]; - batchGRVProcessed += batchPriTransactionsStarted[i]; - } - } - stats->percentageOfDefaultGRVQueueProcessed = (double)defaultGRVProcessed / defaultQueueSize; - stats->percentageOfBatchGRVQueueProcessed = (double)batchGRVProcessed / batchQueueSize; - } -} - -ACTOR static Future doKeyServerLocationRequest( GetKeyServerLocationsRequest req, ProxyCommitData* commitData ) { - // We can't respond to these requests until we have valid txnStateStore - wait(commitData->validState.getFuture()); - wait(delay(0, TaskPriority::DefaultEndpoint)); - - GetKeyServerLocationsReply rep; - if(!req.end.present()) { - auto r = req.reverse ? commitData->keyInfo.rangeContainingKeyBefore(req.begin) : commitData->keyInfo.rangeContaining(req.begin); - vector ssis; - ssis.reserve(r.value().src_info.size()); - for(auto& it : r.value().src_info) { - ssis.push_back(it->interf); - } - rep.results.push_back(std::make_pair(r.range(), ssis)); - } else if(!req.reverse) { - int count = 0; - for(auto r = commitData->keyInfo.rangeContaining(req.begin); r != commitData->keyInfo.ranges().end() && count < req.limit && r.begin() < req.end.get(); ++r) { - vector ssis; - ssis.reserve(r.value().src_info.size()); - for(auto& it : r.value().src_info) { - ssis.push_back(it->interf); - } - rep.results.push_back(std::make_pair(r.range(), ssis)); - count++; - } - } else { - int count = 0; - auto r = commitData->keyInfo.rangeContainingKeyBefore(req.end.get()); - while( count < req.limit && req.begin < r.end() ) { - vector ssis; - ssis.reserve(r.value().src_info.size()); - for(auto& it : r.value().src_info) { - ssis.push_back(it->interf); - } - rep.results.push_back(std::make_pair(r.range(), ssis)); - if(r == commitData->keyInfo.ranges().begin()) { - break; - } - count++; - --r; - } - } - req.reply.send(rep); - ++commitData->stats.keyServerLocationOut; - return Void(); -} - -ACTOR static Future readRequestServer( MasterProxyInterface proxy, PromiseStream> addActor, ProxyCommitData* commitData ) { - loop { - GetKeyServerLocationsRequest req = waitNext(proxy.getKeyServersLocations.getFuture()); - //WARNING: this code is run at a high priority, so it needs to do as little work as possible - if(req.limit != CLIENT_KNOBS->STORAGE_METRICS_SHARD_LIMIT && //Always do data distribution requests - commitData->stats.keyServerLocationIn.getValue() - commitData->stats.keyServerLocationOut.getValue() > SERVER_KNOBS->KEY_LOCATION_MAX_QUEUE_SIZE) { - ++commitData->stats.keyServerLocationErrors; - req.reply.sendError(proxy_memory_limit_exceeded()); - TraceEvent(SevWarnAlways, "ProxyLocationRequestThresholdExceeded").suppressFor(60); - } else { - ++commitData->stats.keyServerLocationIn; - addActor.send(doKeyServerLocationRequest(req, commitData)); - } - } -} - -ACTOR static Future rejoinServer( MasterProxyInterface proxy, ProxyCommitData* commitData ) { - // We can't respond to these requests until we have valid txnStateStore - wait(commitData->validState.getFuture()); - - TraceEvent("ProxyReadyForReads", proxy.id()); - - loop { - GetStorageServerRejoinInfoRequest req = waitNext(proxy.getStorageServerRejoinInfo.getFuture()); - if (commitData->txnStateStore->readValue(serverListKeyFor(req.id)).get().present()) { - GetStorageServerRejoinInfoReply rep; - rep.version = commitData->version; - rep.tag = decodeServerTagValue( commitData->txnStateStore->readValue(serverTagKeyFor(req.id)).get().get() ); - Standalone history = commitData->txnStateStore->readRange(serverTagHistoryRangeFor(req.id)).get(); - for(int i = history.size()-1; i >= 0; i-- ) { - rep.history.push_back(std::make_pair(decodeServerTagHistoryKey(history[i].key), decodeServerTagValue(history[i].value))); - } - auto localityKey = commitData->txnStateStore->readValue(tagLocalityListKeyFor(req.dcId)).get(); - rep.newLocality = false; - if( localityKey.present() ) { - int8_t locality = decodeTagLocalityListValue(localityKey.get()); - if(rep.tag.locality != tagLocalityUpgraded && locality != rep.tag.locality) { - TraceEvent(SevWarnAlways, "SSRejoinedWithChangedLocality").detail("Tag", rep.tag.toString()).detail("DcId", req.dcId).detail("NewLocality", locality); - } else if(locality != rep.tag.locality) { - uint16_t tagId = 0; - std::vector usedTags; - auto tagKeys = commitData->txnStateStore->readRange(serverTagKeys).get(); - for( auto& kv : tagKeys ) { - Tag t = decodeServerTagValue( kv.value ); - if(t.locality == locality) { - usedTags.push_back(t.id); - } - } - auto historyKeys = commitData->txnStateStore->readRange(serverTagHistoryKeys).get(); - for( auto& kv : historyKeys ) { - Tag t = decodeServerTagValue( kv.value ); - if(t.locality == locality) { - usedTags.push_back(t.id); - } - } - std::sort(usedTags.begin(), usedTags.end()); - - int usedIdx = 0; - for(; usedTags.size() > 0 && tagId <= usedTags.end()[-1]; tagId++) { - if(tagId < usedTags[usedIdx]) { - break; - } else { - usedIdx++; - } - } - rep.newTag = Tag(locality, tagId); - } - } else if(rep.tag.locality != tagLocalityUpgraded) { - TraceEvent(SevWarnAlways, "SSRejoinedWithUnknownLocality").detail("Tag", rep.tag.toString()).detail("DcId", req.dcId); - } else { - rep.newLocality = true; - int8_t maxTagLocality = -1; - auto localityKeys = commitData->txnStateStore->readRange(tagLocalityListKeys).get(); - for( auto& kv : localityKeys ) { - maxTagLocality = std::max(maxTagLocality, decodeTagLocalityListValue( kv.value )); - } - rep.newTag = Tag(maxTagLocality+1,0); - } - req.reply.send(rep); - } else { - req.reply.sendError(worker_removed()); - } - } -} - -ACTOR Future healthMetricsRequestServer(MasterProxyInterface proxy, GetHealthMetricsReply* healthMetricsReply, GetHealthMetricsReply* detailedHealthMetricsReply) -{ - loop { - choose { - when(GetHealthMetricsRequest req = - waitNext(proxy.getHealthMetrics.getFuture())) - { - if (req.detailed) - req.reply.send(*detailedHealthMetricsReply); - else - req.reply.send(*healthMetricsReply); - } - } - } -} - -ACTOR Future ddMetricsRequestServer(MasterProxyInterface proxy, Reference> db) -{ - loop { - choose { - when(state GetDDMetricsRequest req = waitNext(proxy.getDDMetrics.getFuture())) - { - if (!db->get().distributor.present()) { - req.reply.sendError(operation_failed()); - continue; - } - ErrorOr reply = wait(errorOr(db->get().distributor.get().dataDistributorMetrics.getReply(GetDataDistributorMetricsRequest(req.keys, req.shardLimit)))); - if ( reply.isError() ) { - req.reply.sendError(reply.getError()); - } else { - GetDDMetricsReply newReply; - newReply.storageMetricsList = reply.get().storageMetricsList; - req.reply.send(newReply); - } - } - } - } -} - -ACTOR Future monitorRemoteCommitted(ProxyCommitData* self) { - loop { - wait(delay(0)); //allow this actor to be cancelled if we are removed after db changes. - state Optional>> remoteLogs; - if(self->db->get().recoveryState >= RecoveryState::ALL_LOGS_RECRUITED) { - for(auto& logSet : self->db->get().logSystemConfig.tLogs) { - if(!logSet.isLocal) { - remoteLogs = logSet.tLogs; - for(auto& tLog : logSet.tLogs) { - if(!tLog.present()) { - remoteLogs = Optional>>(); - break; - } - } - break; - } - } - } - - if(!remoteLogs.present()) { - wait(self->db->onChange()); - continue; - } - self->popRemoteTxs = true; - - state Future onChange = self->db->onChange(); - loop { - state std::vector> replies; - for(auto &it : remoteLogs.get()) { - replies.push_back(brokenPromiseToNever( it.interf().getQueuingMetrics.getReply( TLogQueuingMetricsRequest() ) )); - } - wait( waitForAll(replies) || onChange ); - - if(onChange.isReady()) { - break; - } - - //FIXME: use the configuration to calculate a more precise minimum recovery version. - Version minVersion = std::numeric_limits::max(); - for(auto& it : replies) { - minVersion = std::min(minVersion, it.get().v); - } - - while(self->txsPopVersions.size() && self->txsPopVersions.front().first <= minVersion) { - self->lastTxsPop = self->txsPopVersions.front().second; - self->logSystem->popTxs(self->txsPopVersions.front().second, tagLocalityRemoteLog); - self->txsPopVersions.pop_front(); - } - - wait( delay(SERVER_KNOBS->UPDATE_REMOTE_LOG_VERSION_INTERVAL) || onChange ); - if(onChange.isReady()) { - break; - } - } - } -} - -ACTOR Future lastCommitUpdater(ProxyCommitData* self, PromiseStream> addActor) { - loop { - double interval = std::max(SERVER_KNOBS->MIN_CONFIRM_INTERVAL, (SERVER_KNOBS->REQUIRED_MIN_RECOVERY_DURATION - self->lastCommitLatency)/2.0); - double elapsed = now()-self->lastStartCommit; - if(elapsed < interval) { - wait( delay(interval + 0.0001 - elapsed) ); - } else { - if(self->updateCommitRequests < SERVER_KNOBS->MAX_COMMIT_UPDATES) { - addActor.send(updateLastCommit(self)); - } else { - TraceEvent(g_network->isSimulated() ? SevInfo : SevWarnAlways, "TooManyLastCommitUpdates").suppressFor(1.0); - self->lastStartCommit = now(); - } - } - } -} - -ACTOR Future proxySnapCreate(ProxySnapRequest snapReq, ProxyCommitData* commitData) { - TraceEvent("SnapMasterProxy_SnapReqEnter") - .detail("SnapPayload", snapReq.snapPayload) - .detail("SnapUID", snapReq.snapUID); - try { - // whitelist check - ExecCmdValueString execArg(snapReq.snapPayload); - StringRef binPath = execArg.getBinaryPath(); - if (!isWhitelisted(commitData->whitelistedBinPathVec, binPath)) { - TraceEvent("SnapMasterProxy_WhiteListCheckFailed") - .detail("SnapPayload", snapReq.snapPayload) - .detail("SnapUID", snapReq.snapUID); - throw snap_path_not_whitelisted(); - } - // db fully recovered check - if (commitData->db->get().recoveryState != RecoveryState::FULLY_RECOVERED) { - // Cluster is not fully recovered and needs TLogs - // from previous generation for full recovery. - // Currently, snapshot of old tlog generation is not - // supported and hence failing the snapshot request until - // cluster is fully_recovered. - TraceEvent("SnapMasterProxy_ClusterNotFullyRecovered") - .detail("SnapPayload", snapReq.snapPayload) - .detail("SnapUID", snapReq.snapUID); - throw snap_not_fully_recovered_unsupported(); - } - - auto result = - commitData->txnStateStore->readValue(LiteralStringRef("log_anti_quorum").withPrefix(configKeysPrefix)).get(); - int logAntiQuorum = 0; - if (result.present()) { - logAntiQuorum = atoi(result.get().toString().c_str()); - } - // FIXME: logAntiQuorum not supported, remove it later, - // In version2, we probably don't need this limtiation, but this needs to be tested. - if (logAntiQuorum > 0) { - TraceEvent("SnapMasterProxy_LogAnitQuorumNotSupported") - .detail("SnapPayload", snapReq.snapPayload) - .detail("SnapUID", snapReq.snapUID); - throw snap_log_anti_quorum_unsupported(); - } - - // send a snap request to DD - if (!commitData->db->get().distributor.present()) { - TraceEvent(SevWarnAlways, "DataDistributorNotPresent").detail("Operation", "SnapRequest"); - throw operation_failed(); - } - state Future> ddSnapReq = - commitData->db->get().distributor.get().distributorSnapReq.tryGetReply(DistributorSnapRequest(snapReq.snapPayload, snapReq.snapUID)); - try { - wait(throwErrorOr(ddSnapReq)); - } catch (Error& e) { - TraceEvent("SnapMasterProxy_DDSnapResponseError") - .detail("SnapPayload", snapReq.snapPayload) - .detail("SnapUID", snapReq.snapUID) - .error(e, true /*includeCancelled*/ ); - throw e; - } - snapReq.reply.send(Void()); - } catch (Error& e) { - TraceEvent("SnapMasterProxy_SnapReqError") - .detail("SnapPayload", snapReq.snapPayload) - .detail("SnapUID", snapReq.snapUID) - .error(e, true /*includeCancelled*/); - if (e.code() != error_code_operation_cancelled) { - snapReq.reply.sendError(e); - } else { - throw e; - } - } - TraceEvent("SnapMasterProxy_SnapReqExit") - .detail("SnapPayload", snapReq.snapPayload) - .detail("SnapUID", snapReq.snapUID); - return Void(); -} - -ACTOR Future proxyCheckSafeExclusion(Reference> db, ExclusionSafetyCheckRequest req) { - TraceEvent("SafetyCheckMasterProxyBegin"); - state ExclusionSafetyCheckReply reply(false); - if (!db->get().distributor.present()) { - TraceEvent(SevWarnAlways, "DataDistributorNotPresent").detail("Operation", "ExclusionSafetyCheck"); - req.reply.send(reply); - return Void(); - } - try { - state Future> safeFuture = - db->get().distributor.get().distributorExclCheckReq.tryGetReply( - DistributorExclusionSafetyCheckRequest(req.exclusions)); - DistributorExclusionSafetyCheckReply _reply = wait(throwErrorOr(safeFuture)); - reply.safe = _reply.safe; - } catch (Error& e) { - TraceEvent("SafetyCheckMasterProxyResponseError").error(e); - if (e.code() != error_code_operation_cancelled) { - req.reply.sendError(e); - return Void(); - } else { - throw e; - } - } - TraceEvent("SafetyCheckMasterProxyFinish"); - req.reply.send(reply); - return Void(); -} - -ACTOR Future masterProxyServerCore( - MasterProxyInterface proxy, - MasterInterface master, - Reference> db, - LogEpoch epoch, - Version recoveryTransactionVersion, - bool firstProxy, - std::string whitelistBinPaths) -{ - state ProxyCommitData commitData(proxy.id(), master, proxy.getConsistentReadVersion, recoveryTransactionVersion, proxy.commit, db, firstProxy); - - state Future sequenceFuture = (Sequence)0; - state PromiseStream< std::pair, int> > batchedCommits; - state Future commitBatcherActor; - state Future lastCommitComplete = Void(); - - state PromiseStream> addActor; - state Future onError = transformError( actorCollection(addActor.getFuture()), broken_promise(), master_tlog_failed() ); - state double lastCommit = 0; - state std::set txnSequences; - state Sequence maxSequence = std::numeric_limits::max(); - - state GetHealthMetricsReply healthMetricsReply; - state GetHealthMetricsReply detailedHealthMetricsReply; - - addActor.send( waitFailureServer(proxy.waitFailure.getFuture()) ); - addActor.send( traceRole(Role::MASTER_PROXY, proxy.id()) ); - - //TraceEvent("ProxyInit1", proxy.id()); - - // Wait until we can load the "real" logsystem, since we don't support switching them currently - while (!(commitData.db->get().master.id() == master.id() && commitData.db->get().recoveryState >= RecoveryState::RECOVERY_TRANSACTION)) { - //TraceEvent("ProxyInit2", proxy.id()).detail("LSEpoch", db->get().logSystemConfig.epoch).detail("Need", epoch); - wait(commitData.db->onChange()); - } - state Future dbInfoChange = commitData.db->onChange(); - //TraceEvent("ProxyInit3", proxy.id()); - - commitData.resolvers = commitData.db->get().resolvers; - ASSERT(commitData.resolvers.size() != 0); - - auto rs = commitData.keyResolvers.modify(allKeys); - for(auto r = rs.begin(); r != rs.end(); ++r) - r->value().emplace_back(0,0); - - commitData.logSystem = ILogSystem::fromServerDBInfo(proxy.id(), commitData.db->get(), false, addActor); - commitData.logAdapter = new LogSystemDiskQueueAdapter(commitData.logSystem, Reference>(), 1, false); - commitData.txnStateStore = keyValueStoreLogSystem(commitData.logAdapter, proxy.id(), 2e9, true, true, true); - createWhitelistBinPathVec(whitelistBinPaths, commitData.whitelistedBinPathVec); - - commitData.updateLatencyBandConfig(commitData.db->get().latencyBandConfig); - - // ((SERVER_MEM_LIMIT * COMMIT_BATCHES_MEM_FRACTION_OF_TOTAL) / COMMIT_BATCHES_MEM_TO_TOTAL_MEM_SCALE_FACTOR) is only a approximate formula for limiting the memory used. - // COMMIT_BATCHES_MEM_TO_TOTAL_MEM_SCALE_FACTOR is an estimate based on experiments and not an accurate one. - state int64_t commitBatchesMemoryLimit = std::min(SERVER_KNOBS->COMMIT_BATCHES_MEM_BYTES_HARD_LIMIT, static_cast((SERVER_KNOBS->SERVER_MEM_LIMIT * SERVER_KNOBS->COMMIT_BATCHES_MEM_FRACTION_OF_TOTAL) / SERVER_KNOBS->COMMIT_BATCHES_MEM_TO_TOTAL_MEM_SCALE_FACTOR)); - TraceEvent(SevInfo, "CommitBatchesMemoryLimit").detail("BytesLimit", commitBatchesMemoryLimit); - - addActor.send(monitorRemoteCommitted(&commitData)); - addActor.send(transactionStarter(proxy, commitData.db, addActor, &commitData, &healthMetricsReply, - &detailedHealthMetricsReply, &commitData.stats)); - addActor.send(readRequestServer(proxy, addActor, &commitData)); - addActor.send(rejoinServer(proxy, &commitData)); - addActor.send(healthMetricsRequestServer(proxy, &healthMetricsReply, &detailedHealthMetricsReply)); - addActor.send(ddMetricsRequestServer(proxy, db)); - - // wait for txnStateStore recovery - wait(success(commitData.txnStateStore->readValue(StringRef()))); - - if(SERVER_KNOBS->REQUIRED_MIN_RECOVERY_DURATION > 0) { - addActor.send(lastCommitUpdater(&commitData, addActor)); - } - - int commitBatchByteLimit = - (int)std::min(SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_BYTES_MAX, - std::max(SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_BYTES_MIN, - SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_BYTES_SCALE_BASE * - pow(commitData.db->get().client.proxies.size(), - SERVER_KNOBS->COMMIT_TRANSACTION_BATCH_BYTES_SCALE_POWER))); - - commitBatcherActor = commitBatcher(&commitData, batchedCommits, proxy.commit.getFuture(), commitBatchByteLimit, commitBatchesMemoryLimit); - loop choose{ - when( wait( dbInfoChange ) ) { - dbInfoChange = commitData.db->onChange(); - if(commitData.db->get().master.id() == master.id() && commitData.db->get().recoveryState >= RecoveryState::RECOVERY_TRANSACTION) { - commitData.logSystem = ILogSystem::fromServerDBInfo(proxy.id(), commitData.db->get(), false, addActor); - for(auto it : commitData.tag_popped) { - commitData.logSystem->pop(it.second, it.first); - } - commitData.logSystem->popTxs(commitData.lastTxsPop, tagLocalityRemoteLog); - } - - commitData.updateLatencyBandConfig(commitData.db->get().latencyBandConfig); - } - when(wait(onError)) {} - when(std::pair, int> batchedRequests = waitNext(batchedCommits.getFuture())) { - //WARNING: this code is run at a high priority, so it needs to do as little work as possible - const vector &trs = batchedRequests.first; - int batchBytes = batchedRequests.second; - //TraceEvent("MasterProxyCTR", proxy.id()).detail("CommitTransactions", trs.size()).detail("TransactionRate", transactionRate).detail("TransactionQueue", transactionQueue.size()).detail("ReleasedTransactionCount", transactionCount); - if (trs.size() || (commitData.db->get().recoveryState >= RecoveryState::ACCEPTING_COMMITS && now() - lastCommit >= SERVER_KNOBS->MAX_COMMIT_BATCH_INTERVAL)) { - lastCommit = now(); - - if (trs.size() || lastCommitComplete.isReady()) { - lastCommitComplete = commitBatch(&commitData, trs, batchBytes); - addActor.send(lastCommitComplete); - } - } - } - when(GetRawCommittedVersionRequest req = waitNext(proxy.getRawCommittedVersion.getFuture())) { - //TraceEvent("ProxyGetRCV", proxy.id()); - if (req.debugID.present()) - g_traceBatch.addEvent("TransactionDebug", req.debugID.get().first(), "MasterProxyServer.masterProxyServerCore.GetRawCommittedVersion"); - GetReadVersionReply rep; - rep.locked = commitData.locked; - rep.metadataVersion = commitData.metadataVersion; - rep.version = commitData.committedVersion.get(); - req.reply.send(rep); - } - when(ProxySnapRequest snapReq = waitNext(proxy.proxySnapReq.getFuture())) { - TraceEvent(SevDebug, "SnapMasterEnqueue"); - addActor.send(proxySnapCreate(snapReq, &commitData)); - } - when(ExclusionSafetyCheckRequest exclCheckReq = waitNext(proxy.exclusionSafetyCheckReq.getFuture())) { - addActor.send(proxyCheckSafeExclusion(db, exclCheckReq)); - } - when(state TxnStateRequest req = waitNext(proxy.txnState.getFuture())) { - state ReplyPromise reply = req.reply; - if(req.last) maxSequence = req.sequence + 1; - if (!txnSequences.count(req.sequence)) { - txnSequences.insert(req.sequence); - - ASSERT(!commitData.validState.isSet()); // Although we may receive the CommitTransactionRequest for the recovery transaction before all of the TxnStateRequest, we will not get a resolution result from any resolver until the master has submitted its initial (sequence 0) resolution request, which it doesn't do until we have acknowledged all TxnStateRequests - - for(auto& kv : req.data) - commitData.txnStateStore->set(kv, &req.arena); - commitData.txnStateStore->commit(true); - - if(txnSequences.size() == maxSequence) { - state KeyRange txnKeys = allKeys; - Standalone UIDtoTagMap = commitData.txnStateStore->readRange( serverTagKeys ).get(); - state std::map tag_uid; - for (const KeyValueRef kv : UIDtoTagMap) { - tag_uid[decodeServerTagValue(kv.value)] = decodeServerTagKey(kv.key); - } - loop { - wait(yield()); - Standalone data = commitData.txnStateStore->readRange(txnKeys, SERVER_KNOBS->BUGGIFIED_ROW_LIMIT, SERVER_KNOBS->APPLY_MUTATION_BYTES).get(); - if(!data.size()) break; - ((KeyRangeRef&)txnKeys) = KeyRangeRef( keyAfter(data.back().key, txnKeys.arena()), txnKeys.end ); - - MutationsVec mutations; - std::vector,int>> keyInfoData; - vector src, dest; - ServerCacheInfo info; - for(auto &kv : data) { - if( kv.key.startsWith(keyServersPrefix) ) { - KeyRef k = kv.key.removePrefix(keyServersPrefix); - if(k != allKeys.end) { - decodeKeyServersValue(tag_uid, kv.value, src, dest); - info.tags.clear(); - info.src_info.clear(); - info.dest_info.clear(); - for (const auto& id : src) { - auto storageInfo = getStorageInfo(id, &commitData.storageCache, commitData.txnStateStore); - ASSERT(storageInfo->tag != invalidTag); - info.tags.push_back( storageInfo->tag ); - info.src_info.push_back( storageInfo ); - } - for (const auto& id : dest) { - auto storageInfo = getStorageInfo(id, &commitData.storageCache, commitData.txnStateStore); - ASSERT(storageInfo->tag != invalidTag); - info.tags.push_back( storageInfo->tag ); - info.dest_info.push_back( storageInfo ); - } - uniquify(info.tags); - keyInfoData.emplace_back(MapPair(k, info), 1); - } - } else { - mutations.push_back(mutations.arena(), MutationRef(MutationRef::SetValue, kv.key, kv.value)); - } - } - - //insert keyTag data separately from metadata mutations so that we can do one bulk insert which avoids a lot of map lookups. - commitData.keyInfo.rawInsert(keyInfoData); - - Arena arena; - bool confChanges; - applyMetadataMutations(commitData.dbgid, arena, mutations, commitData.txnStateStore, nullptr, &confChanges, Reference(), 0, &commitData.vecBackupKeys, &commitData.keyInfo, &commitData.cacheInfo, commitData.firstProxy ? &commitData.uid_applyMutationsData : nullptr, commitData.commit, commitData.cx, &commitData.committedVersion, &commitData.storageCache, &commitData.tag_popped, true ); - } - - auto lockedKey = commitData.txnStateStore->readValue(databaseLockedKey).get(); - commitData.locked = lockedKey.present() && lockedKey.get().size(); - commitData.metadataVersion = commitData.txnStateStore->readValue(metadataVersionKey).get(); - - commitData.txnStateStore->enableSnapshot(); - } - } - addActor.send(broadcastTxnRequest(req, SERVER_KNOBS->TXN_STATE_SEND_AMOUNT, true)); - wait(yield()); - } - } -} - -ACTOR Future checkRemoved(Reference> db, uint64_t recoveryCount, MasterProxyInterface myInterface) { - loop{ - if (db->get().recoveryCount >= recoveryCount && !std::count(db->get().client.proxies.begin(), db->get().client.proxies.end(), myInterface)) { - throw worker_removed(); - } - wait(db->onChange()); - } -} - -ACTOR Future masterProxyServer( - MasterProxyInterface proxy, - InitializeMasterProxyRequest req, - Reference> db, - std::string whitelistBinPaths) -{ - try { - state Future core = masterProxyServerCore(proxy, req.master, db, req.recoveryCount, req.recoveryTransactionVersion, req.firstProxy, whitelistBinPaths); - wait(core || checkRemoved(db, req.recoveryCount, proxy)); - } - catch (Error& e) { - TraceEvent("MasterProxyTerminated", proxy.id()).error(e, true); - - if (e.code() != error_code_worker_removed && e.code() != error_code_tlog_stopped && - e.code() != error_code_master_tlog_failed && e.code() != error_code_coordinators_changed && - e.code() != error_code_coordinated_state_conflict && e.code() != error_code_new_coordinators_timed_out) { - throw; - } - } - return Void(); -} From 4e460c0b303121b905dcf2296a2eeaf5eab83458 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 26 Dec 2020 13:30:16 -0400 Subject: [PATCH 111/261] Remove BlobStore.actor.cpp --- fdbclient/BlobStore.actor.cpp | 1200 --------------------------------- 1 file changed, 1200 deletions(-) delete mode 100644 fdbclient/BlobStore.actor.cpp diff --git a/fdbclient/BlobStore.actor.cpp b/fdbclient/BlobStore.actor.cpp deleted file mode 100644 index 816cf5b488..0000000000 --- a/fdbclient/BlobStore.actor.cpp +++ /dev/null @@ -1,1200 +0,0 @@ -/* - * BlobStore.actor.cpp - * - * This source file is part of the FoundationDB open source project - * - * Copyright 2013-2018 Apple Inc. and the FoundationDB project authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "fdbclient/BlobStore.h" - -#include "fdbclient/md5/md5.h" -#include "fdbclient/libb64/encode.h" -#include "fdbclient/sha1/SHA1.h" -#include -#include -#include -#include "fdbrpc/IAsyncFile.h" -#include "fdbclient/rapidxml/rapidxml.hpp" -#include "flow/actorcompiler.h" // has to be last include - -using namespace rapidxml; - -json_spirit::mObject BlobStoreEndpoint::Stats::getJSON() { - json_spirit::mObject o; - - o["requests_failed"] = requests_failed; - o["requests_successful"] = requests_successful; - o["bytes_sent"] = bytes_sent; - - return o; -} - -BlobStoreEndpoint::Stats BlobStoreEndpoint::Stats::operator-(const Stats &rhs) { - Stats r; - r.requests_failed = requests_failed - rhs.requests_failed; - r.requests_successful = requests_successful - rhs.requests_successful; - r.bytes_sent = bytes_sent - rhs.bytes_sent; - return r; -} - -BlobStoreEndpoint::Stats BlobStoreEndpoint::s_stats; - -BlobStoreEndpoint::BlobKnobs::BlobKnobs() { - secure_connection = 1; - connect_tries = CLIENT_KNOBS->BLOBSTORE_CONNECT_TRIES; - connect_timeout = CLIENT_KNOBS->BLOBSTORE_CONNECT_TIMEOUT; - max_connection_life = CLIENT_KNOBS->BLOBSTORE_MAX_CONNECTION_LIFE; - request_tries = CLIENT_KNOBS->BLOBSTORE_REQUEST_TRIES; - request_timeout_min = CLIENT_KNOBS->BLOBSTORE_REQUEST_TIMEOUT_MIN; - requests_per_second = CLIENT_KNOBS->BLOBSTORE_REQUESTS_PER_SECOND; - concurrent_requests = CLIENT_KNOBS->BLOBSTORE_CONCURRENT_REQUESTS; - list_requests_per_second = CLIENT_KNOBS->BLOBSTORE_LIST_REQUESTS_PER_SECOND; - write_requests_per_second = CLIENT_KNOBS->BLOBSTORE_WRITE_REQUESTS_PER_SECOND; - read_requests_per_second = CLIENT_KNOBS->BLOBSTORE_READ_REQUESTS_PER_SECOND; - delete_requests_per_second = CLIENT_KNOBS->BLOBSTORE_DELETE_REQUESTS_PER_SECOND; - multipart_max_part_size = CLIENT_KNOBS->BLOBSTORE_MULTIPART_MAX_PART_SIZE; - multipart_min_part_size = CLIENT_KNOBS->BLOBSTORE_MULTIPART_MIN_PART_SIZE; - concurrent_uploads = CLIENT_KNOBS->BLOBSTORE_CONCURRENT_UPLOADS; - concurrent_lists = CLIENT_KNOBS->BLOBSTORE_CONCURRENT_LISTS; - concurrent_reads_per_file = CLIENT_KNOBS->BLOBSTORE_CONCURRENT_READS_PER_FILE; - concurrent_writes_per_file = CLIENT_KNOBS->BLOBSTORE_CONCURRENT_WRITES_PER_FILE; - read_block_size = CLIENT_KNOBS->BLOBSTORE_READ_BLOCK_SIZE; - read_ahead_blocks = CLIENT_KNOBS->BLOBSTORE_READ_AHEAD_BLOCKS; - read_cache_blocks_per_file = CLIENT_KNOBS->BLOBSTORE_READ_CACHE_BLOCKS_PER_FILE; - max_send_bytes_per_second = CLIENT_KNOBS->BLOBSTORE_MAX_SEND_BYTES_PER_SECOND; - max_recv_bytes_per_second = CLIENT_KNOBS->BLOBSTORE_MAX_RECV_BYTES_PER_SECOND; -} - -bool BlobStoreEndpoint::BlobKnobs::set(StringRef name, int value) { - #define TRY_PARAM(n, sn) if(name == LiteralStringRef(#n) || name == LiteralStringRef(#sn)) { n = value; return true; } - TRY_PARAM(secure_connection, sc) - TRY_PARAM(connect_tries, ct); - TRY_PARAM(connect_timeout, cto); - TRY_PARAM(max_connection_life, mcl); - TRY_PARAM(request_tries, rt); - TRY_PARAM(request_timeout_min, rtom); - // TODO: For backward compatibility because request_timeout was renamed to request_timeout_min - if(name == LiteralStringRef("request_timeout") || name == LiteralStringRef("rto")) { request_timeout_min = value; return true; } - TRY_PARAM(requests_per_second, rps); - TRY_PARAM(list_requests_per_second, lrps); - TRY_PARAM(write_requests_per_second, wrps); - TRY_PARAM(read_requests_per_second, rrps); - TRY_PARAM(delete_requests_per_second, drps); - TRY_PARAM(concurrent_requests, cr); - TRY_PARAM(multipart_max_part_size, maxps); - TRY_PARAM(multipart_min_part_size, minps); - TRY_PARAM(concurrent_uploads, cu); - TRY_PARAM(concurrent_lists, cl); - TRY_PARAM(concurrent_reads_per_file, crpf); - TRY_PARAM(concurrent_writes_per_file, cwpf); - TRY_PARAM(read_block_size, rbs); - TRY_PARAM(read_ahead_blocks, rab); - TRY_PARAM(read_cache_blocks_per_file, rcb); - TRY_PARAM(max_send_bytes_per_second, sbps); - TRY_PARAM(max_recv_bytes_per_second, rbps); - #undef TRY_PARAM - return false; -} - -// Returns a Blob URL parameter string that specifies all of the non-default options for the endpoint using option short names. -std::string BlobStoreEndpoint::BlobKnobs::getURLParameters() const { - static BlobKnobs defaults; - std::string r; - #define _CHECK_PARAM(n, sn) if(n != defaults. n) { r += format("%s%s=%d", r.empty() ? "" : "&", #sn, n); } - _CHECK_PARAM(secure_connection, sc); - _CHECK_PARAM(connect_tries, ct); - _CHECK_PARAM(connect_timeout, cto); - _CHECK_PARAM(max_connection_life, mcl); - _CHECK_PARAM(request_tries, rt); - _CHECK_PARAM(request_timeout_min, rto); - _CHECK_PARAM(requests_per_second, rps); - _CHECK_PARAM(list_requests_per_second, lrps); - _CHECK_PARAM(write_requests_per_second, wrps); - _CHECK_PARAM(read_requests_per_second, rrps); - _CHECK_PARAM(delete_requests_per_second, drps); - _CHECK_PARAM(concurrent_requests, cr); - _CHECK_PARAM(multipart_max_part_size, maxps); - _CHECK_PARAM(multipart_min_part_size, minps); - _CHECK_PARAM(concurrent_uploads, cu); - _CHECK_PARAM(concurrent_lists, cl); - _CHECK_PARAM(concurrent_reads_per_file, crpf); - _CHECK_PARAM(concurrent_writes_per_file, cwpf); - _CHECK_PARAM(read_block_size, rbs); - _CHECK_PARAM(read_ahead_blocks, rab); - _CHECK_PARAM(read_cache_blocks_per_file, rcb); - _CHECK_PARAM(max_send_bytes_per_second, sbps); - _CHECK_PARAM(max_recv_bytes_per_second, rbps); - #undef _CHECK_PARAM - return r; -} - -Reference BlobStoreEndpoint::fromString(std::string const &url, std::string *resourceFromURL, std::string *error, ParametersT *ignored_parameters) { - if(resourceFromURL) - resourceFromURL->clear(); - - try { - StringRef t(url); - StringRef prefix = t.eat("://"); - if(prefix != LiteralStringRef("blobstore")) - throw format("Invalid blobstore URL prefix '%s'", prefix.toString().c_str()); - StringRef cred = t.eat("@"); - uint8_t foundSeparator = 0; - StringRef hostPort = t.eatAny("/?", &foundSeparator); - StringRef resource; - if(foundSeparator == '/') { - resource = t.eat("?"); - } - - // hostPort is at least a host or IP address, optionally followed by :portNumber or :serviceName - StringRef h(hostPort); - StringRef host = h.eat(":"); - if(host.size() == 0) - throw std::string("host cannot be empty"); - - StringRef service = h.eat(); - - BlobKnobs knobs; - HTTP::Headers extraHeaders; - while(1) { - StringRef name = t.eat("="); - if(name.size() == 0) - break; - StringRef value = t.eat("&"); - - // Special case for header - if(name == LiteralStringRef("header")) { - StringRef originalValue = value; - StringRef headerFieldName = value.eat(":"); - StringRef headerFieldValue = value; - if(headerFieldName.size() == 0 || headerFieldValue.size() == 0) { - throw format("'%s' is not a valid value for '%s' parameter. Format is : where strings are not empty.", originalValue.toString().c_str(), name.toString().c_str()); - } - std::string &fieldValue = extraHeaders[headerFieldName.toString()]; - // RFC 2616 section 4.2 says header field names can repeat but only if it is valid to concatenate their values with comma separation - if(!fieldValue.empty()) { - fieldValue.append(","); - } - fieldValue.append(headerFieldValue.toString()); - continue; - } - - // See if the parameter is a knob - // First try setting a dummy value (all knobs are currently numeric) just to see if this parameter is known to BlobStoreEndpoint. - // If it is, then we will set it to a good value or throw below, so the dummy set has no bad side effects. - bool known = knobs.set(name, 0); - - // If the parameter is not known to BlobStoreEndpoint then throw unless there is an ignored_parameters set to add it to - if(!known) { - if(ignored_parameters == nullptr) { - throw format("%s is not a valid parameter name", name.toString().c_str()); - } - (*ignored_parameters)[name.toString()] = value.toString(); - continue; - } - - // The parameter is known to BlobStoreEndpoint so it must be numeric and valid. - char *valueEnd; - int ivalue = strtol(value.toString().c_str(), &valueEnd, 10); - if(*valueEnd || (ivalue == 0 && value.toString() != "0")) - throw format("%s is not a valid value for %s", value.toString().c_str(), name.toString().c_str()); - - // It should not be possible for this set to fail now since the dummy set above had to have worked. - ASSERT(knobs.set(name, ivalue)); - } - - if(resourceFromURL != nullptr) - *resourceFromURL = resource.toString(); - - StringRef c(cred); - StringRef key = c.eat(":"); - StringRef secret = c.eat(); - - return makeReference(host.toString(), service.toString(), key.toString(), secret.toString(), - knobs, extraHeaders); - - } catch(std::string &err) { - if(error != nullptr) - *error = err; - TraceEvent(SevWarnAlways, "BlobStoreEndpointBadURL").suppressFor(60).detail("Description", err).detail("Format", getURLFormat()).detail("URL", url); - throw backup_invalid_url(); - } -} - -std::string BlobStoreEndpoint::getResourceURL(std::string resource, std::string params) { - std::string hostPort = host; - if(!service.empty()) { - hostPort.append(":"); - hostPort.append(service); - } - - // If secret isn't being looked up from credentials files then it was passed explicitly in th URL so show it here. - std::string s; - if(!lookupSecret) - s = std::string(":") + secret; - - std::string r = format("blobstore://%s%s@%s/%s", key.c_str(), s.c_str(), hostPort.c_str(), resource.c_str()); - - // Get params that are deviations from knob defaults - std::string knobParams = knobs.getURLParameters(); - if(!knobParams.empty()) { - if(!params.empty()) { - params.append("&"); - } - params.append(knobParams); - } - - for(auto &kv : extraHeaders) { - if(!params.empty()) { - params.append("&"); - } - params.append("header="); - params.append(HTTP::urlEncode(kv.first)); - params.append(":"); - params.append(HTTP::urlEncode(kv.second)); - } - - if(!params.empty()) - r.append("?").append(params); - - return r; -} - -ACTOR Future bucketExists_impl(Reference b, std::string bucket) { - wait(b->requestRateRead->getAllowance(1)); - - std::string resource = std::string("/") + bucket; - HTTP::Headers headers; - - Reference r = wait(b->doRequest("HEAD", resource, headers, nullptr, 0, {200, 404})); - return r->code == 200; -} - -Future BlobStoreEndpoint::bucketExists(std::string const &bucket) { - return bucketExists_impl(Reference::addRef(this), bucket); -} - -ACTOR Future objectExists_impl(Reference b, std::string bucket, std::string object) { - wait(b->requestRateRead->getAllowance(1)); - - std::string resource = std::string("/") + bucket + "/" + object; - HTTP::Headers headers; - - Reference r = wait(b->doRequest("HEAD", resource, headers, nullptr, 0, {200, 404})); - return r->code == 200; -} - -Future BlobStoreEndpoint::objectExists(std::string const &bucket, std::string const &object) { - return objectExists_impl(Reference::addRef(this), bucket, object); -} - -ACTOR Future deleteObject_impl(Reference b, std::string bucket, std::string object) { - wait(b->requestRateDelete->getAllowance(1)); - - std::string resource = std::string("/") + bucket + "/" + object; - HTTP::Headers headers; - // 200 or 204 means object successfully deleted, 404 means it already doesn't exist, so any of those are considered successful - Reference r = wait(b->doRequest("DELETE", resource, headers, nullptr, 0, {200, 204, 404})); - - // But if the object already did not exist then the 'delete' is assumed to be successful but a warning is logged. - if(r->code == 404) { - TraceEvent(SevWarnAlways, "BlobStoreEndpointDeleteObjectMissing") - .detail("Host", b->host) - .detail("Bucket", bucket) - .detail("Object", object); - } - - return Void(); -} - -Future BlobStoreEndpoint::deleteObject(std::string const &bucket, std::string const &object) { - return deleteObject_impl(Reference::addRef(this), bucket, object); -} - -ACTOR Future deleteRecursively_impl(Reference b, std::string bucket, std::string prefix, int *pNumDeleted, int64_t *pBytesDeleted) { - state PromiseStream resultStream; - // Start a recursive parallel listing which will send results to resultStream as they are received - state Future done = b->listObjectsStream(bucket, resultStream, prefix, '/', std::numeric_limits::max()); - // Wrap done in an actor which will send end_of_stream since listObjectsStream() does not (so that many calls can write to the same stream) - done = map(done, [=](Void) { - resultStream.sendError(end_of_stream()); - return Void(); - }); - - state std::list> deleteFutures; - try { - loop { - choose { - // Throw if done throws, otherwise don't stop until end_of_stream - when(wait(done)) { - done = Never(); - } - - when(BlobStoreEndpoint::ListResult list = waitNext(resultStream.getFuture())) { - for(auto &object : list.objects) { - deleteFutures.push_back(map(b->deleteObject(bucket, object.name), [=](Void) -> Void { - if(pNumDeleted != nullptr) { - ++*pNumDeleted; - } - if(pBytesDeleted != nullptr) { - *pBytesDeleted += object.size; - } - return Void(); - })); - } - } - } - - // This is just a precaution to avoid having too many outstanding delete actors waiting to run - while(deleteFutures.size() > CLIENT_KNOBS->BLOBSTORE_CONCURRENT_REQUESTS) { - wait(deleteFutures.front()); - deleteFutures.pop_front(); - } - } - } catch(Error &e) { - if(e.code() != error_code_end_of_stream) - throw; - } - - while(deleteFutures.size() > 0) { - wait(deleteFutures.front()); - deleteFutures.pop_front(); - } - - return Void(); -} - -Future BlobStoreEndpoint::deleteRecursively(std::string const &bucket, std::string prefix, int *pNumDeleted, int64_t *pBytesDeleted) { - return deleteRecursively_impl(Reference::addRef(this), bucket, prefix, pNumDeleted, pBytesDeleted); -} - -ACTOR Future createBucket_impl(Reference b, std::string bucket) { - wait(b->requestRateWrite->getAllowance(1)); - - bool exists = wait(b->bucketExists(bucket)); - if(!exists) { - std::string resource = std::string("/") + bucket; - HTTP::Headers headers; - Reference r = wait(b->doRequest("PUT", resource, headers, nullptr, 0, {200, 409})); - } - return Void(); -} - -Future BlobStoreEndpoint::createBucket(std::string const &bucket) { - return createBucket_impl(Reference::addRef(this), bucket); -} - -ACTOR Future objectSize_impl(Reference b, std::string bucket, std::string object) { - wait(b->requestRateRead->getAllowance(1)); - - std::string resource = std::string("/") + bucket + "/" + object; - HTTP::Headers headers; - - Reference r = wait(b->doRequest("HEAD", resource, headers, nullptr, 0, {200, 404})); - if(r->code == 404) - throw file_not_found(); - return r->contentLen; -} - -Future BlobStoreEndpoint::objectSize(std::string const &bucket, std::string const &object) { - return objectSize_impl(Reference::addRef(this), bucket, object); -} - -// Try to read a file, parse it as JSON, and return the resulting document. -// It will NOT throw if any errors are encountered, it will just return an empty -// JSON object and will log trace events for the errors encountered. -ACTOR Future> tryReadJSONFile(std::string path) { - state std::string content; - - // Event type to be logged in the event of an exception - state const char *errorEventType = "BlobCredentialFileError"; - - try { - state Reference f = wait(IAsyncFileSystem::filesystem()->open(path, IAsyncFile::OPEN_NO_AIO | IAsyncFile::OPEN_READONLY | IAsyncFile::OPEN_UNCACHED, 0)); - state int64_t size = wait(f->size()); - state Standalone buf = makeString(size); - int r = wait(f->read(mutateString(buf), size, 0)); - ASSERT(r == size); - content = buf.toString(); - - // Any exceptions from hehre forward are parse failures - errorEventType = "BlobCredentialFileParseFailed"; - json_spirit::mValue json; - json_spirit::read_string(content, json); - if(json.type() == json_spirit::obj_type) - return json.get_obj(); - else - TraceEvent(SevWarn, "BlobCredentialFileNotJSONObject").suppressFor(60).detail("File", path); - - } catch(Error &e) { - if(e.code() != error_code_actor_cancelled) - TraceEvent(SevWarn, errorEventType).error(e).suppressFor(60).detail("File", path); - } - - return Optional(); -} - -ACTOR Future updateSecret_impl(Reference b) { - std::vector *pFiles = (std::vector *)g_network->global(INetwork::enBlobCredentialFiles); - if(pFiles == nullptr) - return Void(); - - state std::vector>> reads; - for(auto &f : *pFiles) - reads.push_back(tryReadJSONFile(f)); - - wait(waitForAll(reads)); - - std::string key = b->key + "@" + b->host; - - int invalid = 0; - - for(auto &f : reads) { - // If value not present then the credentials file wasn't readable or valid. Continue to check other results. - if(!f.get().present()) { - ++invalid; - continue; - } - - JSONDoc doc(f.get().get()); - if(doc.has("accounts") && doc.last().type() == json_spirit::obj_type) { - JSONDoc accounts(doc.last().get_obj()); - if(accounts.has(key, false) && accounts.last().type() == json_spirit::obj_type) { - JSONDoc account(accounts.last()); - std::string secret; - // Once we find a matching account, use it. - if(account.tryGet("secret", secret)) { - b->secret = secret; - return Void(); - } - } - } - } - - // If any sources were invalid - if(invalid > 0) - throw backup_auth_unreadable(); - - // All sources were valid but didn't contain the desired info - throw backup_auth_missing(); -} - -Future BlobStoreEndpoint::updateSecret() { - return updateSecret_impl(Reference::addRef(this)); -} - -ACTOR Future connect_impl(Reference b) { - // First try to get a connection from the pool - while(!b->connectionPool.empty()) { - BlobStoreEndpoint::ReusableConnection rconn = b->connectionPool.front(); - b->connectionPool.pop(); - - // If the connection expires in the future then return it - if(rconn.expirationTime > now()) { - TraceEvent("BlobStoreEndpointReusingConnected").suppressFor(60) - .detail("RemoteEndpoint", rconn.conn->getPeerAddress()) - .detail("ExpiresIn", rconn.expirationTime - now()); - return rconn; - } - } - std::string service = b->service; - if (service.empty()) - service = b->knobs.secure_connection ? "https" : "http"; - state Reference conn = wait(INetworkConnections::net()->connect(b->host, service, b->knobs.secure_connection ? true : false)); - wait(conn->connectHandshake()); - - TraceEvent("BlobStoreEndpointNewConnection").suppressFor(60) - .detail("RemoteEndpoint", conn->getPeerAddress()) - .detail("ExpiresIn", b->knobs.max_connection_life); - - if(b->lookupSecret) - wait(b->updateSecret()); - - return BlobStoreEndpoint::ReusableConnection({conn, now() + b->knobs.max_connection_life}); -} - -Future BlobStoreEndpoint::connect() { - return connect_impl(Reference::addRef(this)); -} - -void BlobStoreEndpoint::returnConnection(ReusableConnection &rconn) { - // If it expires in the future then add it to the pool in the front - if(rconn.expirationTime > now()) - connectionPool.push(rconn); - rconn.conn = Reference(); -} - -// Do a request, get a Response. -// Request content is provided as UnsentPacketQueue *pContent which will be depleted as bytes are sent but the queue itself must live for the life of this actor -// and be destroyed by the caller -ACTOR Future> doRequest_impl(Reference bstore, std::string verb, std::string resource, HTTP::Headers headers, UnsentPacketQueue *pContent, int contentLen, std::set successCodes) { - state UnsentPacketQueue contentCopy; - - headers["Content-Length"] = format("%d", contentLen); - headers["Host"] = bstore->host; - headers["Accept"] = "application/xml"; - - // Merge extraHeaders into headers - for(auto &kv : bstore->extraHeaders) { - std::string &fieldValue = headers[kv.first]; - if(!fieldValue.empty()) { - fieldValue.append(","); - } - fieldValue.append(kv.second); - } - - // For requests with content to upload, the request timeout should be at least twice the amount of time - // it would take to upload the content given the upload bandwidth and concurrency limits. - int bandwidthThisRequest = 1 + bstore->knobs.max_send_bytes_per_second / bstore->knobs.concurrent_uploads; - int contentUploadSeconds = contentLen / bandwidthThisRequest; - state int requestTimeout = std::max(bstore->knobs.request_timeout_min, 3 * contentUploadSeconds); - - wait(bstore->concurrentRequests.take()); - state FlowLock::Releaser globalReleaser(bstore->concurrentRequests, 1); - - state int maxTries = std::min(bstore->knobs.request_tries, bstore->knobs.connect_tries); - state int thisTry = 1; - state double nextRetryDelay = 2.0; - - loop { - state Optional err; - state Optional remoteAddress; - state bool connectionEstablished = false; - state Reference r; - - try { - // Start connecting - Future frconn = bstore->connect(); - - // Make a shallow copy of the queue by calling addref() on each buffer in the chain and then prepending that chain to contentCopy - contentCopy.discardAll(); - if(pContent != nullptr) { - PacketBuffer *pFirst = pContent->getUnsent(); - PacketBuffer *pLast = nullptr; - for(PacketBuffer *p = pFirst; p != nullptr; p = p->nextPacketBuffer()) { - p->addref(); - // Also reset the sent count on each buffer - p->bytes_sent = 0; - pLast = p; - } - contentCopy.prependWriteBuffer(pFirst, pLast); - } - - // Finish connecting, do request - state BlobStoreEndpoint::ReusableConnection rconn = wait(timeoutError(frconn, bstore->knobs.connect_timeout)); - connectionEstablished = true; - - // Finish/update the request headers (which includes Date header) - // This must be done AFTER the connection is ready because if credentials are coming from disk they are refreshed - // when a new connection is established and setAuthHeaders() would need the updated secret. - bstore->setAuthHeaders(verb, resource, headers); - remoteAddress = rconn.conn->getPeerAddress(); - wait(bstore->requestRate->getAllowance(1)); - Reference _r = wait(timeoutError(HTTP::doRequest(rconn.conn, verb, resource, headers, &contentCopy, contentLen, bstore->sendRate, &bstore->s_stats.bytes_sent, bstore->recvRate), requestTimeout)); - r = _r; - - // Since the response was parsed successfully (which is why we are here) reuse the connection unless we received the "Connection: close" header. - if(r->headers["Connection"] != "close") - bstore->returnConnection(rconn); - rconn.conn.clear(); - - } catch(Error &e) { - if(e.code() == error_code_actor_cancelled) - throw; - err = e; - } - - // If err is not present then r is valid. - // If r->code is in successCodes then record the successful request and return r. - if(!err.present() && successCodes.count(r->code) != 0) { - bstore->s_stats.requests_successful++; - return r; - } - - // Otherwise, this request is considered failed. Update failure count. - bstore->s_stats.requests_failed++; - - // All errors in err are potentially retryable as well as certain HTTP response codes... - bool retryable = err.present() || r->code == 500 || r->code == 502 || r->code == 503 || r->code == 429; - - // But only if our previous attempt was not the last allowable try. - retryable = retryable && (thisTry < maxTries); - - TraceEvent event(SevWarn, retryable ? "BlobStoreEndpointRequestFailedRetryable" : "BlobStoreEndpointRequestFailed"); - - // Attach err to trace event if present, otherwise extract some stuff from the response - if(err.present()) { - event.error(err.get()); - } - event.suppressFor(60); - if(!err.present()) { - event.detail("ResponseCode", r->code); - } - - event.detail("ConnectionEstablished", connectionEstablished); - - if(remoteAddress.present()) - event.detail("RemoteEndpoint", remoteAddress.get()); - else - event.detail("RemoteHost", bstore->host); - - event.detail("Verb", verb) - .detail("Resource", resource) - .detail("ThisTry", thisTry); - - // If r is not valid or not code 429 then increment the try count. 429's will not count against the attempt limit. - if(!r || r->code != 429) - ++thisTry; - - // We will wait delay seconds before the next retry, start with nextRetryDelay. - double delay = nextRetryDelay; - // Double but limit the *next* nextRetryDelay. - nextRetryDelay = std::min(nextRetryDelay * 2, 60.0); - - if(retryable) { - // If r is valid then obey the Retry-After response header if present. - if(r) { - auto iRetryAfter = r->headers.find("Retry-After"); - if(iRetryAfter != r->headers.end()) { - event.detail("RetryAfterHeader", iRetryAfter->second); - char *pEnd; - double retryAfter = strtod(iRetryAfter->second.c_str(), &pEnd); - if(*pEnd) // If there were other characters then don't trust the parsed value, use a probably safe value of 5 minutes. - retryAfter = 300; - // Update delay - delay = std::max(delay, retryAfter); - } - } - - // Log the delay then wait. - event.detail("RetryDelay", delay); - wait(::delay(delay)); - } - else { - // We can't retry, so throw something. - - // This error code means the authentication header was not accepted, likely the account or key is wrong. - if(r && r->code == 406) - throw http_not_accepted(); - - if(r && r->code == 401) - throw http_auth_failed(); - - // Recognize and throw specific errors - if(err.present()) { - int code = err.get().code(); - - // If we get a timed_out error during the the connect() phase, we'll call that connection_failed despite the fact that - // there was technically never a 'connection' to begin with. It differentiates between an active connection - // timing out vs a connection timing out, though not between an active connection failing vs connection attempt failing. - // TODO: Add more error types? - if(code == error_code_timed_out && !connectionEstablished) - throw connection_failed(); - - if(code == error_code_timed_out || code == error_code_connection_failed || code == error_code_lookup_failed) - throw err.get(); - } - - throw http_request_failed(); - } - } -} - -Future> BlobStoreEndpoint::doRequest(std::string const &verb, std::string const &resource, const HTTP::Headers &headers, UnsentPacketQueue *pContent, int contentLen, std::set successCodes) { - return doRequest_impl(Reference::addRef(this), verb, resource, headers, pContent, contentLen, successCodes); -} - -ACTOR Future listObjectsStream_impl(Reference bstore, std::string bucket, PromiseStream results, Optional prefix, Optional delimiter, int maxDepth, std::function recurseFilter) { - // Request 1000 keys at a time, the maximum allowed - state std::string resource = "/"; - resource.append(bucket); - resource.append("/?max-keys=1000"); - if(prefix.present()) - resource.append("&prefix=").append(HTTP::urlEncode(prefix.get())); - if(delimiter.present()) - resource.append("&delimiter=").append(HTTP::urlEncode(std::string(1, delimiter.get()))); - resource.append("&marker="); - state std::string lastFile; - state bool more = true; - - state std::vector> subLists; - - while(more) { - wait(bstore->concurrentLists.take()); - state FlowLock::Releaser listReleaser(bstore->concurrentLists, 1); - - HTTP::Headers headers; - state std::string fullResource = resource + HTTP::urlEncode(lastFile); - lastFile.clear(); - Reference r = wait(bstore->doRequest("GET", fullResource, headers, nullptr, 0, {200})); - listReleaser.release(); - - try { - BlobStoreEndpoint::ListResult listResult; - xml_document<> doc; - - // Copy content because rapidxml will modify it during parse - std::string content = r->content; - doc.parse<0>((char *)content.c_str()); - - // There should be exactly one node - xml_node<> *result = doc.first_node(); - if(result == nullptr || strcmp(result->name(), "ListBucketResult") != 0) { - throw http_bad_response(); - } - - xml_node<> *n = result->first_node(); - while(n != nullptr) { - const char *name = n->name(); - if(strcmp(name, "IsTruncated") == 0) { - const char *val = n->value(); - if(strcmp(val, "true") == 0) { - more = true; - } - else if(strcmp(val, "false") == 0) { - more = false; - } - else { - throw http_bad_response(); - } - } - else if(strcmp(name, "Contents") == 0) { - BlobStoreEndpoint::ObjectInfo object; - - xml_node<> *key = n->first_node("Key"); - if(key == nullptr) { - throw http_bad_response(); - } - object.name = key->value(); - - xml_node<> *size = n->first_node("Size"); - if(size == nullptr) { - throw http_bad_response(); - } - object.size = strtoull(size->value(), nullptr, 10); - - listResult.objects.push_back(object); - } - else if(strcmp(name, "CommonPrefixes") == 0) { - xml_node<> *prefixNode = n->first_node("Prefix"); - while(prefixNode != nullptr) { - const char *prefix = prefixNode->value(); - // If recursing, queue a sub-request, otherwise add the common prefix to the result. - if(maxDepth > 0) { - // If there is no recurse filter or the filter returns true then start listing the subfolder - if(!recurseFilter || recurseFilter(prefix)) { - subLists.push_back(bstore->listObjectsStream(bucket, results, prefix, delimiter, maxDepth - 1, recurseFilter)); - } - // Since prefix will not be in the final listResult below we have to set lastFile here in case it's greater than the last object - lastFile = prefix; - } - else { - listResult.commonPrefixes.push_back(prefix); - } - - prefixNode = prefixNode->next_sibling("Prefix"); - } - } - - n = n->next_sibling(); - } - - results.send(listResult); - - if(more) { - // lastFile will be the last commonprefix for which a sublist was started, if any. - // If there are any objects and the last one is greater than lastFile then make it the new lastFile. - if(!listResult.objects.empty() && lastFile < listResult.objects.back().name) { - lastFile = listResult.objects.back().name; - } - // If there are any common prefixes and the last one is greater than lastFile then make it the new lastFile. - if(!listResult.commonPrefixes.empty() && lastFile < listResult.commonPrefixes.back()) { - lastFile = listResult.commonPrefixes.back(); - } - - // If lastFile is empty at this point, something has gone wrong. - if(lastFile.empty()) { - TraceEvent(SevWarn, "BlobStoreEndpointListNoNextMarker").suppressFor(60).detail("Resource", fullResource); - throw http_bad_response(); - } - } - } catch(Error &e) { - if(e.code() != error_code_actor_cancelled) - TraceEvent(SevWarn, "BlobStoreEndpointListResultParseError").error(e).suppressFor(60).detail("Resource", fullResource); - throw http_bad_response(); - } - } - - wait(waitForAll(subLists)); - - return Void(); -} - -Future BlobStoreEndpoint::listObjectsStream(std::string const &bucket, PromiseStream results, Optional prefix, Optional delimiter, int maxDepth, std::function recurseFilter) { - return listObjectsStream_impl(Reference::addRef(this), bucket, results, prefix, delimiter, maxDepth, recurseFilter); -} - -ACTOR Future listObjects_impl(Reference bstore, std::string bucket, Optional prefix, Optional delimiter, int maxDepth, std::function recurseFilter) { - state BlobStoreEndpoint::ListResult results; - state PromiseStream resultStream; - state Future done = bstore->listObjectsStream(bucket, resultStream, prefix, delimiter, maxDepth, recurseFilter); - // Wrap done in an actor which sends end_of_stream because list does not so that many lists can write to the same stream - done = map(done, [=](Void) { - resultStream.sendError(end_of_stream()); - return Void(); - }); - - try { - loop { - choose { - // Throw if done throws, otherwise don't stop until end_of_stream - when(wait(done)) { - done = Never(); - } - - when(BlobStoreEndpoint::ListResult info = waitNext(resultStream.getFuture())) { - results.commonPrefixes.insert(results.commonPrefixes.end(), info.commonPrefixes.begin(), info.commonPrefixes.end()); - results.objects.insert(results.objects.end(), info.objects.begin(), info.objects.end()); - } - } - } - } catch(Error &e) { - if(e.code() != error_code_end_of_stream) - throw; - } - - return results; -} - -Future BlobStoreEndpoint::listObjects(std::string const &bucket, Optional prefix, Optional delimiter, int maxDepth, std::function recurseFilter) { - return listObjects_impl(Reference::addRef(this), bucket, prefix, delimiter, maxDepth, recurseFilter); -} - -ACTOR Future> listBuckets_impl(Reference bstore) { - state std::string resource = "/?marker="; - state std::string lastName; - state bool more = true; - state std::vector buckets; - - while(more) { - wait(bstore->concurrentLists.take()); - state FlowLock::Releaser listReleaser(bstore->concurrentLists, 1); - - HTTP::Headers headers; - state std::string fullResource = resource + HTTP::urlEncode(lastName); - Reference r = wait(bstore->doRequest("GET", fullResource, headers, nullptr, 0, {200})); - listReleaser.release(); - - try { - xml_document<> doc; - - // Copy content because rapidxml will modify it during parse - std::string content = r->content; - doc.parse<0>((char *)content.c_str()); - - // There should be exactly one node - xml_node<> *result = doc.first_node(); - if(result == nullptr || strcmp(result->name(), "ListAllMyBucketsResult") != 0) { - throw http_bad_response(); - } - - more = false; - xml_node<> *truncated = result->first_node("IsTruncated"); - if(truncated != nullptr && strcmp(truncated->value(), "true") == 0) { - more = true; - } - - xml_node<> *bucketsNode = result->first_node("Buckets"); - if(bucketsNode != nullptr) { - xml_node<> *bucketNode = bucketsNode->first_node("Bucket"); - while(bucketNode != nullptr) { - xml_node<> *nameNode = bucketNode->first_node("Name"); - if(nameNode == nullptr) { - throw http_bad_response(); - } - const char *name = nameNode->value(); - buckets.push_back(name); - - bucketNode = bucketNode->next_sibling("Bucket"); - } - } - - if(more) { - lastName = buckets.back(); - } - - } catch(Error &e) { - if(e.code() != error_code_actor_cancelled) - TraceEvent(SevWarn, "BlobStoreEndpointListBucketResultParseError").error(e).suppressFor(60).detail("Resource", fullResource); - throw http_bad_response(); - } - } - - return buckets; -} - -Future> BlobStoreEndpoint::listBuckets() { - return listBuckets_impl(Reference::addRef(this)); -} - -std::string BlobStoreEndpoint::hmac_sha1(std::string const &msg) { - std::string key = secret; - - // Hash key to shorten it if it is longer than SHA1 block size - if(key.size() > 64) { - key = SHA1::from_string(key); - } - - // Pad key up to SHA1 block size if needed - key.append(64 - key.size(), '\0'); - - std::string kipad = key; - for(int i = 0; i < 64; ++i) - kipad[i] ^= '\x36'; - - std::string kopad = key; - for(int i = 0; i < 64; ++i) - kopad[i] ^= '\x5c'; - - kipad.append(msg); - std::string hkipad = SHA1::from_string(kipad); - kopad.append(hkipad); - return SHA1::from_string(kopad); -} - -void BlobStoreEndpoint::setAuthHeaders(std::string const &verb, std::string const &resource, HTTP::Headers& headers) { - std::string &date = headers["Date"]; - - char dateBuf[20]; - time_t ts; - time(&ts); - // ISO 8601 format YYYYMMDD'T'HHMMSS'Z' - strftime(dateBuf, 20, "%Y%m%dT%H%M%SZ", gmtime(&ts)); - date = dateBuf; - - std::string msg; - msg.append(verb); - msg.append("\n"); - auto contentMD5 = headers.find("Content-MD5"); - if(contentMD5 != headers.end()) - msg.append(contentMD5->second); - msg.append("\n"); - auto contentType = headers.find("Content-Type"); - if(contentType != headers.end()) - msg.append(contentType->second); - msg.append("\n"); - msg.append(date); - msg.append("\n"); - for(auto h : headers) { - StringRef name = h.first; - if(name.startsWith(LiteralStringRef("x-amz")) || - name.startsWith(LiteralStringRef("x-icloud"))) { - msg.append(h.first); - msg.append(":"); - msg.append(h.second); - msg.append("\n"); - } - } - - msg.append(resource); - if(verb == "GET") { - size_t q = resource.find_last_of('?'); - if(q != resource.npos) - msg.resize(msg.size() - (resource.size() - q)); - } - - std::string sig = base64::encoder::from_string(hmac_sha1(msg)); - // base64 encoded blocks end in \n so remove it. - sig.resize(sig.size() - 1); - std::string auth = "AWS "; - auth.append(key); - auth.append(":"); - auth.append(sig); - headers["Authorization"] = auth; -} - -ACTOR Future readEntireFile_impl(Reference bstore, std::string bucket, std::string object) { - wait(bstore->requestRateRead->getAllowance(1)); - - std::string resource = std::string("/") + bucket + "/" + object; - HTTP::Headers headers; - Reference r = wait(bstore->doRequest("GET", resource, headers, nullptr, 0, {200, 404})); - if(r->code == 404) - throw file_not_found(); - return r->content; -} - -Future BlobStoreEndpoint::readEntireFile(std::string const &bucket, std::string const &object) { - return readEntireFile_impl(Reference::addRef(this), bucket, object); -} - -ACTOR Future writeEntireFileFromBuffer_impl(Reference bstore, std::string bucket, std::string object, UnsentPacketQueue *pContent, int contentLen, std::string contentMD5) { - if(contentLen > bstore->knobs.multipart_max_part_size) - throw file_too_large(); - - wait(bstore->requestRateWrite->getAllowance(1)); - wait(bstore->concurrentUploads.take()); - state FlowLock::Releaser uploadReleaser(bstore->concurrentUploads, 1); - - std::string resource = std::string("/") + bucket + "/" + object; - HTTP::Headers headers; - // Send MD5 sum for content so blobstore can verify it - headers["Content-MD5"] = contentMD5; - state Reference r = wait(bstore->doRequest("PUT", resource, headers, pContent, contentLen, {200})); - - // For uploads, Blobstore returns an MD5 sum of uploaded content so check it. - if (!r->verifyMD5(false, contentMD5)) - throw checksum_failed(); - - return Void(); -} - -ACTOR Future writeEntireFile_impl(Reference bstore, std::string bucket, std::string object, std::string content) { - state UnsentPacketQueue packets; - PacketWriter pw(packets.getWriteBuffer(content.size()), nullptr, Unversioned()); - pw.serializeBytes(content); - if(content.size() > bstore->knobs.multipart_max_part_size) - throw file_too_large(); - - // Yield because we may have just had to copy several MB's into packet buffer chain and next we have to calculate an MD5 sum of it. - // TODO: If this actor is used to send large files then combine the summing and packetization into a loop with a yield() every 20k or so. - wait(yield()); - - MD5_CTX sum; - ::MD5_Init(&sum); - ::MD5_Update(&sum, content.data(), content.size()); - std::string sumBytes; - sumBytes.resize(16); - ::MD5_Final((unsigned char *)sumBytes.data(), &sum); - std::string contentMD5 = base64::encoder::from_string(sumBytes); - contentMD5.resize(contentMD5.size() - 1); - - wait(writeEntireFileFromBuffer_impl(bstore, bucket, object, &packets, content.size(), contentMD5)); - return Void(); -} - -Future BlobStoreEndpoint::writeEntireFile(std::string const &bucket, std::string const &object, std::string const &content) { - return writeEntireFile_impl(Reference::addRef(this), bucket, object, content); -} - -Future BlobStoreEndpoint::writeEntireFileFromBuffer(std::string const &bucket, std::string const &object, UnsentPacketQueue *pContent, int contentLen, std::string const &contentMD5) { - return writeEntireFileFromBuffer_impl(Reference::addRef(this), bucket, object, pContent, contentLen, contentMD5); -} - -ACTOR Future readObject_impl(Reference bstore, std::string bucket, std::string object, void *data, int length, int64_t offset) { - if(length <= 0) - return 0; - wait(bstore->requestRateRead->getAllowance(1)); - - std::string resource = std::string("/") + bucket + "/" + object; - HTTP::Headers headers; - headers["Range"] = format("bytes=%lld-%lld", offset, offset + length - 1); - Reference r = wait(bstore->doRequest("GET", resource, headers, nullptr, 0, {200, 206, 404})); - if(r->code == 404) - throw file_not_found(); - if(r->contentLen != r->content.size()) // Double check that this wasn't a header-only response, probably unnecessary - throw io_error(); - // Copy the output bytes, server could have sent more or less bytes than requested so copy at most length bytes - memcpy(data, r->content.data(), std::min(r->contentLen, length)); - return r->contentLen; -} - -Future BlobStoreEndpoint::readObject(std::string const &bucket, std::string const &object, void *data, int length, int64_t offset) { - return readObject_impl(Reference::addRef(this), bucket, object, data, length, offset); -} - -ACTOR static Future beginMultiPartUpload_impl(Reference bstore, std::string bucket, std::string object) { - wait(bstore->requestRateWrite->getAllowance(1)); - - std::string resource = std::string("/") + bucket + "/" + object + "?uploads"; - HTTP::Headers headers; - Reference r = wait(bstore->doRequest("POST", resource, headers, nullptr, 0, {200})); - - try { - xml_document<> doc; - // Copy content because rapidxml will modify it during parse - std::string content = r->content; - - doc.parse<0>((char *)content.c_str()); - - // There should be exactly one node - xml_node<> *result = doc.first_node(); - if(result != nullptr && strcmp(result->name(), "InitiateMultipartUploadResult") == 0) { - xml_node<> *id = result->first_node("UploadId"); - if(id != nullptr) { - return id->value(); - } - } - } catch(...) { - } - throw http_bad_response(); -} - -Future BlobStoreEndpoint::beginMultiPartUpload(std::string const &bucket, std::string const &object) { - return beginMultiPartUpload_impl(Reference::addRef(this), bucket, object); -} - -ACTOR Future uploadPart_impl(Reference bstore, std::string bucket, std::string object, std::string uploadID, unsigned int partNumber, UnsentPacketQueue *pContent, int contentLen, std::string contentMD5) { - wait(bstore->requestRateWrite->getAllowance(1)); - wait(bstore->concurrentUploads.take()); - state FlowLock::Releaser uploadReleaser(bstore->concurrentUploads, 1); - - std::string resource = format("/%s/%s?partNumber=%d&uploadId=%s", bucket.c_str(), object.c_str(), partNumber, uploadID.c_str()); - HTTP::Headers headers; - // Send MD5 sum for content so blobstore can verify it - headers["Content-MD5"] = contentMD5; - state Reference r = wait(bstore->doRequest("PUT", resource, headers, pContent, contentLen, {200})); - // TODO: In the event that the client times out just before the request completes (so the client is unaware) then the next retry - // will see error 400. That could be detected and handled gracefully by retrieving the etag for the successful request. - - // For uploads, Blobstore returns an MD5 sum of uploaded content so check it. - if (!r->verifyMD5(false, contentMD5)) - throw checksum_failed(); - - // No etag -> bad response. - std::string etag = r->headers["ETag"]; - if(etag.empty()) - throw http_bad_response(); - - return etag; -} - -Future BlobStoreEndpoint::uploadPart(std::string const &bucket, std::string const &object, std::string const &uploadID, unsigned int partNumber, UnsentPacketQueue *pContent, int contentLen, std::string const &contentMD5) { - return uploadPart_impl(Reference::addRef(this), bucket, object, uploadID, partNumber, pContent, contentLen, contentMD5); -} - -ACTOR Future finishMultiPartUpload_impl(Reference bstore, std::string bucket, std::string object, std::string uploadID, BlobStoreEndpoint::MultiPartSetT parts) { - state UnsentPacketQueue part_list; // NonCopyable state var so must be declared at top of actor - wait(bstore->requestRateWrite->getAllowance(1)); - - std::string manifest = ""; - for(auto &p : parts) - manifest += format("%d%s\n", p.first, p.second.c_str()); - manifest += ""; - - std::string resource = format("/%s/%s?uploadId=%s", bucket.c_str(), object.c_str(), uploadID.c_str()); - HTTP::Headers headers; - PacketWriter pw(part_list.getWriteBuffer(manifest.size()), nullptr, Unversioned()); - pw.serializeBytes(manifest); - Reference r = wait(bstore->doRequest("POST", resource, headers, &part_list, manifest.size(), {200})); - // TODO: In the event that the client times out just before the request completes (so the client is unaware) then the next retry - // will see error 400. That could be detected and handled gracefully by HEAD'ing the object before upload to get its (possibly - // nonexistent) eTag, then if an error 400 is seen then retrieve the eTag again and if it has changed then consider the finish complete. - return Void(); -} - -Future BlobStoreEndpoint::finishMultiPartUpload(std::string const &bucket, std::string const &object, std::string const &uploadID, MultiPartSetT const &parts) { - return finishMultiPartUpload_impl(Reference::addRef(this), bucket, object, uploadID, parts); -} From 913401aaee31aab216a83f8a1f085a67b3d62940 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 26 Dec 2020 16:30:00 -0400 Subject: [PATCH 112/261] Move SendBufferIterator out of network.h This class is only needed for implementation in Net2.actor.cpp and SimExternalConnection.actor.cpp, so this class should not be included everywhere network.h is included --- fdbrpc/SimExternalConnection.actor.cpp | 1 + flow/CMakeLists.txt | 1 + flow/Net2.actor.cpp | 33 +++++++++--------- flow/SendBufferIterator.h | 48 ++++++++++++++++++++++++++ flow/network.h | 20 ----------- 5 files changed, 67 insertions(+), 36 deletions(-) create mode 100644 flow/SendBufferIterator.h diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index feca41d349..15779a53f0 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -26,6 +26,7 @@ #include "fdbclient/FDBTypes.h" #include "fdbrpc/SimExternalConnection.h" #include "flow/Net2Packet.h" +#include "flow/SendBufferIterator.h" #include "flow/UnitTest.h" #include "flow/actorcompiler.h" // This must be the last #include. diff --git a/flow/CMakeLists.txt b/flow/CMakeLists.txt index f791a35831..31dc72cbc2 100644 --- a/flow/CMakeLists.txt +++ b/flow/CMakeLists.txt @@ -47,6 +47,7 @@ set(FLOW_SRCS Platform.h Profiler.actor.cpp Profiler.h + SendBufferIterator.h SignalSafeUnwind.cpp SignalSafeUnwind.h SimpleOpt.h diff --git a/flow/Net2.actor.cpp b/flow/Net2.actor.cpp index 913ea9f0b7..f26393a29e 100644 --- a/flow/Net2.actor.cpp +++ b/flow/Net2.actor.cpp @@ -43,6 +43,7 @@ #include "flow/AsioReactor.h" #include "flow/Profiler.h" #include "flow/ProtocolVersion.h" +#include "flow/SendBufferIterator.h" #include "flow/TLSConfig.actor.h" #include "flow/genericactors.actor.h" #include "flow/Util.h" @@ -1875,6 +1876,22 @@ void ASIOReactor::wake() { } // namespace N2 +SendBufferIterator::SendBufferIterator(SendBuffer const* p, int limit) : p(p), limit(limit) { + ASSERT(limit > 0); +} + +void SendBufferIterator::operator++() { + limit -= p->bytes_written - p->bytes_sent; + if (limit > 0) + p = p->next; + else + p = nullptr; +} + +boost::asio::const_buffer SendBufferIterator::operator*() const { + return boost::asio::const_buffer(p->data() + p->bytes_sent, std::min(limit, p->bytes_written - p->bytes_sent)); +} + INetwork* newNet2(const TLSConfig& tlsConfig, bool useThreadPool, bool useMetrics) { try { N2::g_net2 = new N2::Net2(tlsConfig, useThreadPool, useMetrics); @@ -2034,19 +2051,3 @@ void net2_test() { printf(" Used: %lld\n", FastAllocator<4096>::getTotalMemory()); */ }; - -SendBufferIterator::SendBufferIterator(SendBuffer const* p, int limit) : p(p), limit(limit) { - ASSERT(limit > 0); -} - -void SendBufferIterator::operator++() { - limit -= p->bytes_written - p->bytes_sent; - if (limit > 0) - p = p->next; - else - p = nullptr; -} - -boost::asio::const_buffer SendBufferIterator::operator*() const { - return boost::asio::const_buffer(p->data() + p->bytes_sent, std::min(limit, p->bytes_written - p->bytes_sent)); -} diff --git a/flow/SendBufferIterator.h b/flow/SendBufferIterator.h new file mode 100644 index 0000000000..001d546265 --- /dev/null +++ b/flow/SendBufferIterator.h @@ -0,0 +1,48 @@ +/* + * SendBufferIterator.h + * + * This source file is part of the FoundationDB open source project + * + * Copyright 2013-2018 Apple Inc. and the FoundationDB project authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __SENDBUFFER_ITERATOR_H__ +#define __SENDBUFFER_ITERATOR_H__ + +#include "flow/serialize.h" + +#include + +class SendBufferIterator { + SendBuffer const* p; + int limit; + +public: + using value_type = boost::asio::const_buffer; + using iterator_category = std::forward_iterator_tag; + using difference_type = size_t; + using pointer = boost::asio::const_buffer*; + using reference = boost::asio::const_buffer&; + + SendBufferIterator(SendBuffer const* p = nullptr, int limit = std::numeric_limits::max()); + + bool operator==(SendBufferIterator const& r) const { return p == r.p; } + bool operator!=(SendBufferIterator const& r) const { return p != r.p; } + void operator++(); + + boost::asio::const_buffer operator*() const; +}; + +#endif diff --git a/flow/network.h b/flow/network.h index 766d1fa9cf..c028c076ba 100644 --- a/flow/network.h +++ b/flow/network.h @@ -603,24 +603,4 @@ public: // Returns the interface that should be used to make and accept socket connections }; -// TODO: Move into header file that is included only where necessary -struct SendBufferIterator { - typedef boost::asio::const_buffer value_type; - typedef std::forward_iterator_tag iterator_category; - typedef size_t difference_type; - typedef boost::asio::const_buffer* pointer; - typedef boost::asio::const_buffer& reference; - - SendBuffer const* p; - int limit; - - SendBufferIterator(SendBuffer const* p = nullptr, int limit = std::numeric_limits::max()); - - bool operator==(SendBufferIterator const& r) const { return p == r.p; } - bool operator!=(SendBufferIterator const& r) const { return p != r.p; } - void operator++(); - - boost::asio::const_buffer operator*() const; -}; - #endif From abb7cd4e169d2b199af393fc54c208c10ca2be61 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 26 Dec 2020 16:32:02 -0400 Subject: [PATCH 113/261] Use platform::getEnvironmentVar instead of std::getenv --- fdbserver/workloads/BlobStoreWorkload.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fdbserver/workloads/BlobStoreWorkload.h b/fdbserver/workloads/BlobStoreWorkload.h index a6ac10121c..390344d30a 100644 --- a/fdbserver/workloads/BlobStoreWorkload.h +++ b/fdbserver/workloads/BlobStoreWorkload.h @@ -28,8 +28,9 @@ inline void updateBackupURL(std::string& backupURL, const std::string& accessKeyEnvVar, const std::string& accessKeyPlaceholder, const std::string& secretKeyEnvVar, const std::string& secretKeyPlaceholder) { - std::string accessKey = std::getenv(accessKeyEnvVar.c_str()); - std::string secretKey = std::getenv(secretKeyEnvVar.c_str()); + std::string accessKey, secretKey; + ASSERT(platform::getEnvironmentVar(accessKeyEnvVar.c_str(), accessKey)); + ASSERT(platform::getEnvironmentVar(secretKeyEnvVar.c_str(), secretKey)); { auto pos = backupURL.find(accessKeyPlaceholder.c_str()); backupURL.replace(pos, accessKeyPlaceholder.size(), accessKey); From 33ec968d5a19354f37b0b52807b838130f058c38 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 26 Dec 2020 18:30:44 -0400 Subject: [PATCH 114/261] Mark expectedSize methods const --- fdbclient/StorageServerInterface.h | 2 +- fdbserver/KeyValueStoreMemory.actor.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fdbclient/StorageServerInterface.h b/fdbclient/StorageServerInterface.h index bc340727fd..a3e421a128 100644 --- a/fdbclient/StorageServerInterface.h +++ b/fdbclient/StorageServerInterface.h @@ -451,7 +451,7 @@ struct ReadHotRangeWithMetrics { ReadHotRangeWithMetrics(Arena& arena, const ReadHotRangeWithMetrics& rhs) : keys(arena, rhs.keys), density(rhs.density), readBandwidth(rhs.readBandwidth) {} - int expectedSize() { return keys.expectedSize() + sizeof(density) + sizeof(readBandwidth); } + int expectedSize() const { return keys.expectedSize() + sizeof(density) + sizeof(readBandwidth); } template void serialize(Ar& ar) { diff --git a/fdbserver/KeyValueStoreMemory.actor.cpp b/fdbserver/KeyValueStoreMemory.actor.cpp index fa2d47dbcd..2232fb27ac 100644 --- a/fdbserver/KeyValueStoreMemory.actor.cpp +++ b/fdbserver/KeyValueStoreMemory.actor.cpp @@ -279,7 +279,7 @@ private: StringRef p1, p2; OpRef() {} OpRef(Arena& a, OpRef const& o) : op(o.op), p1(a, o.p1), p2(a, o.p2) {} - size_t expectedSize() { return p1.expectedSize() + p2.expectedSize(); } + size_t expectedSize() const { return p1.expectedSize() + p2.expectedSize(); } }; struct OpHeader { int op; From 26a4884eef2a8db12df98416018f6eb3edca1246 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 26 Dec 2020 19:23:01 -0400 Subject: [PATCH 115/261] Mark TCMachineTeamInfo::size const --- fdbserver/DataDistribution.actor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fdbserver/DataDistribution.actor.cpp b/fdbserver/DataDistribution.actor.cpp index 3c140e0e1f..c1b9074f2a 100644 --- a/fdbserver/DataDistribution.actor.cpp +++ b/fdbserver/DataDistribution.actor.cpp @@ -139,7 +139,7 @@ public: sort(machineIDs.begin(), machineIDs.end()); } - int size() { + int size() const { ASSERT(machines.size() == machineIDs.size()); return machineIDs.size(); } From 19816ccdbf14dfdc2615771ec50273358983dff0 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 26 Dec 2020 19:37:54 -0400 Subject: [PATCH 116/261] Improve DataDistribution const-correctness --- fdbserver/DataDistribution.actor.cpp | 18 +++++++++--------- fdbserver/DataDistribution.actor.h | 12 ++++++------ fdbserver/DataDistributionTracker.actor.cpp | 7 ++++--- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/fdbserver/DataDistribution.actor.cpp b/fdbserver/DataDistribution.actor.cpp index c1b9074f2a..4638541655 100644 --- a/fdbserver/DataDistribution.actor.cpp +++ b/fdbserver/DataDistribution.actor.cpp @@ -108,15 +108,15 @@ struct TCMachineInfo : public ReferenceCounted { machineID = locality.zoneId().get(); } - std::string getServersIDStr() { + std::string getServersIDStr() const { std::stringstream ss; if (serversOnMachine.empty()) return "[unset]"; - for (auto& server : serversOnMachine) { + for (const auto& server : serversOnMachine) { ss << server->id.toString() << " "; } - return ss.str(); + return std::move(ss).str(); } }; @@ -144,16 +144,16 @@ public: return machineIDs.size(); } - std::string getMachineIDsStr() { + std::string getMachineIDsStr() const { std::stringstream ss; if (machineIDs.empty()) return "[unset]"; - for (auto& id : machineIDs) { + for (const auto& id : machineIDs) { ss << id.contents().toString() << " "; } - return ss.str(); + return std::move(ss).str(); } bool operator==(TCMachineTeamInfo& rhs) const { return this->machineIDs == rhs.machineIDs; } @@ -199,18 +199,18 @@ public: return servers.size(); } vector const& getServerIDs() const override { return serverIDs; } - const vector>& getServers() { return servers; } + const vector>& getServers() const { return servers; } std::string getServerIDsStr() const { std::stringstream ss; if (serverIDs.empty()) return "[unset]"; - for (auto& id : serverIDs) { + for (const auto& id : serverIDs) { ss << id.toString() << " "; } - return ss.str(); + return std::move(ss).str(); } void addDataInFlightToTeam(int64_t delta) override { diff --git a/fdbserver/DataDistribution.actor.h b/fdbserver/DataDistribution.actor.h index d58c0ff40e..0777230b83 100644 --- a/fdbserver/DataDistribution.actor.h +++ b/fdbserver/DataDistribution.actor.h @@ -85,8 +85,8 @@ struct GetTeamRequest { GetTeamRequest() {} GetTeamRequest( bool wantsNewServers, bool wantsTrueBest, bool preferLowerUtilization, bool teamMustHaveShards, double inflightPenalty = 1.0 ) : wantsNewServers( wantsNewServers ), wantsTrueBest( wantsTrueBest ), preferLowerUtilization( preferLowerUtilization ), teamMustHaveShards( teamMustHaveShards ), inflightPenalty( inflightPenalty ) {} - - std::string getDesc() { + + std::string getDesc() const { std::stringstream ss; ss << "WantsNewServers:" << wantsNewServers << " WantsTrueBest:" << wantsTrueBest @@ -94,11 +94,11 @@ struct GetTeamRequest { << " teamMustHaveShards:" << teamMustHaveShards << " inflightPenalty:" << inflightPenalty << ";"; ss << "CompleteSources:"; - for (auto& cs : completeSources) { + for (const auto& cs : completeSources) { ss << cs.toString() << ","; } - return ss.str(); + return std::move(ss).str(); } }; @@ -162,9 +162,9 @@ public: // no longer in the map), the servers will be set for all contained shards and added to all // intersecting shards. - int getNumberOfShards( UID ssID ); + int getNumberOfShards(UID ssID) const; vector getShardsFor( Team team ); - bool hasShards(Team team); + bool hasShards(Team team) const; //The first element of the pair is either the source for non-moving shards or the destination team for in-flight shards //The second element of the pair is all previous sources for in-flight shards diff --git a/fdbserver/DataDistributionTracker.actor.cpp b/fdbserver/DataDistributionTracker.actor.cpp index 4ab1f7f085..e20c51fa11 100644 --- a/fdbserver/DataDistributionTracker.actor.cpp +++ b/fdbserver/DataDistributionTracker.actor.cpp @@ -944,13 +944,14 @@ vector ShardsAffectedByTeamFailure::getShardsFor( Team team ) { return r; } -bool ShardsAffectedByTeamFailure::hasShards(Team team) { +bool ShardsAffectedByTeamFailure::hasShards(Team team) const { auto it = team_shards.lower_bound(std::pair(team, KeyRangeRef())); return it != team_shards.end() && it->first == team; } -int ShardsAffectedByTeamFailure::getNumberOfShards( UID ssID ) { - return storageServerShards[ssID]; +int ShardsAffectedByTeamFailure::getNumberOfShards(UID ssID) const { + auto it = storageServerShards.find(ssID); + return it == storageServerShards.end() ? 0 : it->second; } std::pair,vector> ShardsAffectedByTeamFailure::getTeamsFor( KeyRangeRef keys ) { From c2334a4904a0827b4452e18d7c6935612ba5bcde Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 26 Dec 2020 21:31:45 -0400 Subject: [PATCH 117/261] Improve SkipList const-correctness --- fdbserver/SkipList.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/fdbserver/SkipList.cpp b/fdbserver/SkipList.cpp index b7bcb7cb40..58b08d1efd 100644 --- a/fdbserver/SkipList.cpp +++ b/fdbserver/SkipList.cpp @@ -209,9 +209,9 @@ void sortPoints(std::vector& points) { class SkipList : NonCopyable { private: - static const int MaxLevels = 26; + static constexpr int MaxLevels = 26; - int randomLevel() { + int randomLevel() const { uint32_t i = uint32_t(skfastrand()) >> (32 - (MaxLevels - 1)); int level = 0; while (i & 1) { @@ -225,9 +225,9 @@ private: // Represent a node in the SkipList. The node has multiple (i.e., level) pointers to // other nodes, and keeps a record of the max versions for each level. struct Node { - int level() { return nPointers - 1; } + int level() const { return nPointers - 1; } uint8_t* value() { return end() + nPointers * (sizeof(Node*) + sizeof(Version)); } - int length() { return valueLength; } + int length() const { return valueLength; } // Returns the next node pointer at the given level. Node* getNext(int level) { return *((Node**)end() + level); } @@ -235,7 +235,7 @@ private: void setNext(int level, Node* n) { *((Node**)end() + level) = n; } // Returns the max version at the given level. - Version getMaxVersion(int i) { return ((Version*)(end() + nPointers * sizeof(Node*)))[i]; } + Version getMaxVersion(int i) const { return ((Version*)(end() + nPointers * sizeof(Node*)))[i]; } // Sets the max version at the given level. void setMaxVersion(int i, Version v) { ((Version*)(end() + nPointers * sizeof(Node*)))[i] = v; } @@ -289,9 +289,10 @@ private: } private: - int getNodeSize() { return sizeof(Node) + valueLength + nPointers * (sizeof(Node*) + sizeof(Version)); } + int getNodeSize() const { return sizeof(Node) + valueLength + nPointers * (sizeof(Node*) + sizeof(Version)); } // Returns the first Node* pointer uint8_t* end() { return (uint8_t*)(this + 1); } + uint8_t const* end() const { return (uint8_t const*)(this + 1); } int nPointers, valueLength; }; @@ -365,7 +366,7 @@ public: ; } - force_inline bool finished() { return level == 0; } + force_inline bool finished() const { return level == 0; } // Returns if the finger value is found in the SkipList. force_inline Node* found() const { @@ -636,7 +637,7 @@ private: this->state = 0; } - bool noConflict() { return true; } + bool noConflict() const { return true; } bool conflict() { *result = true; if (conflictingKeyRange != nullptr) conflictingKeyRange->push_back(*cKRArena, indexInTx); From b7f4d69dc4600a1a6cff039c7152957c007567e3 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Fri, 25 Dec 2020 14:55:42 -0400 Subject: [PATCH 118/261] Added VersionedKVPart class to FileDecoder.actor.cpp --- fdbbackup/FileDecoder.actor.cpp | 57 ++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/fdbbackup/FileDecoder.actor.cpp b/fdbbackup/FileDecoder.actor.cpp index f294f724c9..116e61266b 100644 --- a/fdbbackup/FileDecoder.actor.cpp +++ b/fdbbackup/FileDecoder.actor.cpp @@ -201,6 +201,15 @@ struct VersionedMutations { Arena arena; // The arena that contains the mutations. }; +struct VersionedKVPart { + Arena arena; + Version version; + int32_t part; + StringRef kv; + VersionedKVPart(Arena arena, Version version, int32_t part, StringRef kv) + : arena(arena), version(version), part(part), kv(kv) {} +}; + /* * Model a decoding progress for a mutation file. Usage is: * @@ -217,7 +226,10 @@ struct VersionedMutations { * pairs, the decoding of mutation batch needs to look ahead one more pair. So * at any time this object might have two blocks of data in memory. */ -struct DecodeProgress { +class DecodeProgress { + std::vector keyValues; + +public: DecodeProgress() = default; template DecodeProgress(const LogFile& file, U &&values) @@ -229,7 +241,7 @@ struct DecodeProgress { // should call getUnfinishedBuffer() to get these left data. bool finished() { return (eof && keyValues.empty()) || (leftover && !keyValues.empty()); } - std::vector>&& getUnfinishedBuffer() && { return std::move(keyValues); } + std::vector&& getUnfinishedBuffer() && { return std::move(keyValues); } // Returns all mutations of the next version in a batch. Future getNextBatch() { return getNextBatchImpl(this); } @@ -239,7 +251,7 @@ struct DecodeProgress { // The following are private APIs: // Returns true if value contains complete data. - bool isValueComplete(StringRef value) { + static bool isValueComplete(StringRef value) { StringRefReader reader(value, restore_corrupted_data()); reader.consume(); // Consume the includeVersion @@ -260,41 +272,41 @@ struct DecodeProgress { wait(readAndDecodeFile(self)); } - auto& tuple = self->keyValues[0]; - ASSERT(std::get<2>(tuple) == 0); // first part number must be 0. + const auto& kv = self->keyValues[0]; + ASSERT(kv.part == 0); // decode next versions, check if they are continuous parts int idx = 1; // next kv pair in "keyValues" - int bufSize = std::get<3>(tuple).size(); + int bufSize = kv.kv.size(); for (int lastPart = 0; idx < self->keyValues.size(); idx++, lastPart++) { if (idx == self->keyValues.size()) break; - auto next_tuple = self->keyValues[idx]; - if (std::get<1>(tuple) != std::get<1>(next_tuple)) { + const auto& nextKV = self->keyValues[idx]; + if (kv.version != nextKV.version) { break; } - if (lastPart + 1 != std::get<2>(next_tuple)) { - TraceEvent("DecodeError").detail("Part1", lastPart).detail("Part2", std::get<2>(next_tuple)); + if (lastPart + 1 != nextKV.part) { + TraceEvent("DecodeError").detail("Part1", lastPart).detail("Part2", nextKV.part); throw restore_corrupted_data(); } - bufSize += std::get<3>(next_tuple).size(); + bufSize += nextKV.kv.size(); } VersionedMutations m; - m.version = std::get<1>(tuple); + m.version = kv.version; TraceEvent("Decode").detail("Version", m.version).detail("Idx", idx).detail("Q", self->keyValues.size()); - StringRef value = std::get<3>(tuple); + StringRef value = kv.kv; if (idx > 1) { // Stitch parts into one and then decode one by one Standalone buf = self->combineValues(idx, bufSize); value = buf; m.arena = buf.arena(); } - if (self->isValueComplete(value)) { + if (isValueComplete(value)) { m.mutations = decode_value(value); if (m.arena.getSize() == 0) { - m.arena = std::get<0>(tuple); + m.arena = kv.arena; } self->keyValues.erase(self->keyValues.begin(), self->keyValues.begin() + idx); return m; @@ -317,7 +329,7 @@ struct DecodeProgress { Standalone buf = makeString(len); int n = 0; for (int i = 0; i < idx; i++) { - const auto& value = std::get<3>(keyValues[i]); + const auto& value = keyValues[i].kv; memcpy(mutateString(buf) + n, value.begin(), value.size()); n += value.size(); } @@ -363,12 +375,9 @@ struct DecodeProgress { // The (version, part) in a block can be out of order, i.e., (3, 0) // can be followed by (4, 0), and then (3, 1). So we need to sort them // first by version, and then by part number. - std::sort(keyValues.begin(), keyValues.end(), - [](const std::tuple& a, - const std::tuple& b) { - return std::get<1>(a) == std::get<1>(b) ? std::get<2>(a) < std::get<2>(b) - : std::get<1>(a) < std::get<1>(b); - }); + std::sort(keyValues.begin(), keyValues.end(), [](const VersionedKVPart& a, const VersionedKVPart& b) { + return a.version == b.version ? a.part < b.part : a.version < b.version; + }); return; } catch (Error& e) { TraceEvent(SevWarn, "CorruptBlock").error(e).detail("Offset", reader.rptr - buf.begin()); @@ -419,8 +428,6 @@ struct DecodeProgress { int64_t offset = 0; bool eof = false; bool leftover = false; // Done but has unfinished version batch data left - // A (version, part_number)'s mutations and memory arena. - std::vector> keyValues; }; ACTOR Future decode_logs(DecodeParams params) { @@ -445,7 +452,7 @@ ACTOR Future decode_logs(DecodeParams params) { state int i = 0; // Previous file's unfinished version data - state std::vector> left; + state std::vector left; for (; i < logs.size(); i++) { if (logs[i].fileSize == 0) continue; From e7e53aeb982f653f782ba6c670a176514a20bc42 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 26 Dec 2020 22:34:46 -0400 Subject: [PATCH 119/261] Use unique_ptr for adding shards --- fdbserver/StorageCache.actor.cpp | 21 +++++++++------------ fdbserver/storageserver.actor.cpp | 27 ++++++++++++--------------- 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/fdbserver/StorageCache.actor.cpp b/fdbserver/StorageCache.actor.cpp index a2f04aea8a..83ae094f09 100644 --- a/fdbserver/StorageCache.actor.cpp +++ b/fdbserver/StorageCache.actor.cpp @@ -88,24 +88,21 @@ struct AddingCacheRange : NonCopyable { bool isTransferred() const { return phase == Waiting; } }; -struct CacheRangeInfo : ReferenceCounted, NonCopyable { - AddingCacheRange* adding; +class CacheRangeInfo : public ReferenceCounted, NonCopyable { + CacheRangeInfo(KeyRange keys, std::unique_ptr &&adding, StorageCacheData* readWrite) + : adding(std::move(adding)), readWrite(readWrite), keys(keys) + { + } + +public: + std::unique_ptr adding; struct StorageCacheData* readWrite; KeyRange keys; uint64_t changeCounter; - CacheRangeInfo(KeyRange keys, AddingCacheRange* adding, StorageCacheData* readWrite) - : adding(adding), readWrite(readWrite), keys(keys) - { - } - - ~CacheRangeInfo() { - delete adding; - } - static CacheRangeInfo* newNotAssigned(KeyRange keys) { return new CacheRangeInfo(keys, nullptr, nullptr); } static CacheRangeInfo* newReadWrite(KeyRange keys, StorageCacheData* data) { return new CacheRangeInfo(keys, nullptr, data); } - static CacheRangeInfo* newAdding(StorageCacheData* data, KeyRange keys) { return new CacheRangeInfo(keys, new AddingCacheRange(data, keys), nullptr); } + static CacheRangeInfo* newAdding(StorageCacheData* data, KeyRange keys) { return new CacheRangeInfo(keys, std::make_unique(data, keys), nullptr); } bool isReadable() const { return readWrite!=nullptr; } bool isAdding() const { return adding!=nullptr; } diff --git a/fdbserver/storageserver.actor.cpp b/fdbserver/storageserver.actor.cpp index 1ef0e1266a..59b99abaaf 100644 --- a/fdbserver/storageserver.actor.cpp +++ b/fdbserver/storageserver.actor.cpp @@ -118,25 +118,22 @@ struct AddingShard : NonCopyable { bool isTransferred() const { return phase == Waiting; } }; -struct ShardInfo : ReferenceCounted, NonCopyable { - AddingShard* adding; +class ShardInfo : public ReferenceCounted, NonCopyable { + ShardInfo(KeyRange keys, std::unique_ptr &&adding, StorageServer* readWrite) + : adding(std::move(adding)), readWrite(readWrite), keys(keys) + { + } + +public: + std::unique_ptr adding; struct StorageServer* readWrite; KeyRange keys; uint64_t changeCounter; - ShardInfo(KeyRange keys, AddingShard* adding, StorageServer* readWrite) - : adding(adding), readWrite(readWrite), keys(keys) - { - } - - ~ShardInfo() { - delete adding; - } - static ShardInfo* newNotAssigned(KeyRange keys) { return new ShardInfo(keys, nullptr, nullptr); } static ShardInfo* newReadWrite(KeyRange keys, StorageServer* data) { return new ShardInfo(keys, nullptr, data); } - static ShardInfo* newAdding(StorageServer* data, KeyRange keys) { return new ShardInfo(keys, new AddingShard(data, keys), nullptr); } - static ShardInfo* addingSplitLeft( KeyRange keys, AddingShard* oldShard) { return new ShardInfo(keys, new AddingShard(oldShard, keys), nullptr); } + static ShardInfo* newAdding(StorageServer* data, KeyRange keys) { return new ShardInfo(keys, std::make_unique(data, keys), nullptr); } + static ShardInfo* addingSplitLeft( KeyRange keys, AddingShard* oldShard) { return new ShardInfo(keys, std::make_unique(oldShard, keys), nullptr); } bool isReadable() const { return readWrite!=nullptr; } bool notAssigned() const { return !readWrite && !adding; } @@ -2358,9 +2355,9 @@ ACTOR Future fetchKeys( StorageServer *data, AddingShard* shard ) { // The remaining unfetched keys [nfk,keys.end) will become a separate AddingShard with its own fetchKeys. shard->server->addShard( ShardInfo::addingSplitLeft( KeyRangeRef(keys.begin, nfk), shard ) ); shard->server->addShard( ShardInfo::newAdding( data, KeyRangeRef(nfk, keys.end) ) ); - shard = data->shards.rangeContaining( keys.begin ).value()->adding; + shard = data->shards.rangeContaining( keys.begin ).value()->adding.get(); warningLogger = logFetchKeysWarning(shard); - AddingShard* otherShard = data->shards.rangeContaining( nfk ).value()->adding; + AddingShard* otherShard = data->shards.rangeContaining( nfk ).value()->adding.get(); keys = shard->keys; // Split our prior updates. The ones that apply to our new, restricted key range will go back into shard->updates, From 21d7620922f39c768b6bb6180c0f24c335690cce Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 26 Dec 2020 22:35:28 -0400 Subject: [PATCH 120/261] TDMetric optimizations --- flow/TDMetric.actor.h | 25 +++++++++---------------- flow/TDMetric.cpp | 2 +- flow/serialize.h | 8 ++++---- 3 files changed, 14 insertions(+), 21 deletions(-) diff --git a/flow/TDMetric.actor.h b/flow/TDMetric.actor.h index 7ace1a2e9e..d01af058ae 100755 --- a/flow/TDMetric.actor.h +++ b/flow/TDMetric.actor.h @@ -97,9 +97,7 @@ struct KeyWithWriter { KeyWithWriter( KeyWithWriter&& r ) : key(std::move(r.key)), writer(std::move(r.writer)), writerOffset(r.writerOffset) {} void operator=( KeyWithWriter&& r ) { key = std::move(r.key); writer = std::move(r.writer); writerOffset = r.writerOffset; } - StringRef value() { - return StringRef(writer.toValue().substr(writerOffset)); - } + StringRef value() const { return StringRef(writer.toValue().substr(writerOffset)); } }; // This is a very minimal interface for getting metric data from the DB which is needed @@ -238,7 +236,7 @@ struct MetricData { start = r.start; rollTime = r.rollTime; appendStart = r.appendStart; writer = std::move(r.writer); } - std::string toString(); + std::string toString() const; }; // Some common methods to reduce code redundancy across different metric definitions @@ -452,12 +450,12 @@ struct FieldValueBlockEncoding> { // Field level for value type of T using header type of Header. Default header type is the default FieldHeader implementation for type T. template , class Encoder = FieldValueBlockEncoding> -struct FieldLevel { - - Deque metrics; +class FieldLevel { int64_t appendUsed; + Deque metrics; Header header; +public: // The previous header and the last timestamp at which an out going MetricData block requires header patching Optional
      previousHeader; uint64_t lastTimeRequiringHeaderPatch; @@ -465,15 +463,10 @@ struct FieldLevel { Encoder enc; explicit FieldLevel() : appendUsed(0) { - metrics.emplace_back(MetricData()); + metrics.emplace_back(); metrics.back().writer << header; } - FieldLevel(FieldLevel &&f) - : metrics(std::move(f.metrics)), appendUsed(f.appendUsed), enc(f.enc), header(f.header), - previousHeader(f.previousHeader), lastTimeRequiringHeaderPatch(f.lastTimeRequiringHeaderPatch) { - } - // update Header, use Encoder to write T v void log( T v, uint64_t t, bool& overflow, int64_t& bytes ) { int lastLength = metrics.back().writer.getLength(); @@ -504,7 +497,7 @@ struct FieldLevel { } metrics.back().rollTime = t; - metrics.emplace_back(MetricData()); + metrics.emplace_back(); metrics.back().writer << header; enc = Encoder(); appendUsed = 0; @@ -517,9 +510,9 @@ struct FieldLevel { metrics.back().rollTime = t; appendUsed += metrics.back().writer.getLength(); if(metrics.back().appendStart) - metrics.emplace_back(MetricData(metrics.back().appendStart)); + metrics.emplace_back(metrics.back().appendStart); else - metrics.emplace_back(MetricData(metrics.back().start)); + metrics.emplace_back(metrics.back().start); } } diff --git a/flow/TDMetric.cpp b/flow/TDMetric.cpp index f25737ea1c..b6c126eeed 100644 --- a/flow/TDMetric.cpp +++ b/flow/TDMetric.cpp @@ -211,6 +211,6 @@ void DynamicEventMetric::registerFields(MetricKeyRef const &mk, std::vector toValue() { return Standalone( StringRef(data,size), arena ); } + int getLength() const { return size; } + Standalone toValue() const { return Standalone(StringRef(data, size), arena); } template explicit BinaryWriter( VersionOptions vo ) : data(nullptr), size(0), allocated(0) { vo.write(*this); } BinaryWriter( BinaryWriter&& rhs ) : arena(std::move(rhs.arena)), data(rhs.data), size(rhs.size), allocated(rhs.allocated), m_protocolVersion(rhs.m_protocolVersion) { rhs.size = 0; rhs.allocated = 0; - rhs.data = 0; + rhs.data = nullptr; } void operator=( BinaryWriter&& r) { arena = std::move(r.arena); @@ -363,7 +363,7 @@ public: m_protocolVersion = r.m_protocolVersion; r.size = 0; r.allocated = 0; - r.data = 0; + r.data = nullptr; } template From 0d4e81e6b4f351e099ac53305bdec6ace4115171 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sat, 26 Dec 2020 23:40:54 -0400 Subject: [PATCH 121/261] Use unique_ptr in DataDistribution.actor.cpp --- fdbserver/DataDistribution.actor.cpp | 52 +++++++++++----------------- 1 file changed, 20 insertions(+), 32 deletions(-) diff --git a/fdbserver/DataDistribution.actor.cpp b/fdbserver/DataDistribution.actor.cpp index 4638541655..4c105c0554 100644 --- a/fdbserver/DataDistribution.actor.cpp +++ b/fdbserver/DataDistribution.actor.cpp @@ -5401,7 +5401,7 @@ ACTOR Future dataDistributor(DataDistributorInterface di, Reference policy, int processCount) { +std::unique_ptr testTeamCollection(int teamSize, Reference policy, int processCount) { Database database = DatabaseContext::create(makeReference>(), Never(), LocalityData(), false); @@ -5409,11 +5409,11 @@ DDTeamCollection* testTeamCollection(int teamSize, Reference conf.storageTeamSize = teamSize; conf.storagePolicy = policy; - DDTeamCollection* collection = - new DDTeamCollection(database, UID(0, 0), MoveKeysLock(), PromiseStream(), - makeReference(), conf, {}, {}, Future(Void()), - makeReference>(true), true, makeReference>(false), - PromiseStream()); + auto collection = + std::unique_ptr(new DDTeamCollection(database, UID(0, 0), MoveKeysLock(), PromiseStream(), + makeReference(), conf, {}, {}, Future(Void()), + makeReference>(true), true, makeReference>(false), + PromiseStream())); for (int id = 1; id <= processCount; ++id) { UID uid(id, 0); @@ -5423,7 +5423,7 @@ DDTeamCollection* testTeamCollection(int teamSize, Reference interface.locality.set(LiteralStringRef("zoneid"), Standalone(std::to_string(id % 5))); interface.locality.set(LiteralStringRef("data_hall"), Standalone(std::to_string(id % 3))); collection->server_info[uid] = - makeReference(interface, collection, ProcessClass(), true, collection->storageServerSet); + makeReference(interface, collection.get(), ProcessClass(), true, collection->storageServerSet); collection->server_status.set(uid, ServerStatus(false, false, interface.locality)); collection->checkAndCreateMachine(collection->server_info[uid]); } @@ -5431,7 +5431,7 @@ DDTeamCollection* testTeamCollection(int teamSize, Reference return collection; } -DDTeamCollection* testMachineTeamCollection(int teamSize, Reference policy, int processCount) { +std::unique_ptr testMachineTeamCollection(int teamSize, Reference policy, int processCount) { Database database = DatabaseContext::create(makeReference>(), Never(), LocalityData(), false); @@ -5439,11 +5439,11 @@ DDTeamCollection* testMachineTeamCollection(int teamSize, Reference(), - makeReference(), conf, {}, {}, Future(Void()), - makeReference>(true), true, makeReference>(false), - PromiseStream()); + auto collection = + std::unique_ptr(new DDTeamCollection(database, UID(0, 0), MoveKeysLock(), PromiseStream(), + makeReference(), conf, {}, {}, Future(Void()), + makeReference>(true), true, makeReference>(false), + PromiseStream())); for (int id = 1; id <= processCount; id++) { UID uid(id, 0); @@ -5463,7 +5463,7 @@ DDTeamCollection* testMachineTeamCollection(int teamSize, Reference(std::to_string(data_hall_id))); interface.locality.set(LiteralStringRef("dcid"), Standalone(std::to_string(dc_id))); collection->server_info[uid] = - makeReference(interface, collection, ProcessClass(), true, collection->storageServerSet); + makeReference(interface, collection.get(), ProcessClass(), true, collection->storageServerSet); collection->server_status.set(uid, ServerStatus(false, false, interface.locality)); } @@ -5483,14 +5483,12 @@ TEST_CASE("DataDistribution/AddTeamsBestOf/UseMachineID") { int maxTeams = SERVER_KNOBS->MAX_TEAMS_PER_SERVER * processSize; Reference policy = Reference(new PolicyAcross(teamSize, "zoneid", Reference(new PolicyOne()))); - state DDTeamCollection* collection = testMachineTeamCollection(teamSize, policy, processSize); + state std::unique_ptr collection = testMachineTeamCollection(teamSize, policy, processSize); collection->addTeamsBestOf(30, desiredTeams, maxTeams); ASSERT(collection->sanityCheckTeams() == true); - delete (collection); - return Void(); } @@ -5503,7 +5501,7 @@ TEST_CASE("DataDistribution/AddTeamsBestOf/NotUseMachineID") { int maxTeams = SERVER_KNOBS->MAX_TEAMS_PER_SERVER * processSize; Reference policy = Reference(new PolicyAcross(teamSize, "zoneid", Reference(new PolicyOne()))); - state DDTeamCollection* collection = testMachineTeamCollection(teamSize, policy, processSize); + state std::unique_ptr collection = testMachineTeamCollection(teamSize, policy, processSize); if (collection == nullptr) { fprintf(stderr, "collection is null\n"); @@ -5514,8 +5512,6 @@ TEST_CASE("DataDistribution/AddTeamsBestOf/NotUseMachineID") { collection->addTeamsBestOf(30, desiredTeams, maxTeams); collection->sanityCheckTeams(); // Server team may happen to be on the same machine team, although unlikely - if (collection) delete (collection); - return Void(); } @@ -5524,12 +5520,10 @@ TEST_CASE("DataDistribution/AddAllTeams/isExhaustive") { state int processSize = 10; state int desiredTeams = SERVER_KNOBS->DESIRED_TEAMS_PER_SERVER * processSize; state int maxTeams = SERVER_KNOBS->MAX_TEAMS_PER_SERVER * processSize; - state DDTeamCollection* collection = testTeamCollection(3, policy, processSize); + state std::unique_ptr collection = testTeamCollection(3, policy, processSize); int result = collection->addTeamsBestOf(200, desiredTeams, maxTeams); - delete(collection); - // The maximum number of available server teams without considering machine locality is 120 // The maximum number of available server teams with machine locality constraint is 120 - 40, because // the 40 (5*4*2) server teams whose servers come from the same machine are invalid. @@ -5544,12 +5538,10 @@ TEST_CASE("/DataDistribution/AddAllTeams/withLimit") { state int desiredTeams = SERVER_KNOBS->DESIRED_TEAMS_PER_SERVER * processSize; state int maxTeams = SERVER_KNOBS->MAX_TEAMS_PER_SERVER * processSize; - state DDTeamCollection* collection = testTeamCollection(3, policy, processSize); + state std::unique_ptr collection = testTeamCollection(3, policy, processSize); int result = collection->addTeamsBestOf(10, desiredTeams, maxTeams); - delete(collection); - ASSERT(result >= 10); return Void(); @@ -5563,7 +5555,7 @@ TEST_CASE("/DataDistribution/AddTeamsBestOf/SkippingBusyServers") { state int maxTeams = SERVER_KNOBS->MAX_TEAMS_PER_SERVER * processSize; state int teamSize = 3; //state int targetTeamsPerServer = SERVER_KNOBS->DESIRED_TEAMS_PER_SERVER * (teamSize + 1) / 2; - state DDTeamCollection* collection = testTeamCollection(teamSize, policy, processSize); + state std::unique_ptr collection = testTeamCollection(teamSize, policy, processSize); collection->addTeam(std::set({ UID(1, 0), UID(2, 0), UID(3, 0) }), true); collection->addTeam(std::set({ UID(1, 0), UID(3, 0), UID(4, 0) }), true); @@ -5578,8 +5570,6 @@ TEST_CASE("/DataDistribution/AddTeamsBestOf/SkippingBusyServers") { //ASSERT(teamCount <= targetTeamsPerServer); } - delete(collection); - return Void(); } @@ -5594,7 +5584,7 @@ TEST_CASE("/DataDistribution/AddTeamsBestOf/NotEnoughServers") { state int desiredTeams = SERVER_KNOBS->DESIRED_TEAMS_PER_SERVER * processSize; state int maxTeams = SERVER_KNOBS->MAX_TEAMS_PER_SERVER * processSize; state int teamSize = 3; - state DDTeamCollection* collection = testTeamCollection(teamSize, policy, processSize); + state std::unique_ptr collection = testTeamCollection(teamSize, policy, processSize); collection->addTeam(std::set({ UID(1, 0), UID(2, 0), UID(3, 0) }), true); collection->addTeam(std::set({ UID(1, 0), UID(3, 0), UID(4, 0) }), true); @@ -5617,8 +5607,6 @@ TEST_CASE("/DataDistribution/AddTeamsBestOf/NotEnoughServers") { ASSERT(teamCount >= 1); } - delete(collection); - // If we find all available teams, result will be 8 because we prebuild 2 teams ASSERT(result == 8); From 5b2e88b187c485d80119808c85e97fff98a30f8e Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sun, 27 Dec 2020 01:46:20 -0400 Subject: [PATCH 122/261] Use structured bindings in for loops --- fdbbackup/backup.actor.cpp | 3 +- fdbcli/fdbcli.actor.cpp | 85 +++++++++---------- fdbclient/BackupContainerFileSystem.actor.cpp | 3 +- .../BackupContainerLocalDirectory.actor.cpp | 4 +- .../BackupContainerS3BlobStore.actor.cpp | 16 ++-- fdbclient/BlobStore.actor.cpp | 8 +- fdbclient/NativeAPI.actor.cpp | 10 +-- fdbclient/S3BlobStore.actor.cpp | 14 +-- fdbclient/S3BlobStore.h | 2 +- fdbserver/BackupProgress.actor.h | 2 +- fdbserver/DataDistribution.actor.cpp | 35 ++++---- fdbserver/DataDistributionTracker.actor.cpp | 12 +-- fdbserver/LogRouter.actor.cpp | 6 +- fdbserver/MasterProxyServer.actor.cpp | 12 +-- fdbserver/RadixTree.h | 8 +- fdbserver/Ratekeeper.actor.cpp | 3 +- 16 files changed, 110 insertions(+), 113 deletions(-) diff --git a/fdbbackup/backup.actor.cpp b/fdbbackup/backup.actor.cpp index 2ce7b2a3f1..395e0eeb05 100644 --- a/fdbbackup/backup.actor.cpp +++ b/fdbbackup/backup.actor.cpp @@ -1006,8 +1006,7 @@ static void printAgentUsage(bool devhelp) { void printBackupContainerInfo() { printf(" Backup URL forms:\n\n"); std::vector formats = IBackupContainer::getURLFormats(); - for(auto &f : formats) - printf(" %s\n", f.c_str()); + for (const auto& f : formats) printf(" %s\n", f.c_str()); printf("\n"); } diff --git a/fdbcli/fdbcli.actor.cpp b/fdbcli/fdbcli.actor.cpp index e4d24eb114..f714cab9b7 100644 --- a/fdbcli/fdbcli.actor.cpp +++ b/fdbcli/fdbcli.actor.cpp @@ -152,17 +152,16 @@ public: //Applies all enabled transaction options to the given transaction void apply(Reference tr) { - for(auto itr = transactionOptions.options.begin(); itr != transactionOptions.options.end(); ++itr) - tr->setOption(itr->first, itr->second.castTo()); + for (const auto& [name, value] : transactionOptions.options) { + tr->setOption(name, value.castTo()); + } } //Returns true if any options have been set - bool hasAnyOptionsEnabled() { - return !transactionOptions.options.empty(); - } + bool hasAnyOptionsEnabled() const { return !transactionOptions.options.empty(); } //Prints a list of enabled options, along with their parameters (if any) - void print() { + void print() const { bool found = false; found = found || transactionOptions.print(); @@ -171,14 +170,10 @@ public: } //Returns a vector of the names of all documented options - std::vector getValidOptions() { - return transactionOptions.getValidOptions(); - } + std::vector getValidOptions() const { return transactionOptions.getValidOptions(); } //Prints the help string obtained by invoking `help options' - void printHelpString() { - transactionOptions.printHelpString(); - } + void printHelpString() const { transactionOptions.printHelpString(); } private: //Sets a transaction option. If intrans == true, then this option is also applied to the passed in transaction. @@ -219,7 +214,7 @@ private: } //Prints a list of all enabled options in this group - bool print() { + bool print() const { bool found = false; for(auto itr = legalOptions.begin(); itr != legalOptions.end(); ++itr) { @@ -238,7 +233,7 @@ private: } //Returns true if the specified option is documented - bool isDocumented(typename T::Option option) { + bool isDocumented(typename T::Option option) const { FDBOptionInfo info = T::optionInfo.getMustExist(option); std::string deprecatedStr = "Deprecated"; @@ -246,7 +241,7 @@ private: } //Returns a vector of the names of all documented options - std::vector getValidOptions() { + std::vector getValidOptions() const { std::vector ret; for (auto itr = legalOptions.begin(); itr != legalOptions.end(); ++itr) @@ -258,7 +253,7 @@ private: //Prints a help string for each option in this group. Any options with no comment //are excluded from this help string. Lines are wrapped to 80 characters. - void printHelpString() { + void printHelpString() const { for(auto itr = legalOptions.begin(); itr != legalOptions.end(); ++itr) { if(isDocumented(itr->second)) { FDBOptionInfo info = T::optionInfo.getMustExist(itr->second); @@ -629,12 +624,12 @@ void printVersion() { void printHelpOverview() { printf("\nList of commands:\n\n"); - for (auto i = helpMap.begin(); i != helpMap.end(); ++i) - if (i->second.short_desc.size()) - printf(" %s:\n %s\n", i->first.c_str(), i->second.short_desc.c_str()); - printf("\nFor information on a specific command, type `help '."); - printf("\nFor information on escaping keys and values, type `help escaping'."); - printf("\nFor information on available options, type `help options'.\n\n"); + for (const auto& [command, help] : helpMap) { + if (help.short_desc.size()) printf(" %s:\n %s\n", command.c_str(), help.short_desc.c_str()); + printf("\nFor information on a specific command, type `help '."); + printf("\nFor information on escaping keys and values, type `help escaping'."); + printf("\nFor information on available options, type `help options'.\n\n"); + } } void printHelp(StringRef command) { @@ -2005,16 +2000,18 @@ ACTOR Future fileConfigure(Database db, std::string filePath, bool isNewDa configString = "new"; } - for(auto kv : configJSON) { + for (const auto& [name, value] : configJSON) { if(!configString.empty()) { configString += " "; } - if( kv.second.type() == json_spirit::int_type ) { - configString += kv.first + ":=" + format("%d", kv.second.get_int()); - } else if( kv.second.type() == json_spirit::str_type ) { - configString += kv.second.get_str(); - } else if( kv.second.type() == json_spirit::array_type ) { - configString += kv.first + "=" + json_spirit::write_string(json_spirit::mValue(kv.second.get_array()), json_spirit::Output_options::none); + if (value.type() == json_spirit::int_type) { + configString += name + ":=" + format("%d", value.get_int()); + } else if (value.type() == json_spirit::str_type) { + configString += value.get_str(); + } else if (value.type() == json_spirit::array_type) { + configString += + name + "=" + + json_spirit::write_string(json_spirit::mValue(value.get_array()), json_spirit::Output_options::none); } else { printUsage(LiteralStringRef("fileconfigure")); return true; @@ -2229,8 +2226,7 @@ ACTOR Future exclude( Database db, std::vector tokens, Referenc } printf("There are currently %zu servers or processes being excluded from the database:\n", excl.size()); - for(auto& e : excl) - printf(" %s\n", e.toString().c_str()); + for (const auto& e : excl) printf(" %s\n", e.toString().c_str()); printf("To find out whether it is safe to remove one or more of these\n" "servers from the cluster, type `exclude '.\n" @@ -2435,7 +2431,7 @@ ACTOR Future exclude( Database db, std::vector tokens, Referenc bool foundCoordinator = false; auto ccs = ClusterConnectionFile( ccf->getFilename() ).getConnectionString(); - for( auto& c : ccs.coordinators()) { + for (const auto& c : ccs.coordinators()) { if (std::count(exclusionVector.begin(), exclusionVector.end(), AddressExclusion(c.ip, c.port)) || std::count(exclusionVector.begin(), exclusionVector.end(), AddressExclusion(c.ip))) { printf("WARNING: %s is a coordinator!\n", c.toString().c_str()); @@ -2483,7 +2479,7 @@ ACTOR Future setClass( Database db, std::vector tokens ) { std::sort(workers.begin(), workers.end(), ProcessData::sort_by_address()); printf("There are currently %zu processes in the database:\n", workers.size()); - for(auto& w : workers) + for (const auto& w : workers) printf(" %s: %s (%s)\n", w.address.toString().c_str(), w.processClass.toString().c_str(), w.processClass.sourceString().c_str()); return false; } @@ -2841,22 +2837,25 @@ struct CLIOptions { ClientKnobs* clientKnobs = new ClientKnobs; CLIENT_KNOBS = clientKnobs; - for(auto k=knobs.begin(); k!=knobs.end(); ++k) { + for (const auto& [knob, value] : knobs) { try { - if (!flowKnobs->setKnob( k->first, k->second ) && - !clientKnobs->setKnob( k->first, k->second )) - { - fprintf(stderr, "WARNING: Unrecognized knob option '%s'\n", k->first.c_str()); - TraceEvent(SevWarnAlways, "UnrecognizedKnobOption").detail("Knob", printable(k->first)); + if (!flowKnobs->setKnob(knob, value) && !clientKnobs->setKnob(knob, value)) { + fprintf(stderr, "WARNING: Unrecognized knob option '%s'\n", knob.c_str()); + TraceEvent(SevWarnAlways, "UnrecognizedKnobOption").detail("Knob", printable(knob)); } } catch (Error& e) { if (e.code() == error_code_invalid_option_value) { - fprintf(stderr, "WARNING: Invalid value '%s' for knob option '%s'\n", k->second.c_str(), k->first.c_str()); - TraceEvent(SevWarnAlways, "InvalidKnobValue").detail("Knob", printable(k->first)).detail("Value", printable(k->second)); + fprintf(stderr, "WARNING: Invalid value '%s' for knob option '%s'\n", value.c_str(), knob.c_str()); + TraceEvent(SevWarnAlways, "InvalidKnobValue") + .detail("Knob", printable(knob)) + .detail("Value", printable(value)); } else { - fprintf(stderr, "ERROR: Failed to set knob option '%s': %s\n", k->first.c_str(), e.what()); - TraceEvent(SevError, "FailedToSetKnob").detail("Knob", printable(k->first)).detail("Value", printable(k->second)).error(e); + fprintf(stderr, "ERROR: Failed to set knob option '%s': %s\n", knob.c_str(), e.what()); + TraceEvent(SevError, "FailedToSetKnob") + .detail("Knob", printable(knob)) + .detail("Value", printable(value)) + .error(e); exit_code = FDB_EXIT_ERROR; } } diff --git a/fdbclient/BackupContainerFileSystem.actor.cpp b/fdbclient/BackupContainerFileSystem.actor.cpp index 176edafd90..c9fb1ac97c 100644 --- a/fdbclient/BackupContainerFileSystem.actor.cpp +++ b/fdbclient/BackupContainerFileSystem.actor.cpp @@ -159,8 +159,7 @@ public: state int i; // Validate each filename, update version range - for (i = 0; i < fileNames.size(); ++i) { - auto const& f = fileNames[i]; + for (const auto& f : fileNames) { if (pathToRangeFile(rf, f, 0)) { fileArray.push_back(f); if (rf.version < minVer) minVer = rf.version; diff --git a/fdbclient/BackupContainerLocalDirectory.actor.cpp b/fdbclient/BackupContainerLocalDirectory.actor.cpp index 7b5504b16c..1260fad315 100644 --- a/fdbclient/BackupContainerLocalDirectory.actor.cpp +++ b/fdbclient/BackupContainerLocalDirectory.actor.cpp @@ -72,7 +72,7 @@ ACTOR static Future listFiles_impl(st [](std::string const& f) { return StringRef(f).endsWith(LiteralStringRef(".lnk")); }), files.end()); - for (auto& f : files) { + for (const auto& f : files) { // Hide .part or .temp files. StringRef s(f); if (!s.endsWith(LiteralStringRef(".part")) && !s.endsWith(LiteralStringRef(".temp"))) @@ -147,7 +147,7 @@ Future> BackupContainerLocalDirectory::listURLs(const s std::vector dirs = platform::listDirectories(path); std::vector results; - for (auto& r : dirs) { + for (const auto& r : dirs) { if (r == "." || r == "..") continue; results.push_back(std::string("file://") + joinPath(path, r)); } diff --git a/fdbclient/BackupContainerS3BlobStore.actor.cpp b/fdbclient/BackupContainerS3BlobStore.actor.cpp index 4713d87d21..9cc80653f2 100644 --- a/fdbclient/BackupContainerS3BlobStore.actor.cpp +++ b/fdbclient/BackupContainerS3BlobStore.actor.cpp @@ -36,7 +36,7 @@ public: state std::string basePath = INDEXFOLDER + '/'; S3BlobStoreEndpoint::ListResult contents = wait(bstore->listObjects(bucket, basePath)); std::vector results; - for (auto& f : contents.objects) { + for (const auto& f : contents.objects) { results.push_back( bstore->getResourceURL(f.name.substr(basePath.size()), format("bucket=%s", bucket.c_str()))); } @@ -82,7 +82,7 @@ public: state S3BlobStoreEndpoint::ListResult result = wait(bc->m_bstore->listObjects( bc->m_bucket, bc->dataPath(path), '/', std::numeric_limits::max(), rawPathFilter)); BackupContainerFileSystem::FilesAndSizesT files; - for (auto& o : result.objects) { + for (const auto& o : result.objects) { ASSERT(o.name.size() >= prefixTrim); files.push_back({ o.name.substr(prefixTrim), o.size }); } @@ -135,15 +135,13 @@ BackupContainerS3BlobStore::BackupContainerS3BlobStore(Reference BlobStoreEndpoint::fromString(std::string const &ur } } -std::string BlobStoreEndpoint::getResourceURL(std::string resource, std::string params) { +std::string BlobStoreEndpoint::getResourceURL(std::string resource, std::string params) const { std::string hostPort = host; if(!service.empty()) { hostPort.append(":"); @@ -256,14 +256,14 @@ std::string BlobStoreEndpoint::getResourceURL(std::string resource, std::string params.append(knobParams); } - for(auto &kv : extraHeaders) { + for (const auto& [k, v] : extraHeaders) { if(!params.empty()) { params.append("&"); } params.append("header="); - params.append(HTTP::urlEncode(kv.first)); + params.append(HTTP::urlEncode(k)); params.append(":"); - params.append(HTTP::urlEncode(kv.second)); + params.append(HTTP::urlEncode(v)); } if(!params.empty()) diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index 85c83db335..25a696ed0f 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -1104,7 +1104,7 @@ bool DatabaseContext::getCachedLocations( const KeyRangeRef& range, vector DatabaseContext::setCachedLocation( const KeyRangeRef& keys, const vector& servers ) { vector>> serverRefs; serverRefs.reserve(servers.size()); - for(auto& interf : servers) { + for (const auto& interf : servers) { serverRefs.push_back( StorageServerInfo::getInterface( this, interf, clientLocality ) ); } @@ -1850,17 +1850,17 @@ Future< vector< pair> > > getKeyRangeLocations( } bool foundFailed = false; - for(auto& it : locations) { + for (const auto& [range, locInfo] : locations) { bool onlyEndpointFailed = false; - for(int i = 0; i < it.second->size(); i++) { - if( IFailureMonitor::failureMonitor().onlyEndpointFailed(it.second->get(i, member).getEndpoint()) ) { + for (int i = 0; i < locInfo->size(); i++) { + if (IFailureMonitor::failureMonitor().onlyEndpointFailed(locInfo->get(i, member).getEndpoint())) { onlyEndpointFailed = true; break; } } if( onlyEndpointFailed ) { - cx->invalidateCache( it.first.begin ); + cx->invalidateCache(range.begin); foundFailed = true; } } diff --git a/fdbclient/S3BlobStore.actor.cpp b/fdbclient/S3BlobStore.actor.cpp index 20e7fd17dd..e9af4196ac 100644 --- a/fdbclient/S3BlobStore.actor.cpp +++ b/fdbclient/S3BlobStore.actor.cpp @@ -249,7 +249,7 @@ Reference S3BlobStoreEndpoint::fromString(std::string const } } -std::string S3BlobStoreEndpoint::getResourceURL(std::string resource, std::string params) { +std::string S3BlobStoreEndpoint::getResourceURL(std::string resource, std::string params) const { std::string hostPort = host; if (!service.empty()) { hostPort.append(":"); @@ -271,14 +271,14 @@ std::string S3BlobStoreEndpoint::getResourceURL(std::string resource, std::strin params.append(knobParams); } - for (auto& kv : extraHeaders) { + for (const auto& [k, v] : extraHeaders) { if (!params.empty()) { params.append("&"); } params.append("header="); - params.append(HTTP::urlEncode(kv.first)); + params.append(HTTP::urlEncode(k)); params.append(":"); - params.append(HTTP::urlEncode(kv.second)); + params.append(HTTP::urlEncode(v)); } if (!params.empty()) r.append("?").append(params); @@ -563,12 +563,12 @@ ACTOR Future> doRequest_impl(ReferenceextraHeaders) { - std::string& fieldValue = headers[kv.first]; + for (const auto& [k, v] : bstore->extraHeaders) { + std::string& fieldValue = headers[k]; if (!fieldValue.empty()) { fieldValue.append(","); } - fieldValue.append(kv.second); + fieldValue.append(v); } // For requests with content to upload, the request timeout should be at least twice the amount of time diff --git a/fdbclient/S3BlobStore.h b/fdbclient/S3BlobStore.h index d8db509ebf..453a70460c 100644 --- a/fdbclient/S3BlobStore.h +++ b/fdbclient/S3BlobStore.h @@ -123,7 +123,7 @@ public: // Get a normalized version of this URL with the given resource and any non-default BlobKnob values as URL // parameters in addition to the passed params string - std::string getResourceURL(std::string resource, std::string params); + std::string getResourceURL(std::string resource, std::string params) const; struct ReusableConnection { Reference conn; diff --git a/fdbserver/BackupProgress.actor.h b/fdbserver/BackupProgress.actor.h index 4f96982cc7..f5a43d3fe0 100644 --- a/fdbserver/BackupProgress.actor.h +++ b/fdbserver/BackupProgress.actor.h @@ -70,7 +70,7 @@ public: void delref() { ReferenceCounted::delref(); } private: - std::set enumerateLogRouterTags(int logRouterTags) { + std::set enumerateLogRouterTags(int logRouterTags) const { std::set tags; for (int i = 0; i < logRouterTags; i++) { tags.insert(Tag(tagLocalityLogRouter, i)); diff --git a/fdbserver/DataDistribution.actor.cpp b/fdbserver/DataDistribution.actor.cpp index 4c105c0554..39b734e757 100644 --- a/fdbserver/DataDistribution.actor.cpp +++ b/fdbserver/DataDistribution.actor.cpp @@ -701,15 +701,15 @@ struct DDTeamCollection : ReferenceCounted { // The following kills a reference cycle between the teamTracker actor and the TCTeamInfo that both holds and is // held by the actor It also ensures that the trackers are done fiddling with healthyTeamCount before we free // this - for(int i=0; i < teams.size(); i++) { - teams[i]->tracker.cancel(); + for (auto& team : teams) { + team->tracker.cancel(); } // The commented TraceEvent log is useful in detecting what is running during the destruction // TraceEvent("DDTeamCollectionDestructed", distributorId) // .detail("Primary", primary) // .detail("TeamTrackerDestroyed", teams.size()); - for(int i=0; i < badTeams.size(); i++) { - badTeams[i]->tracker.cancel(); + for (auto& badTeam : badTeams) { + badTeam->tracker.cancel(); } // TraceEvent("DDTeamCollectionDestructed", distributorId) // .detail("Primary", primary) @@ -717,9 +717,9 @@ struct DDTeamCollection : ReferenceCounted { // The following makes sure that, even if a reference to a team is held in the DD Queue, the tracker will be // stopped // before the server_status map to which it has a pointer, is destroyed. - for(auto it = server_info.begin(); it != server_info.end(); ++it) { - it->second->tracker.cancel(); - it->second->collection = nullptr; + for (auto& [_, info] : server_info) { + info->tracker.cancel(); + info->collection = nullptr; } // TraceEvent("DDTeamCollectionDestructed", distributorId) // .detail("Primary", primary) @@ -799,9 +799,9 @@ struct DDTeamCollection : ReferenceCounted { self->lastMedianAvailableSpaceUpdate = now(); std::vector teamAvailableSpace; teamAvailableSpace.reserve(self->teams.size()); - for( int i = 0; i < self->teams.size(); i++ ) { - if (self->teams[i]->isHealthy()) { - teamAvailableSpace.push_back(self->teams[i]->getMinAvailableSpaceRatio()); + for (const auto& team : self->teams) { + if (team->isHealthy()) { + teamAvailableSpace.push_back(team->getMinAvailableSpaceRatio()); } } @@ -1135,14 +1135,14 @@ struct DDTeamCollection : ReferenceCounted { double varTeams = 0; std::map>, int> machineTeams; - for(auto s = server_info.begin(); s != server_info.end(); ++s) { - if(!server_status.get(s->first).isUnhealthy()) { - int stc = s->second->teams.size(); + for (const auto& [id, info] : server_info) { + if (!server_status.get(id).isUnhealthy()) { + int stc = info->teams.size(); minTeams = std::min(minTeams, stc); maxTeams = std::max(maxTeams, stc); varTeams += (stc - teamsPerServer)*(stc - teamsPerServer); // Use zoneId as server's machine id - machineTeams[s->second->lastKnownInterface.locality.zoneId()] += stc; + machineTeams[info->lastKnownInterface.locality.zoneId()] += stc; } } varTeams /= teamsPerServer*teamsPerServer; @@ -1167,14 +1167,15 @@ struct DDTeamCollection : ReferenceCounted { .detail("MachineMaxTeams", maxMachineTeams); } - int overlappingMembers( vector &team ) { + int overlappingMembers(const vector& team) const { if (team.empty()) { return 0; } int maxMatchingServers = 0; - UID& serverID = team[0]; - for (auto& usedTeam : server_info[serverID]->teams) { + const UID& serverID = team[0]; + const auto& usedTeams = server_info.find(serverID)->second->teams; + for (const auto& usedTeam : usedTeams) { auto used = usedTeam->getServerIDs(); int teamIdx = 0; int usedIdx = 0; diff --git a/fdbserver/DataDistributionTracker.actor.cpp b/fdbserver/DataDistributionTracker.actor.cpp index e20c51fa11..542eebb430 100644 --- a/fdbserver/DataDistributionTracker.actor.cpp +++ b/fdbserver/DataDistributionTracker.actor.cpp @@ -319,7 +319,7 @@ ACTOR Future readHotDetector(DataDistributionTracker* self) { loop { try { Standalone> readHotRanges = wait(tr.getReadHotRanges(keys)); - for (auto& keyRange : readHotRanges) { + for (const auto& keyRange : readHotRanges) { TraceEvent("ReadHotRangeLog") .detail("ReadDensity", keyRange.density) .detail("ReadBandwidth", keyRange.readBandwidth) @@ -394,12 +394,14 @@ ACTOR Future changeSizes( DataDistributionTracker* self, KeyRange keys, in wait( yield(TaskPriority::DataDistribution) ); int64_t newShardsStartingSize = 0; - for ( int i = 0; i < sizes.size(); i++ ) - newShardsStartingSize += sizes[i].get(); + for (const auto& size : sizes) { + newShardsStartingSize += size.get(); + } int64_t newSystemShardsStartingSize = 0; - for ( int i = 0; i < systemSizes.size(); i++ ) - newSystemShardsStartingSize += systemSizes[i].get(); + for (const auto& systemSize : systemSizes) { + newSystemShardsStartingSize += systemSize.get(); + } int64_t totalSizeEstimate = self->dbSizeEstimate->get(); /*TraceEvent("TrackerChangeSizes") diff --git a/fdbserver/LogRouter.actor.cpp b/fdbserver/LogRouter.actor.cpp index 5b25a473fc..ed791ebf63 100644 --- a/fdbserver/LogRouter.actor.cpp +++ b/fdbserver/LogRouter.actor.cpp @@ -182,7 +182,7 @@ void commitMessages( LogRouterData* self, Version version, const std::vector block.capacity() - block.size()) { self->messageBlocks.emplace_back(version, block); block = Standalone>(); @@ -207,7 +207,7 @@ void commitMessages( LogRouterData* self, Version version, const std::vectorgetTagData(tag); if(!tagData) { tagData = self->createTagData(tag, 0, 0); diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index e8e81c1a4b..82741c0465 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -601,7 +601,7 @@ struct ResolutionRequestBuilder { ASSERT( transactionNumberInBatch >= 0 && transactionNumberInBatch < 32768 ); bool isTXNStateTransaction = false; - for (auto & m : trIn.mutations) { + for (const auto& m : trIn.mutations) { if (m.type == MutationRef::SetVersionstampedKey) { transformVersionstampMutation( m, &MutationRef::param1, requests[0].version, transactionNumberInBatch ); trIn.write_conflict_ranges.push_back( requests[0].arena, singleKeyRange( m.param1, requests[0].arena ) ); @@ -767,16 +767,16 @@ bool isWhitelisted(const vector>& binPathVec, StringRef bi return std::find(binPathVec.begin(), binPathVec.end(), binPath) != binPathVec.end(); } -ACTOR Future addBackupMutations(ProxyCommitData* self, std::map* logRangeMutations, - LogPushData* toCommit, Version commitVersion, double* computeDuration, double* computeStart) { - state std::map::iterator logRangeMutation = logRangeMutations->begin(); +ACTOR Future addBackupMutations(ProxyCommitData* self, std::map const* logRangeMutations, + LogPushData* toCommit, Version commitVersion, double* computeDuration, + double* computeStart) { + state std::map::const_iterator logRangeMutation = logRangeMutations->begin(); state int32_t version = commitVersion / CLIENT_KNOBS->LOG_RANGE_BLOCK_SIZE; state int yieldBytes = 0; state BinaryWriter valueWriter(Unversioned()); // Serialize the log range mutations within the map - for (; logRangeMutation != logRangeMutations->end(); ++logRangeMutation) - { + for (; logRangeMutation != logRangeMutations->cend(); ++logRangeMutation) { //FIXME: this is re-implementing the serialize function of MutationListRef in order to have a yield valueWriter = BinaryWriter(IncludeVersion(ProtocolVersion::withBackupMutations())); valueWriter << logRangeMutation->second.totalSize(); diff --git a/fdbserver/RadixTree.h b/fdbserver/RadixTree.h index 5844a6b2e7..99e6390536 100644 --- a/fdbserver/RadixTree.h +++ b/fdbserver/RadixTree.h @@ -114,7 +114,7 @@ private: m_is_inline = isInline; } - StringRef getKey() { + StringRef getKey() const { if (m_is_inline) { return StringRef(&key.inlineData[0], m_inline_length); } else { @@ -122,9 +122,9 @@ private: } } - inline int getKeySize() { return m_is_inline ? m_inline_length : key.data.size(); } + inline int getKeySize() const { return m_is_inline ? m_inline_length : key.data.size(); } - inline int16_t getFirstByte() { + inline int16_t getFirstByte() const { if (m_is_inline) { return m_inline_length == 0 ? LEAF_BYTE : key.inlineData[0]; } else { @@ -132,7 +132,7 @@ private: } } - inline size_type getArenaSize() { return m_is_inline ? 0 : arena.getSize(); } + inline size_type getArenaSize() const { return m_is_inline ? 0 : arena.getSize(); } uint32_t m_is_leaf : 1; uint32_t m_is_fixed : 1; // if true, then we have fixed number of children (3) diff --git a/fdbserver/Ratekeeper.actor.cpp b/fdbserver/Ratekeeper.actor.cpp index 7c57e0b04c..76e3b0e794 100644 --- a/fdbserver/Ratekeeper.actor.cpp +++ b/fdbserver/Ratekeeper.actor.cpp @@ -729,8 +729,7 @@ ACTOR Future monitorServerListChange( self->lastSSListFetchedTimestamp = now(); std::map newServers; - for (int i = 0; i < results.size(); i++) { - const StorageServerInterface& ssi = results[i].first; + for (const auto& [ssi, _] : results) { const UID serverId = ssi.id(); newServers[serverId] = ssi; From 8dc39f4d8f36cdfe3bb0309d83c64b18f6c7ba1f Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Sun, 27 Dec 2020 01:51:58 -0400 Subject: [PATCH 123/261] Make ExecCmdValueString const-correct --- fdbserver/FDBExecHelper.actor.cpp | 8 ++++---- fdbserver/FDBExecHelper.actor.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/fdbserver/FDBExecHelper.actor.cpp b/fdbserver/FDBExecHelper.actor.cpp index 69d73c24d4..fe148f1b5a 100644 --- a/fdbserver/FDBExecHelper.actor.cpp +++ b/fdbserver/FDBExecHelper.actor.cpp @@ -27,15 +27,15 @@ void ExecCmdValueString::setCmdValueString(StringRef pCmdValueString) { parseCmdValue(); } -StringRef ExecCmdValueString::getCmdValueString() { +StringRef ExecCmdValueString::getCmdValueString() const { return cmdValueString.toString(); } -StringRef ExecCmdValueString::getBinaryPath() { +StringRef ExecCmdValueString::getBinaryPath() const { return binaryPath; } -VectorRef ExecCmdValueString::getBinaryArgs() { +VectorRef ExecCmdValueString::getBinaryArgs() const { return binaryArgs; } @@ -57,7 +57,7 @@ void ExecCmdValueString::parseCmdValue() { return; } -void ExecCmdValueString::dbgPrint() { +void ExecCmdValueString::dbgPrint() const { auto te = TraceEvent("ExecCmdValueString"); te.detail("CmdValueString", cmdValueString.toString()); diff --git a/fdbserver/FDBExecHelper.actor.h b/fdbserver/FDBExecHelper.actor.h index c0b42e062f..c11e19d38c 100644 --- a/fdbserver/FDBExecHelper.actor.h +++ b/fdbserver/FDBExecHelper.actor.h @@ -25,13 +25,13 @@ public: // ctor & dtor explicit ExecCmdValueString(StringRef cmdValueString); public: // interfaces - StringRef getBinaryPath(); - VectorRef getBinaryArgs(); + StringRef getBinaryPath() const; + VectorRef getBinaryArgs() const; void setCmdValueString(StringRef cmdValueString); - StringRef getCmdValueString(void); + StringRef getCmdValueString(void) const; public: // helper functions - void dbgPrint(); + void dbgPrint() const; private: // functions void parseCmdValue(); From 86c7c1e946b3356eb7ad49dd38968daa0895bcc7 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Mon, 28 Dec 2020 00:43:47 -0400 Subject: [PATCH 124/261] Fix IAsyncFileSystem method signatures --- fdbbackup/FileDecoder.actor.cpp | 2 +- fdbclient/BackupContainerLocalDirectory.actor.cpp | 2 +- fdbrpc/IAsyncFile.actor.cpp | 2 +- fdbrpc/IAsyncFile.h | 8 ++++---- fdbrpc/Net2FileSystem.cpp | 14 +++++--------- fdbrpc/Net2FileSystem.h | 12 ++++++------ fdbrpc/sim2.actor.cpp | 8 +++----- fdbrpc/simulator.h | 6 +++--- 8 files changed, 24 insertions(+), 30 deletions(-) diff --git a/fdbbackup/FileDecoder.actor.cpp b/fdbbackup/FileDecoder.actor.cpp index 116e61266b..953170016d 100644 --- a/fdbbackup/FileDecoder.actor.cpp +++ b/fdbbackup/FileDecoder.actor.cpp @@ -239,7 +239,7 @@ public: // However, we could have unfinished version in the buffer when EOF is true, // which means we should look for data in the next file. The caller // should call getUnfinishedBuffer() to get these left data. - bool finished() { return (eof && keyValues.empty()) || (leftover && !keyValues.empty()); } + bool finished() const { return (eof && keyValues.empty()) || (leftover && !keyValues.empty()); } std::vector&& getUnfinishedBuffer() && { return std::move(keyValues); } diff --git a/fdbclient/BackupContainerLocalDirectory.actor.cpp b/fdbclient/BackupContainerLocalDirectory.actor.cpp index 1260fad315..f5aad2cac7 100644 --- a/fdbclient/BackupContainerLocalDirectory.actor.cpp +++ b/fdbclient/BackupContainerLocalDirectory.actor.cpp @@ -30,7 +30,7 @@ namespace { class BackupFile : public IBackupFile, ReferenceCounted { public: - BackupFile(std::string fileName, Reference file, std::string finalFullPath) + BackupFile(const std::string& fileName, Reference file, const std::string& finalFullPath) : IBackupFile(fileName), m_file(file), m_finalFullPath(finalFullPath) {} Future append(const void* data, int len) { diff --git a/fdbrpc/IAsyncFile.actor.cpp b/fdbrpc/IAsyncFile.actor.cpp index 7a4854e89d..2e658e0414 100644 --- a/fdbrpc/IAsyncFile.actor.cpp +++ b/fdbrpc/IAsyncFile.actor.cpp @@ -108,7 +108,7 @@ ACTOR static Future incrementalDeleteHelper( std::string filename, bool mu return Void(); } -Future IAsyncFileSystem::incrementalDeleteFile( std::string filename, bool mustBeDurable ) { +Future IAsyncFileSystem::incrementalDeleteFile(const std::string& filename, bool mustBeDurable) { return uncancellable(incrementalDeleteHelper( filename, mustBeDurable, diff --git a/fdbrpc/IAsyncFile.h b/fdbrpc/IAsyncFile.h index 85d879e3fe..569a4f6ac6 100644 --- a/fdbrpc/IAsyncFile.h +++ b/fdbrpc/IAsyncFile.h @@ -88,17 +88,17 @@ typedef void (*runCycleFuncPtr)(); class IAsyncFileSystem { public: // Opens a file for asynchronous I/O - virtual Future< Reference > open( std::string filename, int64_t flags, int64_t mode ) = 0; + virtual Future> open(const std::string& filename, int64_t flags, int64_t mode) = 0; // Deletes the given file. If mustBeDurable, returns only when the file is guaranteed to be deleted even after a power failure. - virtual Future< Void > deleteFile( std::string filename, bool mustBeDurable ) = 0; + virtual Future deleteFile(const std::string& filename, bool mustBeDurable) = 0; // Unlinks a file and then deletes it slowly by truncating the file repeatedly. // If mustBeDurable, returns only when the file is guaranteed to be deleted even after a power failure. - virtual Future incrementalDeleteFile( std::string filename, bool mustBeDurable ); + virtual Future incrementalDeleteFile(const std::string& filename, bool mustBeDurable); // Returns the time of the last modification of the file. - virtual Future lastWriteTime( std::string filename ) = 0; + virtual Future lastWriteTime(const std::string& filename) = 0; static IAsyncFileSystem* filesystem() { return filesystem(g_network); } static runCycleFuncPtr runCycleFunc() { return reinterpret_cast(reinterpret_cast(g_network->global(INetwork::enRunCycleFunc))); } diff --git a/fdbrpc/Net2FileSystem.cpp b/fdbrpc/Net2FileSystem.cpp index d1b49e761f..9fa61f29b3 100644 --- a/fdbrpc/Net2FileSystem.cpp +++ b/fdbrpc/Net2FileSystem.cpp @@ -40,8 +40,7 @@ #include "fdbrpc/AsyncFileWriteChecker.h" // Opens a file for asynchronous I/O -Future< Reference > Net2FileSystem::open( std::string filename, int64_t flags, int64_t mode ) -{ +Future> Net2FileSystem::open(const std::string& filename, int64_t flags, int64_t mode) { #ifdef __linux__ if (checkFileSystem) { dev_t fileDeviceId = getDeviceId(filename); @@ -75,22 +74,19 @@ Future< Reference > Net2FileSystem::open( std::string filename } // Deletes the given file. If mustBeDurable, returns only when the file is guaranteed to be deleted even after a power failure. -Future< Void > Net2FileSystem::deleteFile( std::string filename, bool mustBeDurable ) -{ +Future Net2FileSystem::deleteFile(const std::string& filename, bool mustBeDurable) { return Net2AsyncFile::deleteFile(filename, mustBeDurable); } -Future< std::time_t > Net2FileSystem::lastWriteTime( std::string filename ) { +Future Net2FileSystem::lastWriteTime(const std::string& filename) { return Net2AsyncFile::lastWriteTime( filename ); } -void Net2FileSystem::newFileSystem(double ioTimeout, std::string fileSystemPath) -{ +void Net2FileSystem::newFileSystem(double ioTimeout, const std::string& fileSystemPath) { g_network->setGlobal(INetwork::enFileSystem, (flowGlobalType) new Net2FileSystem(ioTimeout, fileSystemPath)); } -Net2FileSystem::Net2FileSystem(double ioTimeout, std::string fileSystemPath) -{ +Net2FileSystem::Net2FileSystem(double ioTimeout, const std::string& fileSystemPath) { Net2AsyncFile::init(); #ifdef __linux__ if (!FLOW_KNOBS->DISABLE_POSIX_KERNEL_AIO) diff --git a/fdbrpc/Net2FileSystem.h b/fdbrpc/Net2FileSystem.h index 19cd223c5f..c69ffbe8b8 100644 --- a/fdbrpc/Net2FileSystem.h +++ b/fdbrpc/Net2FileSystem.h @@ -24,25 +24,25 @@ #include "fdbrpc/IAsyncFile.h" -class Net2FileSystem : public IAsyncFileSystem { +class Net2FileSystem final : public IAsyncFileSystem { public: // Opens a file for asynchronous I/O - virtual Future< Reference > open( std::string filename, int64_t flags, int64_t mode ); + Future> open(const std::string& filename, int64_t flags, int64_t mode) override; // Deletes the given file. If mustBeDurable, returns only when the file is guaranteed to be deleted even after a power failure. - virtual Future< Void > deleteFile( std::string filename, bool mustBeDurable ); + Future deleteFile(const std::string& filename, bool mustBeDurable) override; // Returns the time of the last modification of the file. - virtual Future< std::time_t > lastWriteTime( std::string filename ); + Future lastWriteTime(const std::string& filename) override; //void init(); static void stop(); - Net2FileSystem(double ioTimeout=0.0, std::string fileSystemPath = ""); + Net2FileSystem(double ioTimeout = 0.0, const std::string& fileSystemPath = ""); virtual ~Net2FileSystem() {} - static void newFileSystem(double ioTimeout=0.0, std::string fileSystemPath = ""); + static void newFileSystem(double ioTimeout = 0.0, const std::string& fileSystemPath = ""); #ifdef __linux__ dev_t fileSystemDeviceId; diff --git a/fdbrpc/sim2.actor.cpp b/fdbrpc/sim2.actor.cpp index b28f49bea4..6f3157da30 100644 --- a/fdbrpc/sim2.actor.cpp +++ b/fdbrpc/sim2.actor.cpp @@ -2027,8 +2027,7 @@ int sf_open( const char* filename, int flags, int convFlags, int mode ) { #endif // Opens a file for asynchronous I/O -Future< Reference > Sim2FileSystem::open( std::string filename, int64_t flags, int64_t mode ) -{ +Future> Sim2FileSystem::open(const std::string& filename, int64_t flags, int64_t mode) { ASSERT( (flags & IAsyncFile::OPEN_ATOMIC_WRITE_AND_CREATE) || !(flags & IAsyncFile::OPEN_CREATE) || StringRef(filename).endsWith(LiteralStringRef(".fdb-lock")) ); // We don't use "ordinary" non-atomic file creation right now except for folder locking, and we don't have code to simulate its unsafeness. @@ -2065,12 +2064,11 @@ Future< Reference > Sim2FileSystem::open( std::string filename } // Deletes the given file. If mustBeDurable, returns only when the file is guaranteed to be deleted even after a power failure. -Future< Void > Sim2FileSystem::deleteFile( std::string filename, bool mustBeDurable ) -{ +Future Sim2FileSystem::deleteFile(const std::string& filename, bool mustBeDurable) { return Sim2::deleteFileImpl(&g_sim2, filename, mustBeDurable); } -Future< std::time_t > Sim2FileSystem::lastWriteTime( std::string filename ) { +Future Sim2FileSystem::lastWriteTime(const std::string& filename) { // TODO: update this map upon file writes. static std::map fileWrites; if (BUGGIFY && deterministicRandom()->random01() < 0.01) { diff --git a/fdbrpc/simulator.h b/fdbrpc/simulator.h index b767e3c551..8876a90c6b 100644 --- a/fdbrpc/simulator.h +++ b/fdbrpc/simulator.h @@ -383,12 +383,12 @@ extern Future waitUntilDiskReady(Reference parameters, int class Sim2FileSystem : public IAsyncFileSystem { public: // Opens a file for asynchronous I/O - virtual Future< Reference > open( std::string filename, int64_t flags, int64_t mode ); + Future> open(const std::string& filename, int64_t flags, int64_t mode) override; // Deletes the given file. If mustBeDurable, returns only when the file is guaranteed to be deleted even after a power failure. - virtual Future< Void > deleteFile( std::string filename, bool mustBeDurable ); + Future deleteFile(const std::string& filename, bool mustBeDurable) override; - virtual Future< std::time_t > lastWriteTime( std::string filename ); + Future lastWriteTime(const std::string& filename) override; Sim2FileSystem() {} From e7e2439abe51b6c238bd94b437566c19d2520c72 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Fri, 1 Jan 2021 09:43:03 -0400 Subject: [PATCH 125/261] Remove unnecessary copy from BackupContainerAzureBlobStoreImpl::read --- fdbclient/BackupContainerAzureBlobStore.actor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fdbclient/BackupContainerAzureBlobStore.actor.cpp b/fdbclient/BackupContainerAzureBlobStore.actor.cpp index 920c64ee17..376340bdbe 100644 --- a/fdbclient/BackupContainerAzureBlobStore.actor.cpp +++ b/fdbclient/BackupContainerAzureBlobStore.actor.cpp @@ -44,7 +44,7 @@ public: blobName = this->blobName, data, length, offset] { std::ostringstream oss(std::ios::out | std::ios::binary); client->download_blob_to_stream(containerName, blobName, offset, length, oss); - auto str = oss.str(); + auto str = std::move(oss).str(); memcpy(data, str.c_str(), str.size()); return static_cast(str.size()); }); From 4ed5761d2433247369aba2ee2c9c57c76c070aa2 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Sun, 3 Jan 2021 17:24:20 -0800 Subject: [PATCH 126/261] Revert java bindings change --- bindings/java/CMakeLists.txt | 1 - bindings/java/fdbJNI.cpp | 34 ----------------- .../main/com/apple/foundationdb/Database.java | 9 ----- .../com/apple/foundationdb/FDBDatabase.java | 13 +------ .../com/apple/foundationdb/FutureBoolean.java | 37 ------------------- 5 files changed, 1 insertion(+), 93 deletions(-) delete mode 100644 bindings/java/src/main/com/apple/foundationdb/FutureBoolean.java diff --git a/bindings/java/CMakeLists.txt b/bindings/java/CMakeLists.txt index bf3e91f928..2fc24ecf98 100644 --- a/bindings/java/CMakeLists.txt +++ b/bindings/java/CMakeLists.txt @@ -30,7 +30,6 @@ set(JAVA_BINDING_SRCS src/main/com/apple/foundationdb/FDB.java src/main/com/apple/foundationdb/FDBDatabase.java src/main/com/apple/foundationdb/FDBTransaction.java - src/main/com/apple/foundationdb/FutureBoolean.java src/main/com/apple/foundationdb/FutureInt64.java src/main/com/apple/foundationdb/FutureKey.java src/main/com/apple/foundationdb/FutureKeyArray.java diff --git a/bindings/java/fdbJNI.cpp b/bindings/java/fdbJNI.cpp index 3fb4d4f647..1cf889649e 100644 --- a/bindings/java/fdbJNI.cpp +++ b/bindings/java/fdbJNI.cpp @@ -267,23 +267,6 @@ JNIEXPORT jlong JNICALL Java_com_apple_foundationdb_FutureInt64_FutureInt64_1get return (jlong)value; } -JNIEXPORT jboolean JNICALL Java_com_apple_foundationdb_FutureBoolean_FutureBoolean_1get(JNIEnv *jenv, jobject, jlong future) { - if (!future) { - throwParamNotNull(jenv); - return 0; - } - FDBFuture *f = (FDBFuture *)future; - - bool value = false; - fdb_error_t err = fdb_future_get_bool(f, &value); - if (err) { - safeThrow(jenv, getThrowable(jenv, err)); - return 0; - } - - return (jboolean)value; -} - JNIEXPORT jobject JNICALL Java_com_apple_foundationdb_FutureStrings_FutureStrings_1get(JNIEnv *jenv, jobject, jlong future) { if( !future ) { throwParamNotNull(jenv); @@ -541,23 +524,6 @@ JNIEXPORT jlong JNICALL Java_com_apple_foundationdb_FDBDatabase_Database_1create return (jlong)tr; } -JNIEXPORT jlong JNICALL Java_com_apple_foundationdb_FDBDatabase_Database_1rebootWorker(JNIEnv *jenv, jobject, jlong dbPtr, jbyteArray addressBytes, jboolean check, jint duration) { - if( !dbPtr ) { - throwParamNotNull(jenv); - return 0; - } - FDBDatabase *database = (FDBDatabase *)dbPtr; - uint8_t *buffer = (uint8_t *)jenv->GetByteArrayElements( addressBytes, JNI_NULL ); - if (!buffer) { - if( !jenv->ExceptionOccurred() ) - throwRuntimeEx( jenv, "Error getting handle to native resources" ); - return 0; - } - FDBFuture *f = fdb_database_reboot_worker( database, buffer, jenv->GetArrayLength( addressBytes ), check, duration); - jenv->ReleaseByteArrayElements( addressBytes, (jbyte*)buffer, JNI_ABORT ); - return (jlong)f; -} - JNIEXPORT void JNICALL Java_com_apple_foundationdb_FDBDatabase_Database_1dispose(JNIEnv *jenv, jobject, jlong dPtr) { if( !dPtr ) { throwParamNotNull(jenv); diff --git a/bindings/java/src/main/com/apple/foundationdb/Database.java b/bindings/java/src/main/com/apple/foundationdb/Database.java index 8e86f9e5ad..86e06e42a9 100644 --- a/bindings/java/src/main/com/apple/foundationdb/Database.java +++ b/bindings/java/src/main/com/apple/foundationdb/Database.java @@ -62,15 +62,6 @@ public interface Database extends AutoCloseable, TransactionContext { */ Transaction createTransaction(Executor e); - /** - * Reboot the specificed process in the {@code Database} - * @param address network address of the process - * @param check whether to make sure the data is durable - * @param duration duration(seconds) for the process to be suspended before reboot - * @return whether the reboot is successful or not - */ - CompletableFuture rebootWorker(byte[] address, boolean check, int duration); - /** * Returns a set of options that can be set on a {@code Database} * diff --git a/bindings/java/src/main/com/apple/foundationdb/FDBDatabase.java b/bindings/java/src/main/com/apple/foundationdb/FDBDatabase.java index b043094228..038aacb2e6 100644 --- a/bindings/java/src/main/com/apple/foundationdb/FDBDatabase.java +++ b/bindings/java/src/main/com/apple/foundationdb/FDBDatabase.java @@ -129,16 +129,6 @@ class FDBDatabase extends NativeObjectWrapper implements Database, OptionConsume } } - @Override - public CompletableFuture rebootWorker(byte[] address, boolean check, int duration) { - pointerReadLock.lock(); - try { - return new FutureBoolean(Database_rebootWorker(getPtr(), address, check, duration), executor); - } finally { - pointerReadLock.unlock(); - } - } - @Override public void setOption(int code, byte[] value) { pointerReadLock.lock(); @@ -160,7 +150,6 @@ class FDBDatabase extends NativeObjectWrapper implements Database, OptionConsume } private native long Database_createTransaction(long cPtr); - private native long Database_rebootWorker(long cPtr, byte[] address, boolean check, int duration); private native void Database_dispose(long cPtr); private native void Database_setOption(long cPtr, int code, byte[] value) throws FDBException; -} +} \ No newline at end of file diff --git a/bindings/java/src/main/com/apple/foundationdb/FutureBoolean.java b/bindings/java/src/main/com/apple/foundationdb/FutureBoolean.java deleted file mode 100644 index 1e733e9987..0000000000 --- a/bindings/java/src/main/com/apple/foundationdb/FutureBoolean.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * FutureBoolean.java - * - * This source file is part of the FoundationDB open source project - * - * Copyright 2013-2020 Apple Inc. and the FoundationDB project authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.apple.foundationdb; - -import java.util.concurrent.Executor; - -public class FutureBoolean extends NativeFuture { - FutureBoolean(long cPtr, Executor executor) { - super(cPtr); - registerMarshalCallback(executor); - } - - @Override - protected Boolean getIfDone_internal(long cPtr) throws FDBException { - return FutureBoolean_get(cPtr); - } - - private native boolean FutureBoolean_get(long cPtr) throws FDBException; -} From d97782f6d531432559adcb784f000efedf65b70c Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Sun, 3 Jan 2021 17:27:25 -0800 Subject: [PATCH 127/261] Revert python bindings change --- bindings/python/fdb/impl.py | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/bindings/python/fdb/impl.py b/bindings/python/fdb/impl.py index b7cc49d305..6e7803777a 100644 --- a/bindings/python/fdb/impl.py +++ b/bindings/python/fdb/impl.py @@ -740,12 +740,6 @@ class FutureUInt64(Future): self.capi.fdb_future_get_uint64(self.fpointer, ctypes.byref(value)) return value.value -class FutureBool(Future): - def wait(self): - self.block_until_ready() - value = ctypes.c_bool() - self.capi.fdb_future_get_bool(self.fpointer, ctypes.byref(value)) - class FutureKeyValueArray(Future): def wait(self): self.block_until_ready() @@ -1007,11 +1001,6 @@ class Database(_FDBBase): pointer = ctypes.c_void_p() self.capi.fdb_database_create_transaction(self.dpointer, ctypes.byref(pointer)) return Transaction(pointer.value, self) - - def reboot_worker(self, address, check, duration): - """Reboot the specified process""" - addr = paramToBytes(address) - return FutureBool(self.capi.fdb_database_reboot_worker(self.dpointer, addr, len(addr), check, duration)) def _set_option(self, option, param, length): self.capi.fdb_database_set_option(self.dpointer, option, param, length) @@ -1438,10 +1427,6 @@ def init_c_api(): _capi.fdb_future_get_uint64.restype = ctypes.c_uint _capi.fdb_future_get_uint64.errcheck = check_error_code - _capi.fdb_future_get_bool.argtypes = [ctypes.c_void_p, ctypes.POINTER(ctypes.c_bool)] - _capi.fdb_future_get_bool.restype = ctypes.c_bool - _capi.fdb_future_get_bool.errcheck = check_error_code - _capi.fdb_future_get_key.argtypes = [ctypes.c_void_p, ctypes.POINTER(ctypes.POINTER(ctypes.c_byte)), ctypes.POINTER(ctypes.c_int)] _capi.fdb_future_get_key.restype = ctypes.c_int @@ -1481,9 +1466,6 @@ def init_c_api(): _capi.fdb_database_set_option.restype = ctypes.c_int _capi.fdb_database_set_option.errcheck = check_error_code - _capi.fdb_database_reboot_worker.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int, ctypes.c_int, ctypes.c_int] - _capi.fdb_database_reboot_worker.restype = ctypes.c_void_p - _capi.fdb_transaction_destroy.argtypes = [ctypes.c_void_p] _capi.fdb_transaction_destroy.restype = None From da7b65cd715da108946786538e6638f62585b41e Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Sun, 3 Jan 2021 22:45:09 -0800 Subject: [PATCH 128/261] Change the interface back to return int64_t --- bindings/c/fdb_c.cpp | 5 ----- bindings/c/foundationdb/fdb_c.h | 3 --- bindings/c/test/unit/fdb_api.cpp | 10 ++-------- bindings/c/test/unit/fdb_api.hpp | 14 ++------------ bindings/c/test/unit/unit_tests.cpp | 5 +++-- bindings/flow/fdb_flow.actor.cpp | 11 ++++++----- bindings/flow/fdb_flow.h | 2 +- documentation/sphinx/source/api-c.rst | 10 ++-------- .../source/release-notes/release-notes-700.rst | 3 +-- fdbclient/DatabaseContext.h | 5 +++-- fdbclient/IClientApi.h | 2 +- fdbclient/MultiVersionTransaction.actor.cpp | 12 ++++++------ fdbclient/MultiVersionTransaction.h | 5 +++-- fdbclient/NativeAPI.actor.cpp | 7 ++++--- fdbclient/ThreadSafeTransaction.cpp | 5 +++-- fdbclient/ThreadSafeTransaction.h | 2 +- 16 files changed, 38 insertions(+), 63 deletions(-) diff --git a/bindings/c/fdb_c.cpp b/bindings/c/fdb_c.cpp index a6886bf577..6439474529 100644 --- a/bindings/c/fdb_c.cpp +++ b/bindings/c/fdb_c.cpp @@ -232,11 +232,6 @@ fdb_error_t fdb_future_get_uint64(FDBFuture *f, uint64_t *out) { CATCH_AND_RETURN( *out = TSAV(uint64_t, f)->get(); ); } -extern "C" DLLEXPORT -fdb_error_t fdb_future_get_bool( FDBFuture* f, bool* out_value ) { - CATCH_AND_RETURN( *out_value = TSAV(bool, f)->get(); ); -} - extern "C" DLLEXPORT fdb_error_t fdb_future_get_key( FDBFuture* f, uint8_t const** out_key, int* out_key_length ) { diff --git a/bindings/c/foundationdb/fdb_c.h b/bindings/c/foundationdb/fdb_c.h index 1af2e042c4..6bc20a9b69 100644 --- a/bindings/c/foundationdb/fdb_c.h +++ b/bindings/c/foundationdb/fdb_c.h @@ -140,9 +140,6 @@ extern "C" { DLLEXPORT WARN_UNUSED_RESULT fdb_error_t fdb_future_get_uint64( FDBFuture* f, uint64_t* out ); - DLLEXPORT WARN_UNUSED_RESULT fdb_error_t - fdb_future_get_bool( FDBFuture* f, bool* out ); - DLLEXPORT WARN_UNUSED_RESULT fdb_error_t fdb_future_get_key( FDBFuture* f, uint8_t const** out_key, int* out_key_length ); diff --git a/bindings/c/test/unit/fdb_api.cpp b/bindings/c/test/unit/fdb_api.cpp index 2d9b04817b..ed3384b00a 100644 --- a/bindings/c/test/unit/fdb_api.cpp +++ b/bindings/c/test/unit/fdb_api.cpp @@ -55,12 +55,6 @@ void Future::cancel() { fdb_future_cancel(future_); } -// BoolFuture - -[[nodiscard]] fdb_error_t BoolFuture::get(bool* out) { - return fdb_future_get_bool(future_, out); -} - // Int64Future [[nodiscard]] fdb_error_t Int64Future::get(int64_t* out) { @@ -99,9 +93,9 @@ void Future::cancel() { } // Database -BoolFuture Database::reboot_worker(FDBDatabase* db, const uint8_t* address, int address_length, fdb_bool_t check, +Int64Future Database::reboot_worker(FDBDatabase* db, const uint8_t* address, int address_length, fdb_bool_t check, int duration) { - return BoolFuture(fdb_database_reboot_worker(db, address, address_length, check, duration)); + return Int64Future(fdb_database_reboot_worker(db, address, address_length, check, duration)); } // Transaction diff --git a/bindings/c/test/unit/fdb_api.hpp b/bindings/c/test/unit/fdb_api.hpp index c8b3821859..b7cbb15e00 100644 --- a/bindings/c/test/unit/fdb_api.hpp +++ b/bindings/c/test/unit/fdb_api.hpp @@ -77,17 +77,6 @@ class Future { FDBFuture* future_; }; -class BoolFuture : public Future { -public: - // Call this function instead of fdb_future_get_bool when using the - // BoolFuture type. It's behavior is identical to fdb_future_get_bool. - fdb_error_t get(bool* out); - -private: - friend class Database; - BoolFuture(FDBFuture* f) : Future(f) {} -}; - class Int64Future : public Future { public: // Call this function instead of fdb_future_get_int64 when using the @@ -96,6 +85,7 @@ class Int64Future : public Future { private: friend class Transaction; + friend class Database; Int64Future(FDBFuture* f) : Future(f) {} }; @@ -160,7 +150,7 @@ class EmptyFuture : public Future { // Wrapper around FDBDatabase, providing database-level API class Database final { public: - static BoolFuture reboot_worker(FDBDatabase* db, const uint8_t* address, int address_length, fdb_bool_t check, + static Int64Future reboot_worker(FDBDatabase* db, const uint8_t* address, int address_length, fdb_bool_t check, int duration); }; diff --git a/bindings/c/test/unit/unit_tests.cpp b/bindings/c/test/unit/unit_tests.cpp index 57423d54df..d0aa377170 100644 --- a/bindings/c/test/unit/unit_tests.cpp +++ b/bindings/c/test/unit/unit_tests.cpp @@ -20,6 +20,7 @@ // Unit tests for the FoundationDB C API. +#include #define FDB_API_VERSION 700 #include #include @@ -2011,10 +2012,10 @@ TEST_CASE("fdb_database_reboot_worker") { CHECK(processPtr->value.HasMember("address")); std::string network_address = processPtr->value["address"].GetString(); while (1) { - fdb::BoolFuture f = + fdb::Int64Future f = fdb::Database::reboot_worker(db, (const uint8_t*)network_address.c_str(), network_address.size(), false, 0); fdb_check(wait_future(f)); - bool successful; + int64_t successful; fdb_check(f.get(&successful)); if (successful) break; // retry rebooting until success } diff --git a/bindings/flow/fdb_flow.actor.cpp b/bindings/flow/fdb_flow.actor.cpp index 32a0a83234..c90030fbf4 100644 --- a/bindings/flow/fdb_flow.actor.cpp +++ b/bindings/flow/fdb_flow.actor.cpp @@ -20,6 +20,7 @@ #include "fdb_flow.h" +#include #include #include @@ -101,7 +102,7 @@ namespace FDB { Reference createTransaction() override; void setDatabaseOption(FDBDatabaseOption option, Optional value = Optional()) override; - Future rebootWorker(const StringRef& address, bool check = false, int duration = 0) override; + Future rebootWorker(const StringRef& address, bool check = false, int duration = 0) override; private: FDBDatabase* db; @@ -285,11 +286,11 @@ namespace FDB { throw_on_error(fdb_database_set_option(db, option, nullptr, 0)); } - Future DatabaseImpl::rebootWorker(const StringRef &address, bool check, int duration) { - return backToFuture( fdb_database_reboot_worker(db, address.begin(), address.size(), check, duration), [](Reference f) { - bool res; + Future DatabaseImpl::rebootWorker(const StringRef &address, bool check, int duration) { + return backToFuture( fdb_database_reboot_worker(db, address.begin(), address.size(), check, duration), [](Reference f) { + int64_t res; - throw_on_error(fdb_future_get_bool( f->f, &res ) ); + throw_on_error(fdb_future_get_int64( f->f, &res ) ); return res; } ); diff --git a/bindings/flow/fdb_flow.h b/bindings/flow/fdb_flow.h index 1982dddfb4..9a9b95b1ba 100644 --- a/bindings/flow/fdb_flow.h +++ b/bindings/flow/fdb_flow.h @@ -124,7 +124,7 @@ namespace FDB { virtual ~Database(){}; virtual Reference createTransaction() = 0; virtual void setDatabaseOption(FDBDatabaseOption option, Optional value = Optional()) = 0; - virtual Future rebootWorker(const StringRef& address, bool check = false, int duration = 0) = 0; + virtual Future rebootWorker(const StringRef& address, bool check = false, int duration = 0) = 0; }; class API { diff --git a/documentation/sphinx/source/api-c.rst b/documentation/sphinx/source/api-c.rst index 515c6ebf2f..ff114d7f4e 100644 --- a/documentation/sphinx/source/api-c.rst +++ b/documentation/sphinx/source/api-c.rst @@ -301,12 +301,6 @@ See :ref:`developer-guide-programming-with-futures` for further (language-indepe |future-get-return1| |future-get-return2|. -.. function:: fdb_error_t fdb_future_get_bool(FDBFuture* future, bool* out) - - Extracts a bool from an :type:`FDBFuture*` into a caller-provided variable of type ``bool``. |future-warning| - - |future-get-return1| |future-get-return2|. - .. function:: fdb_error_t fdb_future_get_key_array( FDBFuture* f, FDBKey const** out_key_array, int* out_count) Extracts an array of :type:`FDBKey` from an :type:`FDBFuture*` into a caller-provided variable of type ``FDBKey*``. The size of the array will also be extracted and passed back by a caller-provided variable of type ``int`` |future-warning| @@ -436,7 +430,7 @@ An |database-blurb1| Modifications to a database are performed via transactions. Reboot the specified process in the database. - |future-return0| a :type:`bool` represents whether the reboot request is successful or not. |future-return1| call :func:`fdb_future_get_bool()` to extract the result, |future-return2| + |future-return0| a :type:`int64_t` represents whether the reboot request is successful or not. In particular, 1 means success and 0 means failure. |future-return1| call :func:`fdb_future_get_int64()` to extract the result, |future-return2| ``address`` A pointer to the network address of the process. @@ -445,7 +439,7 @@ An |database-blurb1| Modifications to a database are performed via transactions. |length-of| ``address``. ``check`` - whether to make sure the data is durable on disk + whether to make sure the data is durable on disk. ``duration`` If positive, the process will be first suspended for ``duration`` seconds before being rebooted. diff --git a/documentation/sphinx/source/release-notes/release-notes-700.rst b/documentation/sphinx/source/release-notes/release-notes-700.rst index 66e6dd3606..fb7e5036a0 100644 --- a/documentation/sphinx/source/release-notes/release-notes-700.rst +++ b/documentation/sphinx/source/release-notes/release-notes-700.rst @@ -35,8 +35,7 @@ Status Bindings -------- * Python: The function ``get_estimated_range_size_bytes`` will now throw an error if the ``begin_key`` or ``end_key`` is ``None``. `(PR #3394) `_ -* Added a new API to reboot the specified process, e.g., ``fdb_database_reboot_worker`` in the C binding. `(PR #4094) `_. -* C: Added ``fdb_future_get_bool`` to read a bool value from FDBFuture. `(PR #4094) `_. +* C: Added a function, ``fdb_database_reboot_worker``, to reboot or suspend the specified process. `(PR #4094) `_ Other Changes ------------- diff --git a/fdbclient/DatabaseContext.h b/fdbclient/DatabaseContext.h index f1a091a020..bc3d8296c7 100644 --- a/fdbclient/DatabaseContext.h +++ b/fdbclient/DatabaseContext.h @@ -24,6 +24,7 @@ #include "flow/FastRef.h" #include "fdbclient/StorageServerInterface.h" #include "flow/genericactors.actor.h" +#include #include #pragma once @@ -207,8 +208,8 @@ public: bool switchable = false; // Management API - // Attempt to kill or suspend a process, return true if successful - Future rebootWorker(StringRef address, bool check = false, int duration = 0); + // Attempt to kill or suspend a process, return 1 if successful + Future rebootWorker(StringRef address, bool check = false, int duration = 0); //private: explicit DatabaseContext( Reference>> connectionFile, Reference> clientDBInfo, diff --git a/fdbclient/IClientApi.h b/fdbclient/IClientApi.h index 16ca1ba6b9..d2e43736fb 100644 --- a/fdbclient/IClientApi.h +++ b/fdbclient/IClientApi.h @@ -85,7 +85,7 @@ public: virtual void addref() = 0; virtual void delref() = 0; - virtual ThreadFuture rebootWorker(const StringRef& address, bool check, int duration) = 0; + virtual ThreadFuture rebootWorker(const StringRef& address, bool check, int duration) = 0; }; class IClientApi { diff --git a/fdbclient/MultiVersionTransaction.actor.cpp b/fdbclient/MultiVersionTransaction.actor.cpp index e987e2671a..409b9d383d 100644 --- a/fdbclient/MultiVersionTransaction.actor.cpp +++ b/fdbclient/MultiVersionTransaction.actor.cpp @@ -29,6 +29,7 @@ #include "flow/UnitTest.h" #include "flow/actorcompiler.h" // This must be the last #include. +#include void throwIfError(FdbCApi::fdb_error_t e) { if(e) { @@ -285,15 +286,15 @@ void DLDatabase::setOption(FDBDatabaseOptions::Option option, OptionaldatabaseSetOption(db, option, value.present() ? value.get().begin() : nullptr, value.present() ? value.get().size() : 0)); } -ThreadFuture DLDatabase::rebootWorker(const StringRef& address, bool check, int duration) { +ThreadFuture DLDatabase::rebootWorker(const StringRef& address, bool check, int duration) { if(!api->databaseRebootWorker) { return unsupported_operation(); } FdbCApi::FDBFuture *f = api->databaseRebootWorker(db, address.begin(), address.size(), check, duration); - return toThreadFuture(api, f, [](FdbCApi::FDBFuture *f, FdbCApi *api) { - bool res; - FdbCApi::fdb_error_t error = api->futureGetBool(f, &res); + return toThreadFuture(api, f, [](FdbCApi::FDBFuture *f, FdbCApi *api) { + int64_t res; + FdbCApi::fdb_error_t error = api->futureGetInt64(f, &res); ASSERT(!error); return res; }); @@ -360,7 +361,6 @@ void DLApi::init() { loadClientFunction(&api->transactionGetRangeSplitPoints, lib, fdbCPath, "fdb_transaction_get_range_split_points", headerVersion >= 700); - loadClientFunction(&api->futureGetBool, lib, fdbCPath, "fdb_future_get_bool", headerVersion >= 700); loadClientFunction(&api->futureGetInt64, lib, fdbCPath, headerVersion >= 620 ? "fdb_future_get_int64" : "fdb_future_get_version"); loadClientFunction(&api->futureGetUInt64, lib, fdbCPath, "fdb_future_get_uint64"); loadClientFunction(&api->futureGetError, lib, fdbCPath, "fdb_future_get_error"); @@ -797,7 +797,7 @@ void MultiVersionDatabase::setOption(FDBDatabaseOptions::Option option, Optional } } -ThreadFuture MultiVersionDatabase::rebootWorker(const StringRef& address, bool check, int duration) { +ThreadFuture MultiVersionDatabase::rebootWorker(const StringRef& address, bool check, int duration) { if (dbState->db) { return dbState->db->rebootWorker(address, check, duration); } diff --git a/fdbclient/MultiVersionTransaction.h b/fdbclient/MultiVersionTransaction.h index 42ae2d3cfc..c989a6b06f 100644 --- a/fdbclient/MultiVersionTransaction.h +++ b/fdbclient/MultiVersionTransaction.h @@ -20,6 +20,7 @@ #ifndef FDBCLIENT_MULTIVERSIONTRANSACTION_H #define FDBCLIENT_MULTIVERSIONTRANSACTION_H +#include #pragma once #include "fdbclient/FDBOptions.g.h" @@ -196,7 +197,7 @@ public: void addref() override { ThreadSafeReferenceCounted::addref(); } void delref() override { ThreadSafeReferenceCounted::delref(); } - ThreadFuture rebootWorker(const StringRef& address, bool check, int duration) override; + ThreadFuture rebootWorker(const StringRef& address, bool check, int duration) override; private: const Reference api; @@ -329,7 +330,7 @@ public: static Reference debugCreateFromExistingDatabase(Reference db); - ThreadFuture rebootWorker(const StringRef& address, bool check, int duration); + ThreadFuture rebootWorker(const StringRef& address, bool check, int duration); private: struct DatabaseState; diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index bfb8416fc5..2b06d12866 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -21,6 +21,7 @@ #include "fdbclient/NativeAPI.actor.h" #include +#include #include #include #include @@ -4802,12 +4803,12 @@ ACTOR Future addInterfaceActor( std::mapCLI_CONNECT_TIMEOUT)) ) {} // TODO : change timeout time here + when( wait(delay(CLIENT_KNOBS->CLI_CONNECT_TIMEOUT)) ) {} // NOTE : change timeout time here if necessary } return Void(); } -ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool check, int duration) { +ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool check, int duration) { // ignore negative value if (duration < 0) duration = 0; // fetch the addresses of all workers @@ -4830,6 +4831,6 @@ ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool ch return 1; } -Future DatabaseContext::rebootWorker(StringRef addr, bool check, int duration) { +Future DatabaseContext::rebootWorker(StringRef addr, bool check, int duration) { return rebootWorkerActor(this, addr, check, duration); } diff --git a/fdbclient/ThreadSafeTransaction.cpp b/fdbclient/ThreadSafeTransaction.cpp index 782b7b8f63..37ceaaa2ba 100644 --- a/fdbclient/ThreadSafeTransaction.cpp +++ b/fdbclient/ThreadSafeTransaction.cpp @@ -23,6 +23,7 @@ #include "fdbclient/DatabaseContext.h" #include "fdbclient/versions.h" #include "fdbclient/NativeAPI.actor.h" +#include // Users of ThreadSafeTransaction might share Reference between different threads as long as they don't call addRef (e.g. C API follows this). // Therefore, it is unsafe to call (explicitly or implicitly) this->addRef in any of these functions. @@ -68,10 +69,10 @@ void ThreadSafeDatabase::setOption( FDBDatabaseOptions::Option option, Optional< }, &db->deferredError ); } -ThreadFuture ThreadSafeDatabase::rebootWorker(const StringRef& address, bool check, int duration) { +ThreadFuture ThreadSafeDatabase::rebootWorker(const StringRef& address, bool check, int duration) { DatabaseContext *db = this->db; Key addressKey = address; - return onMainThread( [db, addressKey, check, duration]() -> Future { + return onMainThread( [db, addressKey, check, duration]() -> Future { return db->rebootWorker(addressKey, check, duration); } ); } diff --git a/fdbclient/ThreadSafeTransaction.h b/fdbclient/ThreadSafeTransaction.h index d65b3eb266..5aa64dfd68 100644 --- a/fdbclient/ThreadSafeTransaction.h +++ b/fdbclient/ThreadSafeTransaction.h @@ -41,7 +41,7 @@ public: void addref() { ThreadSafeReferenceCounted::addref(); } void delref() { ThreadSafeReferenceCounted::delref(); } - ThreadFuture rebootWorker(const StringRef& address, bool check, int duration); + ThreadFuture rebootWorker(const StringRef& address, bool check, int duration); private: friend class ThreadSafeTransaction; From 70e4b88a04b5634c08d3b5036019ff5b818ad73d Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Sun, 3 Jan 2021 22:54:56 -0800 Subject: [PATCH 129/261] Remove stdbool header --- bindings/c/foundationdb/fdb_c.h | 1 - 1 file changed, 1 deletion(-) diff --git a/bindings/c/foundationdb/fdb_c.h b/bindings/c/foundationdb/fdb_c.h index 6bc20a9b69..1723a4c6ec 100644 --- a/bindings/c/foundationdb/fdb_c.h +++ b/bindings/c/foundationdb/fdb_c.h @@ -53,7 +53,6 @@ #define FDB_REMOVED_FUNCTION This_FoundationDB_API_function_is_removed_at_this_FDB_API_VERSION(0) #include -#include #include "fdb_c_options.g.h" From e097c98956491aeb01cd14ecfcd29b8dc4b1076c Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Mon, 4 Jan 2021 00:18:01 -0800 Subject: [PATCH 130/261] Remove headed added by IDE, add comments --- fdbclient/DatabaseContext.h | 6 ++---- fdbclient/IClientApi.h | 1 + fdbclient/MultiVersionTransaction.actor.cpp | 1 - fdbclient/MultiVersionTransaction.h | 1 - fdbclient/NativeAPI.actor.cpp | 1 - fdbclient/ThreadSafeTransaction.cpp | 1 - 6 files changed, 3 insertions(+), 8 deletions(-) diff --git a/fdbclient/DatabaseContext.h b/fdbclient/DatabaseContext.h index bc3d8296c7..3d073d3c45 100644 --- a/fdbclient/DatabaseContext.h +++ b/fdbclient/DatabaseContext.h @@ -24,7 +24,6 @@ #include "flow/FastRef.h" #include "fdbclient/StorageServerInterface.h" #include "flow/genericactors.actor.h" -#include #include #pragma once @@ -206,9 +205,8 @@ public: Future switchConnectionFile(Reference standby); Future connectionFileChanged(); bool switchable = false; - - // Management API - // Attempt to kill or suspend a process, return 1 if successful + + // Management API, Attempt to kill or suspend a process, return 1 for success, 0 for failure Future rebootWorker(StringRef address, bool check = false, int duration = 0); //private: diff --git a/fdbclient/IClientApi.h b/fdbclient/IClientApi.h index d2e43736fb..cc396a3944 100644 --- a/fdbclient/IClientApi.h +++ b/fdbclient/IClientApi.h @@ -85,6 +85,7 @@ public: virtual void addref() = 0; virtual void delref() = 0; + // Management API, Attempt to kill or suspend a process, return 1 for success, 0 for failure virtual ThreadFuture rebootWorker(const StringRef& address, bool check, int duration) = 0; }; diff --git a/fdbclient/MultiVersionTransaction.actor.cpp b/fdbclient/MultiVersionTransaction.actor.cpp index 409b9d383d..5bb2d9d0b9 100644 --- a/fdbclient/MultiVersionTransaction.actor.cpp +++ b/fdbclient/MultiVersionTransaction.actor.cpp @@ -29,7 +29,6 @@ #include "flow/UnitTest.h" #include "flow/actorcompiler.h" // This must be the last #include. -#include void throwIfError(FdbCApi::fdb_error_t e) { if(e) { diff --git a/fdbclient/MultiVersionTransaction.h b/fdbclient/MultiVersionTransaction.h index c989a6b06f..3f7f63b579 100644 --- a/fdbclient/MultiVersionTransaction.h +++ b/fdbclient/MultiVersionTransaction.h @@ -20,7 +20,6 @@ #ifndef FDBCLIENT_MULTIVERSIONTRANSACTION_H #define FDBCLIENT_MULTIVERSIONTRANSACTION_H -#include #pragma once #include "fdbclient/FDBOptions.g.h" diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index 2b06d12866..3b76ce5915 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -21,7 +21,6 @@ #include "fdbclient/NativeAPI.actor.h" #include -#include #include #include #include diff --git a/fdbclient/ThreadSafeTransaction.cpp b/fdbclient/ThreadSafeTransaction.cpp index 37ceaaa2ba..ee79360c56 100644 --- a/fdbclient/ThreadSafeTransaction.cpp +++ b/fdbclient/ThreadSafeTransaction.cpp @@ -23,7 +23,6 @@ #include "fdbclient/DatabaseContext.h" #include "fdbclient/versions.h" #include "fdbclient/NativeAPI.actor.h" -#include // Users of ThreadSafeTransaction might share Reference between different threads as long as they don't call addRef (e.g. C API follows this). // Therefore, it is unsafe to call (explicitly or implicitly) this->addRef in any of these functions. From 96a37e4d463d55e6b79bbc6156742af607b840a9 Mon Sep 17 00:00:00 2001 From: Dave Cottlehuber Date: Mon, 4 Jan 2021 13:13:06 +0000 Subject: [PATCH 131/261] build: don't clash with FreeBSD native defines FreeBSD has an existing CACHE_LINE_SIZE parameter as a platform-specific define. ``` # /usr/include/machine/param.h /* * CACHE_LINE_SIZE is the compile-time maximum cache line size for an * architecture. It should be used with appropriate caution. */ #define CACHE_LINE_SHIFT 6 #define CACHE_LINE_SIZE (1 << CACHE_LINE_SHIFT) ``` --- flow/ThreadPrimitives.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flow/ThreadPrimitives.h b/flow/ThreadPrimitives.h index 617a1ccd83..87cd703234 100644 --- a/flow/ThreadPrimitives.h +++ b/flow/ThreadPrimitives.h @@ -47,9 +47,9 @@ // TODO: We should make this dependent on the CPU. Maybe cmake // can set this variable properly? -constexpr size_t CACHE_LINE_SIZE = 64; +constexpr size_t MAX_CACHE_LINE_SIZE = 64; -class alignas(CACHE_LINE_SIZE) ThreadSpinLock { +class alignas(MAX_CACHE_LINE_SIZE) ThreadSpinLock { public: // #ifdef _WIN32 ThreadSpinLock() { @@ -90,7 +90,7 @@ private: std::atomic_flag isLocked = ATOMIC_FLAG_INIT; // We want a spin lock to occupy a cache line in order to // prevent false sharing. - std::array padding; + std::array padding; }; class ThreadSpinLockHolder { From 2daa4d33af1284a48eca34b54687dd8ea6b2a261 Mon Sep 17 00:00:00 2001 From: Dave Cottlehuber Date: Mon, 4 Jan 2021 13:41:53 +0000 Subject: [PATCH 132/261] flow: fix compilation error on FreeBSD --- flow/Platform.actor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flow/Platform.actor.cpp b/flow/Platform.actor.cpp index 265c96743c..7d8620c6fe 100644 --- a/flow/Platform.actor.cpp +++ b/flow/Platform.actor.cpp @@ -2406,7 +2406,7 @@ ACTOR Future> findFiles( std::string directory, std::string return result; } -#elif (defined(__linux__) || defined(__APPLE__)) +#elif (defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__)) #define FILE_ATTRIBUTE_DATA mode_t bool acceptFile( FILE_ATTRIBUTE_DATA fileAttributes, std::string const& name, std::string const& extension ) { From 53d23d95d86e8b6e61408481a6cc847c0287386c Mon Sep 17 00:00:00 2001 From: Jon Fu Date: Mon, 4 Jan 2021 15:26:48 -0500 Subject: [PATCH 133/261] initial commit in adding more documentation to special keys --- fdbclient/SystemData.cpp | 4 ---- fdbclient/SystemData.h | 43 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/fdbclient/SystemData.cpp b/fdbclient/SystemData.cpp index b402ad99a7..26b8ca50b5 100644 --- a/fdbclient/SystemData.cpp +++ b/fdbclient/SystemData.cpp @@ -203,10 +203,6 @@ const KeyRangeRef writeConflictRangeKeysRange = LiteralStringRef("\xff\xff/transaction/write_conflict_range/\xff\xff")); // "\xff/cacheServer/[[UID]] := StorageServerInterface" -// This will be added by the cache server on initialization and removed by DD -// TODO[mpilman]: We will need a way to map uint16_t ids to UIDs in a future -// versions. For now caches simply cache everything so the ids -// are not yet meaningful. const KeyRangeRef storageCacheServerKeys(LiteralStringRef("\xff/cacheServer/"), LiteralStringRef("\xff/cacheServer0")); const KeyRef storageCacheServersPrefix = storageCacheServerKeys.begin; diff --git a/fdbclient/SystemData.h b/fdbclient/SystemData.h index 20091a8045..3104aa53bb 100644 --- a/fdbclient/SystemData.h +++ b/fdbclient/SystemData.h @@ -45,6 +45,9 @@ extern const KeyRangeRef specialKeys; // [FF][FF] to [FF][FF][FF], some client f extern const KeyRef afterAllKeys; // "\xff/keyServers/[[begin]]" := "[[vector, vector]|[vector, vector]]" +// An internal mapping of where shards are located in the database. [[begin]] is the start of the shard range +// and the result is a list of serverIDs or Tags where these shards are located. These values can be changed +// as data movement occurs. extern const KeyRangeRef keyServersKeys, keyServersKeyServersKeys; extern const KeyRef keyServersPrefix, keyServersEnd, keyServersKeyServersKey; const Key keyServersKey( const KeyRef& k ); @@ -63,6 +66,10 @@ void decodeKeyServersValue( std::map const& tag_uid, const ValueRef& v std::vector& src, std::vector& dest ); // "\xff/storageCacheServer/[[UID]] := StorageServerInterface" +// This will be added by the cache server on initialization and removed by DD +// TODO[mpilman]: We will need a way to map uint16_t ids to UIDs in a future +// versions. For now caches simply cache everything so the ids +// are not yet meaningful. extern const KeyRangeRef storageCacheServerKeys; extern const KeyRef storageCacheServersPrefix, storageCacheServersEnd; const Key storageCacheServerKey(UID id); @@ -76,6 +83,10 @@ const Value storageCacheValue( const std::vector& serverIndices ); void decodeStorageCacheValue( const ValueRef& value, std::vector& serverIndices ); // "\xff/serverKeys/[[serverID]]/[[begin]]" := "" | "1" | "2" +// An internal mapping of what shards any given server currently has ownership of +// Using the serverID as a prefix, then followed by the beginning of the shard range +// as the key, the value indicates whether the shard does or does not exist on the server. +// These values can be changed as data movement occurs. extern const KeyRef serverKeysPrefix; extern const ValueRef serverKeysTrue, serverKeysFalse; const Key serverKeysKey( UID serverID, const KeyRef& keys ); @@ -103,6 +114,8 @@ const Key cacheChangeKeyFor( uint16_t idx ); uint16_t cacheChangeKeyDecodeIndex( const KeyRef& key ); // "\xff/serverTag/[[serverID]]" = "[[Tag]]" +// Provides the Tag for the given serverID. Used to access a +// storage server's corresponding TLog in order to apply mutations. extern const KeyRangeRef serverTagKeys; extern const KeyRef serverTagPrefix; extern const KeyRangeRef serverTagMaxKeys; @@ -122,6 +135,8 @@ Tag decodeServerTagValue( ValueRef const& ); const Key serverTagConflictKeyFor( Tag ); // "\xff/tagLocalityList/[[datacenterID]]" := "[[tagLocality]]" +// Provides the tagLocality for the given datacenterID +// See "FDBTypes.h" struct Tag for more details on tagLocality extern const KeyRangeRef tagLocalityListKeys; extern const KeyRef tagLocalityListPrefix; const Key tagLocalityListKeyFor( Optional dcID ); @@ -130,6 +145,8 @@ Optional decodeTagLocalityListKey( KeyRef const& ); int8_t decodeTagLocalityListValue( ValueRef const& ); // "\xff\x02/datacenterReplicas/[[datacenterID]]" := "[[replicas]]" +// Provides the number of replicas for the given datacenterID. +// Used in the initialization of the Data Distributor. extern const KeyRangeRef datacenterReplicasKeys; extern const KeyRef datacenterReplicasPrefix; const Key datacenterReplicasKeyFor( Optional dcID ); @@ -138,6 +155,8 @@ Optional decodeDatacenterReplicasKey( KeyRef const& ); int decodeDatacenterReplicasValue( ValueRef const& ); // "\xff\x02/tLogDatacenters/[[datacenterID]]" +// The existence of an empty string as a value signifies that the datacenterID is valid +// (as opposed to having no value at all) extern const KeyRangeRef tLogDatacentersKeys; extern const KeyRef tLogDatacentersPrefix; const Key tLogDatacentersKeyFor( Optional dcID ); @@ -170,20 +189,34 @@ ProcessClass decodeProcessClassValue( ValueRef const& ); UID decodeProcessClassKeyOld( KeyRef const& key ); // "\xff/conf/[[option]]" := "value" +// An umbrella prefix for options mostly used by the DatabaseConfiguration class. +// See DatabaseConfiguration.cpp ::setInternal for more examples. extern const KeyRangeRef configKeys; extern const KeyRef configKeysPrefix; +// The differences between excluded and failed can be found in "command-line-interface.rst" +// and in the help message of the fdbcli command "exclude". + // "\xff/conf/excluded/1.2.3.4" := "" // "\xff/conf/excluded/1.2.3.4:4000" := "" // These are inside configKeysPrefix since they represent a form of configuration and they are convenient // to track in the same way by the tlog and recovery process, but they are ignored by the DatabaseConfiguration // class. +// The existence of an empty string as a value signifies that the provided IP has been excluded. +// (as opposed to having no value at all) extern const KeyRef excludedServersPrefix; extern const KeyRangeRef excludedServersKeys; extern const KeyRef excludedServersVersionKey; // The value of this key shall be changed by any transaction that modifies the excluded servers list const AddressExclusion decodeExcludedServersKey( KeyRef const& key ); // where key.startsWith(excludedServersPrefix) std::string encodeExcludedServersKey( AddressExclusion const& ); +// "\xff/conf/failed/1.2.3.4" := "" +// "\xff/conf/failed/1.2.3.4:4000" := "" +// These are inside configKeysPrefix since they represent a form of configuration and they are convenient +// to track in the same way by the tlog and recovery process, but they are ignored by the DatabaseConfiguration +// class. +// The existence of an empty string as a value signifies that the provided IP has been marked as failed. +// (as opposed to having no value at all) extern const KeyRef failedServersPrefix; extern const KeyRangeRef failedServersKeys; extern const KeyRef failedServersVersionKey; // The value of this key shall be changed by any transaction that modifies the failed servers list @@ -201,6 +234,8 @@ Key decodeWorkerListKey( KeyRef const& ); ProcessData decodeWorkerListValue( ValueRef const& ); // "\xff\x02/backupProgress/[[workerID]]" := "[[WorkerBackupStatus]]" +// Provides the progress for the given backup worker. +// See "FDBTypes.h" struct WorkerBackupStatus for more details on the return type value. extern const KeyRangeRef backupProgressKeys; extern const KeyRef backupProgressPrefix; const Key backupProgressKeyFor(UID workerID); @@ -214,10 +249,16 @@ extern const KeyRef backupStartedKey; Value encodeBackupStartedValue(const std::vector>& ids); std::vector> decodeBackupStartedValue(const ValueRef& value); -// The key to signal backup workers that they should pause or resume. +// The key to signal backup workers that they should resume or pause. // "\xff\x02/backupPaused" := "[[0|1]]" +// 0 = Send a signal to resume/already resumed. +// 1 = Send a signal to pause/already paused. extern const KeyRef backupPausedKey; +// "\xff/coordinators = [[ClusterConnectionString]]" +// Set to the encoded structure of the cluster's current set of coordinators. +// Changed when performing quorumChange. +// See "CoordinationInterface.h" struct ClusterConnectionString for more details extern const KeyRef coordinatorsKey; extern const KeyRef logsKey; extern const KeyRef minRequiredCommitVersionKey; From a0d33c5d03b1479b9431b3145e7fbbfe1d7a5306 Mon Sep 17 00:00:00 2001 From: Jon Fu Date: Mon, 4 Jan 2021 16:00:12 -0500 Subject: [PATCH 134/261] added more comments --- fdbclient/SystemData.h | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/fdbclient/SystemData.h b/fdbclient/SystemData.h index 3104aa53bb..b9eeaa74fa 100644 --- a/fdbclient/SystemData.h +++ b/fdbclient/SystemData.h @@ -202,8 +202,8 @@ extern const KeyRef configKeysPrefix; // These are inside configKeysPrefix since they represent a form of configuration and they are convenient // to track in the same way by the tlog and recovery process, but they are ignored by the DatabaseConfiguration // class. -// The existence of an empty string as a value signifies that the provided IP has been excluded. -// (as opposed to having no value at all) +// The existence of an empty string as a value signifies that the provided IP has been excluded. +// (as opposed to having no value at all) extern const KeyRef excludedServersPrefix; extern const KeyRangeRef excludedServersKeys; extern const KeyRef excludedServersVersionKey; // The value of this key shall be changed by any transaction that modifies the excluded servers list @@ -215,17 +215,17 @@ std::string encodeExcludedServersKey( AddressExclusion const& ); // These are inside configKeysPrefix since they represent a form of configuration and they are convenient // to track in the same way by the tlog and recovery process, but they are ignored by the DatabaseConfiguration // class. -// The existence of an empty string as a value signifies that the provided IP has been marked as failed. -// (as opposed to having no value at all) +// The existence of an empty string as a value signifies that the provided IP has been marked as failed. +// (as opposed to having no value at all) extern const KeyRef failedServersPrefix; extern const KeyRangeRef failedServersKeys; extern const KeyRef failedServersVersionKey; // The value of this key shall be changed by any transaction that modifies the failed servers list const AddressExclusion decodeFailedServersKey( KeyRef const& key ); // where key.startsWith(failedServersPrefix) std::string encodeFailedServersKey( AddressExclusion const& ); -// "\xff/workers/[[processID]]" := "" -// Asynchronously updated by the cluster controller, this is a list of fdbserver processes that have joined the cluster -// and are currently (recently) available +// "\xff/workers/[[processID]]" := "" +// Asynchronously updated by the cluster controller, this is a list of fdbserver processes that have joined the cluster +// and are currently (recently) available extern const KeyRangeRef workerListKeys; extern const KeyRef workerListPrefix; const Key workerListKeyFor(StringRef processID ); @@ -233,7 +233,7 @@ const Value workerListValue( ProcessData const& ); Key decodeWorkerListKey( KeyRef const& ); ProcessData decodeWorkerListValue( ValueRef const& ); -// "\xff\x02/backupProgress/[[workerID]]" := "[[WorkerBackupStatus]]" +// "\xff\x02/backupProgress/[[workerID]]" := "[[WorkerBackupStatus]]" // Provides the progress for the given backup worker. // See "FDBTypes.h" struct WorkerBackupStatus for more details on the return type value. extern const KeyRangeRef backupProgressKeys; @@ -255,18 +255,25 @@ std::vector> decodeBackupStartedValue(const ValueRef& va // 1 = Send a signal to pause/already paused. extern const KeyRef backupPausedKey; -// "\xff/coordinators = [[ClusterConnectionString]]" +// "\xff/coordinators" = "[[ClusterConnectionString]]" // Set to the encoded structure of the cluster's current set of coordinators. // Changed when performing quorumChange. // See "CoordinationInterface.h" struct ClusterConnectionString for more details extern const KeyRef coordinatorsKey; + +// "\xff/logs" = "[[LogsValue]]" +// Used during master recovery in order to communicate +// and store info about the logs system. extern const KeyRef logsKey; + +// "\xff/minRequiredCommitVersion" = "[[Version]]" +// Used during backup/recovery to restrict version requirements extern const KeyRef minRequiredCommitVersionKey; const Value logsValue( const vector>& logs, const vector>& oldLogs ); std::pair>,vector>> decodeLogsValue( const ValueRef& value ); -// The "global keys" are send to each storage server any time they are changed +// The "global keys" are sent to each storage server any time they are changed extern const KeyRef globalKeysPrefix; extern const KeyRef lastEpochEndKey; extern const KeyRef lastEpochEndPrivateKey; @@ -294,6 +301,7 @@ extern const KeyRef tagThrottleLimitKey; extern const KeyRef tagThrottleCountKey; // Log Range constant variables +// Used in the backup pipeline to track mutations // \xff/logRanges/[16-byte UID][begin key] := serialize( make_pair([end key], [destination key prefix]), IncludeVersion() ) extern const KeyRangeRef logRangesRange; From 278e7de6f507beedae51e3b822d371e1ab171ec7 Mon Sep 17 00:00:00 2001 From: Jon Fu Date: Mon, 4 Jan 2021 16:59:08 -0500 Subject: [PATCH 135/261] added more documentation --- fdbclient/SystemData.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fdbclient/SystemData.h b/fdbclient/SystemData.h index b9eeaa74fa..156fd7dc4a 100644 --- a/fdbclient/SystemData.h +++ b/fdbclient/SystemData.h @@ -446,8 +446,16 @@ std::pair decodeHealthyZoneValue( ValueRef const& ); extern const KeyRangeRef testOnlyTxnStateStorePrefixRange; // Snapshot + Incremental Restore + +// "\xff/writeRecovery" = "[[writeRecoveryKeyTrue]]" +// Flag used for the snapshot-restore pipeline in order to avoid +// anomalous behaviour with multiple recoveries. extern const KeyRef writeRecoveryKey; extern const ValueRef writeRecoveryKeyTrue; + +// "\xff/snapshotEndVersion" = "[[Version]]" +// Written by master server during recovery if recovering from a snapshot. +// Allows incremental restore to read and set starting version for consistency. extern const KeyRef snapshotEndVersionKey; #pragma clang diagnostic pop From be11ab7a3dc9badaa2a7c3f7b02ad8bab604e6c7 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Mon, 4 Jan 2021 23:50:23 -0800 Subject: [PATCH 136/261] Remove unnecessary depedency --- bindings/c/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bindings/c/CMakeLists.txt b/bindings/c/CMakeLists.txt index fdc20914bb..00b33770ad 100644 --- a/bindings/c/CMakeLists.txt +++ b/bindings/c/CMakeLists.txt @@ -100,9 +100,9 @@ if(NOT WIN32) target_link_libraries(fdb_c_ryw_benchmark PRIVATE fdb_c) target_link_libraries(fdb_c_txn_size_test PRIVATE fdb_c) - add_dependencies(fdb_c_setup_tests doctest rapidjson) + add_dependencies(fdb_c_setup_tests doctest) add_dependencies(fdb_c_unit_tests doctest rapidjson) - target_include_directories(fdb_c_setup_tests PUBLIC ${DOCTEST_INCLUDE_DIR} ${RAPIDJSON_INCLUDE_DIR}) + target_include_directories(fdb_c_setup_tests PUBLIC ${DOCTEST_INCLUDE_DIR}) target_include_directories(fdb_c_unit_tests PUBLIC ${DOCTEST_INCLUDE_DIR} ${RAPIDJSON_INCLUDE_DIR}) target_link_libraries(fdb_c_setup_tests PRIVATE fdb_c Threads::Threads) target_link_libraries(fdb_c_unit_tests PRIVATE fdb_c Threads::Threads) From 5ffb280aadc4b5dcba9999a77d05642749d7df66 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Tue, 5 Jan 2021 09:53:06 -0800 Subject: [PATCH 137/261] Let rapidjson as a module in cmake --- bindings/c/CMakeLists.txt | 1 + .../c/test/unit/third_party/CMakeLists.txt | 16 -------- cmake/Compilerapidjson.cmake | 38 +++++++++++++++++++ cmake/Findrapidjson.cmake | 8 ++++ 4 files changed, 47 insertions(+), 16 deletions(-) create mode 100644 cmake/Compilerapidjson.cmake create mode 100644 cmake/Findrapidjson.cmake diff --git a/bindings/c/CMakeLists.txt b/bindings/c/CMakeLists.txt index 00b33770ad..24c0734bb1 100644 --- a/bindings/c/CMakeLists.txt +++ b/bindings/c/CMakeLists.txt @@ -73,6 +73,7 @@ if(NOT WIN32) test/mako/utils.h) add_subdirectory(test/unit/third_party) find_package(Threads REQUIRED) + include(Compilerapidjson) set(UNIT_TEST_SRCS test/unit/unit_tests.cpp test/unit/fdb_api.cpp diff --git a/bindings/c/test/unit/third_party/CMakeLists.txt b/bindings/c/test/unit/third_party/CMakeLists.txt index aea3493a09..6229abb0c9 100644 --- a/bindings/c/test/unit/third_party/CMakeLists.txt +++ b/bindings/c/test/unit/third_party/CMakeLists.txt @@ -16,19 +16,3 @@ ExternalProject_Add( ExternalProject_Get_Property(doctest source_dir) set(DOCTEST_INCLUDE_DIR ${source_dir}/doctest CACHE INTERNAL "Path to include folder for doctest") - -# Download rapidjson repo. -ExternalProject_Add( - rapidjson - PREFIX ${CMAKE_BINARY_DIR}/rapidjson - GIT_REPOSITORY https://github.com/Tencent/rapidjson.git - GIT_TAG f54b0e47a08782a6131cc3d60f94d038fa6e0a51 # v1.1.0 - TIMEOUT 10 - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - LOG_DOWNLOAD ON -) - -ExternalProject_Get_Property(rapidjson source_dir) -set(RAPIDJSON_INCLUDE_DIR ${source_dir}/include CACHE INTERNAL "Path to include folder for rapidjson") diff --git a/cmake/Compilerapidjson.cmake b/cmake/Compilerapidjson.cmake new file mode 100644 index 0000000000..b9687e4fa5 --- /dev/null +++ b/cmake/Compilerapidjson.cmake @@ -0,0 +1,38 @@ +# Findrapidjson + +find_package(rapidjson) + +include(ExternalProject) + +if (rapidjson_FOUND) + message(STATUS "Found rapidjson library!") + ExternalProject_Add(rapidjson + PREFIX ${CMAKE_BINARY_DIR}/rapidjson + DOWNLOAD_COMMAND "" + INSTALL_COMMAND "" + ) +else() + message(STATUS "rapidjson not found. Downloading ...") + ExternalProject_Add( + rapidjson + PREFIX ${CMAKE_BINARY_DIR}/rapidjson + GIT_REPOSITORY https://github.com/Tencent/rapidjson.git + GIT_TAG f54b0e47a08782a6131cc3d60f94d038fa6e0a51 # v1.1.0 + TIMEOUT 10s + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + LOG_DOWNLOAD ON + ) + + ExternalProject_Get_Property(rapidjson SOURCE_DIR) + set (RAPIDJSON_INCLUDE_DIR "${SOURCE_DIR}/include") + + # set(rapidjson_FOUND TRUE) +endif() + +message(STATUS "Found rapidjson includes: ${RAPIDJSON_INCLUDE_DIR}") + +mark_as_advanced( + RAPIDJSON_INCLUDE_DIR +) diff --git a/cmake/Findrapidjson.cmake b/cmake/Findrapidjson.cmake new file mode 100644 index 0000000000..52459519e8 --- /dev/null +++ b/cmake/Findrapidjson.cmake @@ -0,0 +1,8 @@ +# Findrapidjson + +find_path(RAPIDJSON_INCLUDE_DIR + NAMES rapidjson/rapidjson.h + PATH_SUFFIXES include) + +find_package_handle_standard_args(rapidjson + DEFAULT_MSG RAPIDJSON_INCLUDE_DIR) From c550ef594c9c18b9f7dc838ba88cc1b929504544 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Tue, 5 Jan 2021 09:59:30 -0800 Subject: [PATCH 138/261] Update documentation for check-on-reboot --- documentation/sphinx/source/api-c.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/sphinx/source/api-c.rst b/documentation/sphinx/source/api-c.rst index ff114d7f4e..449d4e81f2 100644 --- a/documentation/sphinx/source/api-c.rst +++ b/documentation/sphinx/source/api-c.rst @@ -439,7 +439,7 @@ An |database-blurb1| Modifications to a database are performed via transactions. |length-of| ``address``. ``check`` - whether to make sure the data is durable on disk. + whether to perform a storage engine integrity check. In particular, the check-on-reboot is implemented by writing a check/validation file on disk as breadcrumb for the process to find after reboot, at which point it will eat the breadcrumb file and pass true to the integrityCheck parameter of the openKVStore() factory method. ``duration`` If positive, the process will be first suspended for ``duration`` seconds before being rebooted. From 58360a192fda6550c5a564d0d42daffe7667a4ad Mon Sep 17 00:00:00 2001 From: "A.J. Beamon" Date: Tue, 5 Jan 2021 10:18:43 -0800 Subject: [PATCH 139/261] Add a counter for the number of status requests made by a client --- fdbclient/DatabaseContext.h | 1 + fdbclient/NativeAPI.actor.cpp | 18 +++++++++--------- fdbclient/ReadYourWrites.actor.cpp | 1 + 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/fdbclient/DatabaseContext.h b/fdbclient/DatabaseContext.h index a0d2ea6414..b0760df84a 100644 --- a/fdbclient/DatabaseContext.h +++ b/fdbclient/DatabaseContext.h @@ -188,6 +188,7 @@ public: Counter transactionsCommitCompleted; Counter transactionKeyServerLocationRequests; Counter transactionKeyServerLocationRequestsCompleted; + Counter transactionStatusRequests; Counter transactionsTooOld; Counter transactionsFutureVersions; Counter transactionsNotCommitted; diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index da4c362378..649aa0fc25 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -524,10 +524,11 @@ DatabaseContext::DatabaseContext( transactionBytesRead("BytesRead", cc), transactionKeysRead("KeysRead", cc), transactionMetadataVersionReads("MetadataVersionReads", cc), transactionCommittedMutations("CommittedMutations", cc), transactionCommittedMutationBytes("CommittedMutationBytes", cc), transactionSetMutations("SetMutations", cc), transactionClearMutations("ClearMutations", cc), transactionAtomicMutations("AtomicMutations", cc), transactionsCommitStarted("CommitStarted", cc), transactionsCommitCompleted("CommitCompleted", cc), - transactionKeyServerLocationRequests("KeyServerLocationRequests", cc), transactionKeyServerLocationRequestsCompleted("KeyServerLocationRequestsCompleted", cc), transactionsTooOld("TooOld", cc), - transactionsFutureVersions("FutureVersions", cc), transactionsNotCommitted("NotCommitted", cc), transactionsMaybeCommitted("MaybeCommitted", cc), - transactionsResourceConstrained("ResourceConstrained", cc), transactionsProcessBehind("ProcessBehind", cc), outstandingWatches(0), latencies(1000), readLatencies(1000), commitLatencies(1000), - GRVLatencies(1000), mutationsPerCommit(1000), bytesPerCommit(1000), mvCacheInsertLocation(0), healthMetricsLastUpdated(0), detailedHealthMetricsLastUpdated(0), internal(internal) + transactionKeyServerLocationRequests("KeyServerLocationRequests", cc), transactionKeyServerLocationRequestsCompleted("KeyServerLocationRequestsCompleted", cc), + transactionStatusRequests("StatusRequests", cc), transactionsTooOld("TooOld", cc), transactionsFutureVersions("FutureVersions", cc), transactionsNotCommitted("NotCommitted", cc), + transactionsMaybeCommitted("MaybeCommitted", cc), transactionsResourceConstrained("ResourceConstrained", cc), transactionsProcessBehind("ProcessBehind", cc), outstandingWatches(0), + latencies(1000), readLatencies(1000), commitLatencies(1000), GRVLatencies(1000), mutationsPerCommit(1000), bytesPerCommit(1000), mvCacheInsertLocation(0), healthMetricsLastUpdated(0), + detailedHealthMetricsLastUpdated(0), internal(internal) { dbId = deterministicRandom()->randomUniqueID(); connected = clientInfo->get().proxies.size() ? Void() : clientInfo->onChange(); @@ -559,11 +560,10 @@ DatabaseContext::DatabaseContext( const Error &err ) : deferredError(err), cc("T transactionBytesRead("BytesRead", cc), transactionKeysRead("KeysRead", cc), transactionMetadataVersionReads("MetadataVersionReads", cc), transactionCommittedMutations("CommittedMutations", cc), transactionCommittedMutationBytes("CommittedMutationBytes", cc), transactionSetMutations("SetMutations", cc), transactionClearMutations("ClearMutations", cc), transactionAtomicMutations("AtomicMutations", cc), transactionsCommitStarted("CommitStarted", cc), transactionsCommitCompleted("CommitCompleted", cc), - transactionKeyServerLocationRequests("KeyServerLocationRequests", cc), transactionKeyServerLocationRequestsCompleted("KeyServerLocationRequestsCompleted", cc), transactionsTooOld("TooOld", cc), - transactionsFutureVersions("FutureVersions", cc), transactionsNotCommitted("NotCommitted", cc), transactionsMaybeCommitted("MaybeCommitted", cc), - transactionsResourceConstrained("ResourceConstrained", cc), transactionsProcessBehind("ProcessBehind", cc), latencies(1000), readLatencies(1000), commitLatencies(1000), - GRVLatencies(1000), mutationsPerCommit(1000), bytesPerCommit(1000), - internal(false) {} + transactionKeyServerLocationRequests("KeyServerLocationRequests", cc), transactionKeyServerLocationRequestsCompleted("KeyServerLocationRequestsCompleted", cc), + transactionStatusRequests("StatusRequests", cc), transactionsTooOld("TooOld", cc), transactionsFutureVersions("FutureVersions", cc), transactionsNotCommitted("NotCommitted", cc), + transactionsMaybeCommitted("MaybeCommitted", cc), transactionsResourceConstrained("ResourceConstrained", cc), transactionsProcessBehind("ProcessBehind", cc), + latencies(1000), readLatencies(1000), commitLatencies(1000), GRVLatencies(1000), mutationsPerCommit(1000), bytesPerCommit(1000), internal(false) {} Database DatabaseContext::create(Reference> clientInfo, Future clientInfoMonitor, LocalityData clientLocality, bool enableLocalityLoadBalance, TaskPriority taskID, bool lockAware, int apiVersion, bool switchable) { diff --git a/fdbclient/ReadYourWrites.actor.cpp b/fdbclient/ReadYourWrites.actor.cpp index c2a0fbdb69..0a3ab4fe93 100644 --- a/fdbclient/ReadYourWrites.actor.cpp +++ b/fdbclient/ReadYourWrites.actor.cpp @@ -1211,6 +1211,7 @@ Future< Optional > ReadYourWritesTransaction::get( const Key& key, bool s if (key == LiteralStringRef("\xff\xff/status/json")){ if (tr.getDatabase().getPtr() && tr.getDatabase()->getConnectionFile()) { + ++tr.getDatabase()->transactionStatusRequests; return getJSON(tr.getDatabase()); } else { From 31cc8885626234e9e6f14b7e5527bbb039d7e05b Mon Sep 17 00:00:00 2001 From: Vishesh Yadav Date: Tue, 22 Dec 2020 16:53:34 -0800 Subject: [PATCH 140/261] Make fault_tolerance_without_losing data consistent with 6.2 in HA. Don't consider satellites for now. This is a HACK which needs to be fixed soon, but for now need this to keep the monitoring sane. --- fdbserver/Status.actor.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fdbserver/Status.actor.cpp b/fdbserver/Status.actor.cpp index d5ae2c6dbf..4ece196afc 100644 --- a/fdbserver/Status.actor.cpp +++ b/fdbserver/Status.actor.cpp @@ -1945,7 +1945,14 @@ static JsonBuilderObject tlogFetcher(int* logFaultTolerance, const std::vector= 0) { localSetsWithNonNegativeFaultTolerance++; } - minFaultTolerance = std::min(minFaultTolerance, currentFaultTolerance); + + if (tLogs[i].locality == tagLocalitySatellite) { + // FIXME: This hack to bump satellite fault tolerance, is to make it consistent + // with 6.2. + minFaultTolerance = std::min(minFaultTolerance, currentFaultTolerance + 1); + } else { + minFaultTolerance = std::min(minFaultTolerance, currentFaultTolerance); + } } if (tLogs[i].isLocal && tLogs[i].locality == tagLocalitySatellite) { From 4c28341351e89a83876596ca9163fa2590db2417 Mon Sep 17 00:00:00 2001 From: Steve Atherton Date: Tue, 5 Jan 2021 21:34:16 -0800 Subject: [PATCH 141/261] Performance bug fix: Every page cache hit was calling forwardError() unnecessarily. --- fdbserver/VersionedBTree.actor.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fdbserver/VersionedBTree.actor.cpp b/fdbserver/VersionedBTree.actor.cpp index 40a7763c2c..bb07586379 100644 --- a/fdbserver/VersionedBTree.actor.cpp +++ b/fdbserver/VersionedBTree.actor.cpp @@ -1649,11 +1649,10 @@ public: if (!cacheEntry.initialized()) { debug_printf("DWALPager(%s) issuing actual read of %s\n", filename.c_str(), toString(pageID).c_str()); - cacheEntry.readFuture = readPhysicalPage(this, (PhysicalPageID)pageID); + cacheEntry.readFuture = forwardError(readPhysicalPage(this, (PhysicalPageID)pageID), errorPromise); cacheEntry.writeFuture = Void(); } - cacheEntry.readFuture = forwardError(cacheEntry.readFuture, errorPromise); return cacheEntry.readFuture; } From 3fb056e9fe5329203e3dcae68e3edccc3cc986df Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Tue, 5 Jan 2021 23:53:42 -0800 Subject: [PATCH 142/261] Revert "Let rapidjson as a module in cmake" This reverts commit 5ffb280aadc4b5dcba9999a77d05642749d7df66. --- bindings/c/CMakeLists.txt | 1 - .../c/test/unit/third_party/CMakeLists.txt | 16 ++++++++ cmake/Compilerapidjson.cmake | 38 ------------------- cmake/Findrapidjson.cmake | 8 ---- 4 files changed, 16 insertions(+), 47 deletions(-) delete mode 100644 cmake/Compilerapidjson.cmake delete mode 100644 cmake/Findrapidjson.cmake diff --git a/bindings/c/CMakeLists.txt b/bindings/c/CMakeLists.txt index 24c0734bb1..00b33770ad 100644 --- a/bindings/c/CMakeLists.txt +++ b/bindings/c/CMakeLists.txt @@ -73,7 +73,6 @@ if(NOT WIN32) test/mako/utils.h) add_subdirectory(test/unit/third_party) find_package(Threads REQUIRED) - include(Compilerapidjson) set(UNIT_TEST_SRCS test/unit/unit_tests.cpp test/unit/fdb_api.cpp diff --git a/bindings/c/test/unit/third_party/CMakeLists.txt b/bindings/c/test/unit/third_party/CMakeLists.txt index 6229abb0c9..aea3493a09 100644 --- a/bindings/c/test/unit/third_party/CMakeLists.txt +++ b/bindings/c/test/unit/third_party/CMakeLists.txt @@ -16,3 +16,19 @@ ExternalProject_Add( ExternalProject_Get_Property(doctest source_dir) set(DOCTEST_INCLUDE_DIR ${source_dir}/doctest CACHE INTERNAL "Path to include folder for doctest") + +# Download rapidjson repo. +ExternalProject_Add( + rapidjson + PREFIX ${CMAKE_BINARY_DIR}/rapidjson + GIT_REPOSITORY https://github.com/Tencent/rapidjson.git + GIT_TAG f54b0e47a08782a6131cc3d60f94d038fa6e0a51 # v1.1.0 + TIMEOUT 10 + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + LOG_DOWNLOAD ON +) + +ExternalProject_Get_Property(rapidjson source_dir) +set(RAPIDJSON_INCLUDE_DIR ${source_dir}/include CACHE INTERNAL "Path to include folder for rapidjson") diff --git a/cmake/Compilerapidjson.cmake b/cmake/Compilerapidjson.cmake deleted file mode 100644 index b9687e4fa5..0000000000 --- a/cmake/Compilerapidjson.cmake +++ /dev/null @@ -1,38 +0,0 @@ -# Findrapidjson - -find_package(rapidjson) - -include(ExternalProject) - -if (rapidjson_FOUND) - message(STATUS "Found rapidjson library!") - ExternalProject_Add(rapidjson - PREFIX ${CMAKE_BINARY_DIR}/rapidjson - DOWNLOAD_COMMAND "" - INSTALL_COMMAND "" - ) -else() - message(STATUS "rapidjson not found. Downloading ...") - ExternalProject_Add( - rapidjson - PREFIX ${CMAKE_BINARY_DIR}/rapidjson - GIT_REPOSITORY https://github.com/Tencent/rapidjson.git - GIT_TAG f54b0e47a08782a6131cc3d60f94d038fa6e0a51 # v1.1.0 - TIMEOUT 10s - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - LOG_DOWNLOAD ON - ) - - ExternalProject_Get_Property(rapidjson SOURCE_DIR) - set (RAPIDJSON_INCLUDE_DIR "${SOURCE_DIR}/include") - - # set(rapidjson_FOUND TRUE) -endif() - -message(STATUS "Found rapidjson includes: ${RAPIDJSON_INCLUDE_DIR}") - -mark_as_advanced( - RAPIDJSON_INCLUDE_DIR -) diff --git a/cmake/Findrapidjson.cmake b/cmake/Findrapidjson.cmake deleted file mode 100644 index 52459519e8..0000000000 --- a/cmake/Findrapidjson.cmake +++ /dev/null @@ -1,8 +0,0 @@ -# Findrapidjson - -find_path(RAPIDJSON_INCLUDE_DIR - NAMES rapidjson/rapidjson.h - PATH_SUFFIXES include) - -find_package_handle_standard_args(rapidjson - DEFAULT_MSG RAPIDJSON_INCLUDE_DIR) From 97a4637b5298bec5e98d01423f5cea469fb1e8e3 Mon Sep 17 00:00:00 2001 From: Balachandar Namasivayam Date: Wed, 6 Jan 2021 11:54:18 -0800 Subject: [PATCH 143/261] Update downloads and release notes for 6.3.10 --- documentation/sphinx/source/downloads.rst | 24 +++++++++---------- .../release-notes/release-notes-630.rst | 8 ++++++- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/documentation/sphinx/source/downloads.rst b/documentation/sphinx/source/downloads.rst index 825eefab40..b6255f42ec 100644 --- a/documentation/sphinx/source/downloads.rst +++ b/documentation/sphinx/source/downloads.rst @@ -10,38 +10,38 @@ macOS The macOS installation package is supported on macOS 10.7+. It includes the client and (optionally) the server. -* `FoundationDB-6.3.9.pkg `_ +* `FoundationDB-6.3.10.pkg `_ Ubuntu ------ The Ubuntu packages are supported on 64-bit Ubuntu 12.04+, but beware of the Linux kernel bug in Ubuntu 12.x. -* `foundationdb-clients-6.3.9-1_amd64.deb `_ -* `foundationdb-server-6.3.9-1_amd64.deb `_ (depends on the clients package) +* `foundationdb-clients-6.3.10-1_amd64.deb `_ +* `foundationdb-server-6.3.10-1_amd64.deb `_ (depends on the clients package) RHEL/CentOS EL6 --------------- The RHEL/CentOS EL6 packages are supported on 64-bit RHEL/CentOS 6.x. -* `foundationdb-clients-6.3.9-1.el6.x86_64.rpm `_ -* `foundationdb-server-6.3.9-1.el6.x86_64.rpm `_ (depends on the clients package) +* `foundationdb-clients-6.3.10-1.el6.x86_64.rpm `_ +* `foundationdb-server-6.3.10-1.el6.x86_64.rpm `_ (depends on the clients package) RHEL/CentOS EL7 --------------- The RHEL/CentOS EL7 packages are supported on 64-bit RHEL/CentOS 7.x. -* `foundationdb-clients-6.3.9-1.el7.x86_64.rpm `_ -* `foundationdb-server-6.3.9-1.el7.x86_64.rpm `_ (depends on the clients package) +* `foundationdb-clients-6.3.10-1.el7.x86_64.rpm `_ +* `foundationdb-server-6.3.10-1.el7.x86_64.rpm `_ (depends on the clients package) Windows ------- The Windows installer is supported on 64-bit Windows XP and later. It includes the client and (optionally) the server. -* `foundationdb-6.3.9-x64.msi `_ +* `foundationdb-6.3.10-x64.msi `_ API Language Bindings ===================== @@ -58,18 +58,18 @@ On macOS and Windows, the FoundationDB Python API bindings are installed as part If you need to use the FoundationDB Python API from other Python installations or paths, use the Python package manager ``pip`` (``pip install foundationdb``) or download the Python package: -* `foundationdb-6.3.9.tar.gz `_ +* `foundationdb-6.3.10.tar.gz `_ Ruby 1.9.3/2.0.0+ ----------------- -* `fdb-6.3.9.gem `_ +* `fdb-6.3.10.gem `_ Java 8+ ------- -* `fdb-java-6.3.9.jar `_ -* `fdb-java-6.3.9-javadoc.jar `_ +* `fdb-java-6.3.10.jar `_ +* `fdb-java-6.3.10-javadoc.jar `_ Go 1.11+ -------- diff --git a/documentation/sphinx/source/release-notes/release-notes-630.rst b/documentation/sphinx/source/release-notes/release-notes-630.rst index b79db36a9c..246f7e6277 100644 --- a/documentation/sphinx/source/release-notes/release-notes-630.rst +++ b/documentation/sphinx/source/release-notes/release-notes-630.rst @@ -6,6 +6,12 @@ Release Notes 6.3.10 ====== +* Make fault tolerance metric calculation in HA clusters consistent with 6.2 branch. `(PR #4175) `_ +* Bug fix, stack overflow in redwood storage engine. `(PR #4161) `_ +* Bug fix, getting certain special keys fail. `(PR #4128) `_ +* Prevent slow task on TLog by yielding while processing ignored pop requests. `(PR #4112) `_ +* Support reading xxhash3 sqlite checksums. `(PR #4104) `_ +* Fix a race between submit and abort backup. `(PR #3935) `_ Packaging --------- @@ -134,7 +140,7 @@ Fixes from previous versions * The 6.3.3 patch release includes all fixes from the patch release 6.2.23. :doc:`(6.2 Release Notes) ` * The 6.3.5 patch release includes all fixes from the patch releases 6.2.24 and 6.2.25. :doc:`(6.2 Release Notes) ` * The 6.3.9 patch release includes all fixes from the patch releases 6.2.26. :doc:`(6.2 Release Notes) ` -* The 6.3.10 patch release includes all fixes from the patch releases 6.2.27. :doc:`(6.2 Release Notes) ` +* The 6.3.10 patch release includes all fixes from the patch releases 6.2.27-6.2.29 :doc:`(6.2 Release Notes) ` Fixes only impacting 6.3.0+ --------------------------- From e2e9b70206c7d1cb06a707f0c4b1433cc902d922 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Wed, 6 Jan 2021 22:09:38 +0000 Subject: [PATCH 144/261] Remove -Wno-unused-value --- cmake/ConfigureCompiler.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/cmake/ConfigureCompiler.cmake b/cmake/ConfigureCompiler.cmake index 270fbc9f9c..d5dbb1a416 100644 --- a/cmake/ConfigureCompiler.cmake +++ b/cmake/ConfigureCompiler.cmake @@ -259,7 +259,6 @@ else() -Wno-unused-function -Wno-unused-local-typedef -Wno-unused-parameter - -Wno-unused-value -Wno-self-assign ) if (USE_CCACHE) From fbcc85843f03fb5572262953bb5bda7c00331f94 Mon Sep 17 00:00:00 2001 From: Jon Fu Date: Wed, 6 Jan 2021 17:15:31 -0500 Subject: [PATCH 145/261] clarify comment for serverKeys possible values --- fdbclient/SystemData.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fdbclient/SystemData.h b/fdbclient/SystemData.h index 156fd7dc4a..f9cdb2138f 100644 --- a/fdbclient/SystemData.h +++ b/fdbclient/SystemData.h @@ -82,7 +82,7 @@ const Key storageCacheKey( const KeyRef& k ); const Value storageCacheValue( const std::vector& serverIndices ); void decodeStorageCacheValue( const ValueRef& value, std::vector& serverIndices ); -// "\xff/serverKeys/[[serverID]]/[[begin]]" := "" | "1" | "2" +// "\xff/serverKeys/[[serverID]]/[[begin]]" := "[[serverKeysTrue]]" |" [[serverKeysFalse]]" // An internal mapping of what shards any given server currently has ownership of // Using the serverID as a prefix, then followed by the beginning of the shard range // as the key, the value indicates whether the shard does or does not exist on the server. From 74c6427e6ef276420a8cbbdddd5ecd6171fa61c0 Mon Sep 17 00:00:00 2001 From: Balachandar Namasivayam Date: Wed, 6 Jan 2021 23:29:57 -0800 Subject: [PATCH 146/261] update version to 6.3.11 --- CMakeLists.txt | 2 +- versions.target | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 844d302637..81af95a68f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ # limitations under the License. cmake_minimum_required(VERSION 3.13) project(foundationdb - VERSION 6.3.10 + VERSION 6.3.11 DESCRIPTION "FoundationDB is a scalable, fault-tolerant, ordered key-value store with full ACID transactions." HOMEPAGE_URL "http://www.foundationdb.org/" LANGUAGES C CXX ASM) diff --git a/versions.target b/versions.target index 8b1467c77e..7264504e1e 100644 --- a/versions.target +++ b/versions.target @@ -1,7 +1,7 @@ - 6.3.10 + 6.3.11 6.3 From 73233d778d51aedfe32de9f065bb53f99479eb98 Mon Sep 17 00:00:00 2001 From: Balachandar Namasivayam Date: Wed, 6 Jan 2021 23:29:57 -0800 Subject: [PATCH 147/261] update installer WIX GUID following release --- packaging/msi/FDBInstaller.wxs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/msi/FDBInstaller.wxs b/packaging/msi/FDBInstaller.wxs index 63a724ab46..7489ae2272 100644 --- a/packaging/msi/FDBInstaller.wxs +++ b/packaging/msi/FDBInstaller.wxs @@ -32,7 +32,7 @@ Date: Sat, 9 Jan 2021 07:03:47 -0800 Subject: [PATCH 148/261] Add write buffering to BackupContainerLocalDirectory::BackupFile to greatly reduce the number of IAsyncFile::write() calls made when writing backup data. The buffer size is controlled by a knob. --- fdbclient/BackupContainer.actor.cpp | 43 ++++++++++++++++++++++++++--- fdbclient/BackupContainer.h | 7 ++--- fdbclient/Knobs.cpp | 1 + fdbclient/Knobs.h | 1 + 4 files changed, 43 insertions(+), 9 deletions(-) diff --git a/fdbclient/BackupContainer.actor.cpp b/fdbclient/BackupContainer.actor.cpp index bd96901512..a886fd2444 100644 --- a/fdbclient/BackupContainer.actor.cpp +++ b/fdbclient/BackupContainer.actor.cpp @@ -1277,15 +1277,39 @@ public: class BackupFile : public IBackupFile, ReferenceCounted { public: - BackupFile(std::string fileName, Reference file, std::string finalFullPath) : IBackupFile(fileName), m_file(file), m_finalFullPath(finalFullPath) {} + BackupFile(std::string fileName, Reference file, std::string finalFullPath) + : IBackupFile(fileName), m_file(file), m_finalFullPath(finalFullPath), m_writeOffset(0) + { + m_buffer.reserve(m_buffer.arena(), CLIENT_KNOBS->BACKUP_LOCAL_FILE_WRITE_BLOCK); + } Future append(const void *data, int len) { - Future r = m_file->write(data, len, m_offset); - m_offset += len; + m_buffer.append(m_buffer.arena(), (const uint8_t *)data, len); + + if(m_buffer.size() >= CLIENT_KNOBS->BACKUP_LOCAL_FILE_WRITE_BLOCK) { + return flush(CLIENT_KNOBS->BACKUP_LOCAL_FILE_WRITE_BLOCK); + } + + return Void(); + } + + Future flush(int size) { + ASSERT(size <= m_buffer.size()); + + // Keep a reference to the old buffer + Standalone> old = m_buffer; + // Make a new buffer, initialized with the excess bytes over the block size from the old buffer + m_buffer = Standalone>(old.slice(size, old.size())); + + // Write the old buffer to the underlying file and update the write offset + Future r = holdWhile(old, m_file->write(old.begin(), size, m_writeOffset)); + m_writeOffset += size; + return r; } ACTOR static Future finish_impl(Reference f) { + wait(f->flush(f->m_buffer.size())); wait(f->m_file->truncate(f->size())); // Some IAsyncFile implementations extend in whole block sizes. wait(f->m_file->sync()); std::string name = f->m_file->getFilename(); @@ -1294,6 +1318,10 @@ public: return Void(); } + int64_t size() const { + return m_buffer.size() + m_writeOffset; + } + Future finish() { return finish_impl(Reference::addRef(this)); } @@ -1303,6 +1331,8 @@ public: private: Reference m_file; + Standalone> m_buffer; + int64_t m_writeOffset; std::string m_finalFullPath; }; @@ -1435,7 +1465,7 @@ public: class BackupFile : public IBackupFile, ReferenceCounted { public: - BackupFile(std::string fileName, Reference file) : IBackupFile(fileName), m_file(file) {} + BackupFile(std::string fileName, Reference file) : IBackupFile(fileName), m_file(file), m_offset(0) {} Future append(const void *data, int len) { Future r = m_file->write(data, len, m_offset); @@ -1448,10 +1478,15 @@ public: return map(m_file->sync(), [=](Void _) { self->m_file.clear(); return Void(); }); } + int64_t size() const { + return m_offset; + } + void addref() { return ReferenceCounted::addref(); } void delref() { return ReferenceCounted::delref(); } private: Reference m_file; + int64_t m_offset; }; Future> writeFile(std::string path) { diff --git a/fdbclient/BackupContainer.h b/fdbclient/BackupContainer.h index 552223cc25..5520251288 100644 --- a/fdbclient/BackupContainer.h +++ b/fdbclient/BackupContainer.h @@ -36,7 +36,7 @@ Future timeKeeperVersionFromDatetime(std::string const &datetime, Datab // TODO: Move the log file and range file format encoding/decoding stuff to this file and behind interfaces. class IBackupFile { public: - IBackupFile(std::string fileName) : m_fileName(fileName), m_offset(0) {} + IBackupFile(std::string fileName) : m_fileName(fileName) {} virtual ~IBackupFile() {} // Backup files are append-only and cannot have more than 1 append outstanding at once. virtual Future append(const void *data, int len) = 0; @@ -44,16 +44,13 @@ public: inline std::string getFileName() const { return m_fileName; } - inline int64_t size() const { - return m_offset; - } + virtual int64_t size() const = 0; virtual void addref() = 0; virtual void delref() = 0; Future appendStringRefWithLen(Standalone s); protected: std::string m_fileName; - int64_t m_offset; }; // Structures for various backup components diff --git a/fdbclient/Knobs.cpp b/fdbclient/Knobs.cpp index 92595f2030..285c966b54 100644 --- a/fdbclient/Knobs.cpp +++ b/fdbclient/Knobs.cpp @@ -115,6 +115,7 @@ ClientKnobs::ClientKnobs(bool randomize) { init( TASKBUCKET_MAX_TASK_KEYS, 1000 ); if( randomize && BUGGIFY ) TASKBUCKET_MAX_TASK_KEYS = 20; //Backup + init( BACKUP_LOCAL_FILE_WRITE_BLOCK, 1024*1024 ); if( randomize && BUGGIFY ) BACKUP_LOCAL_FILE_WRITE_BLOCK = 100; init( BACKUP_CONCURRENT_DELETES, 100 ); init( BACKUP_SIMULATED_LIMIT_BYTES, 1e6 ); if( randomize && BUGGIFY ) BACKUP_SIMULATED_LIMIT_BYTES = 1000; init( BACKUP_GET_RANGE_LIMIT_BYTES, 1e6 ); diff --git a/fdbclient/Knobs.h b/fdbclient/Knobs.h index 2be31e6d27..9b58d776b8 100644 --- a/fdbclient/Knobs.h +++ b/fdbclient/Knobs.h @@ -117,6 +117,7 @@ public: int TASKBUCKET_MAX_TASK_KEYS; // Backup + int BACKUP_LOCAL_FILE_WRITE_BLOCK; int BACKUP_CONCURRENT_DELETES; int BACKUP_SIMULATED_LIMIT_BYTES; int BACKUP_GET_RANGE_LIMIT_BYTES; From e29ed3bf990c57dbcf5326a5909a41921f4794cc Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Wed, 13 Jan 2021 12:14:04 -0800 Subject: [PATCH 149/261] Remove createGlobal*Knobs functions --- fdbbackup/backup.actor.cpp | 3 --- fdbcli/fdbcli.actor.cpp | 3 --- fdbclient/Knobs.cpp | 5 ----- fdbclient/Knobs.h | 2 -- fdbserver/Knobs.cpp | 9 ++------- fdbserver/Knobs.h | 2 -- fdbserver/fdbserver.actor.cpp | 4 ---- flow/Knobs.cpp | 5 ----- flow/Knobs.h | 2 -- 9 files changed, 2 insertions(+), 33 deletions(-) diff --git a/fdbbackup/backup.actor.cpp b/fdbbackup/backup.actor.cpp index 91749522ef..b0fd57f84f 100644 --- a/fdbbackup/backup.actor.cpp +++ b/fdbbackup/backup.actor.cpp @@ -3632,9 +3632,6 @@ int main(int argc, char* argv[]) { args = NULL; } - createGlobalFlowKnobs(); - createGlobalClientKnobs(); - for(auto k=knobs.begin(); k!=knobs.end(); ++k) { try { if (!globalFlowKnobs->setKnob(k->first, k->second) && diff --git a/fdbcli/fdbcli.actor.cpp b/fdbcli/fdbcli.actor.cpp index 041a89a5e9..1a79796e32 100644 --- a/fdbcli/fdbcli.actor.cpp +++ b/fdbcli/fdbcli.actor.cpp @@ -2833,9 +2833,6 @@ struct CLIOptions { return; } - createGlobalFlowKnobs(); - createGlobalClientKnobs(); - for(auto k=knobs.begin(); k!=knobs.end(); ++k) { try { if (!globalFlowKnobs->setKnob(k->first, k->second) && diff --git a/fdbclient/Knobs.cpp b/fdbclient/Knobs.cpp index 3996fc6f7b..c99d8e84ef 100644 --- a/fdbclient/Knobs.cpp +++ b/fdbclient/Knobs.cpp @@ -246,11 +246,6 @@ void ClientKnobs::initialize(bool randomize) { // clang-format on } -void createGlobalClientKnobs() { - globalClientKnobs = std::make_unique(); - CLIENT_KNOBS = globalClientKnobs.get(); -} - TEST_CASE("/fdbclient/knobs/initialize") { // This test depends on TASKBUCKET_TIMEOUT_VERSIONS being defined as a constant multiple of CORE_VERSIONSPERSECOND ClientKnobs clientKnobs; diff --git a/fdbclient/Knobs.h b/fdbclient/Knobs.h index cdf55c3d16..9aa8872bad 100644 --- a/fdbclient/Knobs.h +++ b/fdbclient/Knobs.h @@ -234,6 +234,4 @@ public: extern std::unique_ptr globalClientKnobs; extern ClientKnobs const* CLIENT_KNOBS; -void createGlobalClientKnobs(); - #endif diff --git a/fdbserver/Knobs.cpp b/fdbserver/Knobs.cpp index a0e51bb3c9..cc498eab40 100644 --- a/fdbserver/Knobs.cpp +++ b/fdbserver/Knobs.cpp @@ -22,8 +22,8 @@ #include "fdbrpc/Locality.h" #include -std::unique_ptr globalServerKnobs{}; -ServerKnobs const* SERVER_KNOBS = nullptr; +std::unique_ptr globalServerKnobs = std::make_unique(); +ServerKnobs const* SERVER_KNOBS = globalServerKnobs.get(); #define init( knob, value ) initKnob( knob, value, #knob ) @@ -697,8 +697,3 @@ void ServerKnobs::initialize(bool randomize, ClientKnobs* clientKnobs, bool isSi clientKnobs->INIT_MID_SHARD_BYTES = MIN_SHARD_BYTES; } } - -void createGlobalServerKnobs() { - globalServerKnobs = std::make_unique(); - SERVER_KNOBS = globalServerKnobs.get(); -} diff --git a/fdbserver/Knobs.h b/fdbserver/Knobs.h index 6a641fbb04..e44e62e0d2 100644 --- a/fdbserver/Knobs.h +++ b/fdbserver/Knobs.h @@ -627,6 +627,4 @@ public: extern std::unique_ptr globalServerKnobs; extern ServerKnobs const* SERVER_KNOBS; -void createGlobalServerKnobs(); - #endif diff --git a/fdbserver/fdbserver.actor.cpp b/fdbserver/fdbserver.actor.cpp index 12db47f977..fecc62e511 100644 --- a/fdbserver/fdbserver.actor.cpp +++ b/fdbserver/fdbserver.actor.cpp @@ -1561,10 +1561,6 @@ int main(int argc, char* argv[]) { enableBuggify(opts.buggifyEnabled, BuggifyType::General); - createGlobalFlowKnobs(); - createGlobalClientKnobs(); - createGlobalServerKnobs(); - if (!globalServerKnobs->setKnob("log_directory", opts.logFolder)) ASSERT(false); if (role != Simulation) { if (!globalServerKnobs->setKnob("commit_batches_mem_bytes_hard_limit", std::to_string(opts.memLimit))) diff --git a/flow/Knobs.cpp b/flow/Knobs.cpp index 91c1d817f9..33e0222366 100644 --- a/flow/Knobs.cpp +++ b/flow/Knobs.cpp @@ -346,8 +346,3 @@ void Knobs::trace() const { for(auto &k : bool_knobs) TraceEvent("Knob").detail("Name", k.first.c_str()).detail("Value", *k.second); } - -void createGlobalFlowKnobs() { - globalFlowKnobs = std::make_unique(); - FLOW_KNOBS = globalFlowKnobs.get(); -} diff --git a/flow/Knobs.h b/flow/Knobs.h index ba843d4c19..d6524d72f0 100644 --- a/flow/Knobs.h +++ b/flow/Knobs.h @@ -256,6 +256,4 @@ public: extern std::unique_ptr globalFlowKnobs; extern FlowKnobs const* FLOW_KNOBS; -void createGlobalFlowKnobs(); - #endif From 87b44633058d2a77f69d0d744a959a0c9010b137 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Wed, 13 Jan 2021 14:56:41 -0800 Subject: [PATCH 150/261] Solve comments: update c api description; refine code --- documentation/sphinx/source/api-c.rst | 2 +- fdbclient/NativeAPI.actor.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/sphinx/source/api-c.rst b/documentation/sphinx/source/api-c.rst index 449d4e81f2..0ca035d4b8 100644 --- a/documentation/sphinx/source/api-c.rst +++ b/documentation/sphinx/source/api-c.rst @@ -430,7 +430,7 @@ An |database-blurb1| Modifications to a database are performed via transactions. Reboot the specified process in the database. - |future-return0| a :type:`int64_t` represents whether the reboot request is successful or not. In particular, 1 means success and 0 means failure. |future-return1| call :func:`fdb_future_get_int64()` to extract the result, |future-return2| + |future-return0| a :type:`int64_t` which represents whether the reboot request is sent or not. In particular, 1 means request sent and 0 means failure (e.g. the process with the specified address does not exist). |future-return1| call :func:`fdb_future_get_int64()` to extract the result, |future-return2| ``address`` A pointer to the network address of the process. diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index 3b76ce5915..e3c65223d8 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -4819,7 +4819,7 @@ ACTOR Future rebootWorkerActor(DatabaseContext* cx, ValueRef addr, bool // Note: reuse this knob from fdbcli, change it if necessary Reference connectLock(new FlowLock(CLIENT_KNOBS->CLI_CONNECT_PARALLELISM)); std::vector> addInterfs; - for( auto it : kvs ) { + for( const auto& it : kvs ) { addInterfs.push_back(addInterfaceActor(&address_interface, connectLock, it)); } wait(waitForAll(addInterfs)); From 750d5e5af2b4cff95dc6f019defb6b78b7c6c83f Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Wed, 13 Jan 2021 17:43:10 -0800 Subject: [PATCH 151/261] Fix compile error --- fdbserver/fdbserver.actor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fdbserver/fdbserver.actor.cpp b/fdbserver/fdbserver.actor.cpp index ec17c6319c..68fc4a7b41 100644 --- a/fdbserver/fdbserver.actor.cpp +++ b/fdbserver/fdbserver.actor.cpp @@ -1599,7 +1599,7 @@ int main(int argc, char* argv[]) { // Reinitialize knobs in order to update knobs that are dependent on explicitly set knobs globalFlowKnobs->initialize(true, role == ServerRole::Simulation); globalClientKnobs->initialize(true); - globalServerKnobs->initialize(true, globalClientKnobs, role == ServerRole::Simulation); + globalServerKnobs->initialize(true, globalClientKnobs.get(), role == ServerRole::Simulation); // evictionPolicyStringToEnum will throw an exception if the string is not recognized as a valid EvictablePageCache::evictionPolicyStringToEnum(FLOW_KNOBS->CACHE_EVICTION_POLICY); From 477bd8bc8e39afdc337ebc93c4373f1b5ffd1e81 Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Wed, 13 Jan 2021 17:43:33 -0800 Subject: [PATCH 152/261] Make Knobs::Knobs() protected --- flow/Knobs.h | 1 + 1 file changed, 1 insertion(+) diff --git a/flow/Knobs.h b/flow/Knobs.h index 398661298d..c8eefb9866 100644 --- a/flow/Knobs.h +++ b/flow/Knobs.h @@ -35,6 +35,7 @@ public: void trace() const; protected: + Knobs()=default; void initKnob( double& knob, double value, std::string const& name ); void initKnob( int64_t& knob, int64_t value, std::string const& name ); void initKnob( int& knob, int value, std::string const& name ); From 191f215b9d0a0905185e2e59b02f50260fa541ee Mon Sep 17 00:00:00 2001 From: sfc-gh-tclinkenbeard Date: Wed, 13 Jan 2021 21:54:22 -0800 Subject: [PATCH 153/261] Remove chrono dependency --- fdbrpc/SimExternalConnection.actor.cpp | 6 +++--- flow/Trace.h | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/fdbrpc/SimExternalConnection.actor.cpp b/fdbrpc/SimExternalConnection.actor.cpp index 15779a53f0..419d7305a5 100644 --- a/fdbrpc/SimExternalConnection.actor.cpp +++ b/fdbrpc/SimExternalConnection.actor.cpp @@ -20,12 +20,12 @@ #include #include -#include #include #include "fdbclient/FDBTypes.h" #include "fdbrpc/SimExternalConnection.h" #include "flow/Net2Packet.h" +#include "flow/Platform.h" #include "flow/SendBufferIterator.h" #include "flow/UnitTest.h" #include "flow/actorcompiler.h" // This must be the last #include. @@ -101,7 +101,7 @@ int SimExternalConnection::write(SendBuffer const* buffer, int limit) { boost::iterator_range(SendBufferIterator(buffer, limit), SendBufferIterator()), err); ASSERT(!err); ASSERT(bytesSent > 0); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); + threadSleep(0.1); const auto bytesReadable = socket.available(); std::vector tempReadBuffer(bytesReadable); for (int index = 0; index < bytesReadable;) { @@ -195,7 +195,7 @@ TEST_CASE("fdbrpc/SimExternalClient") { break; } // Wait until server is ready - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + threadSleep(0.01); } state Key data = deterministicRandom()->randomAlphaNumeric(deterministicRandom()->randomInt(0, maxDataLength + 1)); PacketWriter packetWriter(packetQueue.getWriteBuffer(data.size()), nullptr, Unversioned()); diff --git a/flow/Trace.h b/flow/Trace.h index 1c7c861942..6b65f4eb22 100644 --- a/flow/Trace.h +++ b/flow/Trace.h @@ -26,7 +26,6 @@ #include #include #include -#include #include #include #include From e32a0fb742ee5530c407edefbb1f99b8e4e0c130 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Thu, 14 Jan 2021 20:13:29 +0000 Subject: [PATCH 154/261] Resolve conflicts --- fdbclient/BackupContainer.actor.cpp | 11 +-- fdbclient/NativeAPI.actor.cpp | 102 +++++++++++----------------- fdbclient/ReadYourWrites.actor.cpp | 12 +--- 3 files changed, 42 insertions(+), 83 deletions(-) diff --git a/fdbclient/BackupContainer.actor.cpp b/fdbclient/BackupContainer.actor.cpp index df903e9b92..c6303a567a 100644 --- a/fdbclient/BackupContainer.actor.cpp +++ b/fdbclient/BackupContainer.actor.cpp @@ -1917,18 +1917,13 @@ public: return map(m_file->sync(), [=](Void _) { self->m_file.clear(); return Void(); }); } -<<<<<<< HEAD - void addref() final { return ReferenceCounted::addref(); } - void delref() final { return ReferenceCounted::delref(); } - -======= int64_t size() const { return m_offset; } - void addref() { return ReferenceCounted::addref(); } - void delref() { return ReferenceCounted::delref(); } ->>>>>>> upstream/release-6.2 + void addref() final { return ReferenceCounted::addref(); } + void delref() final { return ReferenceCounted::delref(); } + private: Reference m_file; int64_t m_offset; diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index 5c8945bfdf..8a4fab2799 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -500,7 +500,6 @@ ACTOR static Future getHealthMetricsActor(DatabaseContext *cx, bo Future DatabaseContext::getHealthMetrics(bool detailed = false) { return getHealthMetricsActor(this, detailed); } -<<<<<<< HEAD void DatabaseContext::registerSpecialKeySpaceModule(SpecialKeySpace::MODULE module, std::unique_ptr impl) { specialKeySpace->registerKeyRange(module, impl->getKeyRange(), impl.get()); @@ -652,8 +651,7 @@ DatabaseContext::DatabaseContext(Reference(specialKeys.begin, specialKeys.end, /* test */ false)) { -======= -DatabaseContext::DatabaseContext( - Reference>> connectionFile, Reference> clientInfo, Future clientInfoMonitor, - TaskPriority taskID, LocalityData const& clientLocality, bool enableLocalityLoadBalance, bool lockAware, bool internal, int apiVersion, bool switchable ) - : connectionFile(connectionFile),clientInfo(clientInfo), clientInfoMonitor(clientInfoMonitor), taskID(taskID), clientLocality(clientLocality), enableLocalityLoadBalance(enableLocalityLoadBalance), - lockAware(lockAware), apiVersion(apiVersion), switchable(switchable), provisional(false), cc("TransactionMetrics"), transactionReadVersions("ReadVersions", cc), - transactionReadVersionsCompleted("ReadVersionsCompleted", cc), transactionReadVersionBatches("ReadVersionBatches", cc), transactionBatchReadVersions("BatchPriorityReadVersions", cc), - transactionDefaultReadVersions("DefaultPriorityReadVersions", cc), transactionImmediateReadVersions("ImmediatePriorityReadVersions", cc), - transactionBatchReadVersionsCompleted("BatchPriorityReadVersionsCompleted", cc), transactionDefaultReadVersionsCompleted("DefaultPriorityReadVersionsCompleted", cc), - transactionImmediateReadVersionsCompleted("ImmediatePriorityReadVersionsCompleted", cc), transactionLogicalReads("LogicalUncachedReads", cc), transactionPhysicalReads("PhysicalReadRequests", cc), - transactionPhysicalReadsCompleted("PhysicalReadRequestsCompleted", cc), transactionGetKeyRequests("GetKeyRequests", cc), transactionGetValueRequests("GetValueRequests", cc), - transactionGetRangeRequests("GetRangeRequests", cc), transactionWatchRequests("WatchRequests", cc), transactionGetAddressesForKeyRequests("GetAddressesForKeyRequests", cc), - transactionBytesRead("BytesRead", cc), transactionKeysRead("KeysRead", cc), transactionMetadataVersionReads("MetadataVersionReads", cc), transactionCommittedMutations("CommittedMutations", cc), - transactionCommittedMutationBytes("CommittedMutationBytes", cc), transactionSetMutations("SetMutations", cc), transactionClearMutations("ClearMutations", cc), - transactionAtomicMutations("AtomicMutations", cc), transactionsCommitStarted("CommitStarted", cc), transactionsCommitCompleted("CommitCompleted", cc), - transactionKeyServerLocationRequests("KeyServerLocationRequests", cc), transactionKeyServerLocationRequestsCompleted("KeyServerLocationRequestsCompleted", cc), - transactionStatusRequests("StatusRequests", cc), transactionsTooOld("TooOld", cc), transactionsFutureVersions("FutureVersions", cc), transactionsNotCommitted("NotCommitted", cc), - transactionsMaybeCommitted("MaybeCommitted", cc), transactionsResourceConstrained("ResourceConstrained", cc), transactionsProcessBehind("ProcessBehind", cc), outstandingWatches(0), - latencies(1000), readLatencies(1000), commitLatencies(1000), GRVLatencies(1000), mutationsPerCommit(1000), bytesPerCommit(1000), mvCacheInsertLocation(0), healthMetricsLastUpdated(0), - detailedHealthMetricsLastUpdated(0), internal(internal) -{ ->>>>>>> upstream/release-6.2 dbId = deterministicRandom()->randomUniqueID(); connected = clientInfo->get().proxies.size() ? Void() : clientInfo->onChange(); @@ -739,6 +716,7 @@ DatabaseContext::DatabaseContext( [](ReadYourWritesTransaction* ryw) -> Future> { if (ryw->getDatabase().getPtr() && ryw->getDatabase()->getConnectionFile()) { + ++ryw->getDatabase()->transactionStatusRequests; return getJSON(ryw->getDatabase()); } else { return Optional(); @@ -784,39 +762,35 @@ DatabaseContext::DatabaseContext( } } -<<<<<<< HEAD -DatabaseContext::DatabaseContext( const Error &err ) : deferredError(err), cc("TransactionMetrics"), transactionReadVersions("ReadVersions", cc), transactionReadVersionsThrottled("ReadVersionsThrottled", cc), - transactionReadVersionsCompleted("ReadVersionsCompleted", cc), transactionReadVersionBatches("ReadVersionBatches", cc), transactionBatchReadVersions("BatchPriorityReadVersions", cc), - transactionDefaultReadVersions("DefaultPriorityReadVersions", cc), transactionImmediateReadVersions("ImmediatePriorityReadVersions", cc), - transactionBatchReadVersionsCompleted("BatchPriorityReadVersionsCompleted", cc), transactionDefaultReadVersionsCompleted("DefaultPriorityReadVersionsCompleted", cc), - transactionImmediateReadVersionsCompleted("ImmediatePriorityReadVersionsCompleted", cc), transactionLogicalReads("LogicalUncachedReads", cc), transactionPhysicalReads("PhysicalReadRequests", cc), - transactionPhysicalReadsCompleted("PhysicalReadRequestsCompleted", cc), transactionGetKeyRequests("GetKeyRequests", cc), transactionGetValueRequests("GetValueRequests", cc), - transactionGetRangeRequests("GetRangeRequests", cc), transactionWatchRequests("WatchRequests", cc), transactionGetAddressesForKeyRequests("GetAddressesForKeyRequests", cc), - transactionBytesRead("BytesRead", cc), transactionKeysRead("KeysRead", cc), transactionMetadataVersionReads("MetadataVersionReads", cc), transactionCommittedMutations("CommittedMutations", cc), - transactionCommittedMutationBytes("CommittedMutationBytes", cc), transactionSetMutations("SetMutations", cc), transactionClearMutations("ClearMutations", cc), - transactionAtomicMutations("AtomicMutations", cc), transactionsCommitStarted("CommitStarted", cc), transactionsCommitCompleted("CommitCompleted", cc), - transactionKeyServerLocationRequests("KeyServerLocationRequests", cc), transactionKeyServerLocationRequestsCompleted("KeyServerLocationRequestsCompleted", cc), transactionsTooOld("TooOld", cc), - transactionsFutureVersions("FutureVersions", cc), transactionsNotCommitted("NotCommitted", cc), transactionsMaybeCommitted("MaybeCommitted", cc), - transactionsResourceConstrained("ResourceConstrained", cc), transactionsThrottled("Throttled", cc), transactionsProcessBehind("ProcessBehind", cc), latencies(1000), readLatencies(1000), commitLatencies(1000), - GRVLatencies(1000), mutationsPerCommit(1000), bytesPerCommit(1000), - internal(false) {} -======= -DatabaseContext::DatabaseContext( const Error &err ) : deferredError(err), cc("TransactionMetrics"), transactionReadVersions("ReadVersions", cc), - transactionReadVersionsCompleted("ReadVersionsCompleted", cc), transactionReadVersionBatches("ReadVersionBatches", cc), transactionBatchReadVersions("BatchPriorityReadVersions", cc), - transactionDefaultReadVersions("DefaultPriorityReadVersions", cc), transactionImmediateReadVersions("ImmediatePriorityReadVersions", cc), - transactionBatchReadVersionsCompleted("BatchPriorityReadVersionsCompleted", cc), transactionDefaultReadVersionsCompleted("DefaultPriorityReadVersionsCompleted", cc), - transactionImmediateReadVersionsCompleted("ImmediatePriorityReadVersionsCompleted", cc), transactionLogicalReads("LogicalUncachedReads", cc), transactionPhysicalReads("PhysicalReadRequests", cc), - transactionPhysicalReadsCompleted("PhysicalReadRequestsCompleted", cc), transactionGetKeyRequests("GetKeyRequests", cc), transactionGetValueRequests("GetValueRequests", cc), - transactionGetRangeRequests("GetRangeRequests", cc), transactionWatchRequests("WatchRequests", cc), transactionGetAddressesForKeyRequests("GetAddressesForKeyRequests", cc), - transactionBytesRead("BytesRead", cc), transactionKeysRead("KeysRead", cc), transactionMetadataVersionReads("MetadataVersionReads", cc), transactionCommittedMutations("CommittedMutations", cc), - transactionCommittedMutationBytes("CommittedMutationBytes", cc), transactionSetMutations("SetMutations", cc), transactionClearMutations("ClearMutations", cc), - transactionAtomicMutations("AtomicMutations", cc), transactionsCommitStarted("CommitStarted", cc), transactionsCommitCompleted("CommitCompleted", cc), - transactionKeyServerLocationRequests("KeyServerLocationRequests", cc), transactionKeyServerLocationRequestsCompleted("KeyServerLocationRequestsCompleted", cc), - transactionStatusRequests("StatusRequests", cc), transactionsTooOld("TooOld", cc), transactionsFutureVersions("FutureVersions", cc), transactionsNotCommitted("NotCommitted", cc), - transactionsMaybeCommitted("MaybeCommitted", cc), transactionsResourceConstrained("ResourceConstrained", cc), transactionsProcessBehind("ProcessBehind", cc), - latencies(1000), readLatencies(1000), commitLatencies(1000), GRVLatencies(1000), mutationsPerCommit(1000), bytesPerCommit(1000), internal(false) {} ->>>>>>> upstream/release-6.2 - +DatabaseContext::DatabaseContext(const Error& err) + : deferredError(err), cc("TransactionMetrics"), transactionReadVersions("ReadVersions", cc), + transactionReadVersionsThrottled("ReadVersionsThrottled", cc), + transactionReadVersionsCompleted("ReadVersionsCompleted", cc), + transactionReadVersionBatches("ReadVersionBatches", cc), + transactionBatchReadVersions("BatchPriorityReadVersions", cc), + transactionDefaultReadVersions("DefaultPriorityReadVersions", cc), + transactionImmediateReadVersions("ImmediatePriorityReadVersions", cc), + transactionBatchReadVersionsCompleted("BatchPriorityReadVersionsCompleted", cc), + transactionDefaultReadVersionsCompleted("DefaultPriorityReadVersionsCompleted", cc), + transactionImmediateReadVersionsCompleted("ImmediatePriorityReadVersionsCompleted", cc), + transactionLogicalReads("LogicalUncachedReads", cc), transactionPhysicalReads("PhysicalReadRequests", cc), + transactionPhysicalReadsCompleted("PhysicalReadRequestsCompleted", cc), + transactionGetKeyRequests("GetKeyRequests", cc), transactionGetValueRequests("GetValueRequests", cc), + transactionGetRangeRequests("GetRangeRequests", cc), transactionWatchRequests("WatchRequests", cc), + transactionGetAddressesForKeyRequests("GetAddressesForKeyRequests", cc), transactionBytesRead("BytesRead", cc), + transactionKeysRead("KeysRead", cc), transactionMetadataVersionReads("MetadataVersionReads", cc), + transactionCommittedMutations("CommittedMutations", cc), + transactionCommittedMutationBytes("CommittedMutationBytes", cc), transactionSetMutations("SetMutations", cc), + transactionClearMutations("ClearMutations", cc), transactionAtomicMutations("AtomicMutations", cc), + transactionsCommitStarted("CommitStarted", cc), transactionsCommitCompleted("CommitCompleted", cc), + transactionKeyServerLocationRequests("KeyServerLocationRequests", cc), + transactionKeyServerLocationRequestsCompleted("KeyServerLocationRequestsCompleted", cc), + transactionStatusRequests("StatusRequests", cc), transactionsTooOld("TooOld", cc), + transactionsFutureVersions("FutureVersions", cc), transactionsNotCommitted("NotCommitted", cc), + transactionsMaybeCommitted("MaybeCommitted", cc), transactionsResourceConstrained("ResourceConstrained", cc), + transactionsThrottled("Throttled", cc), transactionsProcessBehind("ProcessBehind", cc), latencies(1000), + readLatencies(1000), commitLatencies(1000), GRVLatencies(1000), mutationsPerCommit(1000), bytesPerCommit(1000), + internal(false) {} Database DatabaseContext::create(Reference> clientInfo, Future clientInfoMonitor, LocalityData clientLocality, bool enableLocalityLoadBalance, TaskPriority taskID, bool lockAware, int apiVersion, bool switchable) { return Database( new DatabaseContext( Reference>>(), clientInfo, clientInfoMonitor, taskID, clientLocality, enableLocalityLoadBalance, lockAware, true, apiVersion, switchable ) ); diff --git a/fdbclient/ReadYourWrites.actor.cpp b/fdbclient/ReadYourWrites.actor.cpp index b51eaba66c..07ea6f6a44 100644 --- a/fdbclient/ReadYourWrites.actor.cpp +++ b/fdbclient/ReadYourWrites.actor.cpp @@ -1225,26 +1225,16 @@ ACTOR Future> getWorkerInterfaces (Reference > ReadYourWritesTransaction::get( const Key& key, bool snapshot ) { TEST(true); -<<<<<<< HEAD if (getDatabase()->apiVersionAtLeast(630)) { if (specialKeys.contains(key)) { TEST(true); // Special keys get return getDatabase()->specialKeySpace->get(this, key); -======= - - if (key == LiteralStringRef("\xff\xff/status/json")){ - if (tr.getDatabase().getPtr() && tr.getDatabase()->getConnectionFile()) { - ++tr.getDatabase()->transactionStatusRequests; - return getJSON(tr.getDatabase()); - } - else { - return Optional(); ->>>>>>> upstream/release-6.2 } } else { if (key == LiteralStringRef("\xff\xff/status/json")) { if (tr.getDatabase().getPtr() && tr.getDatabase()->getConnectionFile()) { + ++tr.getDatabase()->transactionStatusRequests; return getJSON(tr.getDatabase()); } else { return Optional(); From ddb5b0b0505dbdc583d4e8630eb90ad286997cbb Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Fri, 15 Jan 2021 00:30:31 +0000 Subject: [PATCH 155/261] Backport correctness package --- CMakeLists.txt | 1 + cmake/AddFdbTest.cmake | 254 ++- cmake/FlowCommands.cmake | 13 +- contrib/CMakeLists.txt | 4 + contrib/Joshua/README.md | 23 + contrib/Joshua/scripts/bindingTest.sh | 10 + contrib/Joshua/scripts/bindingTestScript.sh | 88 + contrib/Joshua/scripts/bindingTimeout.sh | 28 + contrib/Joshua/scripts/correctnessTest.sh | 3 + contrib/Joshua/scripts/correctnessTimeout.sh | 4 + contrib/Joshua/scripts/localClusterStart.sh | 402 +++++ contrib/Joshua/scripts/valgrindTest.sh | 3 + contrib/Joshua/scripts/valgrindTimeout.sh | 6 + contrib/TestHarness/CMakeLists.txt | 17 + contrib/TestHarness/Program.cs.cmake | 1588 +++++++++++++++++ .../TestHarness/Properties/AssemblyInfo.cs | 56 + contrib/TestHarness/TestHarness.csproj | 62 + contrib/TraceLogHelper/CMakeLists.txt | 20 + contrib/TraceLogHelper/Event.cs | 263 +++ contrib/TraceLogHelper/JsonParser.cs | 93 + .../TraceLogHelper/Properties/AssemblyInfo.cs | 56 + contrib/TraceLogHelper/TraceLogHelper.csproj | 58 + contrib/TraceLogHelper/TraceLogUtil.cs | 79 + contrib/TraceLogHelper/XmlParser.cs | 194 ++ tests/CMakeLists.txt | 8 + 25 files changed, 3320 insertions(+), 13 deletions(-) create mode 100644 contrib/CMakeLists.txt create mode 100644 contrib/Joshua/README.md create mode 100755 contrib/Joshua/scripts/bindingTest.sh create mode 100755 contrib/Joshua/scripts/bindingTestScript.sh create mode 100755 contrib/Joshua/scripts/bindingTimeout.sh create mode 100755 contrib/Joshua/scripts/correctnessTest.sh create mode 100755 contrib/Joshua/scripts/correctnessTimeout.sh create mode 100644 contrib/Joshua/scripts/localClusterStart.sh create mode 100755 contrib/Joshua/scripts/valgrindTest.sh create mode 100755 contrib/Joshua/scripts/valgrindTimeout.sh create mode 100644 contrib/TestHarness/CMakeLists.txt create mode 100644 contrib/TestHarness/Program.cs.cmake create mode 100644 contrib/TestHarness/Properties/AssemblyInfo.cs create mode 100644 contrib/TestHarness/TestHarness.csproj create mode 100644 contrib/TraceLogHelper/CMakeLists.txt create mode 100644 contrib/TraceLogHelper/Event.cs create mode 100644 contrib/TraceLogHelper/JsonParser.cs create mode 100644 contrib/TraceLogHelper/Properties/AssemblyInfo.cs create mode 100644 contrib/TraceLogHelper/TraceLogHelper.csproj create mode 100644 contrib/TraceLogHelper/TraceLogUtil.cs create mode 100644 contrib/TraceLogHelper/XmlParser.cs diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e18f25556..ca7257d26b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -188,6 +188,7 @@ if(WITH_PYTHON) add_subdirectory(bindings) endif() add_subdirectory(fdbbackup) +add_subdirectory(contrib) add_subdirectory(tests) if(WITH_DOCUMENTATION) add_subdirectory(documentation) diff --git a/cmake/AddFdbTest.cmake b/cmake/AddFdbTest.cmake index a20fef78ed..1a831c5d0b 100644 --- a/cmake/AddFdbTest.cmake +++ b/cmake/AddFdbTest.cmake @@ -61,6 +61,9 @@ function(add_fdb_test) set(this_test_timeout ${ADD_FDB_TEST_TIMEOUT}) if(NOT this_test_timeout) set(this_test_timeout 3600) + if(USE_VALGRIND_FOR_CTEST) + set(this_test_timeout 36000) + endif() endif() set(test_type "simulation") set(fdb_test_files_ "${fdb_test_files}") @@ -84,6 +87,9 @@ function(add_fdb_test) if (NOT "${ADD_FDB_TEST_TEST_NAME}" STREQUAL "") set(test_name ${ADD_FDB_TEST_TEST_NAME}) endif() + if((NOT test_name MATCHES "${TEST_INCLUDE}") OR (test_name MATCHES "${TEST_EXCLUDE}")) + return() + endif() math(EXPR test_idx "${CURRENT_TEST_INDEX} + ${NUM_TEST_FILES}") set(CURRENT_TEST_INDEX "${test_idx}" PARENT_SCOPE) # set( PARENT_SCOPE) doesn't set the @@ -107,7 +113,7 @@ function(add_fdb_test) set(BUGGIFY_OPTION "-B") endif() set(VALGRIND_OPTION "") - if (USE_VALGRIND) + if (USE_VALGRIND_FOR_CTEST) set(VALGRIND_OPTION "--use-valgrind") endif() list(TRANSFORM ADD_FDB_TEST_TEST_FILES PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/") @@ -117,6 +123,7 @@ function(add_fdb_test) -b ${PROJECT_BINARY_DIR} -t ${test_type} -O ${OLD_FDBSERVER_BINARY} + --crash --aggregate-traces ${TEST_AGGREGATE_TRACES} --log-format ${TEST_LOG_FORMAT} --keep-logs ${TEST_KEEP_LOGS} @@ -127,9 +134,244 @@ function(add_fdb_test) ${VALGRIND_OPTION} ${ADD_FDB_TEST_TEST_FILES} WORKING_DIRECTORY ${PROJECT_BINARY_DIR}) - get_filename_component(test_dir_full ${first_file} DIRECTORY) - if(NOT ${test_dir_full} STREQUAL "") - get_filename_component(test_dir ${test_dir_full} NAME) - set_tests_properties(${test_name} PROPERTIES TIMEOUT ${this_test_timeout} LABELS "${test_dir}") - endif() + get_filename_component(test_dir_full ${first_file} DIRECTORY) + if(NOT ${test_dir_full} STREQUAL "") + get_filename_component(test_dir ${test_dir_full} NAME) + set_tests_properties(${test_name} PROPERTIES TIMEOUT ${this_test_timeout} LABELS "${test_dir}") + endif() + # set variables used for generating test packages + set(TEST_NAMES ${TEST_NAMES} ${test_name} PARENT_SCOPE) + set(TEST_FILES_${test_name} ${ADD_FDB_TEST_TEST_FILES} PARENT_SCOPE) + set(TEST_TYPE_${test_name} ${test_type} PARENT_SCOPE) +endfunction() + +if(NOT WIN32) + set(TEST_PACKAGE_INCLUDE ".*" CACHE STRING "A regex of all tests that should be included in the test package") + set(TEST_PACKAGE_EXCLUDE ".^" CACHE STRING "A regex of all tests that shouldn't be added to the test package") + set(TEST_PACKAGE_ADD_DIRECTORIES "" CACHE STRING "A ;-separated list of directories. All files within each directory will be added to the test package") +endif() + +# This sets up a directory with the correctness files common to all correctness packages. +# This function should be called with the following arguments: +# +# - OUT_DIR the directory where files will be staged +# - CONTEXT the type of correctness package being built (e.g. 'valgrind correctness') +function(stage_correctness_package) + set(oneValueArgs OUT_DIR CONTEXT OUT_FILES) + cmake_parse_arguments(STAGE "" "${oneValueArgs}" "" "${ARGN}") + file(MAKE_DIRECTORY ${STAGE_OUT_DIR}/bin) + string(LENGTH "${CMAKE_SOURCE_DIR}/tests/" base_length) + foreach(test IN LISTS TEST_NAMES) + if(("${TEST_TYPE_${test}}" STREQUAL "simulation") AND + (${test} MATCHES ${TEST_PACKAGE_INCLUDE}) AND + (NOT ${test} MATCHES ${TEST_PACKAGE_EXCLUDE})) + foreach(file IN LISTS TEST_FILES_${test}) + string(SUBSTRING ${file} ${base_length} -1 rel_out_file) + set(out_file ${STAGE_OUT_DIR}/tests/${rel_out_file}) + list(APPEND test_files ${out_file}) + add_custom_command( + OUTPUT ${out_file} + DEPENDS ${file} + COMMAND ${CMAKE_COMMAND} -E copy ${file} ${out_file} + COMMENT "Copying ${STAGE_CONTEXT} test file ${rel_out_file}" + ) + endforeach() + endif() + endforeach() + foreach(dir IN LISTS TEST_PACKAGE_ADD_DIRECTORIES) + file(GLOB_RECURSE files ${dir}/*) + string(LENGTH ${dir} dir_len) + foreach(file IN LISTS files) + get_filename_component(src_dir ${file} DIRECTORY) + # We need to make sure that ${src_dir} is at least + # as long as ${dir}. Otherwise the later call to + # SUBSTRING will fail + set(src_dir "${src_dir}/") + string(SUBSTRING ${src_dir} ${dir_len} -1 dest_dir) + string(SUBSTRING ${file} ${dir_len} -1 rel_out_file) + set(out_file ${STAGE_OUT_DIR}/${rel_out_file}) + list(APPEND external_files ${out_file}) + add_custom_command( + OUTPUT ${out_file} + DEPENDS ${file} + COMMAND ${CMAKE_COMMAND} -E copy ${file} ${out_file} + COMMENT "Copying ${STAGE_CONTEXT} external file ${file}" + ) + endforeach() + endforeach() + list(APPEND package_files ${STAGE_OUT_DIR}/bin/fdbserver + ${STAGE_OUT_DIR}/bin/coverage.fdbserver.xml + ${STAGE_OUT_DIR}/bin/coverage.fdbclient.xml + ${STAGE_OUT_DIR}/bin/coverage.fdbrpc.xml + ${STAGE_OUT_DIR}/bin/coverage.flow.xml + ${STAGE_OUT_DIR}/bin/TestHarness.exe + ${STAGE_OUT_DIR}/bin/TraceLogHelper.dll + ${STAGE_OUT_DIR}/CMakeCache.txt + ) + add_custom_command( + OUTPUT ${package_files} + DEPENDS ${CMAKE_BINARY_DIR}/CMakeCache.txt + ${CMAKE_BINARY_DIR}/packages/bin/fdbserver + ${CMAKE_BINARY_DIR}/bin/coverage.fdbserver.xml + ${CMAKE_BINARY_DIR}/lib/coverage.fdbclient.xml + ${CMAKE_BINARY_DIR}/lib/coverage.fdbrpc.xml + ${CMAKE_BINARY_DIR}/lib/coverage.flow.xml + ${CMAKE_BINARY_DIR}/packages/bin/TestHarness.exe + ${CMAKE_BINARY_DIR}/packages/bin/TraceLogHelper.dll + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/CMakeCache.txt ${STAGE_OUT_DIR} + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/packages/bin/fdbserver + ${CMAKE_BINARY_DIR}/bin/coverage.fdbserver.xml + ${CMAKE_BINARY_DIR}/lib/coverage.fdbclient.xml + ${CMAKE_BINARY_DIR}/lib/coverage.fdbrpc.xml + ${CMAKE_BINARY_DIR}/lib/coverage.flow.xml + ${CMAKE_BINARY_DIR}/packages/bin/TestHarness.exe + ${CMAKE_BINARY_DIR}/packages/bin/TraceLogHelper.dll + ${STAGE_OUT_DIR}/bin + COMMENT "Copying files for ${STAGE_CONTEXT} package" + ) + list(APPEND package_files ${test_files} ${external_files}) + if(STAGE_OUT_FILES) + set(${STAGE_OUT_FILES} ${package_files} PARENT_SCOPE) + endif() +endfunction() + +function(create_correctness_package) + if(WIN32) + return() + endif() + set(out_dir "${CMAKE_BINARY_DIR}/correctness") + stage_correctness_package(OUT_DIR ${out_dir} CONTEXT "correctness" OUT_FILES package_files) + set(tar_file ${CMAKE_BINARY_DIR}/packages/correctness-${CMAKE_PROJECT_VERSION}.tar.gz) + add_custom_command( + OUTPUT ${tar_file} + DEPENDS ${package_files} + ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/correctnessTest.sh + ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/correctnessTimeout.sh + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/correctnessTest.sh + ${out_dir}/joshua_test + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/correctnessTimeout.sh + ${out_dir}/joshua_timeout + COMMAND ${CMAKE_COMMAND} -E tar cfz ${tar_file} ${package_files} + ${out_dir}/joshua_test + ${out_dir}/joshua_timeout + WORKING_DIRECTORY ${out_dir} + COMMENT "Package correctness archive" + ) + add_custom_target(package_tests ALL DEPENDS ${tar_file}) + add_dependencies(package_tests strip_only_fdbserver TestHarness) +endfunction() + +function(create_valgrind_correctness_package) + if(WIN32) + return() + endif() + if(USE_VALGRIND) + set(out_dir "${CMAKE_BINARY_DIR}/valgrind_correctness") + stage_correctness_package(OUT_DIR ${out_dir} CONTEXT "valgrind correctness" OUT_FILES package_files) + set(tar_file ${CMAKE_BINARY_DIR}/packages/valgrind-${CMAKE_PROJECT_VERSION}.tar.gz) + add_custom_command( + OUTPUT ${tar_file} + DEPENDS ${package_files} + ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/valgrindTest.sh + ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/valgrindTimeout.sh + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/valgrindTest.sh + ${out_dir}/joshua_test + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/valgrindTimeout.sh + ${out_dir}/joshua_timeout + COMMAND ${CMAKE_COMMAND} -E tar cfz ${tar_file} ${package_files} + ${out_dir}/joshua_test + ${out_dir}/joshua_timeout + WORKING_DIRECTORY ${out_dir} + COMMENT "Package valgrind correctness archive" + ) + add_custom_target(package_valgrind_tests ALL DEPENDS ${tar_file}) + add_dependencies(package_valgrind_tests strip_only_fdbserver TestHarness) + endif() +endfunction() + +function(package_bindingtester) + if(WIN32 OR OPEN_FOR_IDE) + return() + elseif(APPLE) + set(fdbcName "libfdb_c.dylib") + else() + set(fdbcName "libfdb_c.so") + endif() + set(bdir ${CMAKE_BINARY_DIR}/bindingtester) + file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bindingtester) + set(outfiles ${bdir}/fdbcli ${bdir}/fdbserver ${bdir}/${fdbcName} ${bdir}/joshua_test ${bdir}/joshua_timeout) + add_custom_command( + OUTPUT ${outfiles} + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/CMakeCache.txt + ${CMAKE_BINARY_DIR}/packages/bin/fdbcli + ${CMAKE_BINARY_DIR}/packages/bin/fdbserver + ${CMAKE_BINARY_DIR}/packages/lib/${fdbcName} + ${bdir} + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/bindingTest.sh ${bdir}/joshua_test + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/bindingTimeout.sh ${bdir}/joshua_timeout + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/localClusterStart.sh ${bdir}/localClusterStart.sh + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/bindingTestScript.sh ${bdir}/bindingTestScript.sh + COMMENT "Copy executables and scripts to bindingtester dir") + file(GLOB_RECURSE test_files ${CMAKE_SOURCE_DIR}/bindings/*) + add_custom_command( + OUTPUT "${CMAKE_BINARY_DIR}/bindingtester.touch" + COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/bindingtester/tests + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/bindingtester/tests + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/bindings ${CMAKE_BINARY_DIR}/bindingtester/tests + COMMAND ${CMAKE_COMMAND} -E touch "${CMAKE_BINARY_DIR}/bindingtester.touch" + COMMENT "Copy test files for bindingtester") + + add_custom_target(copy_binding_output_files DEPENDS ${CMAKE_BINARY_DIR}/bindingtester.touch python_binding fdb_flow_tester) + add_custom_command( + TARGET copy_binding_output_files + COMMAND ${CMAKE_COMMAND} -E copy $ ${bdir}/tests/flow/bin/fdb_flow_tester + COMMENT "Copy Flow tester for bindingtester") + + set(generated_binding_files python/fdb/fdboptions.py) + if(WITH_JAVA) + if(NOT FDB_RELEASE) + set(prerelease_string "-PRERELEASE") + else() + set(prerelease_string "") + endif() + add_custom_command( + TARGET copy_binding_output_files + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_BINARY_DIR}/packages/fdb-java-${CMAKE_PROJECT_VERSION}${prerelease_string}.jar + ${bdir}/tests/java/foundationdb-client.jar + COMMENT "Copy Java bindings for bindingtester") + add_dependencies(copy_binding_output_files fat-jar) + add_dependencies(copy_binding_output_files foundationdb-tests) + set(generated_binding_files ${generated_binding_files} java/foundationdb-tests.jar) + endif() + + if(WITH_GO AND NOT OPEN_FOR_IDE) + add_dependencies(copy_binding_output_files fdb_go_tester fdb_go) + add_custom_command( + TARGET copy_binding_output_files + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/bindings/go/bin/_stacktester ${bdir}/tests/go/build/bin/_stacktester + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_BINARY_DIR}/bindings/go/src/github.com/apple/foundationdb/bindings/go/src/fdb/generated.go # SRC + ${bdir}/tests/go/src/fdb/ # DEST + COMMENT "Copy generated.go for bindingtester") + endif() + + foreach(generated IN LISTS generated_binding_files) + add_custom_command( + TARGET copy_binding_output_files + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/bindings/${generated} ${bdir}/tests/${generated} + COMMENT "Copy ${generated} to bindingtester") + endforeach() + + add_custom_target(copy_bindingtester_binaries + DEPENDS ${outfiles} "${CMAKE_BINARY_DIR}/bindingtester.touch" copy_binding_output_files) + add_dependencies(copy_bindingtester_binaries strip_only_fdbserver strip_only_fdbcli strip_only_fdb_c) + set(tar_file ${CMAKE_BINARY_DIR}/packages/bindingtester-${CMAKE_PROJECT_VERSION}.tar.gz) + add_custom_command( + OUTPUT ${tar_file} + COMMAND ${CMAKE_COMMAND} -E tar czf ${tar_file} * + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bindingtester + COMMENT "Pack bindingtester") + add_custom_target(bindingtester ALL DEPENDS ${tar_file}) + add_dependencies(bindingtester copy_bindingtester_binaries) endfunction() diff --git a/cmake/FlowCommands.cmake b/cmake/FlowCommands.cmake index 1a3914f3de..4b22de1375 100644 --- a/cmake/FlowCommands.cmake +++ b/cmake/FlowCommands.cmake @@ -130,21 +130,20 @@ function(strip_debug_symbols target) list(APPEND strip_command -o "${out_file}") add_custom_command(OUTPUT "${out_file}" COMMAND ${strip_command} $ + DEPENDS ${target} COMMENT "Stripping symbols from ${target}") add_custom_target(strip_only_${target} DEPENDS ${out_file}) if(is_exec AND NOT APPLE) add_custom_command(OUTPUT "${out_file}.debug" + DEPENDS strip_only_${target} COMMAND objcopy --verbose --only-keep-debug $ "${out_file}.debug" COMMAND objcopy --verbose --add-gnu-debuglink="${out_file}.debug" "${out_file}" - DEPENDS ${out_file} COMMENT "Copy debug symbols to ${out_name}.debug") - list(APPEND out_files "${out_file}.debug") - add_custom_target(strip_${target} DEPENDS "${out_file}.debug") + add_custom_target(strip_${target} DEPENDS "${out_file}.debug") else() add_custom_target(strip_${target}) + add_dependencies(strip_${target} strip_only_${target}) endif() - add_dependencies(strip_${target} strip_only_${target}) - add_dependencies(strip_${target} ${target}) add_dependencies(strip_targets strip_${target}) endfunction() @@ -185,12 +184,12 @@ function(add_flow_target) if(WIN32) add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${generated}" COMMAND $ "${CMAKE_CURRENT_SOURCE_DIR}/${src}" "${CMAKE_CURRENT_BINARY_DIR}/${generated}" ${actor_compiler_flags} - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${src}" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${src}" ${actor_exe} COMMENT "Compile actor: ${src}") else() add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${generated}" COMMAND ${MONO_EXECUTABLE} ${actor_exe} "${CMAKE_CURRENT_SOURCE_DIR}/${src}" "${CMAKE_CURRENT_BINARY_DIR}/${generated}" ${actor_compiler_flags} > /dev/null - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${src}" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${src}" ${actor_exe} COMMENT "Compile actor: ${src}") endif() else() diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt new file mode 100644 index 0000000000..fcbb4a9c1d --- /dev/null +++ b/contrib/CMakeLists.txt @@ -0,0 +1,4 @@ +if(NOT WIN32) + add_subdirectory(TraceLogHelper) + add_subdirectory(TestHarness) +endif() diff --git a/contrib/Joshua/README.md b/contrib/Joshua/README.md new file mode 100644 index 0000000000..f3d98892c6 --- /dev/null +++ b/contrib/Joshua/README.md @@ -0,0 +1,23 @@ +# Overview + +This directory provides the files needed to create a Joshua correctness bundle for testing FoundationDB. + +Rigorous testing is central to our engineering process. The features of our core are challenging, requiring us to meet exacting standards of correctness and performance. Data guarantees and transactional integrity must be maintained not only during normal operations but over a broad range of failure scenarios. At the same time, we aim to achieve performance goals such as low latencies and near-linear scalability. To meet these challenges, we use a combined regime of robust simulation, live performance testing, and hardware-based failure testing. + +# Joshua + +Joshua is a powerful tool for testing system correctness. Our simulation technology, called Joshua, is enabled by and tightly integrated with `flow`, our programming language for actor-based concurrency. In addition to generating efficient production code, Flow works with Joshua for simulated execution. + +The major goal of Joshua is to make sure that we find and diagnose issues in simulation rather than the real world. Joshua runs tens of thousands of simulations every night, each one simulating large numbers of component failures. Based on the volume of tests that we run and the increased intensity of the failures in our scenarios, we estimate that we have run the equivalent of roughly one trillion CPU-hours of simulation on FoundationDB. + +Joshua is able to conduct a *deterministic* simulation of an entire FoundationDB cluster within a single-threaded process. Determinism is crucial in that it allows perfect repeatability of a simulated run, facilitating controlled experiments to home in on issues. The simulation steps through time, synchronized across the system, representing a larger amount of real time in a smaller amount of simulated time. In practice, our simulations usually have about a 10-1 factor of real-to-simulated time, which is advantageous for the efficiency of testing. + +We run a broad range of simulations testing various aspects of the system. For example, we run a cycle test that uses key-values pairs arranged in a ring that executes transactions to change the values in a manner designed to maintain the ring's integrity, allowing a clear test of transactional isolation. + +Joshua simulates all physical components of a FoundationDB system, beginning with the number and type of machines in the cluster. For example, Joshua models drive performance on each machine, including drive space and the possibility of the drive filling up. Joshua also models the network, allowing a small amount of code to specify delivery of packets. + +We use Joshua to simulate failures modes at the network, machine, and datacenter levels, including connection failures, degradation of machine performance, machine shutdowns or reboots, machines coming back from the dead, etc. We stress-test all of these failure modes, failing machines at very short intervals, inducing unusually severe loads, and delaying communications channels. + +For a while, there was an informal competition within the engineering team to design failures that found the toughest bugs and issues the most easily. After a period of one-upsmanship, the reigning champion is called "swizzle-clogging". To swizzle-clog, you first pick a random subset of nodes in the cluster. Then, you "clog" (stop) each of their network connections one by one over a few seconds. Finally, you unclog them in a random order, again one by one, until they are all up. This pattern seems to be particularly good at finding deep issues that only happen in the rarest real-world cases. + +Joshua's success has surpassed our expectation and has been vital to our engineering team. It seems unlikely that we would have been able to build FoundationDB without this technology. diff --git a/contrib/Joshua/scripts/bindingTest.sh b/contrib/Joshua/scripts/bindingTest.sh new file mode 100755 index 0000000000..4a0d7c70da --- /dev/null +++ b/contrib/Joshua/scripts/bindingTest.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +ulimit -S -c unlimited + +unset FDB_NETWORK_OPTION_EXTERNAL_CLIENT_DIRECTORY +WORKDIR="$(pwd)/tmp/$$" +if [ ! -d "${WORKDIR}" ] ; then + mkdir -p "${WORKDIR}" +fi +DEBUGLEVEL=0 DISPLAYERROR=1 RANDOMTEST=1 WORKDIR="${WORKDIR}" ${SCRIPTDIR}/bindingTestScript.sh 1 diff --git a/contrib/Joshua/scripts/bindingTestScript.sh b/contrib/Joshua/scripts/bindingTestScript.sh new file mode 100755 index 0000000000..f4e0e8eb8b --- /dev/null +++ b/contrib/Joshua/scripts/bindingTestScript.sh @@ -0,0 +1,88 @@ +#/bin/bash +SCRIPTDIR=$( cd "${BASH_SOURCE[0]%\/*}" && pwd ) +cwd="$(pwd)" +BINDIR="${BINDIR:-${SCRIPTDIR}}" +LIBDIR="${BINDIR}:${LD_LIBRARY_PATH}" +SCRIPTID="${$}" +SAVEONERROR="${SAVEONERROR:-1}" +PYTHONDIR="${BINDIR}/tests/python" +testScript="${BINDIR}/tests/bindingtester/run_binding_tester.sh" +VERSION="1.9" + +source ${SCRIPTDIR}/localClusterStart.sh + +# Display syntax +if [ "$#" -lt 1 ] +then + echo "bindingTestScript.sh " + echo " version: ${VERSION}" + exit 1 +fi + +cycles="${1}" + +if [ "${DEBUGLEVEL}" -gt 0 ] +then + echo "Work dir: ${WORKDIR}" + echo "Bin dir: ${BINDIR}" + echo "Log dir: ${LOGDIR}" + echo "Python path: ${PYTHONDIR}" + echo "Lib dir: ${LIBDIR}" + echo "Cluster String: ${FDBCLUSTERTEXT}" + echo "Script Id: ${SCRIPTID}" + echo "Version: ${VERSION}" +fi + +# Begin the cluster using the logic in localClusterStart.sh. +startCluster + +# Stop the cluster on exit +trap "stopCluster" EXIT + +# Display user message +if [ "${status}" -ne 0 ]; then + : +elif ! displayMessage "Running binding tester" +then + echo 'Failed to display user message' + let status="${status} + 1" + +elif ! PYTHONPATH="${PYTHONDIR}" LD_LIBRARY_PATH="${LIBDIR}" FDB_CLUSTER_FILE="${FDBCONF}" LOGSTDOUT=1 CONSOLELOG="${WORKDIR}/console.log" "${testScript}" "${cycles}" "${WORKDIR}/errors/run.log" +then + if [ "${DEBUGLEVEL}" -gt 0 ]; then + printf "\n%-16s %-40s \n" "$(date '+%F %H-%M-%S')" "Failed to complete binding tester in ${SECONDS} seconds." + fi + let status="${status} + 1" + +elif [ "${DEBUGLEVEL}" -gt 0 ]; then + printf "\n%-16s %-40s \n" "$(date '+%F %H-%M-%S')" "Completed binding tester in ${SECONDS} seconds" +fi + +# Display directory and log information, if an error occurred +if [ "${status}" -ne 0 ] +then + ls "${WORKDIR}" &> "${LOGDIR}/dir.log" + ps -eafwH &> "${LOGDIR}/process-preclean.log" + if [ -f "${FDBCONF}" ]; then + cp -f "${FDBCONF}" "${LOGDIR}/" + fi + # Display the severity errors + if [ -d "${LOGDIR}" ]; then + grep -ir 'Severity="40"' "${LOGDIR}" + fi +fi + +# Save debug information files, environment, and log information, if an error occurred +if [ "${status}" -ne 0 ] && [ "${SAVEONERROR}" -gt 0 ]; then + ps -eafwH &> "${LOGDIR}/process-exit.log" + netstat -na &> "${LOGDIR}/netstat.log" + df -h &> "${LOGDIR}/disk.log" + env &> "${LOGDIR}/env.log" +fi + +# Stop the cluster +if stopCluster; then + unset FDBSERVERID +fi + +exit "${status}" diff --git a/contrib/Joshua/scripts/bindingTimeout.sh b/contrib/Joshua/scripts/bindingTimeout.sh new file mode 100755 index 0000000000..d28fd938ce --- /dev/null +++ b/contrib/Joshua/scripts/bindingTimeout.sh @@ -0,0 +1,28 @@ +#!/bin/bash -u + +# Look for the start cluster log file. +notstarted=0 +for file in `find . -name startcluster.log` ; do + if [ -n "$(grep 'Could not create database' "${file}")" ] ; then + echo "${file}:" + cat "${file}" + echo + notstarted=1 + fi +done + +# Print information on how the server didn't start. +if [ "${notstarted}" -gt 0 ] ; then + for file in `find . -name fdbclient.log` ; do + echo "${file}:" + cat "${file}" + echo + done +fi + +# Print the test output. +for file in `find . -name console.log` ; do + echo "${file}:" + cat "${file}" + echo +done diff --git a/contrib/Joshua/scripts/correctnessTest.sh b/contrib/Joshua/scripts/correctnessTest.sh new file mode 100755 index 0000000000..5f6abd6926 --- /dev/null +++ b/contrib/Joshua/scripts/correctnessTest.sh @@ -0,0 +1,3 @@ +#!/bin/sh +OLDBINDIR="${OLDBINDIR:-/app/deploy/global_data/oldBinaries}" +mono bin/TestHarness.exe joshua-run "${OLDBINDIR}" false diff --git a/contrib/Joshua/scripts/correctnessTimeout.sh b/contrib/Joshua/scripts/correctnessTimeout.sh new file mode 100755 index 0000000000..7917aae591 --- /dev/null +++ b/contrib/Joshua/scripts/correctnessTimeout.sh @@ -0,0 +1,4 @@ +#!/bin/bash -u +for file in `find . -name 'trace*.xml'` ; do + mono ./bin/TestHarness.exe summarize "${file}" summary.xml "" JoshuaTimeout true +done diff --git a/contrib/Joshua/scripts/localClusterStart.sh b/contrib/Joshua/scripts/localClusterStart.sh new file mode 100644 index 0000000000..d1280267b3 --- /dev/null +++ b/contrib/Joshua/scripts/localClusterStart.sh @@ -0,0 +1,402 @@ +#!/bin/bash +SCRIPTDIR="${SCRIPTDIR:-$( cd "${BASH_SOURCE[0]%\/*}" && pwd )}" +DEBUGLEVEL="${DEBUGLEVEL:-1}" +WORKDIR="${WORKDIR:-${SCRIPTDIR}/tmp/fdb.work}" +LOGDIR="${WORKDIR}/log" +ETCDIR="${WORKDIR}/etc" +BINDIR="${BINDIR:-${SCRIPTDIR}}" +FDBPORTSTART="${FDBPORTSTART:-4000}" +FDBPORTTOTAL="${FDBPORTTOTAL:-1000}" +SERVERCHECKS="${SERVERCHECKS:-10}" +CONFIGUREWAIT="${CONFIGUREWAIT:-240}" +FDBCONF="${ETCDIR}/fdb.cluster" +LOGFILE="${LOGFILE:-${LOGDIR}/startcluster.log}" +AUDITCLUSTER="${AUDITCLUSTER:-0}" +AUDITLOG="${AUDITLOG:-/tmp/audit-cluster.log}" + +# Initialize the variables +status=0 +messagetime=0 +messagecount=0 + +# Do nothing, if cluster string is already defined +if [ -n "${FDBCLUSTERTEXT}" ] +then + : +# Otherwise, define the cluster text +else + # Define a random ip address and port on localhost + if [ -z "${IPADDRESS}" ]; then + let index2="${RANDOM} % 256" + let index3="${RANDOM} % 256" + let index4="(${RANDOM} % 255) + 1" + IPADDRESS="127.${index2}.${index3}.${index4}" + fi + if [ -z "${FDBPORT}" ]; then + let FDBPORT="(${RANDOM} % ${FDBPORTTOTAL}) + ${FDBPORTSTART}" + fi + FDBCLUSTERTEXT="${IPADDRESS}:${FDBPORT}" +fi + +function log +{ + local status=0 + if [ "$#" -lt 1 ] + then + echo "Usage: log [echo]" + echo + echo "Logs the message and timestamp to LOGFILE (${LOGFILE}) and, if the" + echo "second argument is either not present or is set to 1, stdout." + let status="${status} + 1" + else + # Log to stdout. + if [ "$#" -lt 2 ] || [ "${2}" -ge 1 ] + then + echo "${1}" + fi + + # Log to file. + datestr=$(date +"%Y-%m-%d %H:%M:%S (%s)") + dir=$(dirname "${LOGFILE}") + if ! [ -d "${dir}" ] && ! mkdir -p "${dir}" + then + echo "Could not create directory to log output." + let status="${status} + 1" + elif ! [ -f "${LOGFILE}" ] && ! touch "${LOGFILE}" + then + echo "Could not create file ${LOGFILE} to log output." + let status="${status} + 1" + elif ! echo "[ ${datestr} ] ${1}" >> "${LOGFILE}" + then + echo "Could not log output to ${LOGFILE}." + let status="${status} + 1" + fi + fi + + return "${status}" +} + +# Display a message for the user. +function displayMessage +{ + local status=0 + + if [ "$#" -lt 1 ] + then + echo "displayMessage " + let status="${status} + 1" + elif ! log "${1}" 0 + then + log "Could not write message to file." + else + # Increment the message counter + let messagecount="${messagecount} + 1" + + # Display successful message, if previous message + if [ "${messagecount}" -gt 1 ] + then + # Determine the amount of transpired time + let timespent="${SECONDS}-${messagetime}" + + if [ "${DEBUGLEVEL}" -gt 0 ]; then + printf "... done in %3d seconds\n" "${timespent}" + fi + fi + + # Display message + if [ "${DEBUGLEVEL}" -gt 0 ]; then + printf "%-16s %-35s " "$(date "+%F %H-%M-%S")" "$1" + fi + + # Update the variables + messagetime="${SECONDS}" + fi + + return "${status}" +} + +# Create the directories used by the server. +function createDirectories +{ + local status=0 + + # Display user message + if ! displayMessage "Creating directories" + then + echo 'Failed to display user message' + let status="${status} + 1" + + elif ! mkdir -p "${LOGDIR}" "${ETCDIR}" + then + log "Failed to create directories" + let status="${status} + 1" + + # Display user message + elif ! displayMessage "Setting file permissions" + then + log 'Failed to display user message' + let status="${status} + 1" + + elif ! chmod 755 "${BINDIR}/fdbserver" "${BINDIR}/fdbcli" + then + log "Failed to set file permissions" + let status="${status} + 1" + + else + while read filepath + do + if [ -f "${filepath}" ] && [ ! -x "${filepath}" ] + then + # if [ "${DEBUGLEVEL}" -gt 1 ]; then + # log " Enable executable: ${filepath}" + # fi + log " Enable executable: ${filepath}" "${DEBUGLEVEL}" + if ! chmod 755 "${filepath}" + then + log "Failed to set executable for file: ${filepath}" + let status="${status} + 1" + fi + fi + done < <(find "${BINDIR}" -iname '*.py' -o -iname '*.rb' -o -iname 'fdb_flow_tester' -o -iname '_stacktester' -o -iname '*.js' -o -iname '*.sh' -o -iname '*.ksh') + fi + + return ${status} +} + +# Create a cluster file for the local cluster. +function createClusterFile +{ + local status=0 + + if [ "${status}" -ne 0 ]; then + : + # Display user message + elif ! displayMessage "Creating Fdb Cluster file" + then + log 'Failed to display user message' + let status="${status} + 1" + else + description=$(LC_CTYPE=C tr -dc A-Za-z0-9 < /dev/urandom 2> /dev/null | head -c 8) + random_str=$(LC_CTYPE=C tr -dc A-Za-z0-9 < /dev/urandom 2> /dev/null | head -c 8) + echo "${description}:${random_str}@${FDBCLUSTERTEXT}" > "${FDBCONF}" + fi + + if [ "${status}" -ne 0 ]; then + : + elif ! chmod 0664 "${FDBCONF}"; then + log "Failed to set permissions on fdbconf: ${FDBCONF}" + let status="${status} + 1" + fi + + return ${status} +} + +# Stop the Cluster from running. +function stopCluster +{ + local status=0 + + # Add an audit entry, if enabled + if [ "${AUDITCLUSTER}" -gt 0 ]; then + printf '%-15s (%6s) Stopping cluster %-20s (%6s): %s\n' "$(date +'%Y-%m-%d %H:%M:%S')" "${$}" "${FDBCLUSTERTEXT}" "${FDBSERVERID}" >> "${AUDITLOG}" + fi + if [ -z "${FDBSERVERID}" ]; then + log 'FDB Server process is not defined' + let status="${status} + 1" + elif ! kill -0 "${FDBSERVERID}"; then + log "Failed to locate FDB Server process (${FDBSERVERID})" + let status="${status} + 1" + elif "${BINDIR}/fdbcli" -C "${FDBCONF}" --exec "kill; kill ${FDBCLUSTERTEXT}; sleep 3" --timeout 120 &>> "${LOGDIR}/fdbcli-kill.log" + then + # Ensure that process is dead + if ! kill -0 "${FDBSERVERID}" 2> /dev/null; then + log "Killed cluster (${FDBSERVERID}) via cli" + elif ! kill -9 "${FDBSERVERID}"; then + log "Failed to kill FDB Server process (${FDBSERVERID}) via cli or kill command" + let status="${status} + 1" + else + log "Forcibly killed FDB Server process (${FDBSERVERID}) since cli failed" + fi + elif ! kill -9 "${FDBSERVERID}"; then + log "Failed to forcibly kill FDB Server process (${FDBSERVERID})" + let status="${status} + 1" + else + log "Forcibly killed FDB Server process (${FDBSERVERID})" + fi + return "${status}" +} + +# Start the server running. +function startFdbServer +{ + local status=0 + + # Add an audit entry, if enabled + if [ "${AUDITCLUSTER}" -gt 0 ]; then + printf '%-15s (%6s) Starting cluster %-20s\n' "$(date +'%Y-%m-%d %H:%M:%S')" "${$}" "${FDBCLUSTERTEXT}" >> "${AUDITLOG}" + fi + + if ! displayMessage "Starting Fdb Server" + then + log 'Failed to display user message' + let status="${status} + 1" + + else + "${BINDIR}/fdbserver" --knob_disable_posix_kernel_aio=1 -C "${FDBCONF}" -p "${FDBCLUSTERTEXT}" -L "${LOGDIR}" -d "${WORKDIR}/fdb/${$}" &> "${LOGDIR}/fdbserver.log" & + if [ "${?}" -ne 0 ] + then + log "Failed to start FDB Server" + let status="${status} + 1" + else + FDBSERVERID="${!}" + fi + fi + + if [ -z "${FDBSERVERID}" ]; then + log "FDB Server start failed because no process" + let status="${status} + 1" + elif ! kill -0 "${FDBSERVERID}" ; then + log "FDB Server start failed because process terminated unexpectedly" + let status="${status} + 1" + fi + + return ${status} +} + +function getStatus +{ + local status=0 + + if [ "${status}" -ne 0 ]; then + : + elif ! date &>> "${LOGDIR}/fdbclient.log" + then + log 'Failed to get date' + let status="${status} + 1" + elif ! "${BINDIR}/fdbcli" -C "${FDBCONF}" --exec 'status json' --timeout 120 &>> "${LOGDIR}/fdbclient.log" + then + log 'Failed to get status from fdbcli' + let status="${status} + 1" + elif ! date &>> "${LOGDIR}/fdbclient.log" + then + log 'Failed to get date' + let status="${status} + 1" + fi + + return ${status} +} + +# Verify that the cluster is available. +function verifyAvailable +{ + local status=0 + + if [ -z "${FDBSERVERID}" ]; then + log "FDB Server process is not defined." + let status="${status} + 1" + # Verify that the server is running. + elif ! kill -0 "${FDBSERVERID}" + then + log "FDB server process (${FDBSERVERID}) is not running" + let status="${status} + 1" + # Display user message. + elif ! displayMessage "Checking cluster availability" + then + log 'Failed to display user message' + let status="${status} + 1" + # Determine if status json says the database is available. + else + avail=`"${BINDIR}/fdbcli" -C "${FDBCONF}" --exec 'status json' --timeout "${SERVERCHECKS}" 2> /dev/null | grep -E '"database_available"|"available"' | grep 'true'` + log "Avail value: ${avail}" "${DEBUGLEVEL}" + if [[ -n "${avail}" ]] ; then + : + else + let status="${status} + 1" + fi + fi + return "${status}" +} + +# Configure the database on the server. +function createDatabase +{ + local status=0 + + if [ "${status}" -ne 0 ]; then + : + # Ensure that the server is running + elif ! kill -0 "${FDBSERVERID}" + then + log "FDB server process: (${FDBSERVERID}) is not running" + let status="${status} + 1" + + # Display user message + elif ! displayMessage "Creating database" + then + log 'Failed to display user message' + let status="${status} + 1" + elif ! echo "Client log:" &> "${LOGDIR}/fdbclient.log" + then + log 'Failed to create fdbclient.log' + let status="${status} + 1" + elif ! getStatus + then + log 'Failed to get status' + let status="${status} + 1" + + # Configure the database. + else + "${BINDIR}/fdbcli" -C "${FDBCONF}" --exec 'configure new single memory; status' --timeout "${CONFIGUREWAIT}" --log --log-dir "${LOGDIR}" &>> "${LOGDIR}/fdbclient.log" + + if ! displayMessage "Checking if config succeeded" + then + log 'Failed to display user message.' + fi + + iteration=0 + while [[ "${iteration}" -lt "${SERVERCHECKS}" ]] && ! verifyAvailable + do + log "Database not created (iteration ${iteration})." + let iteration="${iteration} + 1" + done + + if ! verifyAvailable + then + log "Failed to create database via cli" + getStatus + cat "${LOGDIR}/fdbclient.log" + log "Ignoring -- moving on" + #let status="${status} + 1" + fi + fi + + return ${status} +} + +# Begin the local cluster from scratch. +function startCluster +{ + local status=0 + + if [ "${status}" -ne 0 ]; then + : + elif ! createDirectories + then + log "Could not create directories." + let status="${status} + 1" + elif ! createClusterFile + then + log "Could not create cluster file." + let status="${status} + 1" + elif ! startFdbServer + then + log "Could not start FDB server." + let status="${status} + 1" + elif ! createDatabase + then + log "Could not create database." + let status="${status} + 1" + fi + + return ${status} +} diff --git a/contrib/Joshua/scripts/valgrindTest.sh b/contrib/Joshua/scripts/valgrindTest.sh new file mode 100755 index 0000000000..5409429691 --- /dev/null +++ b/contrib/Joshua/scripts/valgrindTest.sh @@ -0,0 +1,3 @@ +#!/bin/sh +OLDBINDIR="${OLDBINDIR:-/app/deploy/global_data/oldBinaries}" +mono bin/TestHarness.exe joshua-run "${OLDBINDIR}" true diff --git a/contrib/Joshua/scripts/valgrindTimeout.sh b/contrib/Joshua/scripts/valgrindTimeout.sh new file mode 100755 index 0000000000..b9d9e7ebad --- /dev/null +++ b/contrib/Joshua/scripts/valgrindTimeout.sh @@ -0,0 +1,6 @@ +#!/bin/bash -u +for file in `find . -name 'trace*.xml'` ; do + for valgrindFile in `find . -name 'valgrind*.xml'` ; do + mono ./bin/TestHarness.exe summarize "${file}" summary.xml "${valgrindFile}" JoshuaTimeout true + done +done diff --git a/contrib/TestHarness/CMakeLists.txt b/contrib/TestHarness/CMakeLists.txt new file mode 100644 index 0000000000..4eecd82e04 --- /dev/null +++ b/contrib/TestHarness/CMakeLists.txt @@ -0,0 +1,17 @@ +set(SRCS + ${CMAKE_CURRENT_BINARY_DIR}/Program.cs + Properties/AssemblyInfo.cs) + +set(TEST_HARNESS_REFERENCES + "-r:System,System.Core,System.Xml.Linq,System.Data.DataSetExtensions,Microsoft.CSharp,System.Data,System.Xml,System.Runtime.Serialization,${TraceLogHelperDll}") + +set(out_file ${CMAKE_BINARY_DIR}/packages/bin/TestHarness.exe) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Program.cs.cmake ${CMAKE_CURRENT_BINARY_DIR}/Program.cs) + +add_custom_command(OUTPUT ${out_file} + COMMAND ${MCS_EXECUTABLE} ARGS ${TEST_HARNESS_REFERENCES} ${SRCS} "-target:exe" "-out:${out_file}" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS ${SRCS} TraceLogHelper + COMMENT "Compile TestHarness" VERBATIM) +add_custom_target(TestHarness DEPENDS ${out_file}) diff --git a/contrib/TestHarness/Program.cs.cmake b/contrib/TestHarness/Program.cs.cmake new file mode 100644 index 0000000000..69fdd9bb36 --- /dev/null +++ b/contrib/TestHarness/Program.cs.cmake @@ -0,0 +1,1588 @@ +/* + * Program.cs + * + * This source file is part of the FoundationDB open source project + * + * Copyright 2013-2020 Apple Inc. and the FoundationDB project authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Xml.Linq; +using System.IO; +using System.Diagnostics; +using System.ComponentModel; +using System.Runtime.InteropServices; +using System.Xml; +using System.Runtime.Serialization.Json; + +namespace SummarizeTest +{ + static class Program + { + static Random random; + const int killSeconds = 60 * 30; + const int maxWarnings = 10; + const int maxStderrBytes = 1000; + const double unseedRatio = 0.05; + const double buggifyOnRatio = 0.8; + static string BINARY = "fdbserver" + (IsRunningOnMono() ? "" : ".exe"); + static string PLUGIN = "FDBLibTLS." + (IsRunningOnMono() ? "so" : "dll"); + static string OS_NAME = IsRunningOnMono() ? "linux" : "win"; + + static int Main(string[] args) + { + bool traceToStdout = false; + try + { + byte[] seed = new byte[4]; + new System.Security.Cryptography.RNGCryptoServiceProvider().GetBytes(seed); + random = new Random(new BinaryReader(new MemoryStream(seed)).ReadInt32()); + + if (args.Length < 1) + return UsageMessage(); + + if (args[0] == "summarize") + { + if (args.Length < 3) + return UsageMessage(); + string valgrindFileName = args.Length >= 4 ? args[3] : null; + string externalError = args.Length >= 5 ? args[4] : ""; + traceToStdout = args.Length == 6 && args[5] == "true"; + + int unseed; + bool retryableError; + //SOMEDAY: This only works if a run generated just one trace file. We should change the summarize command to take multiple trace files + return Summarize(new string[]{ args[1] }, args[2], null, null, null, null, null, null, valgrindFileName, -1, out unseed, out retryableError, true, + traceToStdout: traceToStdout, externalError: externalError); + } + else if (args[0] == "remote") + { + if (args.Length < 6) + return UsageMessage(); + + return Remote(args[1], args[2], double.Parse(args[3]), int.Parse(args[4]), args[5], args.Length == 7 ? args[6] : "default"); + } + else if (args[0] == "run") + { + try + { + if (args.Length < 6) + return UsageMessage(); + + string runDir = null; + if(args[1] != "temp") runDir = args[1]; + + bool useValgind = args.Length > 6 && args[6].ToLower() == "true"; + int maxTries = (args.Length > 7) ? int.Parse(args[7]) : 3; + return Run(args[2], args[3], args[4], args[5], null, runDir, null, useValgind, maxTries); + } + catch(Exception e) + { + var xout = new XElement("TestHarnessError", + new XAttribute("Severity", (int)Magnesium.Severity.SevError), + new XAttribute("ErrorMessage", e.Message)); + + AppendXmlMessageToSummary(args[5], xout); + throw; + } + } + else if (args[0] == "replay") + { + if (args.Length != 6) + return UsageMessage(); + + string runDir = null; + if (args[1] != "temp") runDir = args[1]; + + return Replay(args[2], args[3], args[4], args[5], runDir); + } + else if (args[0] == "auto") + { + if (args.Length < 4) + return UsageMessage(); + + string runDir = null; + if (args[1] != "temp") runDir = args[1]; + + string cacheDir = Path.Combine(runDir, "test_harness_cache"); + bool useValgrind = args.Length > 4 && args[4].ToLower() == "true"; + int maxTries = (args.Length > 5) ? int.Parse(args[5]) : 3; + + return Auto(args[2], Path.Combine(runDir, "runs"), args[3], cacheDir, useValgrind, maxTries); + } + else if (args[0] == "extract-errors") + { + if (args.Length != 3) + return UsageMessage(); + + return ExtractErrors(args[1], args[2]); + } + else if (args[0] == "joshua-run") + { + traceToStdout = true; + + try + { + string oldBinaryFolder = (args.Length > 1) ? args[1] : Path.Combine("/opt", "joshua", "global_data", "oldBinaries"); + bool useValgrind = args.Length > 2 && args[2].ToLower() == "true"; + int maxTries = (args.Length > 3) ? int.Parse(args[3]) : 3; + return Run(Path.Combine("bin", BINARY), "", "tests", "summary.xml", "error.xml", "tmp", oldBinaryFolder, useValgrind, maxTries, true, Path.Combine("/app", "deploy", "runtime", ".tls_5_1", PLUGIN)); + } + catch(Exception e) + { + var xout = new XElement("TestHarnessError", + new XAttribute("Severity", (int)Magnesium.Severity.SevError), + new XAttribute("ErrorMessage", e.ToString())); + + AppendXmlMessageToSummary("summary.xml", xout, true); + throw; + } + } + else if (args[0] == "version") + { + return VersionInfo(); + } + + return UsageMessage(); + } + catch (Exception e) + { + if (!traceToStdout) + { + Console.WriteLine("Error:"); + Console.WriteLine(e.ToString()); + } + + return 100; + } + } + + static T Choice(this Random random, IList items) + { + return items[ random.Next(items.Count) ]; + } + + static bool IsRunningOnMono() + { + return Type.GetType("Mono.Runtime") != null; + } + + static int Replay(string fdbserverName, string tlsPluginFile, string inputSummaryFileName, string outputSummaryFileName, string runDir) + { + using (var summaryFileIn = System.IO.File.Open(inputSummaryFileName, + System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite | System.IO.FileShare.Delete)) + { + foreach (var test in Magnesium.XmlParser.Parse(summaryFileIn, inputSummaryFileName).OfType()) + { + if (test is Magnesium.Test) continue; // Only process the test plans + int unseed; + bool retryableError; + RunTest(fdbserverName, tlsPluginFile, outputSummaryFileName, null, test.randomSeed, test.Buggify, test.TestFile, runDir, test.TestUID, -1, out unseed, out retryableError, true, false); + } + } + return 0; + } + + // Ver format - x.x.x (eg, 5.0.1, 4.2.11) + // Returns true is ver1 is greater than or equal to ver2 + static bool versionGreaterThanOrEqual(string ver1, string ver2) + { + string[] tokens1 = ver1.Split('.'); + string[] tokens2 = ver2.Split('.'); + if (tokens1.Length != tokens2.Length || tokens2.Length != 3) + { + throw new ArgumentException("Invalid Version Format Version1: " + ver1 + " Version2: " + ver2); + } + int[] version1 = Array.ConvertAll(tokens1, int.Parse); + int[] version2 = Array.ConvertAll(tokens2, int.Parse); + return ((System.Collections.IStructuralComparable)version1).CompareTo(version2, System.Collections.Generic.Comparer.Default) >= 0; + } + + static bool versionLessThan(string ver1, string ver2) { + return !versionGreaterThanOrEqual(ver1, ver2); + } + + static string getFdbserverVersion(string fdbserverName) { + using (var process = new System.Diagnostics.Process()) + { + process.StartInfo.UseShellExecute = false; + process.StartInfo.RedirectStandardOutput = true; + process.StartInfo.FileName = fdbserverName; + process.StartInfo.Arguments = "--version"; + process.StartInfo.RedirectStandardError = true; + + process.Start(); + var output = process.StandardOutput.ReadToEnd(); + // If the process finished successfully, we call the parameterless WaitForExit to ensure that output buffers get flushed + process.WaitForExit(); + + var match = Regex.Match(output, @"v(\d+\.\d+\.\d+)"); + if (match.Groups.Count < 1) return ""; + return match.Groups[1].Value; + } + } + + static int Run(string fdbserverName, string tlsPluginFile, string testFolder, string summaryFileName, string errorFileName, string runDir, string oldBinaryFolder, bool useValgrind, int maxTries, bool traceToStdout = false, string tlsPluginFile_5_1 = "") + { + int seed = random.Next(1000000000); + bool buggify = random.NextDouble() < buggifyOnRatio; + string testFile = null; + string testDir = ""; + string oldServerName = ""; + + if (Directory.Exists(testFolder)) + { + int poolSize = 0; + if( Directory.Exists(Path.Combine(testFolder, "rare")) ) poolSize += 1; + if( Directory.Exists(Path.Combine(testFolder, "slow")) ) poolSize += 5; + if( Directory.Exists(Path.Combine(testFolder, "fast")) ) poolSize += 14; + if( Directory.Exists(Path.Combine(testFolder, "restarting")) ) poolSize += 1; + + if( poolSize == 0 ) { + Console.WriteLine("Passed folder ({0}) did not have a fast, slow, rare, or restarting sub-folder", testFolder); + return 1; + } + int selection = random.Next(poolSize); + int selectionWindow = 0; + + if( Directory.Exists(Path.Combine(testFolder, "rare")) ) selectionWindow += 1; + if (selection < selectionWindow) + testDir = Path.Combine(testFolder, "rare"); + else + { + if (Directory.Exists(Path.Combine(testFolder, "restarting"))) selectionWindow += 1; + if (selection < selectionWindow) + testDir = Path.Combine(testFolder, "restarting"); + else + { + if (Directory.Exists(Path.Combine(testFolder, "slow"))) selectionWindow += 5; + if (selection < selectionWindow) + testDir = Path.Combine(testFolder, "slow"); + else + testDir = Path.Combine(testFolder, "fast"); + } + } + string[] files = Directory.GetFiles(testDir, "*", SearchOption.AllDirectories); + string[] uniqueFiles; + if (testDir.EndsWith("restarting")) + { + ISet uniqueFileSet = new HashSet(); + foreach(string file in files) { + uniqueFileSet.Add(file.Substring(0, file.LastIndexOf("-"))); // all restarting tests end with -1.txt or -2.txt + } + uniqueFiles = uniqueFileSet.ToArray(); + testFile = random.Choice(uniqueFiles); + // The on-disk format changed in 4.0.0, and 5.x can't load files from 3.x. + string oldBinaryVersionLowerBound = "4.0.0"; + string lastFolderName = Path.GetFileName(Path.GetDirectoryName(testFile)); + if (lastFolderName.Contains("from_") || lastFolderName.Contains("to_")) // Only perform upgrade/downgrade tests from certain versions + { + oldBinaryVersionLowerBound = lastFolderName.Split('_').Last(); + } + string oldBinaryVersionUpperBound = getFdbserverVersion(fdbserverName); + if (versionGreaterThanOrEqual("4.0.0", oldBinaryVersionUpperBound)) { + // If the binary under test is from 3.x, then allow upgrade tests from 3.x binaries. + oldBinaryVersionLowerBound = "0.0.0"; + } + string[] currentBinary = { fdbserverName }; + IEnumerable oldBinaries = Array.FindAll( + Directory.GetFiles(oldBinaryFolder), + x => versionGreaterThanOrEqual(Path.GetFileName(x).Split('-').Last(), oldBinaryVersionLowerBound) + && versionLessThan(Path.GetFileName(x).Split('-').Last(), oldBinaryVersionUpperBound)); + oldBinaries = oldBinaries.Concat(currentBinary); + oldServerName = random.Choice(oldBinaries.ToList()); + } + else + { + uniqueFiles = Directory.GetFiles(testDir); + testFile = random.Choice(uniqueFiles); + } + } + else if (File.Exists(testFolder)) + testFile = testFolder; + else + { + Console.WriteLine("Passed path ({0}) was not a folder or file", testFolder); + return 1; + } + + int result = 0; + bool unseedCheck = random.NextDouble() < unseedRatio; + for (int i = 0; i < maxTries; ++i) + { + bool logOnRetryableError = i == maxTries - 1; + bool retryableError = false; + + if (testDir.EndsWith("restarting")) + { + bool isDowngrade = Path.GetFileName(Path.GetDirectoryName(testFile)).Contains("to_"); + string firstServerName = isDowngrade ? fdbserverName : oldServerName; + string secondServerName = isDowngrade ? oldServerName : fdbserverName; + int expectedUnseed = -1; + int unseed; + string uid = Guid.NewGuid().ToString(); + bool useNewPlugin = (oldServerName == fdbserverName) || versionGreaterThanOrEqual(oldServerName.Split('-').Last(), "5.2.0"); + bool useToml = File.Exists(testFile + "-1.toml"); + string testFile1 = useToml ? testFile + "-1.toml" : testFile + "-1.txt"; + result = RunTest(firstServerName, useNewPlugin ? tlsPluginFile : tlsPluginFile_5_1, summaryFileName, errorFileName, seed, buggify, testFile1, runDir, uid, expectedUnseed, out unseed, out retryableError, logOnRetryableError, useValgrind, false, true, oldServerName, traceToStdout); + if (result == 0) + { + string testFile2 = useToml ? testFile + "-2.toml" : testFile + "-2.txt"; + result = RunTest(secondServerName, tlsPluginFile, summaryFileName, errorFileName, seed+1, buggify, testFile2, runDir, uid, expectedUnseed, out unseed, out retryableError, logOnRetryableError, useValgrind, true, false, oldServerName, traceToStdout); + } + } + else + { + int expectedUnseed = -1; + if (!useValgrind && unseedCheck) + { + result = RunTest(fdbserverName, tlsPluginFile, null, null, seed, buggify, testFile, runDir, Guid.NewGuid().ToString(), -1, out expectedUnseed, out retryableError, logOnRetryableError, false, false, false, "", traceToStdout); + } + + if (!retryableError) + { + int unseed; + result = RunTest(fdbserverName, tlsPluginFile, summaryFileName, errorFileName, seed, buggify, testFile, runDir, Guid.NewGuid().ToString(), expectedUnseed, out unseed, out retryableError, logOnRetryableError, useValgrind, false, false, "", traceToStdout); + } + } + + if (!retryableError) + { + return result; + } + } + + return result; + } + + private static int RunTest(string fdbserverName, string tlsPluginFile, string summaryFileName, string errorFileName, int seed, + bool buggify, string testFile, string runDir, string uid, int expectedUnseed, out int unseed, out bool retryableError, bool logOnRetryableError, bool useValgrind, bool restarting = false, + bool willRestart = false, string oldBinaryName = "", bool traceToStdout = false) + { + unseed = -1; + + retryableError = false; + string tempPath = Path.Combine(runDir != null ? Path.GetFullPath(runDir) : Path.GetTempPath(), uid); + string oldDir = Directory.GetCurrentDirectory(); + + try + { + fdbserverName = Path.GetFullPath(fdbserverName); + tlsPluginFile = (tlsPluginFile.Length > 0) ? Path.GetFullPath(tlsPluginFile) : ""; + testFile = Path.GetFullPath(testFile); + var ok = 0; + + if (summaryFileName != null) + summaryFileName = Path.GetFullPath(summaryFileName); + + Directory.CreateDirectory(tempPath); + Directory.SetCurrentDirectory(tempPath); + + if (!restarting) LogTestPlan(summaryFileName, testFile, seed, buggify, expectedUnseed != -1, uid, oldBinaryName); + + string valgrindOutputFile = null; + using (var process = new System.Diagnostics.Process()) + { + ErrorOutputListener errorListener = new ErrorOutputListener(); + process.StartInfo.UseShellExecute = false; + string tlsPluginArg = ""; + if (tlsPluginFile.Length > 0) { + process.StartInfo.EnvironmentVariables["FDB_TLS_PLUGIN"] = tlsPluginFile; + tlsPluginArg = "--tls_plugin=" + tlsPluginFile; + } + process.StartInfo.RedirectStandardOutput = true; + var args = ""; + if (willRestart && oldBinaryName.EndsWith("alpha6")) + { + args = string.Format("-Rs 1000000000 -r simulation {0} -s {1} -f \"{2}\" -b {3} {4} --crash", + IsRunningOnMono() ? "" : "-q", seed, testFile, buggify ? "on" : "off", tlsPluginArg); + } + else + { + args = string.Format("-Rs 1GB -r simulation {0} -s {1} -f \"{2}\" -b {3} {4} --crash", + IsRunningOnMono() ? "" : "-q", seed, testFile, buggify ? "on" : "off", tlsPluginArg); + } + if (restarting) args = args + " --restarting"; + if (useValgrind && !willRestart) + { + valgrindOutputFile = string.Format("valgrind-{0}.xml", seed); + process.StartInfo.FileName = "valgrind"; + // Add extra debug directory, if environment variables is defined + string valgrindDbgDir = System.Environment.GetEnvironmentVariable("FDB_VALGRIND_DBGPATH"); + process.StartInfo.Arguments = (string.IsNullOrEmpty(valgrindDbgDir)) ? "" : string.Format("--extra-debuginfo-path={0} ", valgrindDbgDir); + + process.StartInfo.Arguments += + string.Format("--xml=yes --xml-file={0} -q {1} {2}", valgrindOutputFile, fdbserverName, args); + } + else + { + process.StartInfo.FileName = fdbserverName; + process.StartInfo.Arguments = args; + } + process.StartInfo.RedirectStandardError = true; + process.ErrorDataReceived += new DataReceivedEventHandler(errorListener.handleData); + + if (!traceToStdout) + { + Console.WriteLine("Executing {0} {1} in {2} (buggify: {3}, valgrind: {4})", + process.StartInfo.FileName, process.StartInfo.Arguments, tempPath, + buggify ? "on" : "off", + useValgrind ? "on" : "off"); + } + + process.Start(); + + // SOMEDAY: Do we want to actually do anything with standard output or error? + // Using standarderror requires async read, see http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput.aspx + //process.StandardOutput.ReadToEnd(); + OutputCopier copier = new OutputCopier(process.StandardOutput); + Thread consoleThread = new Thread(new ThreadStart(copier.copyOutput)); + consoleThread.Start(); + + MemoryChecker memChecker = new MemoryChecker(process); + Thread memCheckThread = new Thread(new ThreadStart(memChecker.monitorMemory)); + memCheckThread.Start(); + + process.BeginErrorReadLine(); + + Stopwatch stopwatch = new Stopwatch(); + stopwatch.Start(); + + var ms = 1000 * killSeconds; + if (useValgrind) + ms *= 20; + bool killed = !process.WaitForExit(ms); // Wait "killSeconds" seconds here + + stopwatch.Stop(); + + if (!killed) + process.WaitForExit(); // If the process finished successfully, we call the parameterless WaitForExit to ensure that output buffers get flushed + else + { + // It seems that WaitForExit sometimes returns false well before the timeout has elapsed + // We won't report that as an error, but just in case the process didn't actually finish we attempt to + // kill it here + if (killed && ms - stopwatch.ElapsedMilliseconds > 10000) + killed = false; + + if (!traceToStdout) + { + Console.WriteLine("Warning: Killing process after {0} seconds...", killSeconds); + } + + try + { + process.Kill(); + } + catch (Exception e) + { + if (!traceToStdout) + { + Console.WriteLine("Warning: Process.Kill returned {0}", e); + } + } + + int waitSeconds = 60 * 2; + process.WaitForExit(1000 * waitSeconds); + if (!process.HasExited) + { + if(!traceToStdout) + { + Console.WriteLine("Warning: Unable to kill process after {0} seconds...", waitSeconds); + } + + var xout = new XElement("UnableToKillProcess", + new XAttribute("Severity", (int)Magnesium.Severity.SevWarnAlways)); + + AppendXmlMessageToSummary(summaryFileName, xout, traceToStdout, testFile, seed, buggify, expectedUnseed != -1, oldBinaryName); + return 104; + } + } + if (!traceToStdout) + { + Console.WriteLine("Exit code is {0}", process.ExitCode); + } + memCheckThread.Join(); + consoleThread.Join(); + + var traceFiles = Directory.GetFiles(tempPath, "trace*.*").Where(s => s.EndsWith(".xml") || s.EndsWith(".json")).ToArray(); + if (traceFiles.Length == 0) + { + if (!traceToStdout) + { + Console.WriteLine("Warning: No trace file was generated, summary will not be affected."); + } + + var xout = new XElement((useValgrind ? "NoTraceFileGeneratedLibPos" : "NoTraceFileGenerated"), + new XAttribute("Severity", (int)Magnesium.Severity.SevWarnAlways), + new XAttribute("Plugin", tlsPluginFile), + new XAttribute("MachineName", System.Environment.MachineName)); + + AppendXmlMessageToSummary(summaryFileName, xout, traceToStdout, testFile, seed, buggify, expectedUnseed != -1, oldBinaryName); + ok = useValgrind ? 0 : 103; + } + else + { + var result = Summarize(traceFiles, summaryFileName, errorFileName, killed, errorListener.Errors, + process.ExitCode, memChecker.MaxMem, uid, + valgrindOutputFile == null ? null : Path.Combine(tempPath, valgrindOutputFile), + expectedUnseed, out unseed, out retryableError, logOnRetryableError, willRestart, restarting, oldBinaryName, traceToStdout); + + if (result != 0) + { + ok = result; + } + } + + if (willRestart) foreach (var f in traceFiles) File.Delete(f); + + process.Close(); + } + if (!traceToStdout) + { + Console.WriteLine("Done (unseed {0})", unseed); + } + + return ok; + } + catch (Exception e) + { + if (!traceToStdout) + { + Console.WriteLine("Error in Run:"); + Console.WriteLine(e); + } + + var xout = new XElement("TestHarnessRunError", + new XAttribute("Severity", (int)Magnesium.Severity.SevError), + new XAttribute("ErrorMessage", e.Message)); + + AppendXmlMessageToSummary(summaryFileName, xout, traceToStdout, testFile, seed, buggify, expectedUnseed != -1, oldBinaryName); + return 101; + } + finally + { + Directory.SetCurrentDirectory(oldDir); + if (!willRestart) Directory.Delete(tempPath, true); + } + } + + class OutputCopier + { + private StreamReader reader; + + public OutputCopier(StreamReader streamReader) + { + this.reader = streamReader; + } + + public void copyOutput() + { + //Console.WriteLine(" Beginning console copy..."); + while (!reader.EndOfStream) + { + reader.ReadLine(); + //Console.WriteLine(" : " + s); + } + } + } + + private class ErrorOutputListener + { + public List Errors { get; set; } + int maxErrorLength; + int maxErrors; + + public ErrorOutputListener(int maxErrorLength = 100, int maxErrors = 10) + { + Errors = new List(); + this.maxErrorLength = maxErrorLength; + this.maxErrors = maxErrors; + } + + public bool hasError = false; + public void handleData(object sendingProcess, DataReceivedEventArgs errLine) + { + if(!String.IsNullOrEmpty(errLine.Data)) + { + hasError = true; + if(Errors.Count < maxErrors) + Errors.Add(errLine.Data.Substring(0, Math.Min(maxErrorLength, errLine.Data.Length))); + } + } + } + + class MemoryChecker + { + //private System.Diagnostics.Process process; + private long maxMem; + private Process process; + + public long MaxMem + { + get { return maxMem; } + set { maxMem = value; } + } + + public MemoryChecker(System.Diagnostics.Process process) + { + this.process = process; + this.maxMem = 0; + } + + public void monitorMemory() + { + while (true) + { + try + { + process.Refresh(); + if (process.HasExited) + return; + long mem = process.PrivateMemorySize64; + MaxMem = Math.Max(MaxMem, mem); + //Console.WriteLine(string.Format("Process used {0} bytes", MaxMem)); + Thread.Sleep(1000); + } + catch + { + return; + } + } + } + } + + static void LogTestPlan(string summaryFileName, string testFileName, int randomSeed, bool buggify, bool testDeterminism, string uid, string oldBinary="") + { + var xout = new XElement("TestPlan", + new XAttribute("TestUID", uid), + new XAttribute("RandomSeed", randomSeed), + new XAttribute("TestFile", testFileName), + new XAttribute("BuggifyEnabled", buggify ? "1" : "0"), + new XAttribute("DeterminismCheck", testDeterminism ? "1" : "0"), + new XAttribute("OldBinary", Path.GetFileName(oldBinary))); + AppendToSummary(summaryFileName, xout); + } + + // Parses the valgrind XML file and returns a list of "what" tags for each error. + // All errors for which the "kind" tag starts with "Leak" are ignored + static string[] ParseValgrindOutput(string valgrindOutputFileName, bool traceToStdout) + { + if (!traceToStdout) + { + Console.WriteLine("Reading vXML file: " + valgrindOutputFileName); + } + + ISet whats = new HashSet(); + XElement xdoc = XDocument.Load(valgrindOutputFileName).Element("valgrindoutput"); + foreach(var elem in xdoc.Elements()) { + if (elem.Name != "error") + continue; + string kind = elem.Element("kind").Value; + if(kind.StartsWith("Leak")) + continue; + whats.Add(elem.Element("what").Value); + } + return whats.ToArray(); + } + + delegate IEnumerable parseDelegate(System.IO.Stream stream, string file, + bool keepOriginalElement = false, double startTime = -1, double endTime = Double.MaxValue, + double samplingFactor = 1.0); + + static int Summarize(string[] traceFiles, string summaryFileName, + string errorFileName, bool? killed, List outputErrors, int? exitCode, long? peakMemory, + string uid, string valgrindOutputFileName, int expectedUnseed, out int unseed, out bool retryableError, bool logOnRetryableError, + bool willRestart = false, bool restarted = false, string oldBinaryName = "", bool traceToStdout = false, string externalError = "") + { + unseed = -1; + retryableError = false; + List errorList = new List(); + var xout = new XElement("Test"); + if (uid != null) + xout.Add(new XAttribute("TestUID", uid)); + bool ok = false; + string testFile = "Unknown"; + int testsPassed = 0, testCount = -1, warnings = 0, errors = 0; + bool testBeginFound = false, testEndFound = false, error = false; + string firstRetryableError = ""; + int stderrSeverity = (int)Magnesium.Severity.SevError; + + Dictionary, Magnesium.Severity> severityMap = new Dictionary, Magnesium.Severity>(); + Dictionary, bool> codeCoverage = new Dictionary, bool>(); + + foreach (var traceFileName in traceFiles) + { + if(!traceToStdout) { + Console.WriteLine("Summarizing {0}", traceFileName); + } + using (var traceFile = System.IO.File.Open(traceFileName, + System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite | System.IO.FileShare.Delete)) + { + try + { + parseDelegate parse; + if (traceFileName.EndsWith(".json")) + parse = Magnesium.JsonParser.Parse; + else + parse = Magnesium.XmlParser.Parse; + foreach (var ev in parse(traceFile, traceFileName)) + { + Magnesium.Severity newSeverity; + if (severityMap.TryGetValue(new KeyValuePair(ev.Type, ev.Severity), out newSeverity)) + ev.Severity = newSeverity; + if (ev.Severity >= Magnesium.Severity.SevWarnAlways && ev.DDetails.ContainsKey("ErrorIsInjectedFault")) + ev.Severity = Magnesium.Severity.SevWarn; + + if (ev.Type == "ProgramStart" && !testBeginFound + // Just in case the first ProgramStart seen is a Simulated one, ignore it + && (!ev.DDetails.ContainsKey("Simulated") || ev.Details.Simulated != "1")) + { + xout.Add( + new XAttribute("RandomSeed", ev.Details.RandomSeed), + new XAttribute("SourceVersion", ev.Details.SourceVersion), + new XAttribute("Time", ev.Details.ActualTime), + new XAttribute("BuggifyEnabled", ev.Details.BuggifyEnabled), + new XAttribute("DeterminismCheck", expectedUnseed != -1 ? "1" : "0"), + new XAttribute("OldBinary", Path.GetFileName(oldBinaryName))); + testBeginFound = true; + } + if (ev.Type == "Simulation") + { + xout.Add( + new XAttribute("TestFile", ev.Details.TestFile)); + testFile = ev.Details.TestFile.Substring(ev.Details.TestFile.IndexOf("tests")); + } + if (ev.Type == "ActualRun") + { + xout.Add( + new XAttribute("TestFile", ev.Details.RunID)); + } + if (ev.Type == "ElapsedTime" && !testEndFound) + { + testEndFound = true; + unseed = int.Parse(ev.Details.RandomUnseed); + if (expectedUnseed != -1 && expectedUnseed != unseed) + { + Magnesium.Severity severity; + if (!severityMap.TryGetValue(new KeyValuePair("UnseedMismatch", Magnesium.Severity.SevError), out severity)) + severity = Magnesium.Severity.SevError; + + if (severity >= Magnesium.Severity.SevWarnAlways) + { + xout.Add(new XElement("UnseedMismatch", + new XAttribute("Unseed", unseed), + new XAttribute("ExpectedUnseed", expectedUnseed), + new XAttribute("Severity", (int)severity))); + if ( severity == Magnesium.Severity.SevError ) { + error = true; + errorList.Add("UnseedMismatch"); + } + } + } + xout.Add( + new XAttribute("SimElapsedTime", ev.Details.SimTime), + new XAttribute("RealElapsedTime", ev.Details.RealTime), + new XAttribute("RandomUnseed", ev.Details.RandomUnseed)); + } + if (ev.Severity == Magnesium.Severity.SevWarnAlways) + { + if (warnings < maxWarnings) + { + xout.Add(new XElement(ev.Type, + new XAttribute("Severity", (int)ev.Severity), + ev.DDetails + //.Where(kv => true) + .Select(kv => new XAttribute(kv.Key, kv.Value)))); + } + warnings++; + } + if (ev.Severity >= Magnesium.Severity.SevError) + { + string errorString = ev.FormatTestError(true); + if (errorString.Contains("platform_error")) + { + if (!retryableError) + { + firstRetryableError = errorString; + } + retryableError = true; + } + if (errors < maxWarnings) + { + xout.Add(new XElement(ev.Type, + new XAttribute("Severity", (int)ev.Severity), + ev.DDetails + //.Where(kv => true) + .Select(kv => new XAttribute(kv.Key, kv.Value)))); + errorList.Add(errorString); + } + errors++; + error = true; + } + if (ev.Type == "CodeCoverage" && !willRestart) + { + bool covered = true; + if(ev.DDetails.ContainsKey("Covered")) + { + covered = int.Parse(ev.Details.Covered) != 0; + } + + var key = new Tuple(ev.Details.File, ev.Details.Line); + if (covered || !codeCoverage.ContainsKey(key)) + { + codeCoverage[key] = covered; + } + } + if (ev.Type == "FaultInjected" || (ev.Type == "BuggifySection" && ev.Details.Activated == "1")) + { + xout.Add(new XElement(ev.Type, new XAttribute("File", ev.Details.File), new XAttribute("Line", ev.Details.Line))); + } + if (ev.Type == "TestsExpectedToPass") + testCount = int.Parse(ev.Details.Count); + if (ev.Type == "TestResults" && ev.Details.Passed == "1") + testsPassed++; + if (ev.Type == "RemapEventSeverity") + severityMap[new KeyValuePair(ev.Details.TargetEvent, (Magnesium.Severity)int.Parse(ev.Details.OriginalSeverity))] = (Magnesium.Severity)int.Parse(ev.Details.NewSeverity); + if (ev.Type == "StderrSeverity") + stderrSeverity = int.Parse(ev.Details.NewSeverity); + } + + } + catch (Exception e) + { + if (!traceToStdout) + { + Console.WriteLine("Error summarizing {0}: {1}", traceFileName, e); + } + + error = true; + xout.Add(new XElement("SummarizationError", + new XAttribute("Severity", (int)Magnesium.Severity.SevError), + new XAttribute("ErrorMessage", e.Message))); + errorList.Add("SummarizationError " + e.Message); + break; + } + } + } + + if (externalError.Length > 0) { + xout.Add(new XElement(externalError, new XAttribute("Severity", (int)Magnesium.Severity.SevError))); + } + + foreach(var kv in codeCoverage) + { + var element = new XElement("CodeCoverage", new XAttribute("File", kv.Key.Item1), new XAttribute("Line", kv.Key.Item2)); + if(!kv.Value) + { + element.Add(new XAttribute("Covered", "0")); + } + + xout.Add(element); + } + + if (warnings > maxWarnings) + { + //error = true; + xout.Add(new XElement("WarningLimitExceeded", + new XAttribute("Severity", (int)Magnesium.Severity.SevWarnAlways), + new XAttribute("WarningCount", warnings))); + } + if (errors > maxWarnings) + { + error = true; + xout.Add(new XElement("ErrorLimitExceeded", + new XAttribute("Severity", (int)Magnesium.Severity.SevError), + new XAttribute("ErrorCount", errors))); + errorList.Add("ErrorLimitExceeded"); + } + if (killed == true) + { + if (!retryableError) + { + firstRetryableError = "ExternalTimeout"; + } + + retryableError = true; + error = true; + xout.Add(new XElement("ExternalTimeout", new XAttribute("Severity", (int)Magnesium.Severity.SevError))); + } + if (outputErrors != null) + { + int stderrBytes = 0; + foreach (string err in outputErrors) + { + if (stderrSeverity == (int)Magnesium.Severity.SevError) + { + error = true; + } + + int remainingBytes = maxStderrBytes - stderrBytes; + if (remainingBytes > 0) + { + string outErr = (err.Length > remainingBytes) ? err.Substring(remainingBytes) + "..." : err; + + xout.Add(new XElement("StdErrOutput", + new XAttribute("Severity", stderrSeverity), + new XAttribute("Output", outErr))); + } + + stderrBytes += err.Length; + } + + if (stderrBytes > maxStderrBytes) + { + xout.Add(new XElement("StdErrOutputTruncated", + new XAttribute("Severity", stderrSeverity), + new XAttribute("BytesRemaining", stderrBytes - maxStderrBytes))); + } + } + if (exitCode.HasValue && exitCode != 0) + { + error = true; + xout.Add(new XElement("ExitCode", new XAttribute("Code", exitCode.Value), new XAttribute("Severity", (int)Magnesium.Severity.SevError))); + errorList.Add(string.Format("ExitCode 0x{0:x}", exitCode.Value)); + } + if (!testEndFound && !willRestart) + { + // We didn't terminate the test, but it didn't reach the end? + error = true; + xout.Add(new XElement("TestUnexpectedlyNotFinished"), new XAttribute("Severity", (int)Magnesium.Severity.SevError)); + errorList.Add("TestUnexpectedlyNotFinished"); + } + ok = testsPassed == testCount && testsPassed > 0 && !error; + xout.Add( + new XAttribute("Passed", testsPassed), + new XAttribute("Failed", testCount - testsPassed)); + if (peakMemory.HasValue) + xout.Add(new XAttribute("PeakMemory", peakMemory.Value)); + + if (valgrindOutputFileName != null && valgrindOutputFileName.Length > 0) + { + try + { + // If there are any errors reported "ok" will be set to false + var whats = ParseValgrindOutput(valgrindOutputFileName, traceToStdout); + foreach (var what in whats) + { + xout.Add(new XElement("ValgrindError", + new XAttribute("Severity", (int)Magnesium.Severity.SevError), + new XAttribute("What", what))); + ok = false; + error = true; + } + } + catch (Exception e) + { + if (!traceToStdout) + { + Console.WriteLine(e); + } + + error = true; + xout.Add(new XElement("ValgrindParseError", + new XAttribute("Severity", (int)Magnesium.Severity.SevError), + new XAttribute("ErrorMessage", e.Message))); + errorList.Add("Failed to parse valgrind output: " + e.Message); + } + } + + if (retryableError && !logOnRetryableError) + { + xout = new XElement("Test", xout.Attributes()); + xout.Add(new XElement("RetryingError", + new XAttribute("Severity", (int)Magnesium.Severity.SevWarnAlways), + new XAttribute("What", firstRetryableError))); + } + else + { + xout.Add(new XAttribute("OK", ok || willRestart)); + } + + AppendToSummary(summaryFileName, xout, traceToStdout); + + if ((!retryableError || logOnRetryableError) && errorFileName != null && (errorList.Count > 0 || !ok) && !willRestart) + { + var errorText = string.Join("\n\t", errorList + .Concat((!ok && errorList.Count == 0) ? new string[] { "Failed with no explanation" } : new string[] { }) + .Distinct() + .ToArray()); + AppendToFile(errorFileName, string.Format("Test {0} failed with:\n\t{1}\n", testFile, errorText)); + } + if (!error) { + return 0; + } + else { + return 102; + } + } + + static int ExtractErrors(string summaryFileName, string errorSummaryFileName) + { + Console.WriteLine("Extracting from {0}", summaryFileName); + List xout = new List(); + var coverage = new Dictionary,Tuple>(); + using (var traceFile = System.IO.File.Open(summaryFileName, + System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite | System.IO.FileShare.Delete)) + { + try + { + var events = Magnesium.XmlParser.Parse(traceFile, summaryFileName, true); + events = Magnesium.TraceLogUtil.IdentifyFailedTestPlans(events); + foreach (var ev in events) + { + Magnesium.Test t = ev as Magnesium.Test; + if (t != null) + { + foreach (var tev in t.events) + { + if (tev.Type == "CodeCoverage" || tev.Type == "FaultInjected") + { + var keyTuple = Tuple.Create(tev.Details.File, int.Parse(tev.Details.Line)); + if (coverage.ContainsKey(keyTuple)) + { + var old = coverage[keyTuple]; + coverage[keyTuple] = Tuple.Create(old.Item1 + 1, old.Item2 + (t.ok ? 0 : 1)); + } + else + { + coverage[keyTuple] = Tuple.Create(1, (t.ok ? 0 : 1)); + } + } + } + if (!t.ok) + { + if (t.original != null) + { + foreach (var c in t.original.Elements("CodeCoverage")) + c.Remove(); + foreach (var f in t.original.Elements("FaultInjected")) + f.Remove(); + + xout.Add(t.original); + } + else + { + xout.Add(new XElement("Test", + new XAttribute("Type", t.Type), + new XAttribute("Time", t.Time), + new XAttribute("Machine", t.Machine), + new XAttribute("TestUID", t.TestUID), + new XAttribute("TestFile", t.TestFile), + new XAttribute("randomSeed", t.randomSeed), + new XAttribute("Buggify", t.Buggify), + new XAttribute("DeterminismCheck", t.DeterminismCheck), + new XAttribute("OldBinary", t.OldBinary), + new XElement("TestNotSummarized", + new XAttribute("Severity", (int)Magnesium.Severity.SevWarnAlways) + ) + ) + ); + } + } + } + } + } + catch (Exception e) + { + Console.WriteLine("Error summarizing {0}: {1}", summaryFileName, e); + xout.Add(new XElement("SummarizationError", + new XAttribute("Severity", (int)Magnesium.Severity.SevError), + new XAttribute("ErrorMessage", e.Message))); + //failedTests.Add("SummarizationError " + e.Message); + } + } + + foreach (var e in coverage) + { + xout.Add(new XElement("Event", + new XAttribute("Type", "CoverageSummary"), + new XAttribute("Time", 0), + new XAttribute("Machine", ""), + new XAttribute("File", e.Key.Item1), + new XAttribute("Line", e.Key.Item2), + new XAttribute("Covered", e.Value.Item1), + new XAttribute("Failed", e.Value.Item2))); + } + + AppendToErrorSummary(errorSummaryFileName, xout); + return 0; + } + + private static void AppendToErrorSummary(string summaryFileName, List elements) + { + if (summaryFileName == null) + return; + takeLock(summaryFileName); + try { + foreach (XElement e in elements) + AppendToSummary(summaryFileName, e, false, false); + } + finally + { + releaseLock(summaryFileName); + } + } + + private static void AppendToSummary(string summaryFileName, XElement xout, bool traceToStdout = false, bool shouldLock = true) + { + bool useXml = true; + if (summaryFileName != null && summaryFileName.EndsWith(".json")) { + useXml = false; + } + + if (traceToStdout) + { + if (useXml) { + using (var wr = System.Xml.XmlWriter.Create(Console.OpenStandardOutput(), new System.Xml.XmlWriterSettings() { OmitXmlDeclaration = true, Encoding = new System.Text.UTF8Encoding(false) })) + xout.WriteTo(wr); + } else { + using (var wr = System.Runtime.Serialization.Json.JsonReaderWriterFactory.CreateJsonWriter(Console.OpenStandardOutput())) + xout.WriteTo(wr); + } + Console.WriteLine(); + return; + } + + if (summaryFileName == null) + return; + if (shouldLock) + takeLock(summaryFileName); + try + { + using (var f = System.IO.File.Open(summaryFileName, System.IO.FileMode.Append, System.IO.FileAccess.Write)) + { + if (f.Length == 0) + { + byte[] bytes = Encoding.UTF8.GetBytes(""); + f.Write(bytes, 0, bytes.Length); + } + if (useXml) { + using (var wr = System.Xml.XmlWriter.Create(f, new System.Xml.XmlWriterSettings() { OmitXmlDeclaration = true })) + xout.Save(wr); + } else { + using (var wr = System.Runtime.Serialization.Json.JsonReaderWriterFactory.CreateJsonWriter(f)) + xout.WriteTo(wr); + } + var endl = Encoding.UTF8.GetBytes(Environment.NewLine); + f.Write(endl, 0, endl.Length); + } + } + finally + { + if (shouldLock) + releaseLock(summaryFileName); + } + } + + private static void AppendXmlMessageToSummary(string summaryFileName, XElement xout, bool traceToStdout = false, string testFile = null, + int? seed = null, bool? buggify = null, bool? determinismCheck = null, string oldBinaryName = null) + { + var test = new XElement("Test", xout); + if(testFile != null) + test.Add(new XAttribute("TestFile", testFile)); + if(seed != null) + test.Add(new XAttribute("RandomSeed", seed)); + if(buggify != null) + test.Add(new XAttribute("BuggifyEnabled", buggify.Value ? "1" : "0")); + if(determinismCheck != null) + test.Add(new XAttribute("DeterminismCheck", determinismCheck.Value ? "1" : "0")); + if(oldBinaryName != null) + test.Add(new XAttribute("OldBinary", Path.GetFileName(oldBinaryName))); + + test.Add(xout); + AppendToSummary(summaryFileName, test, traceToStdout); + } + + private static void AppendToFile(string fileName, string content) + { + if (fileName == null) + return; + takeLock(fileName); + try + { + using (var f = System.IO.File.Open(fileName, System.IO.FileMode.Append, System.IO.FileAccess.Write)) + { + var endl = Encoding.UTF8.GetBytes(content); + f.Write(endl, 0, endl.Length); + } + } + finally + { + releaseLock(fileName); + } + } + + static int Remote(string queue, string fdbRoot, double addHours, int testCount, string testTypes, string userScope) + { + queue = Path.GetFullPath(queue); + fdbRoot = Path.GetFullPath(fdbRoot); + var output = Path.Combine(queue, "archive"); + var now = DateTime.Now; + string date = string.Format("{0}-{1:00}-{2:00}-{3:00}-{4:00}", + now.Year, now.Month, now.Day, now.Hour, now.Minute); + + if (!Directory.Exists(queue)) + Directory.CreateDirectory(queue); + + int maxCount = 0; + foreach (var f in Directory.GetFiles(queue, String.Format("{0}-*.xml", date))) + { + var count = Int32.Parse(f.Split('-')[5]); + maxCount = Math.Max(maxCount, count); + } + maxCount++; + + var suffix = String.Format("{0}-{1}-{2}", Environment.UserName, userScope, OS_NAME); + foreach (var f in Directory.GetFiles(queue, "*" + suffix + ".xml")) + File.Delete(f); + + string label = String.Format("{0}-{1}-{2}", date, maxCount, suffix); + + var testStaging = Path.Combine(output, label); + Directory.CreateDirectory(testStaging); + File.Create(Path.Combine(testStaging, "errors.txt")); + + var release = Path.Combine(fdbRoot, "bin"); + if(!IsRunningOnMono()) + release = Path.Combine(release, "Release"); + + File.Copy(Path.Combine(release, BINARY), Path.Combine(testStaging, BINARY)); + File.Copy(Path.Combine(fdbRoot, "tls-plugins", PLUGIN), Path.Combine(testStaging, PLUGIN)); + + if (IsRunningOnMono()) + File.Copy(Path.Combine(release, BINARY + ".debug"), Path.Combine(testStaging, BINARY + ".debug")); + + //using (var f = System.IO.File.Open( + // Path.Combine(testStaging, "summary.xml"), + // System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite, System.IO.FileShare.Delete)) + //{ + // byte[] bytes = Encoding.UTF8.GetBytes(""); + // f.Write(bytes, 0, bytes.Length); + //} + + var coverageFiles = Directory.GetFiles(release, "coverage*.xml"); + foreach (var coverage in coverageFiles) + File.Copy(coverage, Path.Combine(testStaging, Path.GetFileName(coverage))); + + Directory.CreateDirectory(Path.Combine(testStaging, "tests")); + + if (testTypes == "fast" || testTypes == "all") + CopyAll(new DirectoryInfo(Path.Combine(fdbRoot, "tests", "fast")), new DirectoryInfo(Path.Combine(testStaging, "tests", "fast"))); + if (testTypes == "restarting" || testTypes == "all") + { + CopyAll(new DirectoryInfo(Path.Combine(fdbRoot, "tests", "restarting")), new DirectoryInfo(Path.Combine(testStaging, "tests", "restarting"))); + //CopyAll(new DirectoryInfo(Path.Combine(fdbRoot, "tests", "oldBinaries")), new DirectoryInfo(Path.Combine(testStaging, "tests", "oldBinaries"))); + } + if (testTypes == "all") + { + CopyAll(new DirectoryInfo(Path.Combine(fdbRoot, "tests", "slow")), new DirectoryInfo(Path.Combine(testStaging, "tests", "slow"))); + CopyAll(new DirectoryInfo(Path.Combine(fdbRoot, "tests", "rare")), new DirectoryInfo(Path.Combine(testStaging, "tests", "rare"))); + } + + + if (testTypes != "fast" && testTypes != "all" && testTypes != "restarting") + { + FileInfo file = new FileInfo(testTypes); + Directory.CreateDirectory(Path.Combine(testStaging, "tests", file.Directory.Name)); + file.CopyTo(Path.Combine(testStaging, "tests", file.Directory.Name, file.Name), true); + } + + var e = + new XElement("TestDefinition", + new XElement("Duration", + new XAttribute("Hours", addHours)), + new XElement("TestCount", testCount)); + new XDocument(e).Save(Path.Combine(queue, label + ".xml")); + File.Copy(Path.Combine(queue, label + ".xml"), Path.Combine(testStaging, label + ".xml")); + + var summaryFile = Path.Combine(testStaging, "summary.xml"); + Console.WriteLine(label); + + if (!IsRunningOnMono()) + { + using (var mProcess = new System.Diagnostics.Process()) + { + mProcess.StartInfo.UseShellExecute = false; + mProcess.StartInfo.RedirectStandardOutput = true; + mProcess.StartInfo.FileName = "Magnesium.exe"; + mProcess.StartInfo.Arguments = "Summary " + summaryFile; + mProcess.Start(); + } + } + + return 0; + } + + public static void CopyAll(DirectoryInfo source, DirectoryInfo target, Func predicate = null) + { + // Check if the target directory exists, if not, create it. + if (!Directory.Exists(target.FullName)) + Directory.CreateDirectory(target.FullName); + + // Copy each file into it's new directory. + foreach (FileInfo fi in source.GetFiles()) + if (predicate == null || predicate(fi)) + fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true); + + // Copy each subdirectory using recursion. + foreach (DirectoryInfo diSourceSubDir in source.GetDirectories()) + CopyAll(diSourceSubDir, target.CreateSubdirectory(diSourceSubDir.Name), predicate); + } + + static int Auto(string queueDirectory, string runDir, string shareDir, string cacheDir, bool useValgrind, int maxTries) + { + try + { + queueDirectory = Path.GetFullPath(queueDirectory); + while (true) + { + Test test = getTest(queueDirectory, runDir, shareDir, cacheDir); + Console.WriteLine("Running test {0}", test.label); + + // run test + test.run(useValgrind, maxTries); + } + } + catch (Exception e) + { + Console.WriteLine("Error: {0}", e); + return 100; + } + } + + class Test + { + public DateTime? testEnd; + public string queueDirectory; + public string label; + public string runDir; + public string inputDir; + public string outputDir; + public string oldBinaryDir; + public int testCount; + + public Test(string queueDirectory, string label, string runDir, string shareDir, string cacheDir) + { + this.queueDirectory = queueDirectory; + this.label = label; + this.runDir = runDir; + var specFile = Path.Combine(queueDirectory, label + ".xml"); + var testDef = XDocument.Load(specFile).Element("TestDefinition"); + var testDuration = double.Parse(testDef.Element("Duration").Attribute("Hours").Value); + var testBegin = File.GetCreationTime(specFile); + testEnd = testDuration < 0 ? (DateTime?)null : testBegin.AddHours(testDuration); + + testCount = int.Parse(testDef.Element("TestCount").Value); + outputDir = Path.Combine(queueDirectory, "archive", label); + Directory.CreateDirectory(outputDir); + + string oldBinarySourceDir = Path.Combine(shareDir, "oldBinaries"); + + if (cacheDir != null) + { + inputDir = Path.Combine(cacheDir, "archive", label); + Directory.CreateDirectory(Path.Combine(cacheDir, "archive")); + + if (!Directory.Exists(inputDir)) + { + takeLock(inputDir); + if (!Directory.Exists(inputDir)) + { + string tmpDir = Path.Combine(cacheDir, "archive.part", label + "." + Path.GetRandomFileName() + ".part"); + Directory.CreateDirectory(tmpDir); + CopyAll(new DirectoryInfo(outputDir), new DirectoryInfo(tmpDir), (FileInfo file) => + file.Name != "fdbserver.debug" && + !file.Name.StartsWith("summary-") && + file.Name != "errors.txt" + ); + Directory.Move(tmpDir, inputDir); + } + releaseLock(inputDir); + } + + oldBinaryDir = Path.Combine(cacheDir, "oldBinaries"); + + Directory.CreateDirectory(oldBinaryDir); + foreach (FileInfo fi in new DirectoryInfo(oldBinarySourceDir).GetFiles()) + { + var targetName = Path.Combine(oldBinaryDir, fi.Name); + if (!File.Exists(targetName) || fi.LastWriteTimeUtc != File.GetLastWriteTimeUtc(targetName)) + { + fi.CopyTo(targetName, true); + File.SetLastWriteTimeUtc(targetName, fi.LastWriteTimeUtc); + } + } + + foreach (FileInfo fi in new DirectoryInfo(oldBinaryDir).GetFiles()) + { + var targetName = Path.Combine(oldBinarySourceDir, fi.Name); + if (!File.Exists(targetName)) + fi.Delete(); + } + } + else + { + inputDir = outputDir; + oldBinaryDir = oldBinarySourceDir; + } + //Console.WriteLine("TestEnd {0}, now {1}, duration {2}, done {3}", testEnd, DateTime.Now, testDuration, done()); + } + public bool done() + { + return testEnd.HasValue && System.DateTime.Now > testEnd.Value; + } + public void run(bool useValgrind, int maxTries) + { + Run(Path.Combine(inputDir, BINARY), + Path.Combine(inputDir, PLUGIN), + Path.Combine(inputDir, "tests"), + Path.Combine(outputDir, "summary-" + Environment.MachineName + ".xml"), + Path.Combine(outputDir, "errors.txt"), + runDir, + oldBinaryDir, + useValgrind, + maxTries); + } + + public void finalize() + { + try + { + Console.WriteLine("Deleting: {0}", Path.Combine(queueDirectory, label + ".xml")); + File.Delete(Path.Combine(queueDirectory, label + ".xml")); + } + catch (Exception e) + { + Console.WriteLine("Error deleting queue folder: {0}", e.Message); + } + } + } + + static Test getTest(string parent, string runDir, string shareDir, string cacheDir) + { + while (true) + { + var testFiles = Directory.GetFiles(parent, String.Format("*{0}.xml", OS_NAME)); + // (if no tests, wait, try again) + if (testFiles.Length != 0) + { + /*try + {*/ + var testFile = testFiles[random.Next(testFiles.Length)]; + var test = new Test(parent, Path.GetFileNameWithoutExtension(testFile), runDir, shareDir, cacheDir); + if ((test.testCount < 0 || UpdateTestTotals(Path.Combine(test.outputDir, "testCount"), test.testCount)) && !test.done()) + return test; + else + test.finalize(); + /*} + catch (Exception) + { + // retry opening a test + }*/ + } + System.Threading.Thread.Sleep(1000); + } + } + + static void takeLock(string targetFile) + { + // Console.WriteLine("Attempting to take lock on {0}", targetFile); + string lockFile = targetFile + ".lock"; + while (true) + { + try + { + using (var f = System.IO.File.Open(lockFile, System.IO.FileMode.CreateNew)) + { + return; + } + } + catch (System.IO.IOException e) + { + Console.WriteLine("Waiting for file lock: {0}", e.Message); + System.Threading.Thread.Sleep(250); + } + } + } + + static void releaseLock(string targetFile) + { + File.Delete(targetFile + ".lock"); + } + + private static bool UpdateTestTotals(string countFileName, int desiredTestCount) + { + takeLock(countFileName); + try + { + using (var f = System.IO.File.Open(countFileName, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite)) + { + int currentCount = 0; + byte[] b; + + if (f.Length != 0) + { + b = new byte[f.Length]; + f.Read(b, 0, b.Length); + currentCount = int.Parse(Encoding.UTF8.GetString(b)); + } + + if (currentCount >= desiredTestCount) + return false; + + f.SetLength(0); + b = Encoding.UTF8.GetBytes(String.Format("{0}", currentCount + 1)); + f.Write(b, 0, b.Length); + + return true; + } + } + finally + { + releaseLock(countFileName); + } + } + + private static int VersionInfo() + { + Console.WriteLine("Version: 1.02"); + + Console.WriteLine("FDB Project Ver: " + "${CMAKE_PROJECT_VERSION}"); + Console.WriteLine("FDB Version: " + "${CMAKE_PROJECT_VERSION_MAJOR}" + "." + "${CMAKE_PROJECT_VERSION_MINOR}"); + Console.WriteLine("Source Version: " + "${CURRENT_GIT_VERSION}"); + return 1; + } + + private static int UsageMessage() + { + Console.WriteLine("Usage:"); + Console.WriteLine(" TestHarness run [temp/runDir] [fdbserver[.exe]] [TLSplugin] [testfolder] [summary.xml] "); + Console.WriteLine(" TestHarness summarize [trace.xml] [summary.xml] "); + Console.WriteLine(" TestHarness replay [temp/runDir] [fdbserver[.exe]] [TLSplugin] [summary-in.xml] [summary-out.xml]"); + Console.WriteLine(" TestHarness auto [temp/runDir] [directory] [shareDir] "); + Console.WriteLine(" TestHarness remote [queue folder] [root foundation folder] [duration in hours] [amount of tests] [all/fast/] [scope]"); + Console.WriteLine(" TestHarness extract-errors [summary-file] [error-summary-file]"); + Console.WriteLine(" TestHarness joshua-run "); + VersionInfo(); + return 1; + } + } +} diff --git a/contrib/TestHarness/Properties/AssemblyInfo.cs b/contrib/TestHarness/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..aa153aca11 --- /dev/null +++ b/contrib/TestHarness/Properties/AssemblyInfo.cs @@ -0,0 +1,56 @@ +/* + * AssemblyInfo.cs + * + * This source file is part of the FoundationDB open source project + * + * Copyright 2013-2020 Apple Inc. and the FoundationDB project authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TestHarness")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Apple Inc.")] +[assembly: AssemblyProduct("TestHarness")] +[assembly: AssemblyCopyright("Copyright © Apple Inc. 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("92d9df90-6d48-4558-bb25-d878ea69b4bd")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/contrib/TestHarness/TestHarness.csproj b/contrib/TestHarness/TestHarness.csproj new file mode 100644 index 0000000000..73937e67bb --- /dev/null +++ b/contrib/TestHarness/TestHarness.csproj @@ -0,0 +1,62 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {6A6B7D20-EB7E-4768-BDE2-21FE0C32F17A} + Exe + Properties + TestHarness + TestHarness + v4.0 + Client + 512 + $(SolutionDir)bin\$(Configuration)\ + $(SystemDrive)\temp\msvcfdb\$(Configuration)\TestHarness\ + + + true + DEBUG;TRACE + full + AnyCPU + prompt + true + + + TRACE + true + pdbonly + AnyCPU + prompt + true + + + + + + + + + + + + + + + + + {1FA45F13-1015-403C-9115-CEFFDD522B20} + TraceLogHelper + + + + + diff --git a/contrib/TraceLogHelper/CMakeLists.txt b/contrib/TraceLogHelper/CMakeLists.txt new file mode 100644 index 0000000000..f60cda56a4 --- /dev/null +++ b/contrib/TraceLogHelper/CMakeLists.txt @@ -0,0 +1,20 @@ +set(SRCS + Event.cs + JsonParser.cs + Properties/AssemblyInfo.cs + TraceLogUtil.cs + XmlParser.cs) + +set(TRACE_LOG_HELPER_REFERENCES + "-r:System,System.Core,System.Runtime.Serialization,System.Xml.Linq,System.Data.DataSetExtensions,Microsoft.CSharp,System.Data,System.Xml") + + +set(out_file ${CMAKE_BINARY_DIR}/packages/bin/TraceLogHelper.dll) + +add_custom_command(OUTPUT ${out_file} + COMMAND ${MCS_EXECUTABLE} ARGS ${TRACE_LOG_HELPER_REFERENCES} ${SRCS} "-target:library" "-out:${out_file}" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS ${SRCS} + COMMENT "Compile TraceLogHelper" VERBATIM) +add_custom_target(TraceLogHelper DEPENDS ${out_file}) +set(TraceLogHelperDll "${out_file}" PARENT_SCOPE) diff --git a/contrib/TraceLogHelper/Event.cs b/contrib/TraceLogHelper/Event.cs new file mode 100644 index 0000000000..66c9d1ad67 --- /dev/null +++ b/contrib/TraceLogHelper/Event.cs @@ -0,0 +1,263 @@ +/* + * Event.cs + * + * This source file is part of the FoundationDB open source project + * + * Copyright 2013-2020 Apple Inc. and the FoundationDB project authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Dynamic; + +namespace Magnesium +{ + public enum Severity + { + SevDebug=5, + SevInfo=10, + SevWarn=20, + SevWarnAlways=30, + SevError=40, + }; + + public class Event + { + public double Time { get; set; } + public Severity Severity { get; set; } + public string Type { get; set; } + public string Machine { get; set; } + public string ID { get; set; } + public string WorkerDesc { get { return Machine + " " + ID; } } + public string TraceFile { get; set; } + public System.Xml.Linq.XElement original { get; set; } + static MyExpando emptyDetails = new MyExpando(new Dictionary()); + MyExpando _Details = emptyDetails; + public dynamic Details { get{ return _Details; } } + public IDictionary DDetails { get { return _Details._members; } + set { + _Details = new MyExpando(value); + //foreach(var v in value) + // _Details.SetMember(v.Key, v.Value); + } + } + + public Event ShallowCopy() + { + return (Event)MemberwiseClone(); + } + + class MyExpando : DynamicObject + { + public MyExpando(IDictionary init) + { + _members = init; + } + + public IDictionary _members = + new Dictionary(); + + /// + /// When a new property is set, + /// add the property name and value to the dictionary + /// + public override bool TrySetMember + (SetMemberBinder binder, Object value) + { + if (!_members.ContainsKey(binder.Name)) + _members.Add(binder.Name, value); + else + _members[binder.Name] = value; + + return true; + } + + public bool SetMember(string name, Object value) + { + if (!_members.ContainsKey(name)) + _members.Add(name, value); + else + _members[name] = value; + + return true; + } + + /// + /// When user accesses something, return the value if we have it + /// + public override bool TryGetMember + (GetMemberBinder binder, out Object result) + { + if (_members.ContainsKey(binder.Name)) + { + result = _members[binder.Name]; + return true; + } + else + { + return base.TryGetMember(binder, out result); + } + } + + /// + /// If a property value is a delegate, invoke it + /// + public override bool TryInvokeMember + (InvokeMemberBinder binder, Object[] args, out Object result) + { + if (_members.ContainsKey(binder.Name) + && _members[binder.Name] is Delegate) + { + result = (_members[binder.Name] as Delegate).DynamicInvoke(args); + return true; + } + else + { + return base.TryInvokeMember(binder, args, out result); + } + } + + + /// + /// Return all dynamic member names + /// + /// + public override IEnumerable GetDynamicMemberNames() + { + return _members.Keys; + } + } + + public string FormatTestError(bool includeDetails) + { + string s = Type; + if (Type == "InternalError") + s = string.Format("{0} {1} {2}", Type, Details.File, Details.Line); + else if (Type == "TestFailure") + s = string.Format("{0} {1}", Type, Details.Reason); + else if (Type == "ValgrindError") + s = string.Format("{0} {1}", Type, Details.What); + else if (Type == "ExitCode") + s = string.Format("{0} 0x{1:x}", Type, int.Parse(Details.Code)); + else if (Type == "StdErrOutput") + s = string.Format("{0}: {1}", Type, Details.Output); + else if (Type == "BTreeIntegrityCheck") + s = string.Format("{0}: {1}", Type, Details.ErrorDetail); + if (DDetails.ContainsKey("Error")) + s += " " + Details.Error; + if (DDetails.ContainsKey("WinErrorCode")) + s += " " + Details.WinErrorCode; + if (DDetails.ContainsKey("LinuxErrorCode")) + s += " " + Details.LinuxErrorCode; + if (DDetails.ContainsKey("Status")) + s += " Status=" + Details.Status; + if (DDetails.ContainsKey("In")) + s += " In " + Details.In; + if (DDetails.ContainsKey("SQLiteError")) + s += string.Format(" SQLiteError={0}({1})", Details.SQLiteError, Details.SQLiteErrorCode); + if (DDetails.ContainsKey("Details") && includeDetails) + s += ": " + Details.Details; + + return s; + } + + }; + + public class TestPlan : Event + { + public string TestUID; + public string TestFile; + public int randomSeed; + public bool Buggify; + public bool DeterminismCheck; + public string OldBinary; + + }; + + public class Test : TestPlan + { + public string SourceVersion; + public double SimElapsedTime; + public double RealElapsedTime; + public bool ok; + public int passed, failed; + public int randomUnseed; + public long peakMemUsage; + + public Event[] events; // Summarized events during the test + }; + + public struct AreaGraphPoint + { + public double X { get; set; } + public double Y { get; set; } + }; + + public struct LineGraphPoint + { + public double X { get; set; } + public double Y { get; set; } + public object Category { get; set; } + }; + + public class Interval + { + public double Begin { get; set; } + public double End { get; set; } + public string Category { get; set; } + public string Color { get; set; } + public string Detail { get; set; } + public object Object { get; set; } + }; + + public class MachineRole : Interval + { + public string Machine { get; set; } + public string Role { get; set; } + }; + + public class Location + { + public string Name; + public int Y; + }; + + //Specifies the type of LocationTime being used + public enum LocationTimeOp + { + //Designates a location in the code at a particular time + Normal = 0, + + //Designates that this LocationTime maps one event ID to another + MapId + }; + + //Struct which houses a location in the code and a time which that location was hit + //The ID signifies the particular pass through the code + //Some of these objects act as special markers used to connect one ID to another + public struct LocationTime + { + public int id; + public double Time; + public Location Loc; + + public LocationTimeOp locationTimeOp; + + //If locationTimeOp == MapId, then this will hold the id of the event that should come after the id specified in the id field + public int childId; + }; +} \ No newline at end of file diff --git a/contrib/TraceLogHelper/JsonParser.cs b/contrib/TraceLogHelper/JsonParser.cs new file mode 100644 index 0000000000..9d7272a37f --- /dev/null +++ b/contrib/TraceLogHelper/JsonParser.cs @@ -0,0 +1,93 @@ +/* + * JsonParser.cs + * + * This source file is part of the FoundationDB open source project + * + * Copyright 2013-2020 Apple Inc. and the FoundationDB project authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.Serialization.Json; +using System.Text; +using System.Xml; +using System.Xml.XPath; +using System.Xml.Linq; + +namespace Magnesium +{ + public static class JsonParser + { + static Random r = new Random(); + + public static IEnumerable Parse(System.IO.Stream stream, string file, + bool keepOriginalElement = false, double startTime = -1, double endTime = Double.MaxValue, + double samplingFactor = 1.0) + { + using (var reader = new System.IO.StreamReader(stream)) + { + string line; + while((line = reader.ReadLine()) != null) + { + XElement root = XElement.Load(JsonReaderWriterFactory.CreateJsonReader(new MemoryStream(Encoding.UTF8.GetBytes(line)), new XmlDictionaryReaderQuotas())); + Event ev = null; + try + { + ev = ParseEvent(root, file, keepOriginalElement, startTime, endTime, samplingFactor); + } + catch (Exception e) + { + throw new Exception(string.Format("Failed to parse JSON {0}", root), e); + } + if (ev != null) yield return ev; + } + } + } + + private static Event ParseEvent(XElement xEvent, string file, bool keepOriginalElement, double startTime, double endTime, double samplingFactor) + { + if (samplingFactor != 1.0 && r.NextDouble() > samplingFactor) + return null; + + XElement trackLatestElement = xEvent.XPathSelectElement("//TrackLatestType"); + bool rolledEvent = trackLatestElement != null && trackLatestElement.Value.Equals("Rolled"); + String timeElement = (rolledEvent) ? "OriginalTime" : "Time"; + double eventTime = double.Parse(xEvent.XPathSelectElement("//" + timeElement).Value); + + if (eventTime < startTime || eventTime > endTime) + return null; + + return new Event { + Severity = (Severity)int.Parse(xEvent.XPathSelectElement("//Severity").ValueOrDefault("40")), + Type = string.Intern(xEvent.XPathSelectElement("//Type").Value), + Time = eventTime, + Machine = string.Intern(xEvent.XPathSelectElement("//Machine").Value), + ID = string.Intern(xEvent.XPathSelectElement("//ID").ValueOrDefault("0")), + TraceFile = file, + DDetails = xEvent.Elements() + .Where(a=>a.Name != "Type" && a.Name != "Time" && a.Name != "Machine" && a.Name != "ID" && a.Name != "Severity" && (!rolledEvent || a.Name != "OriginalTime")) + .ToDictionary(a=>string.Intern(a.Name.LocalName), a=>(object)a.Value), + original = keepOriginalElement ? xEvent : null + }; + } + + private static string ValueOrDefault( this XElement attr, string def ) { + if (attr == null) return def; + else return attr.Value; + } + } +} diff --git a/contrib/TraceLogHelper/Properties/AssemblyInfo.cs b/contrib/TraceLogHelper/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..e467ef9b7a --- /dev/null +++ b/contrib/TraceLogHelper/Properties/AssemblyInfo.cs @@ -0,0 +1,56 @@ +/* + * AssemblyInfo.cs + * + * This source file is part of the FoundationDB open source project + * + * Copyright 2013-2020 Apple Inc. and the FoundationDB project authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TraceLogHelper")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Apple Inc.")] +[assembly: AssemblyProduct("TraceLogHelper")] +[assembly: AssemblyCopyright("Copyright © Apple Inc. 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ec8f2fdc-25fe-4958-b807-c30bd1da341b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/contrib/TraceLogHelper/TraceLogHelper.csproj b/contrib/TraceLogHelper/TraceLogHelper.csproj new file mode 100644 index 0000000000..084a44733d --- /dev/null +++ b/contrib/TraceLogHelper/TraceLogHelper.csproj @@ -0,0 +1,58 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {1FA45F13-1015-403C-9115-CEFFDD522B20} + Library + Properties + TraceLogHelper + TraceLogHelper + v4.0 + 512 + + + true + full + false + ..\bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/contrib/TraceLogHelper/TraceLogUtil.cs b/contrib/TraceLogHelper/TraceLogUtil.cs new file mode 100644 index 0000000000..4e8dc69f2b --- /dev/null +++ b/contrib/TraceLogHelper/TraceLogUtil.cs @@ -0,0 +1,79 @@ +/* + * TraceLogUtil.cs + * + * This source file is part of the FoundationDB open source project + * + * Copyright 2013-2020 Apple Inc. and the FoundationDB project authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Magnesium +{ + public static class TraceLogUtil + { + public static IEnumerable IdentifyFailedTestPlans(IEnumerable events) + { + var failedPlans = new Dictionary(); + foreach (var ev in events) + { + var tp = ev as TestPlan; + if (tp == null || tp.TestUID == "") + { + yield return ev; + continue; + } + var t = tp as Test; + if (t == null) + { + if (!failedPlans.ContainsKey(tp.TestUID + tp.TraceFile)) + { + failedPlans.Add(tp.TestUID + tp.TraceFile, tp); + } + } + else + { + failedPlans.Remove(tp.TestUID + tp.TraceFile); + if ((tp.TraceFile != null) && tp.TraceFile.EndsWith("-2.txt")) failedPlans.Remove(tp.TestUID + tp.TraceFile.Split('-')[0] + "-1.txt"); + yield return ev; + } + } + foreach (var p in failedPlans.Values) + yield return new Test + { + Type = "FailedTestPlan", + Time = p.Time, + Machine = p.Machine, + TestUID = p.TestUID, + TestFile = p.TestFile, + randomSeed = p.randomSeed, + Buggify = p.Buggify, + DeterminismCheck = p.DeterminismCheck, + OldBinary = p.OldBinary, + events = new Event[] { + new Event { + Severity = Severity.SevWarnAlways, + Type = "TestNotSummarized", + Time = p.Time, + Machine = p.Machine + } + } + }; + } + } +} diff --git a/contrib/TraceLogHelper/XmlParser.cs b/contrib/TraceLogHelper/XmlParser.cs new file mode 100644 index 0000000000..3728c58c3b --- /dev/null +++ b/contrib/TraceLogHelper/XmlParser.cs @@ -0,0 +1,194 @@ +/* + * XmlParser.cs + * + * This source file is part of the FoundationDB open source project + * + * Copyright 2013-2020 Apple Inc. and the FoundationDB project authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Xml; +using System.Xml.Linq; + +namespace Magnesium +{ + public static class XmlParser + { + static Random r = new Random(); + + public static IEnumerable Parse(System.IO.Stream stream, string file, + bool keepOriginalElement = false, double startTime = -1, double endTime = Double.MaxValue, + double samplingFactor = 1.0) + { + using (var reader = XmlReader.Create(stream)) + { + reader.ReadToDescendant("Trace"); + reader.Read(); + foreach (var xev in StreamElements(reader)) + { + Event ev = null; + try + { + if (xev.Name == "Event") + ev = ParseEvent(xev, file, keepOriginalElement, startTime, endTime, samplingFactor); + else if (xev.Name == "Test") + ev = ParseTest(xev, file, keepOriginalElement); + else if (xev.Name == "TestPlan") + ev = ParseTestPlan(xev, file, keepOriginalElement); + } + catch (Exception e) + { + throw new Exception(string.Format("Failed to parse XML {0}", xev), e); + } + if (ev != null) yield return ev; + } + } + } + + private static Event ParseEvent(XElement xEvent, string file, bool keepOriginalElement, double startTime, double endTime, double samplingFactor) + { + if (samplingFactor != 1.0 && r.NextDouble() > samplingFactor) + return null; + + XAttribute trackLatestAttribute = xEvent.Attribute("TrackLatestType"); + bool rolledEvent = trackLatestAttribute != null && trackLatestAttribute.Value.Equals("Rolled"); + String timeAttribute = (rolledEvent) ? "OriginalTime" : "Time"; + double eventTime = double.Parse(xEvent.Attribute(timeAttribute).Value); + + if (eventTime < startTime || eventTime > endTime) + return null; + + return new Event { + Severity = (Severity)int.Parse(xEvent.Attribute("Severity").ValueOrDefault("40")), + Type = string.Intern(xEvent.Attribute("Type").Value), + Time = eventTime, + Machine = string.Intern(xEvent.Attribute("Machine").Value), + ID = string.Intern(xEvent.Attribute("ID").ValueOrDefault("0")), + TraceFile = file, + DDetails = xEvent.Attributes() + .Where(a=>a.Name != "Type" && a.Name != "Time" && a.Name != "Machine" && a.Name != "ID" && a.Name != "Severity" && (!rolledEvent || a.Name != "OriginalTime")) + .ToDictionary(a=>string.Intern(a.Name.LocalName), a=>(object)a.Value), + original = keepOriginalElement ? xEvent : null, + }; + } + + private static string ValueOrDefault( this XAttribute attr, string def ) { + if (attr == null) return def; + else return attr.Value; + } + + private static TestPlan ParseTestPlan(XElement xTP, string file, bool keepOriginalElement) + { + var time = double.Parse(xTP.Attribute("Time").ValueOrDefault("0")); + var machine = xTP.Attribute("Machine").ValueOrDefault(""); + return new TestPlan + { + TraceFile = file, + Type = "TestPlan", + Time = time, + Machine = machine, + TestUID = xTP.Attribute("TestUID").ValueOrDefault(""), + TestFile = xTP.Attribute("TestFile").ValueOrDefault(""), + randomSeed = int.Parse(xTP.Attribute("RandomSeed").ValueOrDefault("0")), + Buggify = xTP.Attribute("BuggifyEnabled").ValueOrDefault("1") != "0", + DeterminismCheck = xTP.Attribute("DeterminismCheck").ValueOrDefault("1") != "0", + OldBinary = xTP.Attribute("OldBinary").ValueOrDefault(""), + original = keepOriginalElement ? xTP : null, + }; + } + + private static Test ParseTest(XElement xTest, string file, bool keepOriginalElement) + { + var time = double.Parse(xTest.Attribute("Time").ValueOrDefault("0")); + var machine = xTest.Attribute("Machine").ValueOrDefault(""); + return new Test + { + TraceFile = file, + Type = "Test", + Time = time, + Machine = machine, + TestUID = xTest.Attribute("TestUID").ValueOrDefault(""), + TestFile = xTest.Attribute("TestFile").ValueOrDefault(""), + SourceVersion = xTest.Attribute("SourceVersion").ValueOrDefault(""), + ok = bool.Parse(xTest.Attribute("OK").ValueOrDefault("false")), + randomSeed = int.Parse(xTest.Attribute("RandomSeed").ValueOrDefault("0")), + randomUnseed = int.Parse(xTest.Attribute("RandomUnseed").ValueOrDefault("0")), + SimElapsedTime = double.Parse(xTest.Attribute("SimElapsedTime").ValueOrDefault("0")), + RealElapsedTime = double.Parse(xTest.Attribute("RealElapsedTime").ValueOrDefault("0")), + passed = int.Parse(xTest.Attribute("Passed").ValueOrDefault("0")), + failed = int.Parse(xTest.Attribute("Failed").ValueOrDefault("0")), + peakMemUsage = long.Parse(xTest.Attribute("PeakMemory").ValueOrDefault("0")), + Buggify = xTest.Attribute("BuggifyEnabled").ValueOrDefault("1") != "0", + DeterminismCheck = xTest.Attribute("DeterminismCheck").ValueOrDefault("1") != "0", + OldBinary = xTest.Attribute("OldBinary").ValueOrDefault(""), + original = keepOriginalElement ? xTest : null, + events = xTest.Elements().Select(e => + new Event { + Severity = (Severity)int.Parse(e.Attribute("Severity").ValueOrDefault("0")), + Type = e.Name.LocalName, + Time = time, + Machine = machine, + DDetails = e.Attributes() + .Where(a => a.Name != "Type" && a.Name != "Time" && a.Name != "Machine" && a.Name != "Severity") + .ToDictionary(a => a.Name.LocalName, a => (object)a.Value) + }).ToArray() + }; + } + + private static T Try(Func action, Func onError, Func isEOF) + { + try + { + return action(); + } + catch (Exception e) + { + if (isEOF()) + return onError(e); + else + throw e; + } + } + + private static IEnumerable StreamElements(this XmlReader reader) + { + while (!reader.EOF) + { + if (reader.NodeType == XmlNodeType.Element) + { + XElement node = null; + try + { + node = XElement.ReadFrom(reader) as XElement; + } + catch (Exception) { break; } + if (node != null) + yield return node; + } + else + { + try + { + reader.Read(); + } + catch (Exception) { break; } + } + } + } + } +} diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 4890a96f95..a1ed2feb8e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -7,6 +7,8 @@ set(TEST_KEEP_LOGS "FAILED" CACHE STRING "Which logs to keep (NONE, FAILED, ALL) set(TEST_KEEP_SIMDIR "NONE" CACHE STRING "Which simfdb directories to keep (NONE, FAILED, ALL)") set(TEST_AGGREGATE_TRACES "NONE" CACHE STRING "Create aggregated trace files (NONE, FAILED, ALL)") set(TEST_LOG_FORMAT "xml" CACHE STRING "Format for test trace files (xml, json)") +set(TEST_INCLUDE ".*" CACHE STRING "Include only tests that match the given regex") +set(TEST_EXCLUDE ".^" CACHE STRING "Exclude all tests matching the given regex") # for the restart test we optimally want to use the last stable fdbserver # to test upgrades @@ -219,6 +221,12 @@ if(WITH_PYTHON) add_fdb_test(TEST_FILES status/single_process_too_many_config_params.txt) verify_testing() + if (NOT OPEN_FOR_IDE AND NOT WIN32) + create_correctness_package() + if (USE_VALGRIND) + create_valgrind_correctness_package() + endif() + endif() else() message(WARNING "Python not found, won't configure ctest") endif() From a44fa7bfe6df111857fc676e47a4c39b3a599107 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Thu, 14 Jan 2021 17:17:12 -0800 Subject: [PATCH 156/261] Remove unnecessary rapidjson download --- bindings/c/CMakeLists.txt | 4 ++-- bindings/c/test/unit/third_party/CMakeLists.txt | 16 ---------------- bindings/c/test/unit/unit_tests.cpp | 2 +- 3 files changed, 3 insertions(+), 19 deletions(-) diff --git a/bindings/c/CMakeLists.txt b/bindings/c/CMakeLists.txt index 00b33770ad..f4e5a762ac 100644 --- a/bindings/c/CMakeLists.txt +++ b/bindings/c/CMakeLists.txt @@ -101,9 +101,9 @@ if(NOT WIN32) target_link_libraries(fdb_c_txn_size_test PRIVATE fdb_c) add_dependencies(fdb_c_setup_tests doctest) - add_dependencies(fdb_c_unit_tests doctest rapidjson) + add_dependencies(fdb_c_unit_tests doctest) target_include_directories(fdb_c_setup_tests PUBLIC ${DOCTEST_INCLUDE_DIR}) - target_include_directories(fdb_c_unit_tests PUBLIC ${DOCTEST_INCLUDE_DIR} ${RAPIDJSON_INCLUDE_DIR}) + target_include_directories(fdb_c_unit_tests PUBLIC ${DOCTEST_INCLUDE_DIR}) target_link_libraries(fdb_c_setup_tests PRIVATE fdb_c Threads::Threads) target_link_libraries(fdb_c_unit_tests PRIVATE fdb_c Threads::Threads) diff --git a/bindings/c/test/unit/third_party/CMakeLists.txt b/bindings/c/test/unit/third_party/CMakeLists.txt index aea3493a09..6229abb0c9 100644 --- a/bindings/c/test/unit/third_party/CMakeLists.txt +++ b/bindings/c/test/unit/third_party/CMakeLists.txt @@ -16,19 +16,3 @@ ExternalProject_Add( ExternalProject_Get_Property(doctest source_dir) set(DOCTEST_INCLUDE_DIR ${source_dir}/doctest CACHE INTERNAL "Path to include folder for doctest") - -# Download rapidjson repo. -ExternalProject_Add( - rapidjson - PREFIX ${CMAKE_BINARY_DIR}/rapidjson - GIT_REPOSITORY https://github.com/Tencent/rapidjson.git - GIT_TAG f54b0e47a08782a6131cc3d60f94d038fa6e0a51 # v1.1.0 - TIMEOUT 10 - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - LOG_DOWNLOAD ON -) - -ExternalProject_Get_Property(rapidjson source_dir) -set(RAPIDJSON_INCLUDE_DIR ${source_dir}/include CACHE INTERNAL "Path to include folder for rapidjson") diff --git a/bindings/c/test/unit/unit_tests.cpp b/bindings/c/test/unit/unit_tests.cpp index d0aa377170..34639abbb2 100644 --- a/bindings/c/test/unit/unit_tests.cpp +++ b/bindings/c/test/unit/unit_tests.cpp @@ -38,7 +38,7 @@ #define DOCTEST_CONFIG_IMPLEMENT #include "doctest.h" -#include "rapidjson/document.h" +#include "fdbclient/rapidjson/document.h" #include "fdb_api.hpp" From d25b8664e7dc2eec3d8833f819cbbab2a735c5a7 Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Thu, 14 Jan 2021 17:31:13 -0800 Subject: [PATCH 157/261] clang-format, remove header added by IDE --- bindings/c/fdb_c.cpp | 7 +++---- bindings/c/test/unit/unit_tests.cpp | 1 - 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/bindings/c/fdb_c.cpp b/bindings/c/fdb_c.cpp index 6439474529..0a420c3eca 100644 --- a/bindings/c/fdb_c.cpp +++ b/bindings/c/fdb_c.cpp @@ -389,12 +389,11 @@ fdb_error_t fdb_database_create_transaction( FDBDatabase* d, *out_transaction = (FDBTransaction*)tr.extractPtr(); ); } -extern "C" DLLEXPORT -FDBFuture* fdb_database_reboot_worker( FDBDatabase* db, uint8_t const* address, int address_length, fdb_bool_t check, int duration) { - return (FDBFuture*) (DB(db)->rebootWorker(StringRef(address, address_length), check, duration).extractPtr()); +extern "C" DLLEXPORT FDBFuture* fdb_database_reboot_worker(FDBDatabase* db, uint8_t const* address, int address_length, + fdb_bool_t check, int duration) { + return (FDBFuture*)(DB(db)->rebootWorker(StringRef(address, address_length), check, duration).extractPtr()); } - extern "C" DLLEXPORT void fdb_transaction_destroy( FDBTransaction* tr ) { try { diff --git a/bindings/c/test/unit/unit_tests.cpp b/bindings/c/test/unit/unit_tests.cpp index 34639abbb2..04300aa6fe 100644 --- a/bindings/c/test/unit/unit_tests.cpp +++ b/bindings/c/test/unit/unit_tests.cpp @@ -20,7 +20,6 @@ // Unit tests for the FoundationDB C API. -#include #define FDB_API_VERSION 700 #include #include From 13afadfae49b7faddc316daa68b6155c4b9d9d17 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Fri, 15 Jan 2021 02:50:34 +0000 Subject: [PATCH 158/261] Use c90 compatibility for clarity --- bindings/c/CMakeLists.txt | 10 +++--- bindings/c/foundationdb/fdb_c.h | 34 ++++++++++++------- .../c/test/{fdb_c89_test.c => fdb_c90_test.c} | 2 ++ fdbclient/vexillographer/c.cs | 4 +-- 4 files changed, 30 insertions(+), 20 deletions(-) rename bindings/c/test/{fdb_c89_test.c => fdb_c90_test.c} (84%) diff --git a/bindings/c/CMakeLists.txt b/bindings/c/CMakeLists.txt index 7e3ba1fc84..cf3a4f1a3a 100644 --- a/bindings/c/CMakeLists.txt +++ b/bindings/c/CMakeLists.txt @@ -111,11 +111,11 @@ if(NOT WIN32) set_property(TARGET mako PROPERTY SKIP_BUILD_RPATH TRUE) target_link_libraries(mako PRIVATE fdb_c) - # Make sure that fdb_c.h is compatible with c89 - add_executable(fdb_c89_test test/fdb_c89_test.c) - set_property(TARGET fdb_c89_test PROPERTY C_STANDARD 90) - target_compile_options(fdb_c89_test PRIVATE -Wall -Wextra -Wpedantic -Werror) - target_link_libraries(fdb_c89_test PRIVATE fdb_c) + # Make sure that fdb_c.h is compatible with c90 + add_executable(fdb_c90_test test/fdb_c90_test.c) + set_property(TARGET fdb_c90_test PROPERTY C_STANDARD 90) + target_compile_options(fdb_c90_test PRIVATE -Wall -Wextra -Wpedantic -Werror) + target_link_libraries(fdb_c90_test PRIVATE fdb_c) add_fdbclient_test( NAME fdb_c_setup_tests diff --git a/bindings/c/foundationdb/fdb_c.h b/bindings/c/foundationdb/fdb_c.h index 04ed986b90..4a7b737391 100644 --- a/bindings/c/foundationdb/fdb_c.h +++ b/bindings/c/foundationdb/fdb_c.h @@ -45,12 +45,17 @@ #define WARN_UNUSED_RESULT #endif -// With default settings, gcc will not warn about unprototyped functions being called, so it -// is easy to erroneously call a function which is not available at FDB_API_VERSION and then -// get an error only at runtime. These macros ensure a compile error in such cases, and -// attempt to make the compile error slightly informative. -#define This_FoundationDB_API_function_is_removed_at_this_FDB_API_VERSION() [=====] -#define FDB_REMOVED_FUNCTION This_FoundationDB_API_function_is_removed_at_this_FDB_API_VERSION(0) +/* + * With default settings, gcc will not warn about unprototyped functions being + * called, so it is easy to erroneously call a function which is not available + * at FDB_API_VERSION and then get an error only at runtime. These macros + * ensure a compile error in such cases, and attempt to make the compile error + * slightly informative. + */ +#define This_FoundationDB_API_function_is_removed_at_this_FDB_API_VERSION() \ + [== == = ] +#define FDB_REMOVED_FUNCTION \ + This_FoundationDB_API_function_is_removed_at_this_FDB_API_VERSION(0) #include @@ -244,12 +249,15 @@ extern "C" { fdb_transaction_get_committed_version( FDBTransaction* tr, int64_t* out_version ); - // This function intentionally returns an FDBFuture instead of an integer directly, - // so that calling this API can see the effect of previous mutations on the transaction. - // Specifically, mutations are applied asynchronously by the main thread. In order to - // see them, this call has to be serviced by the main thread too. - DLLEXPORT WARN_UNUSED_RESULT FDBFuture* - fdb_transaction_get_approximate_size(FDBTransaction* tr); + /* + * This function intentionally returns an FDBFuture instead of an integer + * directly, so that calling this API can see the effect of previous + * mutations on the transaction. Specifically, mutations are applied + * asynchronously by the main thread. In order to see them, this call has to + * be serviced by the main thread too. + */ + DLLEXPORT WARN_UNUSED_RESULT FDBFuture * + fdb_transaction_get_approximate_size(FDBTransaction *tr); DLLEXPORT WARN_UNUSED_RESULT FDBFuture* fdb_get_server_protocol(const char* clusterFilePath); @@ -301,7 +309,7 @@ extern "C" { typedef struct FDB_cluster FDBCluster; typedef enum { - // This option is only a placeholder for C compatibility and should not be used + /* This option is only a placeholder for C compatibility and should not be used */ FDB_CLUSTER_OPTION_DUMMY_DO_NOT_USE=-1 } FDBClusterOption; #endif diff --git a/bindings/c/test/fdb_c89_test.c b/bindings/c/test/fdb_c90_test.c similarity index 84% rename from bindings/c/test/fdb_c89_test.c rename to bindings/c/test/fdb_c90_test.c index f26b2513c1..1569d98250 100644 --- a/bindings/c/test/fdb_c89_test.c +++ b/bindings/c/test/fdb_c90_test.c @@ -2,6 +2,8 @@ #include int main(int argc, char* argv[]) { + (void)argc; + (void)argv; fdb_select_api_version(700); return 0; } diff --git a/fdbclient/vexillographer/c.cs b/fdbclient/vexillographer/c.cs index ee718495a5..2ea6675dff 100644 --- a/fdbclient/vexillographer/c.cs +++ b/fdbclient/vexillographer/c.cs @@ -52,8 +52,8 @@ namespace vexillographer { string parameterComment = ""; if (o.scope.ToString().EndsWith("Option")) - parameterComment = String.Format("{0}// {1}\n", indent, "Parameter: " + o.getParameterComment()); - return String.Format("{0}// {2}\n{5}{0}{1}{3}={4}", indent, prefix, o.comment, o.name.ToUpper(), o.code, parameterComment); + parameterComment = String.Format("{0}/* {1} */\n", indent, "Parameter: " + o.getParameterComment()); + return String.Format("{0}/* {2} */\n{5}{0}{1}{3}={4}", indent, prefix, o.comment, o.name.ToUpper(), o.code, parameterComment); } private static void writeCEnum(TextWriter outFile, Scope scope, IEnumerable

      kY2!{Zw{_s^gFJfEuAcJsZ` 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�RYs?xe6DG0=jRXr9*H-}{QNg|5*O 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 z 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 l=kZ|X3FsjOG+)e>Cxb!<}e|uwsJYJi9 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�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�z0w7-uLCSd0<8oVOYfH24ApQr@gq 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