[ https://issues.apache.org/jira/browse/HBASE-4542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Phabricator updated HBASE-4542: ------------------------------- Attachment: D1539.1.patch zhiqiu requested code review of "[jira] [HBASE-4542] [89-fb] Add filter info to slow query logging". Reviewers: Kannan, madhuvaidya, mbautin, JIRA Slow opertaion log does not provide enough information when a filter is present. The followings are done to add the filter info: 1) Added toString() method for filters inheriting FilterBase, this affect 22 filters and their subclasses. The info added includes the filter's name and its members. For example, for TimestampsFilter, we'll output its class name as well as the defined timestamps. 2) Added a field 'filter' in Get::toMap() and Scan::toMap() to enable the logging of filter info. Task ID: #750975 Blame Rev: TEST PLAN 1. Run and passed unit-tests to make sure it does not break things 2. Run kannan's script to trigger the slow operation logging, checked for each filter to make sure the filter info was logged. To be more detailed, the output log are as following (only 'filter' filed is put here for ease of reading): "filter":"TimestampsFilter (3/3): [2, 3, 5]" "filter":"TimestampsFilter (5/6): [2, 3, 5, 7, 11]" "filter":"ColumnPrefixFilter col2" "filter":"ColumnRangeFilter [col2a, col2b]" "filter":"ColumnCountGetFilter 8" "filter":"ColumnPaginationFilter (4, 4)" "filter":"InclusiveStopFilter row" "filter":"PrefixFilter row" "filter":"PageFilter 1" "filter":"SkipFilter TimestampsFilter (1/1): [1000]" "filter":"WhileMatchFilter TimestampsFilter (3/3): [2, 3, 5]" "filter":"KeyOnlyFilter" "filter":"FirstKeyOnlyFilter" "filter":"MultipleColumnPrefixFilter (3/3): [a, b, c]" "filter":"DependentColumnFilter (family, qualifier, true, LESS, value)" "filter":"FamilyFilter (LESS, value)" "filter":"QualifierFilter (LESS, value)" "filter":"RowFilter (LESS, value)" "filter":"ValueFilter (LESS, value)" "filter":"KeyOnlyFilter" "filter":"FirstKeyOnlyFilter" "filter":"SingleColumnValueFilter (family, qualifier, EQUAL, value)" "filter":"SingleColumnValueExcludeFilter (family, qualifier, EQUAL, value)" "filter":"FilterList AND (2/2): [KeyOnlyFilter, FirstKeyOnlyFilter]" Please check ~zhiqiu/Codes/scripts/testFilter.rb for the testing script. 3. Added unit test cases to TestOperation to verify the filters' toString() method works well. Revert Plan: Tags: REVISION DETAIL https://reviews.facebook.net/D1539 AFFECTED FILES src/main/java/org/apache/hadoop/hbase/client/Get.java src/main/java/org/apache/hadoop/hbase/client/Scan.java src/main/java/org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java src/main/java/org/apache/hadoop/hbase/filter/ColumnPaginationFilter.java src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java src/main/java/org/apache/hadoop/hbase/filter/ColumnRangeFilter.java src/main/java/org/apache/hadoop/hbase/filter/CompareFilter.java src/main/java/org/apache/hadoop/hbase/filter/DependentColumnFilter.java src/main/java/org/apache/hadoop/hbase/filter/FilterBase.java src/main/java/org/apache/hadoop/hbase/filter/FilterList.java src/main/java/org/apache/hadoop/hbase/filter/InclusiveStopFilter.java src/main/java/org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java src/main/java/org/apache/hadoop/hbase/filter/PageFilter.java src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java src/main/java/org/apache/hadoop/hbase/filter/SkipFilter.java src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java src/test/java/org/apache/hadoop/hbase/client/TestOperation.java MANAGE HERALD DIFFERENTIAL RULES https://reviews.facebook.net/herald/view/differential/ WHY DID I GET THIS EMAIL? https://reviews.facebook.net/herald/transcript/3231/ Tip: use the X-Herald-Rules header to filter Herald messages in your client. > add filter info to slow query logging > ------------------------------------- > > Key: HBASE-4542 > URL: https://issues.apache.org/jira/browse/HBASE-4542 > Project: HBase > Issue Type: Improvement > Reporter: Kannan Muthukkaruppan > Assignee: Madhuwanti Vaidya > Attachments: D1263.2.patch, D1539.1.patch > > > Slow query log doesn't report filters in effect. > For example: > {code} > (operationTooSlow): \ > {"processingtimems":3468,"client":"10.138.43.206:40035","timeRange": > [0,9223372036854775807],\ > "starttimems":1317772005821,"responsesize":42411, \ > "class":"HRegionServer","table":"myTable","families":{"CF1":"ALL"]},\ > "row":"6c3b8efa132f0219b7621ed1e5c8c70b","queuetimems":0,\ > "method":"get","totalColumns":1,"maxVersions":1,"storeLimit":-1} > {code} > the above would suggest that all columns of myTable:CF1 are being requested > for the given row. But in reality there could be filters in effect (such as > ColumnPrefixFilter, ColumnRangeFilter, TimestampsFilter() etc.). We should > enhance the slow query log to capture & report this information. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira