Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release-24.3: roachtest: add failover variants with leader leases #133369

Merged
merged 1 commit into from
Oct 29, 2024

Commits on Sep 30, 2024

  1. roachtest: add failover variants with leader leases

    Part of #132762.
    
    Leader leases have different availability properties than epoch leases under
    most failure modes. This patch adds failover test variants that use leader
    leases where possible.
    
    Initial test results:
    
    | test                                         | lease=epoch (ms) | lease=expiration (ms) | lease=leader (ms) | parity with expiration |
    |:---------------------------------------------|-----------------:|----------------------:|------------------:|:----------------------:|
    | failover/chaos/read-only                     | 60,129           | 18,253                | 60,129            | ✔                      |
    | failover/chaos/read-write                    | 60,129           | 20,401                | 60,129            | XXX                    |
    | failover/liveness/blackhole                  | 9,663            | 369                   | 335               | ✔                      |
    | failover/liveness/blackhole-recv             | 11,274           | 402                   | 369               | ✔                      |
    | failover/liveness/blackhole-send             | 9,663            | 385                   | 469               | ✔                      |
    | failover/liveness/crash                      | 8,053            | 352                   | 318               | ✔                      |
    | failover/liveness/deadlock                   | 24,696           | 385                   | 369               | ✔                      |
    | failover/liveness/disk-stall                 | 26,843           | 369                   | 419               | ✔                      |
    | failover/liveness/pause                      | 10,200           | 385                   | 436               | ✔                      |
    | failover/non-system/blackhole                | 7,247            | 7,516                 | 15,032            | XX                     |
    | failover/non-system/blackhole-recv           | 12,348           | 10,737                | 18,253            | XX                     |
    | failover/non-system/blackhole-send           | 6,979            | 6,979                 | 8,053             | X                      |
    | failover/non-system/crash                    | 7,247            | 6,979                 | 9,126             | X                      |
    | failover/non-system/deadlock                 | 60,129           | 60,129                | 60,129            | ✔                      |
    | failover/non-system/disk-stall               | 22,548           | 22,548                | 25,769            | X                      |
    | failover/non-system/pause                    | 7,247            | 7,247                 | 9,126             | X                      |
    | failover/partial/lease-gateway               | 8,589            | 19,327 [^1]           | 60,129            | XXX                    |
    | failover/partial/lease-leader                | 60,129           | 22,549 [^2]           | 31,139 [^2]       | XX                     |
    | failover/partial/lease-liveness              | 8,589            | 301                   | 318               | ✔                      |
    | failover/system-non-liveness/blackhole       | 369              | 402                   | 352               | ✔                      |
    | failover/system-non-liveness/blackhole-recv  | 335              | 285                   | 318               | ✔                      |
    | failover/system-non-liveness/blackhole-send  | 402              | 419                   | 335               | ✔                      |
    | failover/system-non-liveness/crash           | 419              | 301                   | 453               | ✔                      |
    | failover/system-non-liveness/deadlock        | 369              | 352                   | 402               | ✔                      |
    | failover/system-non-liveness/disk-stall      | 402              | 318                   | 453               | ✔                      |
    | failover/system-non-liveness/pause           | 369              | 385                   | 335               | ✔                      |
    
    _note: because of the way the test measures pMax, anything under 1,000ms is essentially "no impact"_
    
    **Key _(comparing leader vs. expiration)_**:
    ✔ = parity
    X = minor regression
    XX = major regression
    XXX = unavailability
    
    [^1]: I don't understand why expiration-based lease perform worse than epoch-based leases on this test.
    [^2]: With #133214.
    
    Epic: none
    Release note: None
    nvanbenschoten committed Sep 30, 2024
    Configuration menu
    Copy the full SHA
    dee8143 View commit details
    Browse the repository at this point in the history