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

Alex Petrov commented on CASSANDRA-14821:
-----------------------------------------

Thank you [~spo...@gmail.com] for your feedback. I've added some more complex 
tests to make it more illustrative: one is illustrative for [CASSANDRA-13004] 
and one for failing read/repair (when node drops read-repair message). 

I wouldn't say that this is work in progress even by the time of first 
submission, but I agree that some additional description to get people more 
excited about it was due. I hoped it was covered in the initial issue 
description, but I'm also happy to elaborate. This testing framework will help 
us to introduce things that are otherwise difficult to reproduce. For example 
[CASSANDRA-13304] was quite hard to catch and only thanks to folks who have 
submitted a go program that would help to reproduce it we were able to catch 
it. Creating a dtest test for it would've been rather difficult. Similarly, 
read/repair dropping messages would've required to introduce Byteman scripts, 
which are much less reliable than direct code execution.

Hope the latest version and this comment will be more helpful in terms of our 
motivation.


> 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
>
> Currently, dtests are complex to write, hard to modify and slow to run. The 
> only option to manipulate a cluster state is either to shut down nodes or run 
> unreliable Byteman queries. 
> In order to improve the situation, a new Distributed Tester is proposed. 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.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to