use of com.hazelcast.config.cp.CPSubsystemConfig in project hazelcast by hazelcast.
the class XMLConfigBuilderTest method testCPSubsystemConfig.
@Override
@Test
public void testCPSubsystemConfig() {
String xml = HAZELCAST_START_TAG + "<cp-subsystem>\n" + " <cp-member-count>10</cp-member-count>\n" + " <group-size>5</group-size>\n" + " <session-time-to-live-seconds>15</session-time-to-live-seconds>\n" + " <session-heartbeat-interval-seconds>3</session-heartbeat-interval-seconds>\n" + " <missing-cp-member-auto-removal-seconds>120</missing-cp-member-auto-removal-seconds>\n" + " <fail-on-indeterminate-operation-state>true</fail-on-indeterminate-operation-state>\n" + " <persistence-enabled>true</persistence-enabled>\n" + " <base-dir>/mnt/cp-data</base-dir>\n" + " <data-load-timeout-seconds>30</data-load-timeout-seconds>\n" + " <raft-algorithm>\n" + " <leader-election-timeout-in-millis>500</leader-election-timeout-in-millis>\n" + " <leader-heartbeat-period-in-millis>100</leader-heartbeat-period-in-millis>\n" + " <max-missed-leader-heartbeat-count>3</max-missed-leader-heartbeat-count>\n" + " <append-request-max-entry-count>25</append-request-max-entry-count>\n" + " <commit-index-advance-count-to-snapshot>250</commit-index-advance-count-to-snapshot>\n" + " <uncommitted-entry-count-to-reject-new-appends>75</uncommitted-entry-count-to-reject-new-appends>\n" + " <append-request-backoff-timeout-in-millis>50</append-request-backoff-timeout-in-millis>\n" + " </raft-algorithm>\n" + " <semaphores>\n" + " <semaphore>\n" + " <name>sem1</name>\n" + " <jdk-compatible>true</jdk-compatible>\n" + " <initial-permits>1</initial-permits>\n" + " </semaphore>\n" + " <semaphore>\n" + " <name>sem2</name>\n" + " <jdk-compatible>false</jdk-compatible>\n" + " <initial-permits>2</initial-permits>\n" + " </semaphore>\n" + " </semaphores>\n" + " <locks>\n" + " <fenced-lock>\n" + " <name>lock1</name>\n" + " <lock-acquire-limit>1</lock-acquire-limit>\n" + " </fenced-lock>\n" + " <fenced-lock>\n" + " <name>lock2</name>\n" + " <lock-acquire-limit>2</lock-acquire-limit>\n" + " </fenced-lock>\n" + " </locks>\n" + "</cp-subsystem>" + HAZELCAST_END_TAG;
Config config = new InMemoryXmlConfig(xml);
CPSubsystemConfig cpSubsystemConfig = config.getCPSubsystemConfig();
assertEquals(10, cpSubsystemConfig.getCPMemberCount());
assertEquals(5, cpSubsystemConfig.getGroupSize());
assertEquals(15, cpSubsystemConfig.getSessionTimeToLiveSeconds());
assertEquals(3, cpSubsystemConfig.getSessionHeartbeatIntervalSeconds());
assertEquals(120, cpSubsystemConfig.getMissingCPMemberAutoRemovalSeconds());
assertTrue(cpSubsystemConfig.isFailOnIndeterminateOperationState());
assertTrue(cpSubsystemConfig.isPersistenceEnabled());
assertEquals(new File("/mnt/cp-data").getAbsoluteFile(), cpSubsystemConfig.getBaseDir().getAbsoluteFile());
assertEquals(30, cpSubsystemConfig.getDataLoadTimeoutSeconds());
RaftAlgorithmConfig raftAlgorithmConfig = cpSubsystemConfig.getRaftAlgorithmConfig();
assertEquals(500, raftAlgorithmConfig.getLeaderElectionTimeoutInMillis());
assertEquals(100, raftAlgorithmConfig.getLeaderHeartbeatPeriodInMillis());
assertEquals(3, raftAlgorithmConfig.getMaxMissedLeaderHeartbeatCount());
assertEquals(25, raftAlgorithmConfig.getAppendRequestMaxEntryCount());
assertEquals(250, raftAlgorithmConfig.getCommitIndexAdvanceCountToSnapshot());
assertEquals(75, raftAlgorithmConfig.getUncommittedEntryCountToRejectNewAppends());
assertEquals(50, raftAlgorithmConfig.getAppendRequestBackoffTimeoutInMillis());
SemaphoreConfig semaphoreConfig1 = cpSubsystemConfig.findSemaphoreConfig("sem1");
SemaphoreConfig semaphoreConfig2 = cpSubsystemConfig.findSemaphoreConfig("sem2");
assertNotNull(semaphoreConfig1);
assertNotNull(semaphoreConfig2);
assertTrue(semaphoreConfig1.isJDKCompatible());
assertFalse(semaphoreConfig2.isJDKCompatible());
assertEquals(1, semaphoreConfig1.getInitialPermits());
assertEquals(2, semaphoreConfig2.getInitialPermits());
FencedLockConfig lockConfig1 = cpSubsystemConfig.findLockConfig("lock1");
FencedLockConfig lockConfig2 = cpSubsystemConfig.findLockConfig("lock2");
assertNotNull(lockConfig1);
assertNotNull(lockConfig2);
assertEquals(1, lockConfig1.getLockAcquireLimit());
assertEquals(2, lockConfig2.getLockAcquireLimit());
}
use of com.hazelcast.config.cp.CPSubsystemConfig in project hazelcast by hazelcast.
the class ConfigValidatorTest method testValidationFails_whenGroupSizeGreaterThanCPMemberCount.
@Test(expected = IllegalArgumentException.class)
public void testValidationFails_whenGroupSizeGreaterThanCPMemberCount() {
CPSubsystemConfig config = new CPSubsystemConfig();
config.setGroupSize(5);
config.setCPMemberCount(3);
checkCPSubsystemConfig(config);
}
use of com.hazelcast.config.cp.CPSubsystemConfig in project hazelcast by hazelcast.
the class ConfigValidatorTest method testValidationFails_whenGroupSizeSetCPMemberCountNotSet.
@Test(expected = IllegalArgumentException.class)
public void testValidationFails_whenGroupSizeSetCPMemberCountNotSet() {
CPSubsystemConfig config = new CPSubsystemConfig();
config.setGroupSize(3);
checkCPSubsystemConfig(config);
}
use of com.hazelcast.config.cp.CPSubsystemConfig in project hazelcast by hazelcast.
the class CPConfigCheckerTest method whenSessionTTL_lessThanHeartbeatInterval.
@Test(expected = IllegalArgumentException.class)
public void whenSessionTTL_lessThanHeartbeatInterval() {
Config config = new Config();
CPSubsystemConfig cpSubsystemConfig = config.getCPSubsystemConfig();
cpSubsystemConfig.setSessionTimeToLiveSeconds(5);
cpSubsystemConfig.setSessionHeartbeatIntervalSeconds(10);
checkCPSubsystemConfig(cpSubsystemConfig);
}
use of com.hazelcast.config.cp.CPSubsystemConfig in project hazelcast by hazelcast.
the class CPConfigCheckerTest method whenGroupSize_greaterThanMax.
@Test(expected = IllegalArgumentException.class)
public void whenGroupSize_greaterThanMax() {
Config config = new Config();
CPSubsystemConfig cpSubsystemConfig = config.getCPSubsystemConfig();
cpSubsystemConfig.setGroupSize(CPSubsystemConfig.MAX_GROUP_SIZE + 1);
}
Aggregations