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

Dinesh Joshi edited comment on CASSANDRA-14821 at 10/31/18 1:08 AM:
--------------------------------------------------------------------

 [~ifesdjeen], I went over the PR and it looks pretty cool. I did not have 
major concerns. I think this would be a valuable addition to the way we test 
Cassandra. There were some minor nits that you can address on commit. Please 
see below -
 # {{SecondaryIndexManager#shutdownExecutors}}, {{NettyFactory#close}}, 
{{PendingRangeCalculatorService#shutdownExecutor}}, 
{{Ref#shutdownReferenceReaper}}, {{BufferPool#shutdownLocalCleaner}}, 
{{MemTablePool#shutdown}} - should the number of seconds be configurable? At 
least make it a constant?
 # {{MessagingService#L472}} - braces are unnecessary for a single line if 
condition.
 # {{MessageInHandler}} - unused import statements in the file.
 # {{ByteBufferUtil#L495}} - "Can not" -> "Cannot"
 # {{Instance.java}} - Is there a reason that variable `root` is 
package-private? I think it can be private.
 # {{InstanceClassLoader}} - `commonClasses` can be made final
 # {{InstanceClassLoader}} - `id` variable is assigned but unused. Do we need 
it?
 # {{MessageFilters#allVerbs}} - method is unused. Do we need it?
 # {{RowUtil}} - has unused imports.
 # {{TestCluster#withThreadLeakCheck}} - method is unused. Do we need it?
 # {{TestCluster#close}} - L219 did you intend to comment out this?


was (Author: djoshi3):
 [~ifesdjeen], I went over the PR and it looks pretty cool. I did not have 
major concerns. I think this would be a valuable addition to the way we test 
Cassandra. There were some minor nits that you can address on commit. Please 
see below -

 # {{SecondaryIndexManager#shutdownExecutors}}, {{NettyFactory#close}}, 
{{PendingRangeCalculatorService#shutdownExecutor}}, 
{{Ref#shutdownReferenceReaper}}, {{BufferPool#shutdownLocalCleaner}}, 
{{MemTablePool#shutdown}} - should the number of seconds be configurable? At 
least make it a constant?
 # {{MessagingService#472}} - braces are unnecessary for a single line if 
condition.
 # {{MessageInHandler}} - unused import statements in the file.
 # {{ByteBufferUtil#495}} - "Can not" -> "Cannot"
 # {{Instance.java}} - Is there a reason that variable `root` is 
package-private? I think it can be private.
 # {{InstanceClassLoader}} - `commonClasses` can be made final
 # {{InstanceClassLoader}} - `id` variable is assigned but unused. Do we need 
it?
 # {{MessageFilters#allVerbs}} - method is unused. Do we need it?
 # {{RowUtil}} - has unused imports.
 # {{TestCluster#withThreadLeakCheck}} - method is unused. Do we need it?
 # {{TestCluster#close}} - L219 did you intend to comment out this?

> Make it possible to run multi-node coordinator/replica tests in a single JVM
> ----------------------------------------------------------------------------
>
>                 Key: CASSANDRA-14821
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14821
>             Project: Cassandra
>          Issue Type: Test
>            Reporter: Alex Petrov
>            Assignee: Alex Petrov
>            Priority: Major
>
> This patch proposes an in-JVM Distributed Tester that can help to write 
> distributed tests in a single JVM and be able to control node behaviour in a 
> fine-grained way and set up nodes exactly how one needs it: configuration 
> settings, parameters, which are also controllable in runtime on a per node 
> basis, so each node can have its own unique state.
> It fires up multiple Cassandra Instances in a single JVM. It is done through 
> having distinct class loaders in order to work around the singleton problem 
> in Cassandra. In order to be able to pass some information between the nodes, 
> a common class loader is used that loads up java standard library and several 
> helper classes. Tests look a lot like CQLTester tests would usually look like.
> Each Cassandra Instance, with its distinct class loader is using 
> serialisation and class loading mechanisms in order to run instance-local 
> queries and execute node state manipulation code, hooks, callbacks etc.
> First version mocks out Messaging Service and simplifies schema management by 
> simply running schema change commands on each of the instances separately. 
> Internode communication is mocked by passing ByteBuffers through shared class 
> loader.
> |[patch|https://github.com/ifesdjeen/cassandra/tree/14821]|[tests|https://circleci.com/workflow-run/3d999976-0b8e-40d6-83e0-867129747cc2]|



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to