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