[ 
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

Reply via email to