[ https://issues.apache.org/jira/browse/CASSANDRA-1034?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13160764#comment-13160764 ]
Hudson commented on CASSANDRA-1034: ----------------------------------- Integrated in Cassandra #1229 (See [https://builds.apache.org/job/Cassandra/1229/]) remove assumption that key and token are in bijection patch by slebresne; reviewed by jbellis for CASSANDRA-1034 slebresne : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1208993 Files : * /cassandra/trunk/CHANGES.txt * /cassandra/trunk/src/java/org/apache/cassandra/client/RingCache.java * /cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java * /cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java * /cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java * /cassandra/trunk/src/java/org/apache/cassandra/db/DecoratedKey.java * /cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java * /cassandra/trunk/src/java/org/apache/cassandra/db/IndexScanCommand.java * /cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java * /cassandra/trunk/src/java/org/apache/cassandra/db/RangeSliceCommand.java * /cassandra/trunk/src/java/org/apache/cassandra/db/RowIteratorFactory.java * /cassandra/trunk/src/java/org/apache/cassandra/db/RowPosition.java * /cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionManager.java * /cassandra/trunk/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java * /cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java * /cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java * /cassandra/trunk/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java * /cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java * /cassandra/trunk/src/java/org/apache/cassandra/dht/AbstractBounds.java * /cassandra/trunk/src/java/org/apache/cassandra/dht/AbstractByteOrderedPartitioner.java * /cassandra/trunk/src/java/org/apache/cassandra/dht/AbstractPartitioner.java * /cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java * /cassandra/trunk/src/java/org/apache/cassandra/dht/Bounds.java * /cassandra/trunk/src/java/org/apache/cassandra/dht/IPartitioner.java * /cassandra/trunk/src/java/org/apache/cassandra/dht/LocalPartitioner.java * /cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java * /cassandra/trunk/src/java/org/apache/cassandra/dht/RandomPartitioner.java * /cassandra/trunk/src/java/org/apache/cassandra/dht/Range.java * /cassandra/trunk/src/java/org/apache/cassandra/dht/RingPosition.java * /cassandra/trunk/src/java/org/apache/cassandra/dht/Token.java * /cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java * /cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java * /cassandra/trunk/src/java/org/apache/cassandra/io/sstable/IndexSummary.java * /cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableBoundedScanner.java * /cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java * /cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableReader.java * /cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java * /cassandra/trunk/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java * /cassandra/trunk/src/java/org/apache/cassandra/locator/TokenMetadata.java * /cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java * /cassandra/trunk/src/java/org/apache/cassandra/service/AntiEntropyService.java * /cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java * /cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java * /cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java * /cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamIn.java * /cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamOut.java * /cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamRequestMessage.java * /cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamingRepairTask.java * /cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java * /cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java * /cassandra/trunk/src/java/org/apache/cassandra/tools/BulkLoader.java * /cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java * /cassandra/trunk/src/java/org/apache/cassandra/utils/MerkleTree.java * /cassandra/trunk/test/unit/org/apache/cassandra/Util.java * /cassandra/trunk/test/unit/org/apache/cassandra/db/CleanupTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/db/KeyCollisionTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/db/SerializationsTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/dht/AbstractBoundsTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/dht/BootStrapperTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/dht/PartitionerTestCase.java * /cassandra/trunk/test/unit/org/apache/cassandra/dht/RangeTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/io/CompactSerializerTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/service/AntiEntropyServiceTestAbstract.java * /cassandra/trunk/test/unit/org/apache/cassandra/service/MoveTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/service/SerializationsTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/service/StorageProxyTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/streaming/SerializationsTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java > Remove assumption that Key to Token is one-to-one > ------------------------------------------------- > > Key: CASSANDRA-1034 > URL: https://issues.apache.org/jira/browse/CASSANDRA-1034 > Project: Cassandra > Issue Type: Bug > Reporter: Stu Hood > Assignee: Sylvain Lebresne > Priority: Minor > Fix For: 1.1 > > Attachments: 0001-Generify-AbstractBounds-v2.patch, > 0001-Generify-AbstractBounds-v3.patch, 0001-Generify-AbstractBounds.patch, > 0002-Remove-assumption-that-token-and-keys-are-one-to-one-v2.patch, > 0002-Remove-assumption-that-token-and-keys-are-one-to-one-v3.patch, > 0002-Remove-assumption-that-token-and-keys-are-one-to-one.patch, > 0003-unit-test-v2.patch, 0003-unit-test-v3.patch, 0003-unit-test.patch, > 1034_v1.txt, CASSANDRA-1034.patch > > > get_range_slices assumes that Tokens do not collide and converts a KeyRange > to an AbstractBounds. For RandomPartitioner, this assumption isn't safe, and > would lead to a very weird heisenberg. > Converting AbstractBounds to use a DecoratedKey would solve this, because the > byte[] key portion of the DecoratedKey can act as a tiebreaker. > Alternatively, we could make DecoratedKey extend Token, and then use > DecoratedKeys in places where collisions are unacceptable. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira