[phoenix] 10/34: PHOENIX-4854 Make LoggingPhoenixResultSet idempotent when logging metrics

2019-04-19 Thread tdsilva
This is an automated email from the ASF dual-hosted git repository.

tdsilva pushed a commit to branch 4.14-HBase-1.4
in repository https://gitbox.apache.org/repos/asf/phoenix.git

commit c6df225c633ad03da13b9ba559b502c216029fc1
Author: Karan Mehta 
AuthorDate: Mon Aug 20 10:12:37 2018 -0700

PHOENIX-4854 Make LoggingPhoenixResultSet idempotent when logging metrics
---
 .../monitoring/PhoenixLoggingMetricsIT.java| 49 --
 .../phoenix/jdbc/LoggingPhoenixResultSet.java  | 15 +--
 2 files changed, 38 insertions(+), 26 deletions(-)

diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
index 97b2c5d..7e56902 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
@@ -26,6 +26,7 @@ import org.junit.Test;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
+import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Map;
 
@@ -44,6 +45,8 @@ public class PhoenixLoggingMetricsIT extends 
BasePhoenixMetricsIT {
 private String tableName2;
 private LoggingPhoenixConnection loggedConn;
 private String loggedSql;
+private int logOverAllReadRequestMetricsFuncCallCount;
+private int logRequestReadMetricsFuncCallCount;
 
 @Before
 public void beforeTest() throws Exception {
@@ -69,17 +72,7 @@ public class PhoenixLoggingMetricsIT extends 
BasePhoenixMetricsIT {
 public void testPhoenixMetricsLoggedOnCommit() throws Exception {
 // run SELECT to verify read metrics are logged
 String query = "SELECT * FROM " + tableName1;
-Statement stmt = loggedConn.createStatement();
-ResultSet rs = stmt.executeQuery(query);
-while (rs.next()) {
-}
-rs.close();
-assertTrue("Read metrics for not found for " + tableName1,
-requestReadMetricsMap.get(tableName1).size() > 0);
-assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
-
-assertTrue("Overall read metrics for not found ", 
overAllQueryMetricsMap.size() > 0);
-assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
+verifyQueryLevelMetricsLogging(query);
 
 // run UPSERT SELECT to verify mutation metrics are logged
 String upsertSelect = "UPSERT INTO " + tableName2 + " SELECT * FROM " 
+ tableName1;
@@ -117,17 +110,7 @@ public class PhoenixLoggingMetricsIT extends 
BasePhoenixMetricsIT {
 public void testPhoenixMetricsLoggedOnClose() throws Exception {
 // run SELECT to verify read metrics are logged
 String query = "SELECT * FROM " + tableName1;
-Statement stmt = loggedConn.createStatement();
-ResultSet rs = stmt.executeQuery(query);
-while (rs.next()) {
-}
-rs.close();
-assertTrue("Read metrics for not found for " + tableName1,
-requestReadMetricsMap.get(tableName1).size() > 0);
-assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
-
-assertTrue("Overall read metrics for not found ", 
overAllQueryMetricsMap.size() > 0);
-assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
+verifyQueryLevelMetricsLogging(query);
 
 // run UPSERT SELECT to verify mutation metrics are logged
 String upsertSelect = "UPSERT INTO " + tableName2 + " SELECT * FROM " 
+ tableName1;
@@ -151,6 +134,26 @@ public class PhoenixLoggingMetricsIT extends 
BasePhoenixMetricsIT {
 mutationReadMetricsMap.size() == 0);
 }
 
+private void verifyQueryLevelMetricsLogging(String query) throws 
SQLException {
+Statement stmt = loggedConn.createStatement();
+ResultSet rs = stmt.executeQuery(query);
+while (rs.next()) {
+}
+rs.close();
+assertTrue("Read metrics for not found for " + tableName1,
+requestReadMetricsMap.get(tableName1).size() > 0);
+assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
+assertTrue(logOverAllReadRequestMetricsFuncCallCount == 1);
+assertTrue(logRequestReadMetricsFuncCallCount == 1);
+
+assertTrue("Overall read metrics for not found ", 
overAllQueryMetricsMap.size() > 0);
+assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
+
+rs.close();
+assertTrue(logOverAllReadRequestMetricsFuncCallCount == 1);
+assertTrue(logRequestReadMetricsFuncCallCount == 1);
+}
+
 void clearAllTestMetricMaps() {
 overAllQueryMetricsMap.clear();
 requestReadMetricsMap.clear();
@@ -165,6 +168,7 @@ public class PhoenixLoggingMetricsIT extends 

[phoenix] 10/34: PHOENIX-4854 Make LoggingPhoenixResultSet idempotent when logging metrics

2019-04-19 Thread tdsilva
This is an automated email from the ASF dual-hosted git repository.

tdsilva pushed a commit to branch 4.14-HBase-1.2
in repository https://gitbox.apache.org/repos/asf/phoenix.git

commit f8859c82129fb56f37bc7c83a8a671b1f424cb7f
Author: Karan Mehta 
AuthorDate: Mon Aug 20 10:12:37 2018 -0700

PHOENIX-4854 Make LoggingPhoenixResultSet idempotent when logging metrics
---
 .../monitoring/PhoenixLoggingMetricsIT.java| 49 --
 .../phoenix/jdbc/LoggingPhoenixResultSet.java  | 15 +--
 2 files changed, 38 insertions(+), 26 deletions(-)

diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
index 97b2c5d..7e56902 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
@@ -26,6 +26,7 @@ import org.junit.Test;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
+import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Map;
 
@@ -44,6 +45,8 @@ public class PhoenixLoggingMetricsIT extends 
BasePhoenixMetricsIT {
 private String tableName2;
 private LoggingPhoenixConnection loggedConn;
 private String loggedSql;
+private int logOverAllReadRequestMetricsFuncCallCount;
+private int logRequestReadMetricsFuncCallCount;
 
 @Before
 public void beforeTest() throws Exception {
@@ -69,17 +72,7 @@ public class PhoenixLoggingMetricsIT extends 
BasePhoenixMetricsIT {
 public void testPhoenixMetricsLoggedOnCommit() throws Exception {
 // run SELECT to verify read metrics are logged
 String query = "SELECT * FROM " + tableName1;
-Statement stmt = loggedConn.createStatement();
-ResultSet rs = stmt.executeQuery(query);
-while (rs.next()) {
-}
-rs.close();
-assertTrue("Read metrics for not found for " + tableName1,
-requestReadMetricsMap.get(tableName1).size() > 0);
-assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
-
-assertTrue("Overall read metrics for not found ", 
overAllQueryMetricsMap.size() > 0);
-assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
+verifyQueryLevelMetricsLogging(query);
 
 // run UPSERT SELECT to verify mutation metrics are logged
 String upsertSelect = "UPSERT INTO " + tableName2 + " SELECT * FROM " 
+ tableName1;
@@ -117,17 +110,7 @@ public class PhoenixLoggingMetricsIT extends 
BasePhoenixMetricsIT {
 public void testPhoenixMetricsLoggedOnClose() throws Exception {
 // run SELECT to verify read metrics are logged
 String query = "SELECT * FROM " + tableName1;
-Statement stmt = loggedConn.createStatement();
-ResultSet rs = stmt.executeQuery(query);
-while (rs.next()) {
-}
-rs.close();
-assertTrue("Read metrics for not found for " + tableName1,
-requestReadMetricsMap.get(tableName1).size() > 0);
-assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
-
-assertTrue("Overall read metrics for not found ", 
overAllQueryMetricsMap.size() > 0);
-assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
+verifyQueryLevelMetricsLogging(query);
 
 // run UPSERT SELECT to verify mutation metrics are logged
 String upsertSelect = "UPSERT INTO " + tableName2 + " SELECT * FROM " 
+ tableName1;
@@ -151,6 +134,26 @@ public class PhoenixLoggingMetricsIT extends 
BasePhoenixMetricsIT {
 mutationReadMetricsMap.size() == 0);
 }
 
+private void verifyQueryLevelMetricsLogging(String query) throws 
SQLException {
+Statement stmt = loggedConn.createStatement();
+ResultSet rs = stmt.executeQuery(query);
+while (rs.next()) {
+}
+rs.close();
+assertTrue("Read metrics for not found for " + tableName1,
+requestReadMetricsMap.get(tableName1).size() > 0);
+assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
+assertTrue(logOverAllReadRequestMetricsFuncCallCount == 1);
+assertTrue(logRequestReadMetricsFuncCallCount == 1);
+
+assertTrue("Overall read metrics for not found ", 
overAllQueryMetricsMap.size() > 0);
+assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
+
+rs.close();
+assertTrue(logOverAllReadRequestMetricsFuncCallCount == 1);
+assertTrue(logRequestReadMetricsFuncCallCount == 1);
+}
+
 void clearAllTestMetricMaps() {
 overAllQueryMetricsMap.clear();
 requestReadMetricsMap.clear();
@@ -165,6 +168,7 @@ public class PhoenixLoggingMetricsIT extends 

[phoenix] 10/34: PHOENIX-4854 Make LoggingPhoenixResultSet idempotent when logging metrics

2019-04-19 Thread tdsilva
This is an automated email from the ASF dual-hosted git repository.

tdsilva pushed a commit to branch 4.14-HBase-1.3
in repository https://gitbox.apache.org/repos/asf/phoenix.git

commit 7dc1fbd3f0c794099d59fec3564e787d9424c096
Author: Karan Mehta 
AuthorDate: Mon Aug 20 10:12:37 2018 -0700

PHOENIX-4854 Make LoggingPhoenixResultSet idempotent when logging metrics
---
 .../monitoring/PhoenixLoggingMetricsIT.java| 49 --
 .../phoenix/jdbc/LoggingPhoenixResultSet.java  | 15 +--
 2 files changed, 38 insertions(+), 26 deletions(-)

diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
index 97b2c5d..7e56902 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
@@ -26,6 +26,7 @@ import org.junit.Test;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
+import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Map;
 
@@ -44,6 +45,8 @@ public class PhoenixLoggingMetricsIT extends 
BasePhoenixMetricsIT {
 private String tableName2;
 private LoggingPhoenixConnection loggedConn;
 private String loggedSql;
+private int logOverAllReadRequestMetricsFuncCallCount;
+private int logRequestReadMetricsFuncCallCount;
 
 @Before
 public void beforeTest() throws Exception {
@@ -69,17 +72,7 @@ public class PhoenixLoggingMetricsIT extends 
BasePhoenixMetricsIT {
 public void testPhoenixMetricsLoggedOnCommit() throws Exception {
 // run SELECT to verify read metrics are logged
 String query = "SELECT * FROM " + tableName1;
-Statement stmt = loggedConn.createStatement();
-ResultSet rs = stmt.executeQuery(query);
-while (rs.next()) {
-}
-rs.close();
-assertTrue("Read metrics for not found for " + tableName1,
-requestReadMetricsMap.get(tableName1).size() > 0);
-assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
-
-assertTrue("Overall read metrics for not found ", 
overAllQueryMetricsMap.size() > 0);
-assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
+verifyQueryLevelMetricsLogging(query);
 
 // run UPSERT SELECT to verify mutation metrics are logged
 String upsertSelect = "UPSERT INTO " + tableName2 + " SELECT * FROM " 
+ tableName1;
@@ -117,17 +110,7 @@ public class PhoenixLoggingMetricsIT extends 
BasePhoenixMetricsIT {
 public void testPhoenixMetricsLoggedOnClose() throws Exception {
 // run SELECT to verify read metrics are logged
 String query = "SELECT * FROM " + tableName1;
-Statement stmt = loggedConn.createStatement();
-ResultSet rs = stmt.executeQuery(query);
-while (rs.next()) {
-}
-rs.close();
-assertTrue("Read metrics for not found for " + tableName1,
-requestReadMetricsMap.get(tableName1).size() > 0);
-assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
-
-assertTrue("Overall read metrics for not found ", 
overAllQueryMetricsMap.size() > 0);
-assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
+verifyQueryLevelMetricsLogging(query);
 
 // run UPSERT SELECT to verify mutation metrics are logged
 String upsertSelect = "UPSERT INTO " + tableName2 + " SELECT * FROM " 
+ tableName1;
@@ -151,6 +134,26 @@ public class PhoenixLoggingMetricsIT extends 
BasePhoenixMetricsIT {
 mutationReadMetricsMap.size() == 0);
 }
 
+private void verifyQueryLevelMetricsLogging(String query) throws 
SQLException {
+Statement stmt = loggedConn.createStatement();
+ResultSet rs = stmt.executeQuery(query);
+while (rs.next()) {
+}
+rs.close();
+assertTrue("Read metrics for not found for " + tableName1,
+requestReadMetricsMap.get(tableName1).size() > 0);
+assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
+assertTrue(logOverAllReadRequestMetricsFuncCallCount == 1);
+assertTrue(logRequestReadMetricsFuncCallCount == 1);
+
+assertTrue("Overall read metrics for not found ", 
overAllQueryMetricsMap.size() > 0);
+assertTrue("Logged query doesn't match actual query", 
loggedSql.equals(query));
+
+rs.close();
+assertTrue(logOverAllReadRequestMetricsFuncCallCount == 1);
+assertTrue(logRequestReadMetricsFuncCallCount == 1);
+}
+
 void clearAllTestMetricMaps() {
 overAllQueryMetricsMap.clear();
 requestReadMetricsMap.clear();
@@ -165,6 +168,7 @@ public class PhoenixLoggingMetricsIT extends