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

Nikolai Grigoriev commented on CASSANDRA-8301:
----------------------------------------------

Oh...I think I see what you mean. I only created the situation where nothing 
overlaps at each level - but I've done nothing to respect this rule about the 
target number of overlapping sstables between the levels. So, if I understand 
correctly, this will (or may - depending on how lucky I am) result in slower 
promotion of the sstables to the upper levels, right?

Yes, I was checking the logs carefully to see the result of my manipulations - 
the only error I saw was about the keys out-of-order in a single sstable file - 
this could not be caused by my re-leveling.

What I observe now is that the remaining ~280 pending compactions go very 
slowly, there is quite a bit of sstables at level 0. Under normal traffic this 
number seems to be floating around ~600 and probably even increasing. Each 
compaction grabs some but while it is working new ones get created :) I think 
new sstables get created a bit faster than they are compacted and promoted. 
Could it be due to bad leveling?

Regarding initial set of L0 sstables...In my case I had 79 sstables with the 
token ranges like "-9010847458915378120,9190536470441980462". I believe they 
are original L0 sstables from other machines. I think for those there is no 
choice but to put them in L0, otherwise they will overlap with all other 
sstables.

I think I will try to implement that algorithm differently. So, just to confirm 
I get it right:

- no overlap allowed at any level except L0
- for each sstable at level N there should be no more than 10 at level N+1
- anything that does not fit goes to L0
- sstables with large token ranges have to go to L0 anyway

Interesting...these first two rules most likely create a number of different 
possible combinations. 

> Create a tool that given a bunch of sstables creates a "decent" sstable 
> leveling
> --------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-8301
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8301
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Marcus Eriksson
>
> In old versions of cassandra (i.e. not trunk/3.0), when bootstrapping a new 
> node, you will end up with a ton of files in L0 and it might be extremely 
> painful to get LCS to compact into a new leveling
> We could probably exploit the fact that we have many non-overlapping sstables 
> in L0, and offline-bump those sstables into higher levels. It does not need 
> to be perfect, just get the majority of the data into L1+ without creating 
> overlaps.
> So, suggestion is to create an offline tool that looks at the range each 
> sstable covers and tries to bump it as high as possible in the leveling.



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

Reply via email to