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

 Kirill Sizov 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 field 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}
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:
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}
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.




> 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:  Kirill Sizov
>            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 field 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}
> 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