hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Gray <jg...@fb.com>
Subject RE: Online modify table schema (e.g. AddColumnFamily, DeleteColumnFamily, etc) and other features
Date Thu, 20 Jan 2011 18:10:11 GMT
> I have following questions about some features which are needed in my
> applications.
> 1. The current HBase release(0.89, 0.90 ~) does not support to modify table
> schema online.
>      If I want add or delete a ColumnFamily, I must disable/offline the table
> firstly.
>      Is there a plan to support online modification?
>      I think after the table schema info is moved into ZooKeeper from
> RegionServer, this feature is possible to be supported.

This is in the plans and exactly as you describe.  We are planning to move table schema information
into ZooKeeper and then support online schema modifications.

I'm unsure if this is currently targeted at 0.92 or not, but I think the plan is to be aggressive
on releasing 0.92 soon.  This would represent a reasonably large change so might get punted
into 0.94 but hopefully no later than that.

Of course, this is an open source project, so if there are developers who need this then all
contributions are welcome.  There are some open JIRAs related to this and I think a good bit
of code already written (but based on the old master).

See HBASE-1730 for more info...


> 2. Different memstore/memtable-size and region-size for different table.
>     This feature is useful for different tables for different applications.
>      Is there a plan to support it?

I agree that these settings can be useful on a per-table setting (and where applicable, a
per-family setting).

I'm not aware of anyone currently looking into these specific settings but again, just need
a developer to go after it and implement it :)

> 3. Periodic flush.
>     Current HBase only flush memstore to HFile by memory size thresholds.
>     If a Region-Store is quiet for a long time (such as 2 hours) for a write-dense
> application, the periodic flush can free more memory.
>     Is there a plan to support it?

I'm unsure what you're describing.  If there is a write-dense application, then MemStores
will be flushed as they get filled or as the total MemStore usage across all regions goes
above the max allowed capacity given available heap.  If write-heavy workload, then MemStores
should constantly be filled and should constantly be flushed.

What would the benefit be of flushing if no writes for a certain period?  This is to free
aggregate MemStore space for frequently written to regions when there are less frequently
written-to regions that are idle but taking up MemStore space?


View raw message