replica_changeWithArbitrator.sim 5.8 KB
Newer Older
H
Hui Li 已提交
1 2 3 4
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/deploy.sh -n dnode2 -i 2
system sh/deploy.sh -n dnode3 -i 3
H
Hui Li 已提交
5
system sh/deploy.sh -n dnode4 -i 4
H
Hui Li 已提交
6

H
Hui Li 已提交
7 8 9
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
H
Hui Li 已提交
10

H
Hui Li 已提交
11 12 13 14
system sh/cfg.sh -n dnode1 -c walLevel -v 2
system sh/cfg.sh -n dnode2 -c walLevel -v 2
system sh/cfg.sh -n dnode3 -c walLevel -v 2
system sh/cfg.sh -n dnode4 -c walLevel -v 2
H
Hui Li 已提交
15 16 17 18

system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
H
Hui Li 已提交
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10

system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 8
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 8
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 8
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 8

system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
#system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 4
#system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
#system sh/cfg.sh -n dnode4 -c mnodeEqualVnodeNum -v 4

system sh/cfg.sh -n dnode1 -c alternativeRole -v 0
system sh/cfg.sh -n dnode2 -c alternativeRole -v 0
system sh/cfg.sh -n dnode3 -c alternativeRole -v 0
system sh/cfg.sh -n dnode4 -c alternativeRole -v 0

system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4
system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 4
system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v 4
system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 4
system sh/cfg.sh -n dnode5 -c maxtablesPerVnode -v 4
H
Hui Li 已提交
41 42 43 44 45 46 47 48

system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator

print ============== step0: start tarbitrator
system sh/exec_tarbitrator.sh -s start

H
Hui Li 已提交
49
print ============== step1: replica is 1, and start 1 dnode, then create tables and insert data
S
Shengliang Guan 已提交
50
system sh/exec.sh -n dnode1 -s start
H
Hui Li 已提交
51 52 53
sleep 3000
sql connect

H
Hui Li 已提交
54 55 56 57
$totalTableNum = 12

$db = db
sql create database $db replica 1 maxTables  $totalTableNum
H
Hui Li 已提交
58 59 60
sql use $db

# create table , insert data
H
Hui Li 已提交
61
$stb = stb
H
Hui Li 已提交
62 63
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
$rowNum = 10
H
Hui Li 已提交
64 65
$tblNum = $totalTableNum
$totalRows = $rowNum * $tblNum
H
Hui Li 已提交
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83

$ts0 = 1420041600000
$ts = $ts0
$delta = 1

$i = 0
while $i < $tblNum
  $tb = tb . $i
  sql create table $tb using $stb tags( $i )
 
  $x = 0
  while $x < $rowNum
    $xs = $x * $delta
    $ts = $ts0 + $xs
    sql insert into $tb values ( $ts , $x ) 
    $x = $x + 1
  endw 
  $i = $i + 1
H
Hui Li 已提交
84
  print       $tb inserted rows: $x
H
Hui Li 已提交
85 86
endw 

H
Hui Li 已提交
87 88 89 90 91 92
sql select count(*) from $stb
print data00 $data00
if $data00 != $totalRows then
	return -1
endi

H
Hui Li 已提交
93
print ============== step2: add 1 new dnode, expect balanced
S
Shengliang Guan 已提交
94
system sh/exec.sh -n dnode2 -s start
H
Hui Li 已提交
95
sql create dnode $hostname2
H
Hui Li 已提交
96
sleep 3000
H
Hui Li 已提交
97 98

# expect after balanced, 2 vondes in dnode1, 1 vonde in dnode2
H
Hui Li 已提交
99
wait_dnode2_ready:
H
Hui Li 已提交
100
sql show dnodes
H
Hui Li 已提交
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
if $rows != 2 then
  sleep 2000
  goto wait_dnode2_ready
