[ 
https://issues.apache.org/jira/browse/IGNITE-23449?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mirza Aliev updated IGNITE-23449:
---------------------------------
    Description: 
h3. Motivation
In 
[IEP-131|https://cwiki.apache.org/confluence/display/IGNITE/IEP-131%3A+Partition+Majority+Unavailability+Handling]
 we introduce
new filed in zone descriptor called {{consistencyMode}}. 


{code:java}
     /**
     * Specifies the consistency mode of the zone, determining how the system 
balances data consistency and availability.
     *
     * <p>
     * Possible values are:
     * <ul>
     *   <li><b>STRONG_CONSISTENCY</b>: Ensures strong consistency by requiring 
a majority of nodes for operations.
     *       Partitions become unavailable if the majority of assigned nodes 
are lost.</li>
     *   <li><b>HIGH_AVAILABILITY</b>: Prioritizes availability over strict 
consistency, allowing partitions to remain
     *       available for read-write operations even when the majority of 
assigned nodes are offline. The system
     *       reconfigures the RAFT group to include only the available nodes 
without changing the assignments.</li>
     * </ul>
     * </p>
     */
    private final ConsistencyMode consistencyMode;
{code}

{{STRONG_CONSISTENCY}} is the current behaviour of zones/partitions in AI3. 
 
We must forbid to change this flag, so it must be immutable and must be 
configured only on a zone creation. 
It must be possible to set this filed through the SQL 

{code:SQL}
// Some comments here
CREATE ZONE IF NOT EXISTS exampleZone WITH CONSISTENCY_MODE='HIGH_AVAILABILITY'
{code}


h3. Implementation notes

{{DdlSqlToCommandConverter}} must be expanded with {{CONSISTENCY_MODE}} option 
along with {{IgniteCatalogSqlImpl}}. 

h3. Definition of Done
* New filed in zone descriptor called {{consistencyMode}} is introduced.
* It must be {{STRONG_CONSISTENCY}} or {{HIGH_AVAILABILITY}}
* This field must be immutable and it must be possible set it only on a zone 
creation.



  was:
We need to make possible to configure zone as Highly Available on a zone 
creation. We must forbid to change this flag, so it must be immutable and must 
be configured only on a zone creation.




> Add support of the new flag HA in zone description
> --------------------------------------------------
>
>                 Key: IGNITE-23449
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23449
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Mirza Aliev
>            Assignee: Mirza Aliev
>            Priority: Major
>              Labels: ignite-3
>
> h3. Motivation
> In 
> [IEP-131|https://cwiki.apache.org/confluence/display/IGNITE/IEP-131%3A+Partition+Majority+Unavailability+Handling]
>  we introduce
> new filed in zone descriptor called {{consistencyMode}}. 
> {code:java}
>      /**
>      * Specifies the consistency mode of the zone, determining how the system 
> balances data consistency and availability.
>      *
>      * <p>
>      * Possible values are:
>      * <ul>
>      *   <li><b>STRONG_CONSISTENCY</b>: Ensures strong consistency by 
> requiring a majority of nodes for operations.
>      *       Partitions become unavailable if the majority of assigned nodes 
> are lost.</li>
>      *   <li><b>HIGH_AVAILABILITY</b>: Prioritizes availability over strict 
> consistency, allowing partitions to remain
>      *       available for read-write operations even when the majority of 
> assigned nodes are offline. The system
>      *       reconfigures the RAFT group to include only the available nodes 
> without changing the assignments.</li>
>      * </ul>
>      * </p>
>      */
>     private final ConsistencyMode consistencyMode;
> {code}
> {{STRONG_CONSISTENCY}} is the current behaviour of zones/partitions in AI3. 
>  
> We must forbid to change this flag, so it must be immutable and must be 
> configured only on a zone creation. 
> It must be possible to set this filed through the SQL 
> {code:SQL}
> // Some comments here
> CREATE ZONE IF NOT EXISTS exampleZone WITH 
> CONSISTENCY_MODE='HIGH_AVAILABILITY'
> {code}
> h3. Implementation notes
> {{DdlSqlToCommandConverter}} must be expanded with {{CONSISTENCY_MODE}} 
> option along with {{IgniteCatalogSqlImpl}}. 
> h3. Definition of Done
> * New filed in zone descriptor called {{consistencyMode}} is introduced.
> * It must be {{STRONG_CONSISTENCY}} or {{HIGH_AVAILABILITY}}
> * This field must be immutable and it must be possible set it only on a zone 
> creation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to