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());
  }
예제 #2
0
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());
  }
예제 #4
0
  /**
   * 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
    }
  }