[ 
https://issues.apache.org/jira/browse/CASSANDRA-12184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Carl Yeksigian updated CASSANDRA-12184:
---------------------------------------
    Status: Patch Available  (was: Open)

Was down to an issue with a refactoring.

Just pushed a branch with a fix to capture that when merging the partition 
counts. Based off of how {{CompactionTask}} looked before the commit in 
[910170c|https://github.com/apache/cassandra/commit/910170c9d10bb6a71922a529b2f070cf27891a10#diff-1e6aa904a845e633b3a7d9693fc6bee5L264].

||3.0|[branch|https://github.com/carlyeks/cassandra/tree/ticket/12184/3.0]|[utest|http://cassci.datastax.com/view/Dev/view/carlyeks/job/carlyeks-ticket-12184-3.0-testall/]|[dtest|http://cassci.datastax.com/view/Dev/view/carlyeks/job/carlyeks-ticket-12184-3.0-dtest/]|

> incorrect compaction log information on totalSourceRows in C* pre-3.8 versions
> ------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-12184
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12184
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Compaction, Observability
>            Reporter: Wei Deng
>            Assignee: Carl Yeksigian
>            Priority: Minor
>             Fix For: 3.0.x
>
>
> I was looking at some confusing compaction log information on C* 3.0.7 and 
> realized that we have a bug that was trivially fixed in C* 3.8.
> Basically here is the log entry in debug.log (as most of the compaction 
> related log have been moved to debug.log due to adjustment in 
> CASSANDRA-10241).
> {noformat}
> DEBUG [CompactionExecutor:6] 2016-07-12 15:38:28,471  CompactionTask.java:217 
> - Compacted (96aa1ba6-4846-11e6-adb7-17866fa8ddfd) 4 sstables to 
> [/var/lib/cassandra/data/keyspace1/standard1-713f7920484411e6adb717866fa8ddfd/mb-5-big,]
>  to level=0.  267,974,735 bytes to 78,187,400 (~29% of original) in 39,067ms 
> = 1.908652MB/s.  0 total partitions merged to 332,904.  Partition merge 
> counts were {1:9008, 2:34822, 3:74505, 4:214569, }
> DEBUG [CompactionExecutor:4] 2016-07-12 20:51:56,578  CompactionTask.java:217 
> - Compacted (786cd9d0-4872-11e6-8755-79a37e6d8141) 4 sstables to 
> [/var/lib/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/mb-25-big,]
>  to level=0.  620 bytes to 498 (~80% of original) in 51ms = 0.009312MB/s.  0 
> total partitions merged to 6.  Partition merge counts were {1:4, 3:2, }
> DEBUG [CompactionExecutor:4] 2016-07-12 20:51:58,345  CompactionTask.java:217 
> - Compacted (79771de0-4872-11e6-8755-79a37e6d8141) 4 sstables to 
> [/var/lib/cassandra/data/system_schema/columns-24101c25a2ae3af787c1b40ee1aca33f/mb-65-big,]
>  to level=0.  14,113 bytes to 9,553 (~67% of original) in 70ms = 
> 0.130149MB/s.  0 total partitions merged to 16.  Partition merge counts were 
> {1:13, 2:2, 3:1, }
> DEBUG [CompactionExecutor:3] 2016-07-12 20:52:00,415  CompactionTask.java:217 
> - Compacted (7ab6a2c0-4872-11e6-8755-79a37e6d8141) 4 sstables to 
> [/var/lib/cassandra/data/system_schema/keyspaces-abac5682dea631c5b535b3d6cffd0fb6/mb-85-big,]
>  to level=0.  1,066 bytes to 611 (~57% of original) in 48ms = 0.012139MB/s.  
> 0 total partitions merged to 16.  Partition merge counts were {1:13, 2:2, 
> 4:1, }
> DEBUG [CompactionExecutor:4] 2016-07-12 20:52:00,442  CompactionTask.java:217 
> - Compacted (7abae880-4872-11e6-8755-79a37e6d8141) 4 sstables to 
> [/var/lib/cassandra/data/system_schema/tables-afddfb9dbc1e30688056eed6c302ba09/mb-77-big,]
>  to level=0.  6,910 bytes to 4,396 (~63% of original) in 48ms = 0.087341MB/s. 
>  0 total partitions merged to 16.  Partition merge counts were {1:13, 2:2, 
> 3:1, }
> {noformat}
> Note no matter if it's system table or user table, it's always showing "0 
> total partitions merged to xx", which is incorrect information due to this 
> code segment 
> https://github.com/apache/cassandra/blob/cassandra-3.0.7/src/java/org/apache/cassandra/db/compaction/CompactionTask.java#L215-217.
>  Basically it only initialized the totalSourceRows value with 0 and never 
> assigned a real calculated value to it. Looks like the latest 
> [commit|https://github.com/tjake/cassandra/blob/dc2951d1684777cf70aab401515d755699af99bc/src/java/org/apache/cassandra/db/compaction/CompactionTask.java#L225-226]
>  from CASSANDRA-12080 fixed this problem, but it only got checked into 3.8 
> branch.
> Since this can make people doubt the accuracy of compaction related log 
> entries, and the changes made in CASSANDRA-12080 are only log metrics 
> related, low impact changes, I'd advocate we backport the change from 
> CASSANDRA-12080 into C*-3.0 branch as many people's production C*-3.0 version 
> can benefit from the bug fix, along with better compaction log information in 
> general. I realize that CASSANDRA-12080 may be based on the C*-3.6 changes in 
> CASSANDRA-10805, so this means we may have to bring in changes from 
> CASSANDRA-10805 as well if CASSANDRA-12080 cannot be cleanly rebased on 
> C*-3.0 branch, but both are going to benefit compaction observability in 
> production on C*-3.0.x versions, so both should be welcomed changes in C*-3.0 
> branch.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to