hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matteo Bertozzi (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-7596) Redundant FSTableDescriptor update
Date Thu, 17 Jan 2013 23:36:14 GMT

    [ https://issues.apache.org/jira/browse/HBASE-7596?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13556746#comment-13556746
] 

Matteo Bertozzi commented on HBASE-7596:
----------------------------------------

looking better at HMaster, this test is flaky...

why ModifyTableHandler is different from the other two? (note that the process() of ModifyTableHandler
is much smaller than the others)
{code}
new TableAddFamilyHandler(tableName, column, this, this).process();
new TableDeleteFamilyHandler(tableName, columnName, this, this).process();

TableEventHandler tblHandle = new ModifyTableHandler(tableName, descriptor, this, this);
this.executorService.submit(tblHandle);
tblHandle.waitForPersist();
{code}
                
> Redundant FSTableDescriptor update
> ----------------------------------
>
>                 Key: HBASE-7596
>                 URL: https://issues.apache.org/jira/browse/HBASE-7596
>             Project: HBase
>          Issue Type: Bug
>          Components: master
>    Affects Versions: 0.96.0, 0.94.4
>            Reporter: Matteo Bertozzi
>            Assignee: Matteo Bertozzi
>            Priority: Trivial
>         Attachments: HBASE-7596-v0.patch
>
>
> The TableAddFamilyHandler and TableDeleteFamilyHandler code looks like
> {code}
> // Update table descriptor in HDFS
> HTableDescriptor htd = this.masterServices.getMasterFileSystem()
>     .addColumn(tableName, familyDesc);
> // Update in-memory descriptor cache
> this.masterServices.getTableDescriptors().add(htd);
> {code}
> while the ModifyTableHandler code is just
> {code}
> // Update descriptor
> this.masterServices.getTableDescriptors().add(this.htd);
> {code}
> The MasterFileSystem code looks like
> {code}
> HTableDescriptor htd = this.services.getTableDescriptors().get(tableName);
> // ...add/remove columns to the descriptor...
> this.services.getTableDescriptors().add(htd);
> {code}
> so, the service.getTableDescriptors().add() is called two times for the add/delete family
handler. (and the table descriptor rewritten twice FSTableDescriptors.updateHTableDescriptor())

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message