[
https://issues.apache.org/jira/browse/HBASE-745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12613627#action_12613627
]
Billy Pearson commented on HBASE-745:
-------------------------------------
I agree on your idea of a incremental compaction
My two ideas for increased efficiency in compaction while under load
1. compact only the newest threshold(3) of mapfiles
This will allow a region server to compact the lastest 3 map files created
lowering the number of mapfile by 2 per compaction
the newest mapfile will not store the bulk of the data for a region if we are
under load they will be small memcache flushes and compact fast.
By doing the newest ones when the load reduces and there is only 3 map files
left 1 will be the largest and oldest mapfile
and all old data and new data will get compacted together.
2. The compaction queue
Currently we only add the region to a queued list of regions needing compaction
check and compact in that order.
My suggestion would be to have the queued list store how many times a region
has been added to the compaction queued(memcache flushes)
That way we can sort the list and compact the hot spots under load and compact
them first and reduce the number of map files the fastest with the above idea
implemented.
When it is done with the compaction reduce the number in the queued by how many
files we compacted or remove it if left to compact and sort the list again
start over.
these are my ideas on how we can reduce the number of mapfiles we have while we
are under a write load.
> scaling of one regionserver, improving memory and cpu usage
> -----------------------------------------------------------
>
> Key: HBASE-745
> URL: https://issues.apache.org/jira/browse/HBASE-745
> Project: Hadoop HBase
> Issue Type: Improvement
> Components: regionserver
> Affects Versions: 0.1.3
> Environment: hadoop 0.17.1
> Reporter: LN
> Priority: Minor
>
> after weeks testing hbase 0.1.3 and hadoop(0.16.4, 0.17.1), i found there are
> many works to do, before a particular regionserver can handle data about
> 100G, or even more. i'd share my opions here with stack, and other developers.
> first, the easiest way improving scalability of regionserver is upgrading
> hardware, use 64bit os and 8G memory for the regionserver process, and speed
> up disk io.
> besides hardware, following are software bottlenecks i found in regionserver:
> 1. as data increasing, compaction was eating cpu(with io) times, the total
> compaction time is basicly linear relative to whole data size, even worse,
> sometimes square relavtive to that size.
> 2. memory usage are depends on opened mapfiles
> 3. network connection are depends on opened mapfiles, see HADOOP-2341 and
> HBASE-24.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.