[ https://issues.apache.org/jira/browse/IGNITE-24785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kirill Tkalenko updated IGNITE-24785: ------------------------------------- Description: It would be useful for us to check how the cluster will behave when fsync is turned off for table raft groups and enter a node with an index greater than the current majority. It is proposed to implement a test with emulation of the loss of part of the raft log by simply truncating it and implement it in the form of integration tests. Scenario: # Start 3 nodes and initialize the cluster. # Create a zone and table with 1 partition and 3 replicas. # Make node C leader of the raft group. # Insert 10 rows into the table row by row in its own transaction. # Stop all nodes. # Truncate the raft log at all nodes. ## At nodes A and B we will cut off the current raft index - 5. ## On node C we leave the raft index as is. # Start nodes A and B and wait for a majority to be formed from these nodes. # Start node C. # Check what is happening with the cluster. Expected behavior: ## Raft will figure it out somehow, for example by doing a full data replication or installing a snapshot. ## Disaster recovery will be required for node C, and we will do it through the disaster recovery API. # Check that we were able to read all 10 rows from table on all nodes. was: It would be useful for us to check how the cluster will behave when fsync is turned off for table raft groups and enter a node with an index greater than the current majority. It is proposed to implement a test with emulation of the loss of part of the raft log by simply truncating it and implement it in the form of integration tests. Scenario: 1. Start 3 nodes and initialize the cluster. 2. Create a zone and table with 1 partition and 3 replicas. 3. Make node C leader of the raft group. 4. Insert 10 rows into the table row by row in its own transaction. 5. Stop all nodes. 6. Truncate the raft log at all nodes. a. At nodes A and B we will cut off the current raft index - 5. b. On node C we leave the raft index as is. 7. Start nodes A and B and wait for a majority to be formed from these nodes. 8. Start node C. 9. Check what is happening with the cluster. Expected behavior: a. Raft will figure it out somehow, for example by doing a full data replication or installing a snapshot. b. Disaster recovery will be required for node C, and we will do it through the disaster recovery API. 10. Check that we were able to read all 10 rows from table on all nodes. > Implement test of enter a node with an index greater than the current majority > ------------------------------------------------------------------------------ > > Key: IGNITE-24785 > URL: https://issues.apache.org/jira/browse/IGNITE-24785 > Project: Ignite > Issue Type: Improvement > Reporter: Kirill Tkalenko > Assignee: Kirill Tkalenko > Priority: Major > Labels: ignite-3 > > It would be useful for us to check how the cluster will behave when fsync is > turned off for table raft groups and enter a node with an index greater than > the current majority. > It is proposed to implement a test with emulation of the loss of part of the > raft log by simply truncating it and implement it in the form of integration > tests. > Scenario: > # Start 3 nodes and initialize the cluster. > # Create a zone and table with 1 partition and 3 replicas. > # Make node C leader of the raft group. > # Insert 10 rows into the table row by row in its own transaction. > # Stop all nodes. > # Truncate the raft log at all nodes. > ## At nodes A and B we will cut off the current raft index - 5. > ## On node C we leave the raft index as is. > # Start nodes A and B and wait for a majority to be formed from these nodes. > # Start node C. > # Check what is happening with the cluster. Expected behavior: > ## Raft will figure it out somehow, for example by doing a full data > replication or installing a snapshot. > ## Disaster recovery will be required for node C, and we will do it through > the disaster recovery API. > # Check that we were able to read all 10 rows from table on all nodes. -- This message was sent by Atlassian Jira (v8.20.10#820010)