You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/09/05 21:36:00 UTC

[jira] [Commented] (PHOENIX-4870) LoggingPhoenixConnection should log metrics when AutoCommit is set to True.

    [ https://issues.apache.org/jira/browse/PHOENIX-4870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16604983#comment-16604983 ] 

ASF GitHub Bot commented on PHOENIX-4870:
-----------------------------------------

Github user karanmehta93 commented on a diff in the pull request:

    https://github.com/apache/phoenix/pull/338#discussion_r215432475
  
    --- Diff: phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixStatement.java ---
    @@ -25,28 +28,38 @@
     
         private PhoenixMetricsLog phoenixMetricsLog;
         private String sql;
    -    
    -    public LoggingPhoenixStatement(Statement stmt, PhoenixMetricsLog phoenixMetricsLog) {
    +    private Connection conn;
    +
    +    public LoggingPhoenixStatement(Connection conn, Statement stmt, PhoenixMetricsLog phoenixMetricsLog) {
             super(stmt);
             this.phoenixMetricsLog = phoenixMetricsLog;
    +        this.conn = conn;
    --- End diff --
    
    same comment as above.


> LoggingPhoenixConnection should log metrics when AutoCommit is set to True.
> ---------------------------------------------------------------------------
>
>                 Key: PHOENIX-4870
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4870
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.14.0
>            Reporter: Swaroopa Kadam
>            Assignee: Swaroopa Kadam
>            Priority: Major
>
> When LoggingPhoenixConnection calls commit or close, metrics logs are written properly, however, when LoggingPhoenixConnection is explicitly set with AutoCommit as true, metrics don't get logged at all. This bug can also be tested by adding the following test scenario in PhoenixLoggingMetricsIT.java class. 
> {code:java}
> @Test
> public void testPhoenixMetricsLoggedOnAutoCommit() throws Exception {
>     // Autocommit is turned on explicitly
>     loggedConn.setAutoCommit(true);
>     //with executeUpdate() method
>     // run SELECT to verify read metrics are logged
>     String query = "SELECT * FROM " + tableName1;
>     verifyQueryLevelMetricsLogging(query);
>     // run UPSERT SELECT to verify mutation metrics are logged
>     String upsertSelect = "UPSERT INTO " + tableName2 + " SELECT * FROM " + tableName1;
>     loggedConn.createStatement().executeUpdate(upsertSelect);
>     // Autocommit is turned on explicitly
>     // Hence mutation metrics are expected during implicit commit
>     assertTrue("Mutation write metrics are not logged for " + tableName2,
>             mutationWriteMetricsMap.size()  > 0);
>     assertTrue("Mutation read metrics for not found for " + tableName1,
>             mutationReadMetricsMap.get(tableName1).size() > 0);
>     //with execute() method
>     loggedConn.createStatement().execute(upsertSelect);
>     // Autocommit is turned on explicitly
>     // Hence mutation metrics are expected during implicit commit
>     assertTrue("Mutation write metrics are not logged for " + tableName2,
>             mutationWriteMetricsMap.size()  > 0);
>     assertTrue("Mutation read metrics for not found for " + tableName1,
>             mutationReadMetricsMap.get(tableName1).size() > 0);
>     clearAllTestMetricMaps();
> }
> {code}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)