def test_simple_services_start_stop(self, ignite_version): """ Tests plain services start and stop (termitation vs self-terination). """ ignites = IgniteService( self.test_context, IgniteConfiguration(version=IgniteVersion(ignite_version)), num_nodes=1) ignites.start() client = IgniteService( self.test_context, IgniteClientConfiguration(version=IgniteVersion(ignite_version)), num_nodes=1) client.start() node1 = IgniteApplicationService( self.test_context, IgniteClientConfiguration( version=IgniteVersion(ignite_version), discovery_spi=from_ignite_cluster(ignites)), java_class_name= "org.apache.ignite.internal.ducktest.tests.self_test.TestKillableApplication", startup_timeout_sec=180) node2 = IgniteApplicationService( self.test_context, IgniteClientConfiguration( version=IgniteVersion(ignite_version), discovery_spi=from_ignite_cluster(ignites)), java_class_name= "org.apache.ignite.internal.ducktest.tests.self_test.TestSelfKillableApplication", startup_timeout_sec=180) node1.start() node2.run() node1.stop() client.stop() ignites.stop()
def test_thin_client_compatibility(self, server_version, thin_client_version): """ Thin client compatibility test. """ server_config = IgniteConfiguration(version=IgniteVersion(server_version), client_connector_configuration=ClientConnectorConfiguration()) ignite = IgniteService(self.test_context, server_config, 1) addresses = ignite.nodes[0].account.hostname + ":" + str(server_config.client_connector_configuration.port) thin_clients = IgniteApplicationService(self.test_context, IgniteThinClientConfiguration(addresses=addresses, version=IgniteVersion( thin_client_version)), java_class_name=self.JAVA_CLIENT_CLASS_NAME, num_nodes=1) ignite.start() thin_clients.run() ignite.stop()
def test_distribution(self, ignite_version): """ Tests Cellular Affinity scenario (partition distribution). """ cell1 = self.start_cell(ignite_version, ['-D' + CellularAffinity.ATTRIBUTE + '=1']) discovery_spi = from_ignite_cluster(cell1) cell2 = self.start_cell(ignite_version, ['-D' + CellularAffinity.ATTRIBUTE + '=2'], discovery_spi) cell3 = self.start_cell( ignite_version, ['-D' + CellularAffinity.ATTRIBUTE + '=XXX', '-DRANDOM=42'], discovery_spi) for cell in [cell1, cell2, cell3]: cell.await_started() ControlUtility(cell1).activate() checker = IgniteApplicationService( self.test_context, IgniteClientConfiguration( version=IgniteVersion(ignite_version), discovery_spi=from_ignite_cluster(cell1)), java_class_name= "org.apache.ignite.internal.ducktest.tests.cellular_affinity_test.DistributionChecker", params={ "cacheName": CellularAffinity.CACHE_NAME, "attr": CellularAffinity.ATTRIBUTE, "nodesPerCell": self.NODES_PER_CELL }) checker.run()
def node_join_historical_test(self, ignite_version, backups, cache_count, entry_count, entry_size, preloaders, thread_pool_size, batch_size, batches_prefetch_count, throttle): """ Test historycal rebalance. """ preload_entries = 10_000 reb_params = RebalanceParams( trigger_event=TriggerEvent.NODE_JOIN, backups=backups, cache_count=cache_count, entry_count=entry_count, entry_size=entry_size, preloaders=preloaders, thread_pool_size=thread_pool_size, batch_size=batch_size, batches_prefetch_count=batches_prefetch_count, throttle=throttle, persistent=True, jvm_opts=[ '-DIGNITE_PDS_WAL_REBALANCE_THRESHOLD=0', '-DIGNITE_PREFER_WAL_REBALANCE=true' ]) ignites = start_ignite(self.test_context, ignite_version, reb_params) control_utility = ControlUtility(ignites) control_utility.activate() preloader_config = ignites.config._replace( client_mode=True, discovery_spi=from_ignite_cluster(ignites)) preloader = IgniteApplicationService( self.test_context, preloader_config, java_class_name= "org.apache.ignite.internal.ducktest.tests.rebalance.DataGenerationApplication", params={ "backups": 1, "cacheCount": 1, "entrySize": 1, "from": 0, "to": preload_entries }) preloader.run() preloader.free() control_utility.deactivate() control_utility.activate() node = ignites.nodes[-1] ignites.stop_node(node) assert ignites.wait_node(node) preload_time = preload_data( self.test_context, ignites.config._replace( client_mode=True, discovery_spi=from_ignite_cluster(ignites)), rebalance_params=reb_params) control_utility.deactivate() control_utility.activate() self.logger.debug( f'DB size before rebalance: {get_database_size_mb(ignites.nodes, ignites.database_dir)}' ) ignites.start_node(node) ignites.await_started() rebalance_nodes = [node] await_and_check_rebalance(ignites, rebalance_nodes, False) result = get_result(rebalance_nodes, preload_time, cache_count, entry_count, entry_size) control_utility.deactivate() self.logger.debug( f'DB size after rebalance: {get_database_size_mb(ignites.nodes, ignites.database_dir)}' ) return result