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

Blake Eggleston commented on CASSANDRA-7843:
--------------------------------------------

Regarding how this patch affects things today, you are correct, there is a lot 
of risk and cost, with no immediate user facing benefit. However, review time 
and merge costs are both short term problems. The goal of this is to reduce the 
complexity and time of future development over the long term, and enable more 
thorough and flexible testing of current development.

In it's current state, this patch will allow you to:
* Perform tests on more specific, isolated parts of cassandra.
* Test behavior that would be really difficult or impractical to test with 
dtests.
* Test how a C* cluster behaves with weird edge cases in a single jvm by 
injecting faults.

Also, this is a lot more subjective, but I think that technical debt should be 
proactively removed. The whole, not living with broken windows thing. I don't 
think anyone will argue that using a bunch of static state and initialization 
benefits C*, even if people have gotten used to working around it. Removing it 
is painful, but it's better for Cassandra over the long term.

Finally, there are a lot of changes in this patch, more than I was expecting. 
However, the changes are wide, not deep. 98% of the changes are just changing 
stuff like DatabaseDescriptor.instance to databaseDescriptor, and changing the 
constructors to take dependencies. Reviewing this will be very boring. I've 
also done the refactor in a way that can be reviewed and merged in smaller 
chunks.

> Remove static singleton instances
> ---------------------------------
>
>                 Key: CASSANDRA-7843
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7843
>             Project: Cassandra
>          Issue Type: Sub-task
>            Reporter: Blake Eggleston
>            Assignee: Blake Eggleston
>
> Initialize and start C* from a static method that takes a configuration as an 
> argument.
> CassandraDaemon and utilities will need to be updated, and we'll need a 
> helper method so tests can instantiate the database with a one or two liner.



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

Reply via email to