endi
print $data0_1  $data1_1  $data2_1  $data3_1  $data4_1
print $data0_2  $data1_2  $data2_2  $data3_2  $data4_2
print $data0_3  $data1_3  $data2_3  $data3_3  $data4_3
#print $data0_4  $data1_4  $data2_4  $data3_4  $data4_4
#print $data0_5  $data1_5  $data2_5  $data3_5  $data4_5
#print $data0_6  $data1_6  $data2_6  $data3_6  $data4_6
$dnode1Status = $data4_1  
$dnode2Status = $data4_2
#$dnode3Status = $data4_3  
#$dnode4Status = $data4_4 
#$dnode5Status = $data4_5

if $dnode1Status != ready then
  sleep 2000
  goto wait_dnode2_ready
H
Hui Li 已提交
120
endi
H
Hui Li 已提交
121 122 123
if $dnode2Status != ready then
  sleep 2000
  goto wait_dnode2_ready
H
Hui Li 已提交
124 125
endi

H
Hui Li 已提交
126
print ============== step3: stop dnode1/dnode2, modify cfg mpeers to 2, and restart dnode1/dnode2
S
Shengliang Guan 已提交
127
system sh/exec.sh -n dnode1 -s stop
H
Hui Li 已提交
128 129
system sh/exec.sh -n dnode2 -s stop
sleep 3000
H
Hui Li 已提交
130

H
Hui Li 已提交
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2

system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 4

system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
system sh/cfg.sh -n dnode2 -c alternativeRole -v 0

system sh/exec.sh -n dnode1 -s start
system sh/exec.sh -n dnode2 -s start
sleep 5000


print ============= step4: wait dnode ready
wait_dnode_ready:
sql show dnodes
if $rows != 2 then
  sleep 2000
  goto wait_dnode_ready
endi
print $data0_1  $data1_1  $data2_1  $data3_1  $data4_1
print $data0_2  $data1_2  $data2_2  $data3_2  $data4_2
#print $data0_3  $data1_3  $data2_3  $data3_3  $data4_3
#print $data0_4  $data1_4  $data2_4  $data3_4  $data4_4
#print $data0_5  $data1_5  $data2_5  $data3_5  $data4_5
#print $data0_6  $data1_6  $data2_6  $data3_6  $data4_6
$dnode1Status = $data4_1  
$dnode2Status = $data4_2
#$dnode3Status = $data4_3  
#$dnode4Status = $data4_4 
#$dnode5Status = $data4_5

if $dnode1Status != ready then
  sleep 2000
  goto wait_dnode_ready
endi
if $dnode2Status != ready then
  sleep 2000
  goto wait_dnode_ready
endi

sql select count(*) from $stb
print data00 $data00
if $data00 != $totalRows then
	return -1
endi

print ============== step5: stop dnode1
system sh/exec.sh -n dnode1 -s stop
sleep 3000

wait_dnode2_master:
H
Hui Li 已提交
184
sql show mnodes
H
Hui Li 已提交
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
if $rows != 2 then
  sleep 2000
  goto wait_dnode2_master
endi
print $data0_1  $data1_1  $data2_1  $data3_1  $data4_1
print $data0_2  $data1_2  $data2_2  $data3_2  $data4_2
#print $data0_3  $data1_3  $data2_3  $data3_3  $data4_3
#print $data0_4  $data1_4  $data2_4  $data3_4  $data4_4
#print $data0_5  $data1_5  $data2_5  $data3_5  $data4_5
#print $data0_6  $data1_6  $data2_6  $data3_6  $data4_6
$dnode1Status = $data4_1  
$dnode2Status = $data4_2
#$dnode3Status = $data4_3  
#$dnode4Status = $data4_4 
#$dnode5Status = $data4_5

if $data2_1 != offline then
  sleep 2000
  goto wait_dnode2_master
endi
if $data2_2 != master then
  sleep 2000
  goto wait_dnode2_master
endi
H
Hui Li 已提交
209

H
Hui Li 已提交
210 211 212 213
sql select count(*) from $stb
print data00 $data00
if $data00 != $totalRows then
	return -1
H
Hui Li 已提交
214
endi
H
Hui Li 已提交
215 216