[ 
https://issues.apache.org/jira/browse/CASSANDRA-1543?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wouter de Bie updated CASSANDRA-1543:
-------------------------------------

    Description: 
There seems to something really wrong with the DynamicEndpointSnitch in 
cassandra 0.6.5. There are several issues with it:

1) DatabaseDescriptor.readTablesFromXml() uses Boolean.getBoolean() with the 
value of System.getProperty("cassandra.dynamic_snitch"). However, 
Boolean.getBoolean() also calls System.getProperty(). The result is that it 
executes a System.getProperty("true") or System.getProperty("false").
2) The RackAwareStrategy expects an instance of EndPointSnitch and will throw a 
RuntimeException if it's not. However, the DynamicEndpointSnitch wraps an 
EndPointSnitch, but extends AbstractEndpointSnitch. RackUnawareStrategy doesn't 
have this problem.
3) Since the DynamicEndpointSnitch registers an MBean, but is instantiated for 
every KeySpace, it breaks on trying to reregister the MBean.

I've attached a patch that solves problem 1 and 2, but not 3.


  was:
There seems to something really wrong with the DynamicEndpointSnitch in 
cassandra 0.6.5. There are several issues with it:

1) DatabaseDescriptor.readTablesFromXml() uses Boolean.getBoolean() with the 
value of System.getProperty("cassandra.dynamic_snitch"). However, 
Boolean.getBoolean() also calls System.getProperty(). The result is that it 
executes a System.getProperty("true") or System.getProperty("false").
2) The RackAwareStrategy expects an instance of EndPointSnitch and will throw a 
RuntimeException if it's not. However, the DynamicEndpointSnitch wraps an 
EndPointSnitch, but extends AbstractEndpointSnitch. RackUnawareStrategy doesn't 
have this problem.
3) Since the DynamicEndpointSnitch registers an MBean, but is instantiated for 
every KeySpace, it breaks on trying to reregister the MBean.

I've attached a patch that solve problem 1 and 2, but not 3.



> DynamicEndPointSnitch backport not functional
> ---------------------------------------------
>
>                 Key: CASSANDRA-1543
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1543
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.6.5
>            Reporter: Wouter de Bie
>         Attachments: 0.6.5_dynamic_snitch_partial.patch
>
>
> There seems to something really wrong with the DynamicEndpointSnitch in 
> cassandra 0.6.5. There are several issues with it:
> 1) DatabaseDescriptor.readTablesFromXml() uses Boolean.getBoolean() with the 
> value of System.getProperty("cassandra.dynamic_snitch"). However, 
> Boolean.getBoolean() also calls System.getProperty(). The result is that it 
> executes a System.getProperty("true") or System.getProperty("false").
> 2) The RackAwareStrategy expects an instance of EndPointSnitch and will throw 
> a RuntimeException if it's not. However, the DynamicEndpointSnitch wraps an 
> EndPointSnitch, but extends AbstractEndpointSnitch. RackUnawareStrategy 
> doesn't have this problem.
> 3) Since the DynamicEndpointSnitch registers an MBean, but is instantiated 
> for every KeySpace, it breaks on trying to reregister the MBean.
> I've attached a patch that solves problem 1 and 2, but not 3.

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