ALTER TABLE HBASE OPTIONS command

Registered by Dave Birdsall on 2015-04-30

Add the ability to change HBase table options for a Trafodion table or index to the ALTER TABLE or INDEX DDL statement.

Blueprint information

Status:
Started
Approver:
Suresh Subbiah
Priority:
Undefined
Drafter:
Dave Birdsall
Direction:
Needs approval
Assignee:
Dave Birdsall
Definition:
Approved
Series goal:
None
Implementation:
Good progress
Milestone target:
milestone icon r2.0
Started by
Dave Birdsall on 2015-06-01

Related branches

Sprints

Whiteboard

In design

Gerrit topic: https://review.trafodion.org/#q,topic:bp/alter-table-hbase-options,n,z

Addressed by: https://review.trafodion.org/1667
    Part 1 of ALTER TABLE/INDEX ALTER HBASE_OPTIONS support

Addressed by: https://review.trafodion.org/1716
    Part 2 of ALTER TABLE/INDEX ALTER HBASE_OPTIONS support

Two pieces of work remain:

1. Add a transactional flavor of ALTER TABLE/INDEX ALTER HBASE_OPTIONS. A key concern here is how to do a rollback in the event of a transaction abort. We must somehow know what state the object was in from an HBase perspective to do this rollback. Fortunately, HBase gives us this information: At the start of the operation we retrieve the table and column descriptors. If we retain these, this is exactly the state we want to return to on rollback.

2. A reviewer (Hans Zeller) suggested extending the syntax to allow removing HBase attributes. I had not thought of this when designing Part 1, as I did not even know that HBase supports this. But it turns out it does! In the HBase shell, one can use the 'table_att_unset' method name to remove a table attribute. At the HBase client level, one calls the remove method on the HTableDescriptor before calling the HBaseAdmin.modifyTable method. It appears that only table attributes can be removed; it's not clear if there is a way to remove attributes from column families. Hans' suggestion for extending the Trafodion syntax was to let an empty string value have the semantic of removing an attribute.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.