You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Lars Hofhansl (JIRA)" <ji...@apache.org> on 2015/07/18 12:46:04 UTC
[jira] [Commented] (HBASE-13643) Follow Google to get more 9's
[ https://issues.apache.org/jira/browse/HBASE-13643?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14632368#comment-14632368 ]
Lars Hofhansl commented on HBASE-13643:
---------------------------------------
So what's to do here?
* The memstore is already not flushed when it is empty (there's a little bit of preprocessing going on, but that looks pretty lightweight)
* How precise is the last seqid we keep around? Specifically can we instantly tell when onlining a region that there are guaranteed no logs to be replayed even before we split the logs?
* We could allocate mslab lazily perhaps. An unused memstore would then not consume any heap until used.
> Follow Google to get more 9's
> -----------------------------
>
> Key: HBASE-13643
> URL: https://issues.apache.org/jira/browse/HBASE-13643
> Project: HBase
> Issue Type: Improvement
> Reporter: Elliott Clark
>
> Ideas taken shamelessly from Google's HBasecon talk (http://hbasecon.com/agenda/):
> On failover all regions are unavailable for reads (and sometime writes) until after all write ahead logs have been recovered. To combat that the last flushed seqid is kept around.
> Google took this one step farther and set some regions (Tablets in BigTable) as read only. Setting a region as read only means there's no memstore. No need to flush before move, split, or merge.
> In addition to the wins that Google got, HBase would also be able to shed some memory pressure. Right now every region gets a memstore and with that memstore comes a mslab. Read only regions would not need these added object. This should allow a regionserver to host lots of cold regions without too much memory pressure.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)