Skip to content

HDDS-11523. Support Listener OM - #6

Closed
peterxcli wants to merge 9 commits into
masterfrom
HDDS-11523
Closed

HDDS-11523. Support Listener OM#6
peterxcli wants to merge 9 commits into
masterfrom
HDDS-11523

Conversation

@peterxcli

Copy link
Copy Markdown
Owner

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:

  • What changes are proposed in the PR? and Why? It would be better if it is written from third person's
    perspective not just for the reviewer.
  • Provide as much context and rationale for the pull request as possible. It could be copy-paste from
    the Jira's description if the jira is well defined.
  • If it is complex code, describe the approach used to solve the issue. If possible attach design doc,
    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.)

@peterxcli

Copy link
Copy Markdown
Owner Author

/gemini review

@github-actions

github-actions Bot commented Aug 7, 2025

Copy link
Copy Markdown

No such command. gemini Available commands:

  • /close : Close pending pull request temporary
  • /help : Show all the available comment commands
  • /label : add new label to the issue: /label <label>
  • /pending : Add a REQUESTED_CHANGE type review to mark issue non-mergeable: /pending <reason>
  • /ready : Dismiss all the blocking reviews by github-actions bot
  • /retest : provide help on how to trigger new CI build

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

  1. 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.

gemini-code-assist[bot]

This comment was marked as resolved.

gemini-code-assist[bot]

This comment was marked as resolved.

…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.
@github-actions

Copy link
Copy Markdown

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.

@github-actions github-actions Bot added the stale label Nov 14, 2025
@peterxcli peterxcli closed this Nov 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants