Skip to content

Commit 9958710

Browse files
authored
Merge pull request #15 from riptano/CPP-884
Fix metrics tests and deprecate unused metric
2 parents 3f27f5c + 48ca5ed commit 9958710

File tree

5 files changed

+9
-31
lines changed

5 files changed

+9
-31
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Features
1818

1919
Bug Fixes
2020
--------
21+
* [CPP-884] Deprecate pending request timeouts metric and remove unused internal logic
2122
* [CPP-871] Fix SSL cleanup on error conditions in mockssandra
2223
* [CPP-855] Fix C\*/DSE protocol lowering attempts when `cass_cluster_set_use_beta_protocol_version()` is true
2324

include/cassandra.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ typedef struct CassMetrics_ {
423423

424424
struct {
425425
cass_uint64_t connection_timeouts; /**< Occurrences of a connection timeout */
426-
cass_uint64_t pending_request_timeouts; /**< Occurrences of requests that timed out waiting for a connection */
426+
cass_uint64_t pending_request_timeouts; /**< Deprecated */
427427
cass_uint64_t request_timeouts; /**< Occurrences of requests that timed out waiting for a request to finish */
428428
} errors; /**< Error metrics */
429429
} CassMetrics;

src/metrics.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,6 @@ class Metrics : public Allocated {
420420
, request_rates(&thread_state_)
421421
, total_connections(&thread_state_)
422422
, connection_timeouts(&thread_state_)
423-
, pending_request_timeouts(&thread_state_)
424423
, request_timeouts(&thread_state_) {}
425424

426425
void record_request(uint64_t latency_ns) {
@@ -446,7 +445,6 @@ class Metrics : public Allocated {
446445
Counter total_connections;
447446

448447
Counter connection_timeouts;
449-
Counter pending_request_timeouts;
450448
Counter request_timeouts;
451449

452450
private:

src/session.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ void cass_session_get_metrics(const CassSession* session, CassMetrics* metrics)
136136
metrics->stats.exceeded_pending_requests_water_mark = 0; // Deprecated
137137

138138
metrics->errors.connection_timeouts = internal_metrics->connection_timeouts.sum();
139-
metrics->errors.pending_request_timeouts = internal_metrics->pending_request_timeouts.sum();
139+
metrics->errors.pending_request_timeouts = 0; // Deprecated
140140
metrics->errors.request_timeouts = internal_metrics->request_timeouts.sum();
141141
}
142142

tests/src/integration/tests/test_metrics.cpp

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
#include "integration.hpp"
1818

19-
#define SPECULATIVE_EXECUTION_SELECT_FORMAT "SELECT timeout(value) FROM %s WHERE key=%d"
19+
#define SPECULATIVE_EXECUTION_SELECT_FORMAT "SELECT timeout(value) FROM %s.%s WHERE key=%d"
2020
#define SPECULATIVE_EXECUTION_CREATE_TIMEOUT_UDF_FORMAT \
2121
"CREATE OR REPLACE FUNCTION %s.timeout(arg int) " \
2222
"RETURNS NULL ON NULL INPUT RETURNS int LANGUAGE java " \
@@ -76,28 +76,6 @@ CASSANDRA_INTEGRATION_TEST_F(MetricsTests, ErrorsConnectionTimeouts) {
7676
EXPECT_GE(2u, metrics.errors.connection_timeouts);
7777
}
7878

79-
/**
80-
* This test ensures that the driver is reporting the proper timeouts for pending requests
81-
*
82-
* @since 2.0.0
83-
* @jira_ticket CPP-188
84-
*/
85-
CASSANDRA_INTEGRATION_TEST_F(MetricsTests, ErrorsPendingRequestTimeouts) {
86-
CHECK_FAILURE;
87-
CHECK_VERSION(2.1.2);
88-
89-
for (int n = 0; n < 1000; ++n) {
90-
session_.execute_async(SELECT_ALL_SYSTEM_LOCAL_CQL);
91-
}
92-
93-
CassMetrics metrics = session_.metrics();
94-
for (int i = 0; i < 100 && metrics.errors.pending_request_timeouts == 0; ++i) {
95-
metrics = session_.metrics();
96-
msleep(100);
97-
}
98-
EXPECT_GT(metrics.errors.pending_request_timeouts, 0u);
99-
}
100-
10179
/**
10280
* This test ensures that the driver is reporting the proper timeouts for requests
10381
*
@@ -173,20 +151,21 @@ CASSANDRA_INTEGRATION_TEST_F(MetricsTests, SpeculativeExecutionRequests) {
173151
CHECK_FAILURE;
174152
CHECK_VERSION(2.2.0);
175153

176-
Session session = default_cluster().with_constant_speculative_execution_policy(100, 20).connect();
154+
Session session = default_cluster().with_constant_speculative_execution_policy(100, 10).connect();
177155

178156
session.execute(format_string(CASSANDRA_KEY_VALUE_QUALIFIED_TABLE_FORMAT, keyspace_name_.c_str(),
179157
table_name_.c_str(), "int", "int"));
180158
session.execute(format_string(CASSANDRA_KEY_VALUE_QUALIFIED_INSERT_FORMAT, keyspace_name_.c_str(),
181-
table_name_.c_str(), "0", "1000"));
159+
table_name_.c_str(), "0", "200"));
182160
session.execute(
183161
format_string(SPECULATIVE_EXECUTION_CREATE_TIMEOUT_UDF_FORMAT, keyspace_name_.c_str()));
184-
Statement statement(format_string(SPECULATIVE_EXECUTION_SELECT_FORMAT, table_name_.c_str(), 0));
162+
Statement statement(format_string(SPECULATIVE_EXECUTION_SELECT_FORMAT, keyspace_name_.c_str(),
163+
table_name_.c_str(), 0));
185164
statement.set_idempotent(true);
186165
statement.set_request_timeout(30000);
187166

188167
CassSpeculativeExecutionMetrics metrics = session.speculative_execution_metrics();
189-
for (int i = 0; i < 600 && metrics.count < 1000u; ++i) {
168+
for (int i = 0; i < 600 && metrics.count < 10; ++i) {
190169
session.execute_async(statement);
191170
metrics = session.speculative_execution_metrics();
192171
msleep(100);

0 commit comments

Comments
 (0)