Commit Graph

25 Commits

Author SHA1 Message Date
Boris Korzun f7a443aea4 Add libfmt 10+ support (#11140) 2024-02-13 23:09:58 +03:00
Dimitris Apostolou a88114c222
Fix typos 2024-02-07 01:16:00 +02:00
Dennis Zhou 6a86369097
apitester: add better support for blob api commands + tenant abstraction (#8700)
* blob/apitester: rename tenantDebugString() -> debugTenantStr()

* blob/apitester: fix int64_t initialization to -1

* blob/apitester: add missing override for randomOperation()

* blob/cpp: cpp blob tenant operations

* apitester: add tenant to execution context

* apitester: DatabaseOps abstraction

This creates a base abstract class for Database and Tenant operations to
share.

* blob/apitester: add setup phase to verifyRange() prior to operations

This let's us ensure blob storage is setup prior to running apitester
against the cluster.

* apitester: expand execOperation() to take a tenant

Now that db operations can be transparently applied to tenants or
databases through the IDatabaseOps interface, allow execOperation() to
take a tenant accordingly.

* blob/testerapi: blobbify in TesterApiWorkload setup

Before we were blobbifying wholesale through TestRunner. This makes the
change to blobbifying and verifying in setup, so the workload can
properly test database and tenant scope functions.
2022-11-14 10:49:51 +01:00
Vaidas Gasiunas 5ca3606c7d
Add transaction timeout tests in ApiTester (#8412)
* ApiTester: test transaction timeout

* ApiTester: Turn off buggify for timeout tests

* ApiTester: Enable failure injection in timeout tests; make write transactions self-conflicting

* Consistently use 4 spaces instead of mixing with tabs

Co-authored-by: Andrew Noyes <andrew.noyes@snowflake.com>
2022-10-13 17:15:19 +02:00
Vaidas Gasiunas 97eddbc06a
Extend ApiTester with support for testing database operations (#8221)
* 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
2022-09-20 16:21:38 +02:00
A.J. Beamon b9c8bdeec6 Extract randomTenant() function; add back accidentally deleted line; move the new multi tenant test and fix a name error in its spec 2022-09-12 15:03:30 -07:00
A.J. Beamon 8086fc819e Some refactoring of tenants in the API tester. This mainly changes it so that tenants are stored on the ApiWorkload and any subclasses can use them. Update the setup phase to work across tenants. 2022-09-12 15:03:30 -07:00
Sagar Vemuri ba314fbc12 Plumb tenant id from individual workload operation to transaction executor 2022-09-12 14:57:29 -07:00
Vaidas Gasiunas f60a1e488f
Fixing TSAN error in API Tests: future callback trying to accessed destroyed scheduler (#8016)
* 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
2022-09-05 13:39:10 +02:00
Marian Dvorsky 35a3a33d1c
Resolve TSAN-related issues in ctests (#7864) 2022-08-12 19:23:32 +02:00
Marian Dvorsky d41ec69b23 Remove TesterApiWrapper, replace its uses with fdb_api.hpp 2022-06-03 11:55:33 +02:00
Vaidas Gasiunas 9966e3f7f7 Api Tester: print workload progress statistics in regular time intervals 2022-05-17 17:35:01 +02:00
Vaidas Gasiunas a03ba928e4 Upgrade Tests: Introduce transaction retry limit; Trace long retry chains; An option to run the test binary with gdb 2022-04-13 16:50:02 +02:00
Vaidas Gasiunas f7636ecf3b Upgrade Tests: Addressing review comments 2022-04-13 14:17:23 +02:00
Vaidas Gasiunas c63a1a18dd Upgrade Tests: Check workload progress after each upgrade step 2022-03-24 12:36:22 +01:00
Vaidas Gasiunas 6f8b410a8a Upgrade Tests: Run API workloads until stop commands; Initial ctest for upgrade 2022-03-22 20:30:06 +01:00
Vaidas Gasiunas 8ba3c107ff ApiTester: cancel transaction instead of deleting to avoid crashes when it is accessed by pending callbacks 2022-03-12 14:12:37 +01:00
Vaidas Gasiunas 9e52456eeb ApiTester: Test cancelling transaction with pending futures; Refactor transaction executor to improve concurrency handing and memory management 2022-03-10 19:13:23 +01:00
Vaidas Gasiunas bd0bf1cfc2 ApiTester: Address concurrency issues in the workload management 2022-03-09 14:38:07 +01:00
Vaidas Gasiunas b8386f15d6 ApiTester: configuration for ApiCorrectness workload; Better error handing and reporting 2022-03-04 16:22:49 +01:00
Vaidas Gasiunas 5d15a2d623 ApiTester: Loading test configuration from files, calling from ctest 2022-03-03 15:01:05 +01:00
Vaidas Gasiunas bd1bf72304 ApiTester: Test mixed insert/get workload; support concurrent execution of multiple gets 2022-02-28 16:05:00 +01:00
Vaidas Gasiunas 3967f9ed14 ApiTester: Introduce workload manager 2022-02-26 00:09:37 +01:00
Vaidas Gasiunas c3e6eea41a ApiTester: In memory key-value store 2022-02-26 00:08:21 +01:00
Vaidas Gasiunas 64873b6873 ApiTester: Rename files and namespace 2022-02-25 11:35:57 +01:00