You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Matt Corgan (JIRA)" <ji...@apache.org> on 2012/10/01 19:37:08 UTC
[jira] [Created] (HBASE-6907) KeyValue equals and compareTo methods
should match
Matt Corgan created HBASE-6907:
----------------------------------
Summary: 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
Posted by "Ted Yu (JIRA)" <ji...@apache.org>.
[ 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