incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Radim Kolar <...@sendmail.cz>
Subject slow read performance with leveldb compactor
Date Tue, 04 Oct 2011 16:22:53 GMT
Lets say i have this:

{
   "generations" : [ {
     "generation" : 0,
     "members" : [ 650, 651, 652, 653, 654 ]
   }, {
     "generation" : 1,
     "members" : [ 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648 ]
   }, {
     "generation" : 2,
     "members" : [ 566, 575, 576, 578, 579, 580, 582, 583, 584, 586, 
587, 588, 590, 591, 592, 593, 595, 596, 597, 599, 600, 601, 603, 604, 
605, 607, 608, 609, 611, 612, 613, 615, 616, 617, 618, 620, 621, 622, 623 ]

If i understand leveldb design documents correctly then key can be in 
any lvl0 sstable (standard bloom filters will be used) but for lvl1+ its 
enough to check only sstable containing key range because they do not 
overlap.

So we need to check/merge all L0 tables + one from L1 + one from L2. 
Because number of sstables needed to check is low It should not be more 
performance heavy than checking similar number of sstables (all L0 + 2 
levels) with old compactor.

This is probably not done yet because my current read performance is 
3-4x slower than expected. because i have currently 60 sstables in 
lvl0-2 and read latency 48.4ms on 7200 rpm drive which is about 5.3 
seeks per read.

Mime
View raw message