[
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)