gobblin
gobblin copied to clipboard
[GOBBLIN-1901] Define MultiActiveLeaseArbiter Decorator to Model Failed Lease Completion
Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA
- [X] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"
- https://issues.apache.org/jira/browse/GOBBLIN-1901
Description
- [X] Here are some details about my PR, including screenshots (if applicable): Creates MysqlMultiActiveLeaseAribterTestingDecorator class used to model scenarios where a lease owner fails to complete a lease successfully intermittently (representing a variety of slowness or failure cases that can result on the participant side, network connectivity, or database). It will fail on calls to {@link MysqlMultiActiveLeaseArbiter.recordLeaseSuccess()} where a deterministic function of the lease obtained timestamp matches a bitmask of the host. Ideally, each participant should fail on different calls (with limited overlap if we want to test that). See java doc for more details.
Tests
- [X] My PR adds the following unit tests OR does not need testing for this extremely good reason: WIP (will add in second iteration once methodology is agreed upon)
Commits
- [X] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":
- Subject is separated from body by a blank line
- Subject is limited to 50 characters
- Subject does not end with a period
- Subject uses the imperative mood ("add", not "adding")
- Body wraps at 72 characters
- Body explains "what" and "why", not "how"