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

Erik Onnen commented on CASSANDRA-1377:
---------------------------------------

We have a multi-tenant deployment hosting multiple customers, each with 
multiple deployments of our upstream software (think test/prod). For each 
customer deployment, we've had a UUID identifying the instance since before the 
dawn of time, or at least since before Cassandra :)

Up until this change, using a keyspace-UUID mapping worked perfectly, 
especially after set_keyspace was added to the lower-level client API which 
allowed us to have pools for a given customer with different customers able to 
have different throughput to a point.

In hopes of getting this relaxed just a bit to allow "-", I've attached a fix 
for the bug in 0.6.0 tested with a keyspace name of 
"e610eed7-c6be-449b-ad2c-562f35d75528" which is a Type4 UUID. If you can 
broaden the limit here just a bit, we'll be good. I don't think it's all that 
unrealistic that users will want to have a keyspace correspond to real 
artifacts in their system (although I don't feel the same about CF names). This 
would at least broaden things just enough to allow UUIDs at that level.

While I understand the need to limit what goes into the name of the keyspace 
and why, it's too restrictive for my needs and I'll argue against it at least 
and try and patch my way out of it as long as you'll listen.

Happy to do the same for 0.7.0 if you're receptive.

> NPE aborts streaming operations for keyspaces with hyphens ('-') in their 
> names
> -------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-1377
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1377
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.6.3
>            Reporter: Ben Hoyt
>            Assignee: Gary Dusbabek
>             Fix For: 0.6.5, 0.7 beta 2
>
>         Attachments: 1377-0.6.txt, v1-0001-disallow-invalid-ks-cf-names.txt
>
>
> When streaming starts for operations such as repair or bootstrap, it will 
> fail due to an NPE if they rows are in a keyspace that has a hyphen in its 
> name.  One workaround for this issue would be to not use keyspace names 
> containing hyphens.  It would be even nicer if streaming worked for keyspace 
> names with hyphens, since keyspaces named like that seem to be fine in all 
> other ways.
> To reproduce:
>  1. With a multi-node ring, load up a keyspace with a hyphen in its name
>  2. Add some data to that keyspace
>  3. nodetool repair
> Expected results:
> Repair operations complete normally
> Actual results:
> Repair operations don't complete normally.  The stacktrace below is 
> correlated with the repair request.  
>  INFO [AE-SERVICE-STAGE:1] 2010-06-30 14:11:29,744 AntiEntropyService.java 
> (line 619) Performing streaming repair of 1 ranges to /10.255.0.20 for 
> (my-keyspace,AColumnFamily)
> ERROR [MESSAGE-DESERIALIZER-POOL:1] 2010-06-30 14:11:30,034 
> DebuggableThreadPoolExecutor.java (line 101) Error in ThreadPoolExecutor
> java.lang.NullPointerException
>         at 
> org.apache.cassandra.streaming.StreamInitiateVerbHandler.getNewNames(StreamInitiateVerbHandler.java:154)
>         at 
> org.apache.cassandra.streaming.StreamInitiateVerbHandler.doVerb(StreamInitiateVerbHandler.java:76)
>         at 
> org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:40)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to