All python documentations indicate you shouldn't put prefixes like 'lib' or
suffixes like '.so', '.dll', or '.dylib' in argument to ctypes.util.find_library(),
unlike ctypes.CDLL() which demands an exact file name.
I suppose this case hasn't been tested.
* ApiTester: Refactoring removing unnecessary transaction actor classes
* ApiTester: enable executing non-transactional database operations
* ApiTester: a test for fdb_database_list_blobbified_ranges
* ApiTester: Fix memory ownership of the end key in randomGetRangeOp
* ApiTester: reuse get range result validation in blob granule tests
Currently ApiVersion is scattered and hardcoded across the bindings.
Let's at least clean it up so it's once per file or less and use some
redirection against FDB_API_VERSION or API_VERSION.
* 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
* Remove API 720 guards for tenants (experimental feature) and the cluster ID special keys (no need to guard)
* Enable the relaxed special key access in transactions that need to use special key-space APIs introduced in 7.2
* ApiTester: enable access to database instances in workloads
* ApiTester: Inject database create errors
* Fix getClusterProtocol and database shared object initialization in case of database create errors
* Check deferred error in all Thread-Safe API calls returning a future
* ApiTester: disable injection of database create errors for tests with old versions
* Save thread indexes for client instances in MVC
* An option to inlude client thread identifiers into trace file names
* Avoid using new trace file options in client versions not supporting them
* Remove redundant include generated by IDE
* Use different base trace file names for client threads by default. Provide an option to revert to using a shared base file name
* Fixing typos in the description of trace_share_among_client_threads
* ApiTester: More asserts on workload status; Fixing data race in the cleanup phase
* ApiTester: comments explaining assumptions behind synchronization in TransactionContext; declaring immutable fields as const
* Add build dependency between fdb_c_shim and fdb_c
* 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
* Test more C API in upgrade tests
* Fix saving results in blob granule API correctness test
* Enable multitenancy in upgrade test with API version >=720
* Disable the upgrade test with blob granule workload
Currently GRV is reporting proxy_memory_limit_exceeded error which has
error message claiming Commit proxy failing. This split should remove
such confusion.
* Enable configuring the next future protocol version as the current protocol version in FDB client, fdbserver, and fdbcli
* Auto format python files used in upgrade tests
* Add a test for upgrading to a future FDB version
* Emphasize that the options for using future protocol version are intended for test purposes only
* Make the global variable for current protocol version visible only locally
* Refactirng to avoid using currentProtocolVersion() in static intialization
* Update go bindings
* Adding sources of the Implib.so project
* Run C unit tests and API tests with the shim library
* Reuse compilation of C test binaries with and without shim library
* Resolve client library path from an environment variable
* Refactoring: Reusable module for downloading FDB binaries
* Testing client shim library with current version and last release version
* Tests for specifying client library over an environment variable
* Enable C shim library tests on ARM
* Restore the original path for including fdb_api.hpp
* Improve cmake dependencies on doctest
* Remove unnecessary Implib.so files
* Shim library: API to specify path to the library, additional tests
* Adding shim library to Linux distribution packages
* Update link dependencies of fdb_c_shim_lib_tester
* Add dependencies on Implib.so sources
* Abort on fatal errors of shim library
* fix typo
* Don't build fdb c shim with ubsan
This avoids duplicate symbols when linking. It doesn't really make sense
to assemble files with -fsanitize=undefined anyway, since it won't
insert instrumentation.
* Consolidate boost_asan with boost_target
* Package inferred directories to the resulting tarball in ctest_to_joshua (except for the root source and build directories). This allows the API tests (which specify the workloads as a directory containing the workload specification files) to now work.
* Add bin/mkcert which is used by some tests.
* Rewrite fdb_c_shim_tests.py to specify its dependencies on command line.
* Adding sources of the Implib.so project
* Run C unit tests and API tests with the shim library
* Reuse compilation of C test binaries with and without shim library
* Resolve client library path from an environment variable
* Refactoring: Reusable module for downloading FDB binaries
* Testing client shim library with current version and last release version
* Tests for specifying client library over an environment variable
* Enable C shim library tests on ARM
* Restore the original path for including fdb_api.hpp
* Add an internal C API to support memory connection records
* Track shared state in the client using a unique and immutable cluster ID from the cluster
* Add missing code to store the clusterId in the database state object
* Update some arguments to pass by const&
* Log failed connection attempts in monitorProxies
* Update coordinator list from the cluster file after failing to connect to all coordinators
* Wiggle and upgrade test with legacy version monitoring; updating tests to use 7.1.9
* Update coordinator list from the cluster file: addressing review comments
* Update coordinator list from the cluster file: addressing review comments
* Wait on future for all setAndPersistConnectionString calls
* Avoid using structured bindings in doctest assertions
clang doesn't allow this with the latest releases of doctest
This will unblock #7319
* Add constructor to MappedKV
* Add logic for DDSketch in mako
* Return double from percentile() and fix crash in deserialize()
* make sure to serialize and print result from mergeSketchReport()
* clean up comments
* move ddsketch into its own file
* remove LatencySampleBin and add DDSketch to ThreadStatistics
* Update DDSketch implementation
* remove assertions that cause circular references
* add DDSketchMako as a subsclass from DDSketch
* Merge branch 'ddsketch_mako' of github.com:sfc-gh-khoxha/foundationdb into ddsketch_mako
* Revert "Merge branch 'ddsketch_mako' of github.com:sfc-gh-khoxha/foundationdb into ddsketch_mako"
This reverts commit cc29a68aef.
* add ddsketch mako class and rename export flag
* remove redundant decimal roundings
* print max/min/avg from ddsketch
* remove latency sample bin completly
* Make ThreadStatistics dump latency to a file and read from file in printReport()
* make sure to add latency data from file to final stats
* change mergeSketchReport to use new ThreadStatistics serialization (1)
* use C-style string arrays in Arguments instead of std::string
* remove unused header
* only serialize non-empty sketches
* fix CentOS build error
* Update report file count properly
* avoid deserializing empty sketches
* fix segmentation fault when getting file name for export_sketch_path
* make sure to properly add file to report_files list
* fix printing bugs when running in report mode
* fix incorrect insertion of report files
* don't use range based loop for char array
* don't reset args.num_report_files
* Update the usage info for new options
* switch to using std::vector for sketches instead of std::array
* make sure to use true/false instead of 1/0 for booleans
* remove op_name if not being used
* remove fp code in dumpThreadSamples
* replace lambda with function in printReport
* merge and print stats in seperate functions
* make sure to exit after printing report
* address review feedback
* make defaultMin, defaultMax static and move setBucketSize to protected
* switch to reverse iterators when moving backwards along bucket array
* Add JWT support to TokenSign
* Encapsulate OpenSSL public/private key type
Type-safe passing around of keys without having to DER/PEM-serialize
(OpenSSL doesn't have distinct types for public and private key)
* Apply Clang format
* Add verify benchmark for JWT and FlatBuffers token
* Unit test base64url::{encode, decode}
* Make all payload fields optional
Let user code validate non-signature fields
* Make all payload fields optional
Completely defer field check to user code
* Move rapidjson from fdbclient to contrib
* Make fdbrpc's rapidjson linkage private
Currently only sources include them.
* Modify rapidjson path in apiversioner.py
* Algorithm::Unknown > Algorithm::UNKNOWN
Only fetch requested worker interfaces in rebootWorkerActor
Add killall test to multiprocess_fdbcli_tests
Make the rebootWorker only sends requests if all the requested workers are valid
Add comments; Organize print texts; Fix the bug clear the map every time run kill/suspend/expensive_data_check
* Make java binding work for prefetch match index modes.
It adds boundaryAndExist in return value, so that caller can see
whether a boundary index is orphan or not.
* Make Java code work with index match modes
* Add test for boundaryAndExist in java binding test
* Add missing secondary queries tests for index prefetch
This change adds test for missing secondary queries for index prefetch,
in this case, MATCHED_ONLY mode would NOT return KV and UNMATCHED_ONLY
mode would return KV.
* remove default value for params
* Enable MATCHED and UNMATCHED mode for index prefetch
MATCHED mode returns index entries whose secondary KVs are present,
UNMATCHED mode returns index entries whose secondary KVs are absent.
Note that the conflict read range of this txn is set in 2 steps:
* Set the conflict range for primary query according to request
* Set the conflict ranges for secondary queries according to responses.
As a result, conflicts of different match_index mode are taken care of.
* Fix c binding
* Add support for specifying distributed client tracer in Mako.
Introduces a new command line option --distributed_tracer_client. Defaults to disabled, user may specify
disabled, log_file, network_lossy, or sim_end.
Testing locally and verified with distributed tracing receiver. Note: We use a simple integer here
to denote tracer type rather directly using the TracerType enum in flow/Tracing.h. Including Tracing.h pulls in
FDBTypes.h and results in conflicts with several classes, including Database.
Description
Major changes include:
1. FDB native MockKMS REST server implementation - Golang based.
2. Implements "getEncryptionKeys" endpoint utilized by
FDB RESTKmsConnector module.
3. Ability to inject faults to induce errors at various points
during query execution
NextSteps:
Need to integrate MockKMS to FDB build system.
Testing
1. Implements mockkms_test.go module providing extensive test coverage
for newly added code.
2. Postman based local testing.