[ 
https://issues.apache.org/jira/browse/CASSANDRA-8143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14649142#comment-14649142
 ] 

Aleksey Yeschenko commented on CASSANDRA-8143:
----------------------------------------------

Thanks. The patch LGTM, with some nits. Committed to trunk as 
{{69f77cbddd4c74448f227e9aceef84d345118184}}.

Nits:
- redundant {{@Override}} for {{BOP.partitionOrdering()}}
- there is no point in checking for a partitioner in the legacy schema tables 
while migrating, this ticket being a 3.0 feature
- {{All.get(0).decorateKey}} in {{SchemaKeyspace.makeDropKeyspaceMutation()}} 
is potentially error-prone. Should just be {{Keyspaces.decorateKey()}} instead 
of relying on implicit order

Minor issue:
- we aren't going to store the partitioner in schema, since we aren't (yet? 
ever?) going to allow creating tables with non-default partitioner via CQL, 
externally. For now it's only 2i tables, the new batchlog table, and some 
hard-coded tables in one external project. All of them with hardcoded 
definitions, partitioner redefined explicitly in code.

Some [minor 
changes|https://github.com/iamaleksey/cassandra/commit/40b0d7bd74a10f183290c1f07411d8ea9ac67632]
 I took liberty to make on top (besides fixing the nits):
1. {{partitioner instanceof LocalPartitioner}} is not a sure-fire way to test 
for 2i after this patch (and I guess it's taken care of in CASSANDRA-7237), and 
scanning for the dot in the name has always been sort of ugly. I pulled 
{{isIndex}} into a {{boolean}} field in {{CFMetaData}} instead
2. As you've noticed, {{HHOM.listEndpointsPendingHints()}} logic is weird. It 
was first changed to this in CASSANDRA-4568, back when Ice Giants were roaming 
the Earth and the structure of the hints table was different. Even then, 
though, the change was wrong, the token of the node (pre-vnodes) was still 
being stored in the partition key. Fixed it in place to return the stringified 
UUID instead. Seems like nobody cares though, this being broken since 1.0.12


> Partitioner should not be accessed through StorageService
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-8143
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8143
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Branimir Lambov
>            Assignee: Branimir Lambov
>             Fix For: 3.0 beta 1
>
>
> The configured partitioner is no longer the only partitioner in use in the 
> database, as e.g. index tables use LocalPartitioner.
> To make sure the correct partitioner is used for each table, accesses of 
> StorageService.getPartitioner() should be replaced with retrieval of the 
> CFS-specific partitioner.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to