[
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.