[ 
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

        

Reply via email to