HDDS-11523. Support Listener OM - #6
Conversation
|
/gemini review |
|
No such command.
|
There was a problem hiding this comment.
Summary of Changes
Hello @peterxcli, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
I'm introducing support for Listener Ozone Managers (OMs) within the Ratis-based HA setup. This enhancement allows for a new type of OM node that can receive and apply state changes from the Ratis leader but does not participate in leader elections or quorum voting. This provides flexibility for deployment scenarios where read-only replicas or passive disaster recovery nodes are beneficial without increasing the Ratis quorum size.
Highlights
- Ratis Integration for Listener OMs: Modified Ratis configuration management to differentiate between follower and listener peers, ensuring that listener OMs are correctly added to the Ratis group with their specific role.
- OM Node Details Enhancement: Extended OMNodeDetails to include a isRatisListener flag, which is propagated through configuration loading, protobuf messages, and inter-service communication.
- Configuration and Bootstrap Support: Added new configuration keys (ozone.om.listener.nodes) and updated the mini-cluster and Docker Compose setups to allow for easy bootstrapping and testing of Listener OMs.
- Leadership Transfer Logic Update: Enhanced the transferRatisLeadership logic to prevent leadership transfer to a Listener OM, as they are not intended to become leaders.
- Testing Framework Updates: Incorporated new integration and smoketests to validate the behavior of Listener OMs, including their ability to receive updates and their inability to become leaders.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments or fill out our survey to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
…ed tests to verify that listener OMs cannot become leaders and to ensure correct behavior in mixed clusters with voting and listener OMs. Improved existing test assertions for clarity and consistency.
|
This PR has been marked as stale due to 21 days of inactivity. Please comment or remove the stale label to keep it open. Otherwise, it will be automatically closed in 7 days. |
HDDS-11523. Fix findbug## What changes were proposed in this pull request?
Provide a one-liner summary of the changes in the PR Title field above.
It should be in the form of
HDDS-1234. Short summary of the change.Please describe your PR in detail:
perspective not just for the reviewer.
the Jira's description if the jira is well defined.
issue investigation, github discussion, etc.
Examples of well-written pull requests:
What is the link to the Apache JIRA
Please create an issue in ASF JIRA before opening a pull request, and you need to set the title of the pull
request which starts with the corresponding JIRA issue number. (e.g. HDDS-XXXX. Fix a typo in YYY.)
(Please replace this section with the link to the Apache JIRA)
How was this patch tested?
(Please explain how this patch was tested. Ex: unit tests, manual tests, workflow run on the fork git repo.)
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this.)