forked from apple/foundationdb
-
Notifications
You must be signed in to change notification settings - Fork 0
Test Workloads
Jingyu Zhou edited this page Feb 1, 2023
·
3 revisions
Failure injection workloads are registered with FailureInjectorFactory
, including:
- MachineAttrition
- DiskFailureInjection
- RandomClogging
- MoveKeys
- Rollback
They can be enabled or disabled in the following ways:
- Explicitly added in the toml file
- Certain workloads can claim they dislike some/all of the failure injection workloads, e.g. LowLatency hates Attrition. (and this is defined in the workload file)
- The workload itself can prevent its injection, base on the use of the database, the count of the existing same workloads, and/or a random number. (and this is defined in tester.actor.cpp, by default; or overridden in the actual workload .actor.cpp file)
- A compound workload can also prevent creating certain type of workloads, by defining
disabledFailureInjectionWorkloads
in the toml file. See https://github.com/apple/foundationdb/pull/9240
Atomic operations.
Backup the database and use FastRestore to restore cluster data.
Backup the database and restore the cluster data.
This means there is data corruption in the DB. The cycle test has a loop: e.g., a->b->c->...->a
, and the test random choose 5 nodes and switch their pointers, but keep the loop structure. In the end of the test, check the number of nodes remains the same.