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

Jon Haddad edited comment on CASSANDRA-13010 at 3/2/17 12:26 AM:
-----------------------------------------------------------------

I set up 6 data directories and dropped my memtable_heap_space_in_mb to 32 MB 
to force a ton of flushes and lots of compactions.  I do see directories in the 
compactionstats, indicating that it's working, but i haven't verified the right 
directories are listed.  

The output is a little hard to read, since the directories make the output look 
like this:

{code}
jhaddad@rustyrazorblade ~/dev/cassandra$ bin/nodetool compactionstats
pending tasks: 6
- keyspace1.standard1: 6

id                                   compaction type keyspace  table     target 
directory                                                                       
     completed total    unit  progress
7f3e7a40-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
/Users/jhaddad/var/lib/cassandra/data1/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
 17696623  38340460 bytes 46.16%
83c14340-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
/Users/jhaddad/var/lib/cassandra/data4/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
 3651789   33841385 bytes 10.79%
7a1beed0-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
/Users/jhaddad/var/lib/cassandra/data3/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
 34012548  37166390 bytes 91.51%
7a2e6560-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
/Users/jhaddad/var/lib/cassandra/data6/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
 33334698  36996530 bytes 90.10%
7dabcc50-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
/Users/jhaddad/var/lib/cassandra/data2/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
 22993893  37875910 bytes 60.71%
Active compaction remaining time :   0h00m04s
{code}

>From a user interface perspective, It would be great if the tasks could be 
>separated by directory, rather than inlining the directory in the table.  So 
>in my example something more like:

{code}
jhaddad@rustyrazorblade ~/dev/cassandra$ bin/nodetool compactionstats  
pending tasks: 6
- keyspace1.standard1: 6

id                                   compaction type keyspace  table  completed 
total    unit  progress

/Users/jhaddad/var/lib/cassandra/data1/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
7f3e7a40-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
17696623  38340460 bytes 46.16%

/Users/jhaddad/var/lib/cassandra/data4/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
83c14340-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
3651789   33841385 bytes 10.79%

/Users/jhaddad/var/lib/cassandra/data3/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
7a1beed0-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
34012548  37166390 bytes 91.51%

/Users/jhaddad/var/lib/cassandra/data6/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
7a2e6560-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
33334698  36996530 bytes 90.10%

/Users/jhaddad/var/lib/cassandra/data2/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
7dabcc50-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
22993893  37875910 bytes 60.71%
Active compaction remaining time :   0h00m04s
{code}

If there are multiple compactions in a single directory, you would see this:

{code}
/Users/jhaddad/var/lib/cassandra/data3/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
7a1beed0-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
34012548  37166390 bytes 91.51%
7a2e6560-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
33334698  36996530 bytes 90.10%
7dabcc50-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
22993893  37875910 bytes 60.71%
{code}

I'm also not sure if there's value in including the keyspace & table directory, 
since that information is duplicated.  If we limit the result to the data 
directory we would end up with at most N sections, 1 per data directory 
specified in the yaml.  I think that would be the *most* useful form of this 
output (note the line between the directories):

{code}
/Users/jhaddad/var/lib/cassandra/data4
83c14340-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
3651789   33841385 bytes 10.79%
03c14340-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard2 
3651789   13841385 bytes 10.79%

/Users/jhaddad/var/lib/cassandra/data3
7a1beed0-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard3  
34012548  57166390 bytes 91.51%
83c14340-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard5 
3651789   43841385 bytes 10.79%
{code}

What do you think?


was (Author: rustyrazorblade):
I set up 6 data directories and dropped my memtable_heap_space_in_mb to 32 MB 
to force a ton of flushes and lots of compactions.  I do see directories in the 
compactionstats, indicating that it's working, but i haven't verified the right 
directories are listed.  

The output is a little hard to read, since the directories make the output look 
like this:

{code}
jhaddad@rustyrazorblade ~/dev/cassandra$ bin/nodetool compactionstats
pending tasks: 6
- keyspace1.standard1: 6

id                                   compaction type keyspace  table     target 
directory                                                                       
     completed total    unit  progress
7f3e7a40-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
/Users/jhaddad/var/lib/cassandra/data1/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
 17696623  38340460 bytes 46.16%
83c14340-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
/Users/jhaddad/var/lib/cassandra/data4/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
 3651789   33841385 bytes 10.79%
7a1beed0-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
/Users/jhaddad/var/lib/cassandra/data3/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
 34012548  37166390 bytes 91.51%
7a2e6560-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
/Users/jhaddad/var/lib/cassandra/data6/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
 33334698  36996530 bytes 90.10%
7dabcc50-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
/Users/jhaddad/var/lib/cassandra/data2/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
 22993893  37875910 bytes 60.71%
Active compaction remaining time :   0h00m04s
{code}

>From a user interface perspective, It would be great if the tasks could be 
>separated by directory, rather than inlining the directory in the table.  So 
>in my example something more like:

{code}
jhaddad@rustyrazorblade ~/dev/cassandra$ bin/nodetool compactionstats  
pending tasks: 6
- keyspace1.standard1: 6

id                                   compaction type keyspace  table  completed 
total    unit  progress

/Users/jhaddad/var/lib/cassandra/data1/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
7f3e7a40-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
17696623  38340460 bytes 46.16%

/Users/jhaddad/var/lib/cassandra/data4/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
83c14340-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
3651789   33841385 bytes 10.79%

/Users/jhaddad/var/lib/cassandra/data3/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
7a1beed0-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
34012548  37166390 bytes 91.51%

/Users/jhaddad/var/lib/cassandra/data6/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
7a2e6560-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
33334698  36996530 bytes 90.10%

/Users/jhaddad/var/lib/cassandra/data2/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
7dabcc50-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
22993893  37875910 bytes 60.71%
Active compaction remaining time :   0h00m04s
{code}

If there are multiple compactions in a single directory, you would see this:

{code}
/Users/jhaddad/var/lib/cassandra/data3/keyspace1/standard1-f867e470fedb11e6a2c121962153156a
7a1beed0-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
34012548  37166390 bytes 91.51%
7a2e6560-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
33334698  36996530 bytes 90.10%
7dabcc50-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1  
22993893  37875910 bytes 60.71%
{code}

I'm also not sure if there's value in including the keyspace & table directory, 
since that information is duplicated.  If we limit the result to the data 
directory we would end up with at most N sections, 1 per data directory 
specified in the yaml.  I think that would be the *most* useful form of this 
output.  I believe this would be the most helpful output (note the line between 
the directories):

{code}
/Users/jhaddad/var/lib/cassandra/data4
83c14340-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard1 
3651789   33841385 bytes 10.79%
03c14340-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard2 
3651789   13841385 bytes 10.79%

/Users/jhaddad/var/lib/cassandra/data3
7a1beed0-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard3  
34012548  57166390 bytes 91.51%
83c14340-fedc-11e6-a477-b714107dace1 Compaction      keyspace1 standard5 
3651789   43841385 bytes 10.79%
{code}

What do you think?

> nodetool compactionstats should say which disk a compaction is writing to
> -------------------------------------------------------------------------
>
>                 Key: CASSANDRA-13010
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13010
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jon Haddad
>            Assignee: Alex Lourie
>              Labels: lhf
>




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to