The test suite now continuously executes queries and updates in a number of threads while running the tests. These queries and updates are more complex, taken from the LDBC-50M suite.
It will print statistics at the end of each test, like these:
The test tool gathers the notifications from all masters and logs them in notifications.log file.
The test tool now uses Log4j to log the output. This makes it easier to control what to log and where to log it.
We verify that the cluster is in good shape at least twice per test: before we start it, and after the test is finished. This verification used to work like this:
- Check if all nodes are on-line, and that they have the same number of statements and fingerprints
- If the check passes, the cluster is OK. Stop
- If we repeated the process too many times then the cluster is in bad state. Stop
- Otherwise, sleep for some time and go to 1
The new verification is works this way. The new process is similar, but with two important differences:
- We are checking the state, but are waiting just 1 second between them. This ensures, that we'll pick up a "good" cluster pretty fast
- We count stale states (which are the same as the previous state). We'll stop the process early if we encounter too many (currently 10) consecutive stale states. This ensures, that we won't wait too long if the cluster is "frozen".