[jira] [Updated] (HBASE-6907) KeyValue equals and compareTo methods should match
[ https://issues.apache.org/jira/browse/HBASE-6907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-6907: -- Priority: Critical (was: Major) > KeyValue equals and compareTo methods should match > -- > > Key: HBASE-6907 > URL: https://issues.apache.org/jira/browse/HBASE-6907 > Project: HBase > Issue Type: Bug > Components: util >Reporter: Matt Corgan >Priority: Critical > Fix For: 0.96.0 > > > KeyValue.KVComparator includes the memstoreTS when comparing, however the > KeyValue.equals() method ignores the memstoreTS. > The Comparator interface has always specified that comparator return 0 when > equals would return true and vice versa. Obeying that rule has been sort of > optional in the past, but Java 7 introduces a new default collection sorting > algorithm called Tim Sort which relies on that behavior. > http://bugs.sun.com/view_bug.do?bug_id=6804124 > Possible problem spots: > * there's a Collections.sort(KeyValues) in > RedundantKVGenerator.generateTestKeyValues(..) > * TestColumnSeeking compares two collections of KeyValues using the > containsAll method. It is intentionally ignoring memstoreTS, so will need an > alternative method for comparing the two collections. -- 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
[jira] [Updated] (HBASE-6907) KeyValue equals and compareTo methods should match
[ https://issues.apache.org/jira/browse/HBASE-6907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-6907: -- Priority: Major (was: Critical) I agree this is not critical for 0.96. > KeyValue equals and compareTo methods should match > -- > > Key: HBASE-6907 > URL: https://issues.apache.org/jira/browse/HBASE-6907 > Project: HBase > Issue Type: Bug > Components: util >Reporter: Matt Corgan > Fix For: 0.96.0 > > > KeyValue.KVComparator includes the memstoreTS when comparing, however the > KeyValue.equals() method ignores the memstoreTS. > The Comparator interface has always specified that comparator return 0 when > equals would return true and vice versa. Obeying that rule has been sort of > optional in the past, but Java 7 introduces a new default collection sorting > algorithm called Tim Sort which relies on that behavior. > http://bugs.sun.com/view_bug.do?bug_id=6804124 > Possible problem spots: > * there's a Collections.sort(KeyValues) in > RedundantKVGenerator.generateTestKeyValues(..) > * TestColumnSeeking compares two collections of KeyValues using the > containsAll method. It is intentionally ignoring memstoreTS, so will need an > alternative method for comparing the two collections. -- 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
[jira] [Updated] (HBASE-6907) KeyValue equals and compareTo methods should match
[ https://issues.apache.org/jira/browse/HBASE-6907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-6907: -- Attachment: 6907-v1.txt First attempt at this issue. TestColumnSeeking passes. > KeyValue equals and compareTo methods should match > -- > > Key: HBASE-6907 > URL: https://issues.apache.org/jira/browse/HBASE-6907 > Project: HBase > Issue Type: Bug > Components: util >Reporter: Matt Corgan > Fix For: 0.96.0 > > Attachments: 6907-v1.txt > > > KeyValue.KVComparator includes the memstoreTS when comparing, however the > KeyValue.equals() method ignores the memstoreTS. > The Comparator interface has always specified that comparator return 0 when > equals would return true and vice versa. Obeying that rule has been sort of > optional in the past, but Java 7 introduces a new default collection sorting > algorithm called Tim Sort which relies on that behavior. > http://bugs.sun.com/view_bug.do?bug_id=6804124 > Possible problem spots: > * there's a Collections.sort(KeyValues) in > RedundantKVGenerator.generateTestKeyValues(..) > * TestColumnSeeking compares two collections of KeyValues using the > containsAll method. It is intentionally ignoring memstoreTS, so will need an > alternative method for comparing the two collections. -- 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
[jira] [Updated] (HBASE-6907) KeyValue equals and compareTo methods should match
[ https://issues.apache.org/jira/browse/HBASE-6907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-6907: -- Status: Patch Available (was: Open) Let Hadoop QA tell us what large tests fail. > KeyValue equals and compareTo methods should match > -- > > Key: HBASE-6907 > URL: https://issues.apache.org/jira/browse/HBASE-6907 > Project: HBase > Issue Type: Bug > Components: util >Reporter: Matt Corgan > Fix For: 0.96.0 > > Attachments: 6907-v1.txt > > > KeyValue.KVComparator includes the memstoreTS when comparing, however the > KeyValue.equals() method ignores the memstoreTS. > The Comparator interface has always specified that comparator return 0 when > equals would return true and vice versa. Obeying that rule has been sort of > optional in the past, but Java 7 introduces a new default collection sorting > algorithm called Tim Sort which relies on that behavior. > http://bugs.sun.com/view_bug.do?bug_id=6804124 > Possible problem spots: > * there's a Collections.sort(KeyValues) in > RedundantKVGenerator.generateTestKeyValues(..) > * TestColumnSeeking compares two collections of KeyValues using the > containsAll method. It is intentionally ignoring memstoreTS, so will need an > alternative method for comparing the two collections. -- 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
[jira] [Updated] (HBASE-6907) KeyValue equals and compareTo methods should match
[ https://issues.apache.org/jira/browse/HBASE-6907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-6907: -- Attachment: 6907-v2.txt Patch v2 fixes failures in TestHRegion Please comment whether this is in the right direction. > KeyValue equals and compareTo methods should match > -- > > Key: HBASE-6907 > URL: https://issues.apache.org/jira/browse/HBASE-6907 > Project: HBase > Issue Type: Bug > Components: util >Reporter: Matt Corgan > Fix For: 0.96.0 > > Attachments: 6907-v1.txt, 6907-v2.txt > > > KeyValue.KVComparator includes the memstoreTS when comparing, however the > KeyValue.equals() method ignores the memstoreTS. > The Comparator interface has always specified that comparator return 0 when > equals would return true and vice versa. Obeying that rule has been sort of > optional in the past, but Java 7 introduces a new default collection sorting > algorithm called Tim Sort which relies on that behavior. > http://bugs.sun.com/view_bug.do?bug_id=6804124 > Possible problem spots: > * there's a Collections.sort(KeyValues) in > RedundantKVGenerator.generateTestKeyValues(..) > * TestColumnSeeking compares two collections of KeyValues using the > containsAll method. It is intentionally ignoring memstoreTS, so will need an > alternative method for comparing the two collections. -- 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
[jira] [Updated] (HBASE-6907) KeyValue equals and compareTo methods should match
[ https://issues.apache.org/jira/browse/HBASE-6907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-6907: -- Attachment: 6907-v3.txt Patch v3 should have fixed all medium tests. > KeyValue equals and compareTo methods should match > -- > > Key: HBASE-6907 > URL: https://issues.apache.org/jira/browse/HBASE-6907 > Project: HBase > Issue Type: Bug > Components: util >Reporter: Matt Corgan > Fix For: 0.96.0 > > Attachments: 6907-v1.txt, 6907-v2.txt, 6907-v3.txt > > > KeyValue.KVComparator includes the memstoreTS when comparing, however the > KeyValue.equals() method ignores the memstoreTS. > The Comparator interface has always specified that comparator return 0 when > equals would return true and vice versa. Obeying that rule has been sort of > optional in the past, but Java 7 introduces a new default collection sorting > algorithm called Tim Sort which relies on that behavior. > http://bugs.sun.com/view_bug.do?bug_id=6804124 > Possible problem spots: > * there's a Collections.sort(KeyValues) in > RedundantKVGenerator.generateTestKeyValues(..) > * TestColumnSeeking compares two collections of KeyValues using the > containsAll method. It is intentionally ignoring memstoreTS, so will need an > alternative method for comparing the two collections. -- 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
[jira] [Updated] (HBASE-6907) KeyValue equals and compareTo methods should match
[ https://issues.apache.org/jira/browse/HBASE-6907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-6907: -- Attachment: 6907-v4.txt Patch v4 makes TestHRegionBusyWait and TestHRegion pass > KeyValue equals and compareTo methods should match > -- > > Key: HBASE-6907 > URL: https://issues.apache.org/jira/browse/HBASE-6907 > Project: HBase > Issue Type: Bug > Components: util >Reporter: Matt Corgan > Fix For: 0.96.0 > > Attachments: 6907-v1.txt, 6907-v2.txt, 6907-v3.txt, 6907-v4.txt > > > KeyValue.KVComparator includes the memstoreTS when comparing, however the > KeyValue.equals() method ignores the memstoreTS. > The Comparator interface has always specified that comparator return 0 when > equals would return true and vice versa. Obeying that rule has been sort of > optional in the past, but Java 7 introduces a new default collection sorting > algorithm called Tim Sort which relies on that behavior. > http://bugs.sun.com/view_bug.do?bug_id=6804124 > Possible problem spots: > * there's a Collections.sort(KeyValues) in > RedundantKVGenerator.generateTestKeyValues(..) > * TestColumnSeeking compares two collections of KeyValues using the > containsAll method. It is intentionally ignoring memstoreTS, so will need an > alternative method for comparing the two collections. -- 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
[jira] [Updated] (HBASE-6907) KeyValue equals and compareTo methods should match
[ https://issues.apache.org/jira/browse/HBASE-6907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-6907: -- Attachment: 6907-v5.txt Patch v5 addresses Matt's comment. The original intention of modifying Cell interface was that there might be change(s) required in core. Now that we see the changes are limited mostly to the tests, there is no need for such modification. > KeyValue equals and compareTo methods should match > -- > > Key: HBASE-6907 > URL: https://issues.apache.org/jira/browse/HBASE-6907 > Project: HBase > Issue Type: Bug > Components: util >Reporter: Matt Corgan > Fix For: 0.96.0 > > Attachments: 6907-v1.txt, 6907-v2.txt, 6907-v3.txt, 6907-v4.txt, > 6907-v5.txt > > > KeyValue.KVComparator includes the memstoreTS when comparing, however the > KeyValue.equals() method ignores the memstoreTS. > The Comparator interface has always specified that comparator return 0 when > equals would return true and vice versa. Obeying that rule has been sort of > optional in the past, but Java 7 introduces a new default collection sorting > algorithm called Tim Sort which relies on that behavior. > http://bugs.sun.com/view_bug.do?bug_id=6804124 > Possible problem spots: > * there's a Collections.sort(KeyValues) in > RedundantKVGenerator.generateTestKeyValues(..) > * TestColumnSeeking compares two collections of KeyValues using the > containsAll method. It is intentionally ignoring memstoreTS, so will need an > alternative method for comparing the two collections. -- 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
[jira] [Updated] (HBASE-6907) KeyValue equals and compareTo methods should match
[ https://issues.apache.org/jira/browse/HBASE-6907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-6907: -- Assignee: Ted Yu Release Note: KeyValue.equals() method used to ignore the memstoreTS. Now KeyValue.equals() takes memstoreTS into account and is aligned with KeyValue.KVComparator in behavior > KeyValue equals and compareTo methods should match > -- > > Key: HBASE-6907 > URL: https://issues.apache.org/jira/browse/HBASE-6907 > Project: HBase > Issue Type: Bug > Components: util >Reporter: Matt Corgan >Assignee: Ted Yu > Fix For: 0.96.0 > > Attachments: 6907-v1.txt, 6907-v2.txt, 6907-v3.txt, 6907-v4.txt, > 6907-v5.txt > > > KeyValue.KVComparator includes the memstoreTS when comparing, however the > KeyValue.equals() method ignores the memstoreTS. > The Comparator interface has always specified that comparator return 0 when > equals would return true and vice versa. Obeying that rule has been sort of > optional in the past, but Java 7 introduces a new default collection sorting > algorithm called Tim Sort which relies on that behavior. > http://bugs.sun.com/view_bug.do?bug_id=6804124 > Possible problem spots: > * there's a Collections.sort(KeyValues) in > RedundantKVGenerator.generateTestKeyValues(..) > * TestColumnSeeking compares two collections of KeyValues using the > containsAll method. It is intentionally ignoring memstoreTS, so will need an > alternative method for comparing the two collections. -- 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
[jira] [Updated] (HBASE-6907) KeyValue equals and compareTo methods should match
[ https://issues.apache.org/jira/browse/HBASE-6907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-6907: -- Resolution: Fixed Hadoop Flags: Reviewed Status: Resolved (was: Patch Available) > KeyValue equals and compareTo methods should match > -- > > Key: HBASE-6907 > URL: https://issues.apache.org/jira/browse/HBASE-6907 > Project: HBase > Issue Type: Bug > Components: util >Reporter: Matt Corgan >Assignee: Ted Yu > Fix For: 0.96.0 > > Attachments: 6907-v1.txt, 6907-v2.txt, 6907-v3.txt, 6907-v4.txt, > 6907-v5.txt > > > KeyValue.KVComparator includes the memstoreTS when comparing, however the > KeyValue.equals() method ignores the memstoreTS. > The Comparator interface has always specified that comparator return 0 when > equals would return true and vice versa. Obeying that rule has been sort of > optional in the past, but Java 7 introduces a new default collection sorting > algorithm called Tim Sort which relies on that behavior. > http://bugs.sun.com/view_bug.do?bug_id=6804124 > Possible problem spots: > * there's a Collections.sort(KeyValues) in > RedundantKVGenerator.generateTestKeyValues(..) > * TestColumnSeeking compares two collections of KeyValues using the > containsAll method. It is intentionally ignoring memstoreTS, so will need an > alternative method for comparing the two collections. -- 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