LatencyAwarePolicyTest() : ccm_(new CCM::Bridge("config.txt")) , cluster_(cass_cluster_new()) , thread_() { uv_mutex_init(&lock_); uv_cond_init(&condition_); // Create the cluster if (ccm_->create_cluster(3)) { ccm_->start_cluster(); } // Initialize the cluster for latency aware cass_cluster_set_reconnect_wait_time(cluster_.get(), 1); cass_cluster_set_connect_timeout(cluster_.get(), 240 * test_utils::ONE_SECOND_IN_MICROS); cass_cluster_set_request_timeout(cluster_.get(), 240 * test_utils::ONE_SECOND_IN_MICROS); test_utils::initialize_contact_points(cluster_.get(), ccm_->get_ip_prefix(), 3, 0); cass_cluster_set_latency_aware_routing(cluster_.get(), cass_true); cass_cluster_set_latency_aware_routing_settings(cluster_.get(), 1e6, 1, 1, 1, 1); // Handle deprecated and removed protocol versions [CASSANDRA-10146] // https://issues.apache.org/jira/browse/CASSANDRA-10146 int protocol_version = 1; if (test_utils::get_version() >= "3.0.0") { protocol_version = 3; } cass_cluster_set_protocol_version(cluster_.get(), protocol_version); // Protocol for this test doesn't matter so simply support all C* versions // Connect to the cluster session_ = test_utils::create_session(cluster_.get()); }
MultipleNodesTest::MultipleNodesTest(unsigned int num_nodes_dc1, unsigned int num_nodes_dc2, unsigned int protocol_version, bool isSSL /* = false */) : conf(cql::get_ccm_bridge_configuration()) { boost::debug::detect_memory_leaks(false); ccm = cql::cql_ccm_bridge_t::create_and_start(conf, "test", num_nodes_dc1, num_nodes_dc2, isSSL); version = ccm->version(); uuid_gen = cass_uuid_gen_new(); cluster = cass_cluster_new(); initialize_contact_points(cluster, conf.ip_prefix(), num_nodes_dc1, num_nodes_dc2); cass_cluster_set_connect_timeout(cluster, 10 * ONE_SECOND_IN_MICROS); cass_cluster_set_request_timeout(cluster, 30 * ONE_SECOND_IN_MICROS); cass_cluster_set_core_connections_per_host(cluster, 2); cass_cluster_set_max_connections_per_host(cluster, 4); cass_cluster_set_num_threads_io(cluster, 4); cass_cluster_set_max_concurrent_creation(cluster, 8); cass_cluster_set_protocol_version(cluster, protocol_version); }
LatencyAwarePolicyTest() : ccm_(new CCM::Bridge("config.txt")) , cluster_(cass_cluster_new()) , thread_() { uv_mutex_init(&lock_); uv_cond_init(&condition_); // Create the cluster if (ccm_->create_cluster(3)) { ccm_->start_cluster(); } // Initialize the cluster for latency aware cass_cluster_set_reconnect_wait_time(cluster_.get(), 1); cass_cluster_set_connect_timeout(cluster_.get(), 240 * test_utils::ONE_SECOND_IN_MICROS); cass_cluster_set_request_timeout(cluster_.get(), 240 * test_utils::ONE_SECOND_IN_MICROS); test_utils::initialize_contact_points(cluster_.get(), ccm_->get_ip_prefix(), 3, 0); cass_cluster_set_latency_aware_routing(cluster_.get(), cass_true); cass_cluster_set_latency_aware_routing_settings(cluster_.get(), 1e6, 1, 1, 1, 1); cass_cluster_set_protocol_version(cluster_.get(), 1); // Protocol for this test doesn't matter so simply support all C* versions // Connect to the cluster session_ = test_utils::create_session(cluster_.get()); }
/** * Create the Cassandra cluster, initialize the cpp-driver cluster, and create * the connection to the cluster. * * @param is_ssl True if SSL should be enabled on Cassandra cluster; false * otherwise (default: true) * @param is_client_authentication True if client authentication should be * enabled on Cassandra cluster; false otherwise * (default: false) * @param is_failure True if test is supposed to fail; false otherwise * (default: false) * @param nodes Number of nodes for the cluster (default: 1) */ void setup(bool is_ssl = true, bool is_client_authentication = false, bool is_failure = false, unsigned int nodes = 1) { //Create a n-node cluster ccm_->create_cluster(nodes, 0, false, is_ssl, is_client_authentication); ccm_->start_cluster(); //Initialize the cpp-driver cluster_ = cass_cluster_new(); test_utils::initialize_contact_points(cluster_, ccm_->get_ip_prefix(), nodes); cass_cluster_set_connect_timeout(cluster_, 10000); cass_cluster_set_request_timeout(cluster_, 10000); cass_cluster_set_num_threads_io(cluster_, 1); cass_cluster_set_core_connections_per_host(cluster_, 2); cass_cluster_set_max_connections_per_host(cluster_, 4); cass_cluster_set_ssl(cluster_, ssl_); //Establish the connection (if ssl) session_ = cass_session_new(); connect_future_ = cass_session_connect(session_, cluster_); if (!is_failure) { test_utils::wait_and_check_error(connect_future_); } else { BOOST_REQUIRE(!cass_future_wait_timed(connect_future_, 2000)); //Ensure the wait is long enough for slow machines } }