WL#17236: Make "GR: Automatic Eviction on Resource Exhaustion" community edition

Affects: Server-9.x   —   Status: Complete

# EXECUTIVE SUMMARY

This worklog makes the existing `GR: Automatic Eviction on Resource Exhaustion`
available in the MySQL Community Edition.

This change enables the high-availability(HA) Group Replication(GR) system to
automatically detect and mitigate issues related to lagging secondary servers
and resource exhaustion, thereby ensuring continuous operation and resilience
of the group. The change aligns feature availability between Community and
Enterprise editions without introducing new functionality or altering existing
behavior.


# USER STORIES

* Automatic Ejection Mechanism:
  As a MySQL Community Edition user, I want the system to automatically detect
  when a secondary server's applier is lagging or swapping excessively so that
  problematic servers can be ejected from the group to maintain high
  availability.

* Threshold Detection:
  As a MySQL Community Edition user, I want to define thresholds for resource
  utilization beyond which a member is considered to be experiencing critical
  conditions so that the system can trigger appropriate actions based on
  predefined criteria.

* Intermittent Failure Handling:
  As a MySQL Community Edition user, I want the system to detect and handle
  intermittent failures in secondary servers, so that unreliable members can be
  identified and removed from the group to prevent disruptions.

* Group Resilience:
  As a MySQL Community Edition user, I want the group to remain operational even
  in the presence of faulty or problematic members, so that services can
  continue to be provided without interruption.

* Automatic Rejoin:
  As a MySQL Community Edition user, I want to automatically rejoin the group
  after resolving issues that caused my ejection, so that I can resume
  contributing to the group's operations.

* Provisioning Automation:
  As a MySQL Community Edition user, I want ejected members to automatically
  provision themselves and rejoin the group, so that downtime is minimized and
  the group remains fully operational.

* Fault Tolerance:
  As a MySQL Community Edition user, I want the system to handle faults
  gracefully and maintain high availability, so that services are not disrupted
  even in the event of individual member failures.

* Quarantine Period Handling:
  As a MySQL Community Edition user, I want the system to enforce a quarantine
  period for restarted members before considering them for ejection, so that
  they have sufficient time to catch up and synchronize with the group without
  being prematurely ejected.
# FUNCTIONAL REQUIREMENTS

FR-01. The `GR: Automatic Eviction on Resource Exhaustion` feature shall be
       available in the MySQL Community Edition build.

FR-02. The feature shall expose the same Automatic Eviction on Resource
       Exhaustion in the Community Edition as currently available in the
       Enterprise Edition.

FR-03. The feature shall be available in Community Edition builds, consistent
       with current behavior in Enterprise Edition builds.

FR-04. Existing interfaces (e.g., performance schema tables, status variables,
       or instrumentation points) used to expose the stats shall remain
       unchanged.

FR-05. The change shall be transparent to users upgrading from earlier versions,
       with no configuration changes required.

FR-06. There shall be no functional regressions or behavior changes to group
       replication, or performance when the feature is enabled.

FR-07. The implementation shall maintain compatibility across supported
       platforms for Community Edition builds.

# NON-FUNCTIONAL REQUIREMENTS

NFR-01. Logging, error handling, and diagnostics behavior shall remain
        unchanged.
# Summary of the approach

This worklog makes the existing `GR: Automatic Eviction on Resource Exhaustion`
feature available in the MySQL Community Edition build.

This change enables the high-availability(HA) Group Replication(GR) system to
automatically detect and mitigate issues related to lagging secondary servers
and resource exhaustion, thereby ensuring continuous operation and resilience
of the group. The change aligns feature availability between Community and
Enterprise editions without introducing new functionality or altering existing
behavior.

No changes are made to group replication logic, metrics collection, or
exposure mechanisms.

# Security context

No applicable changes on security context.

# Observability

Observability remains unchanged.

# Upgrade/downgrade and cross-version replication

Upgrades from earlier Community Edition versions will automatically gain access
to the Group Replication Automatic Eviction on Resource Exhaustion, without
requiring configuration changes.

Downgrades behave as before; feature not supported by the downgraded version
will simply be unavailable.

Cross-version replication behavior is unchanged.

There is no impact on group replication compatibility between Community and
Enterprise Edition instances.

# User interface

No new user interfaces are introduced.

Existing SQL interfaces, system tables, and performance schema views remain
unchanged.

Users interact with the feature using the same queries and tools as before.

# Deployment and installation

The change affects build and packaging only.

Community Edition binaries will include the feature by default.

No special installation steps are required.

Deployment workflows remain unchanged.

# Protocol

No protocol changes.

# Failure Model Specification

No new failure modes are introduced.

# Behavior Changes

The only behavior change is the availability of Group Replication Automatic
Eviction on Resource Exhaustion feature in Community Edition.

There are no changes to group replication behavior, stats semantics, or
default configurations.

Enterprise Edition behavior remains unchanged.