Configuration database data lives on the coordinators. When a change
coordinators command is issued, the data must be sent to the new
coordinators to keep the database consistent.
Previously, you would see the following in command_line_argument_test:
```
Traceback (most recent call last):
File "/home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/tests/argument_parsing/test_argument_parsing.py", line 113, in <module>
test_fdbcli(args.build_dir)
File "/home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/tests/argument_parsing/test_argument_parsing.py", line 79, in test_fdbcli
check(is_unknown_knob(run_command(command, ["--knob-fake-knob", "foo"])))
File "/home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/tests/argument_parsing/test_argument_parsing.py", line 30, in check
assert condition, "Command output:\n" + last_command_output
AssertionError: Command output:
Unable to read cluster file `./fdb.cluster' or `/etc/foundationdb/fdb.cluster' and FDB_CLUSTER_FILE unset: 1515 No cluster file found in current directory or default location
```
* ApiTester: test with invalid cluster files
* More asserts in monitorProxies
* ApiTester: Test tampering the cluster file
* Fix update of connection string from the cluster file to use the new connection string only if it valid
* ApiTester: add linker dependency on std++fs
* upgrade_test: no-cleanup-on-error option
* ApiTester: use atomic operations to change and access the transaction handle
* Implement TenantCacheEntry in-memory cache
Description
diff-4: TraceEvent usage improvements
diff-3: Address review comments
diff-2: Add APIs to read counter values, test improvements
diff-1: Address review comments
Major changes includes:
1. Implements an actor that enables an in-memory caching of
TenantCacheEntry object, allowing the caller to embed custom
information along with TenantCacheEntry.
2. The cache follows read-through cache semantics where the entry
gets loaded from underlying database on a miss.
3. The cache implements a "periodic poller" to refresh known Tenants
by consulting the database. Once a database keyrange-watch feature is
available, cache shall be updated.
Bonus:
Implement a 'recurringAsync' addition to genericActors allowing caller
to schedule a periodic task registering an "actor functor"; the routine
'waits' for the actor unlike existing 'recurring' implementation.
Testing
TenantEntryCache workload
devCorrectnessRun - 100K
* Adding BlobRange test
* refactored blobrange test to use new db functions, and fixed several bugs
* bug fixes for blob manager and verifyBlobRange
* More range unaligned fixes
* cleaning up test and disabling tests that don't work yet for now
* removing overzealous assert in blob manager
* more fixes for overzealous assert
* cleanup and renaming test
* adding chaos to blob ranges test
* blob granule fixes from api tests
* Adding BlobGranuleErrors workload
* bug fixes and debugging improvements for blob granule api tests
* cleanup and refactoring of bg api tests
* better memory management for loadAndMaterialize