hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars Hofhansl (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-7579) HTableDescriptor equals method fails if results are returned in a different order
Date Tue, 26 Feb 2013 05:34:14 GMT

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

Lars Hofhansl commented on HBASE-7579:
--------------------------------------

Wait. HTableDescriptor.families is declared as this:
{code}
  private final Map<byte [], HColumnDescriptor> families =
    new TreeMap<byte [], HColumnDescriptor>(Bytes.BYTES_RAWCOMPARATOR);
{code}

Why would we not expect the column families to be sorted in the same way (by name)?
If the TableDescriptors have the same set of column families (by name) they will come up in
the same order. If not, they won't be the same.
Unless I am missing something the current code should be OK.
                
> HTableDescriptor equals method fails if results are returned in a different order
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-7579
>                 URL: https://issues.apache.org/jira/browse/HBASE-7579
>             Project: HBase
>          Issue Type: Bug
>          Components: Admin
>            Reporter: Aleksandr Shulman
>            Assignee: Aleksandr Shulman
>            Priority: Minor
>             Fix For: 0.96.0, 0.94.6
>
>         Attachments: HBASE-7579-v1.patch, HBASE-7579-v2.patch, HBASE-7579-v3.patch, HBASE-7579-v4.patch
>
>
> HTableDescriptor's compareTo function compares a set of HColumnDescriptors against another
set of HColumnDescriptors. It iterates through both, relying on the fact that they will be
in the same order.
> In my testing, I may have seen this issue come up, so I decided to fix it.
> It's a straightforward fix. I convert the sets into a hashset for O(1) lookups (at least
in theory), then I check that all items in the first set are found in the second.
> Since the sizes are the same, we know that if all elements showed up in the second set,
then they must be equal.

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