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