>>- rack IO throttle. We should add that to accommodate for over subscription >>at the ToR level. > Can you decipher that, Lars?
ToR is "Top of Rack" switch. Over subscription means that a ToR switch usually does not have enough bandwidth to serve traffic in and out of rack at full speed. For example if you had 40 machines in a rack with 1ge links each, and the ToR switch has a 10ge uplink, you'd say the ToR switch is 4 to 1 over subsctribed. Was just trying to say: "Yeah, we need that" :) >>- cluster wide compaction storms. Yeah, that's bad. Can be alleviated by >>spreading timed major compactions out. (in our clusters we set the interval to 1 week and the jitter to 1/2 week) > I think we have some JIRAs for that? That you can already do: hbase.hregion.majorcompaction defaults to day in 0.94 (86400000ms). Means *all* data is rewritten *every single* day. We set it to 604800000ms (1 week) hbase.hregion.majorcompaction.jitter defaults to 20% (0.2). We set this to 0.5 (so we spread out the timed major compactions over 1 week, to avoid storms) Just checked 0.98. Turns out these are exactly the defaults there (1 week +- 1/2 week). Cool, forgot about that (see HBASE-8450). So in 0.98+ the defaults should be pretty good on this end. Compaction storms can still happen during normal load when write is equally spread out of very many regions. I that case it's not unlikely that many regions decide to compact at the same time. -- Lars ________________________________ From: Vladimir Rodionov <vladrodio...@gmail.com> To: "dev@hbase.apache.org" <dev@hbase.apache.org>; lars hofhansl <la...@apache.org> Sent: Sunday, October 5, 2014 2:11 PM Subject: Re: Compactions nice to have features >> A few comments: >> - bulkload - you mean not by loading pre-created HFiles? If you do that there would be no compaction during the import as the files are simply moved >> into place. Bulk load is not always convenient or feasible, we have batched mutations support in API but still compaction is serious issue. Cassandra allows to disable/enable compactions (I think its cluster-wide, not sure though), why do should not we have? >>- local compaction IO limit. Limiting the number of compaction threads (1 by default) is not good enough ... ? You can cause too much harm even with a >> single thread compacting per region server? This is I am not sure about myself. The idea is to make compaction more I/O nicer. For example, read operations and memstore flushes should have higher priority than compaction I/O. One way is to limit (throttle) compaction bandwidth locally, there are some other approaches as well. >>- rack IO throttle. We should add that to accommodate for over subscription >>at the ToR level. Can you decipher that, Lars? >>- cluster wide compaction storms. Yeah, that's bad. Can be alleviated by spreading timed major compactions out. (in our clusters we set the interval to 1 week and the jitter to 1/2 week) I think we have some JIRAs for that? >>- what do you think about off-peak compaction? We have that in part as the compaction ratio can be set differently for off peak hours Off peak compactions can have higher limits or even different policies. >>Generally I like the idea of being able to pace compaction better. >>Do you want to file jiras for these? Yeah, will do that. On Sat, Oct 4, 2014 at 10:31 AM, lars hofhansl <la...@apache.org> wrote: Hi Vladimir, > >these are very interesting. >A few comments: >- bulkload - you mean not by loading pre-created HFiles? If you do that there >would be no compaction during the import as the files are simply moved into >place. >- local compaction IO limit. Limiting the number of compaction threads (1 by >default) is not good enough ... ? You can cause too much harm even with a >single thread compacting per region server? > >- rack IO throttle. We should add that to accommodate for over subscription at >the ToR level. >- cluster wide compaction storms. Yeah, that's bad. Can be alleviated by >spreading timed major compactions out. (in our clusters we set the interval to >1 week and the jitter to 1/2 week) >- what do you think about off-peak compaction? We have that in part as the >compaction ratio can be set differently for off peak hours > > >Generally I like the idea of being able to pace compaction better. >Do you want to file jiras for these? Doesn't mean you have to do all the work >:) > > >-- Lars > > > >________________________________ > From: Vladimir Rodionov <vladrodio...@gmail.com> >To: "dev@hbase.apache.org" <dev@hbase.apache.org> >Sent: Friday, October 3, 2014 10:34 PM >Subject: Compactions nice to have features > > > >I am thinking about the following: > >1. Compaction On/Off per CF, Table, cluster. Both: minor and major > >Good during bulk load. > >- Disable compaction for table 'T' >- Load 1B rows >- Enable compaction for table 'T' > >2. Local Compaction I/O throttle > >Set I/O limit per RS > >3. Rack Compaction I/O throttle > >Set I/O limit per server rack. Good to control uplink bandwidth. > >4. Cluster Compaction I/O throttle. Good to avoid compaction storms > >-Vladimir Rodionov