@@ -1018,6 +1018,57 @@ def test_bootstrap_binary_disabled(self):
1018
1018
assert_bootstrap_state (self , node3 , 'COMPLETED' , user = 'cassandra' , password = 'cassandra' )
1019
1019
node3 .wait_for_binary_interface ()
1020
1020
1021
+ @since ('4.0' )
1022
+ @pytest .mark .no_vnodes
1023
+ def test_simple_bootstrap_with_everywhere_strategy (self ):
1024
+ cluster = self .cluster
1025
+ tokens = cluster .balanced_tokens (2 )
1026
+ cluster .set_configuration_options (values = {'num_tokens' : 1 })
1027
+
1028
+ logger .debug ("[node1, node2] tokens: %r" % (tokens ,))
1029
+
1030
+ keys = 10000
1031
+
1032
+ # Create a single node cluster
1033
+ cluster .populate (1 )
1034
+ node1 = cluster .nodelist ()[0 ]
1035
+ node1 .set_configuration_options (values = {'initial_token' : tokens [0 ]})
1036
+ cluster .start ()
1037
+
1038
+ session = self .patient_cql_connection (node1 )
1039
+ create_ks (session , 'ks' , 'EverywhereStrategy' )
1040
+ create_cf (session , 'cf' , columns = {'c1' : 'text' , 'c2' : 'text' })
1041
+
1042
+ insert_statement = session .prepare ("INSERT INTO ks.cf (key, c1, c2) VALUES (?, 'value1', 'value2')" )
1043
+ execute_concurrent_with_args (session , insert_statement , [['k%d' % k ] for k in range (keys )])
1044
+
1045
+ node1 .flush ()
1046
+ node1 .compact ()
1047
+
1048
+ # Reads inserted data all during the bootstrap process. We shouldn't
1049
+ # get any error
1050
+ query_c1c2 (session , random .randint (0 , keys - 1 ), ConsistencyLevel .ONE )
1051
+ session .shutdown ()
1052
+
1053
+ # Bootstrapping a new node in the current version
1054
+ node2 = new_node (cluster )
1055
+ node2 .set_configuration_options (values = {'initial_token' : tokens [1 ]})
1056
+ node2 .start (wait_for_binary_proto = True )
1057
+ node2 .compact ()
1058
+
1059
+ node1 .cleanup ()
1060
+ logger .debug ("node1 size for ks.cf after cleanup: %s" % float (data_size (node1 ,'ks' ,'cf' )))
1061
+ node1 .compact ()
1062
+ logger .debug ("node1 size for ks.cf after compacting: %s" % float (data_size (node1 ,'ks' ,'cf' )))
1063
+
1064
+ logger .debug ("node2 size for ks.cf after compacting: %s" % float (data_size (node2 ,'ks' ,'cf' )))
1065
+
1066
+ size1 = float (data_size (node1 ,'ks' ,'cf' ))
1067
+ size2 = float (data_size (node2 ,'ks' ,'cf' ))
1068
+ assert_almost_equal (size1 , size2 , error = 0.3 )
1069
+
1070
+ assert_bootstrap_state (self , node2 , 'COMPLETED' )
1071
+
1021
1072
@since ('4.1' )
1022
1073
def test_invalid_host_id (self ):
1023
1074
"""
0 commit comments