replica_changeWithArbitrator.sim 2.2 KB
Newer Older
H
Hui Li 已提交
1 2 3 4 5
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

6 7 8
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 dnode3 -c numOfMnodes -v 2
H
Hui Li 已提交
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

system sh/cfg.sh -n dnode1 -c walLevel -v 1
system sh/cfg.sh -n dnode2 -c walLevel -v 1
system sh/cfg.sh -n dnode3 -c walLevel -v 1

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

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


print ============== step1: replica is 1, and start 1 dnode
S
Shengliang Guan 已提交
27
system sh/exec.sh -n dnode1 -s start
H
Hui Li 已提交
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
sleep 3000
sql connect

$db = replica_db1
sql create database $db replica 1 maxTables 4
sql use $db

# create table , insert data
$stb = repl_stb
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
$rowNum = 10
$tblNum = 12

$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
endw 

print ============== step2: add 1 new dnode, expect balanced
S
Shengliang Guan 已提交
61
system sh/exec.sh -n dnode2 -s start
H
Hui Li 已提交
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
sql create dnode $hostname2

# expect after balanced, 2 vondes in dnode1, 1 vonde in dnode2
$x = 0
show2: 
	$x = $x + 1
	sleep 2000
	if $x == 10 then
		return -1
	endi
	
sql show dnodes
print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data2_2
if $data2_1 != 2 then
	goto show2
endi
if $data2_2 != 1 then
	goto show2
endi

print ============== step4: stop dnode1, and wait dnode2 master
S
Shengliang Guan 已提交
84
system sh/exec.sh -n dnode1 -s stop
H
Hui Li 已提交
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

$x = 0
loop_wait:
	$x = $x + 1
	sleep 2000
	if $x == 10 then
	  print ERROR: after dnode1 stop, dnode2 didn't become a master! 
		return -1
	endi
sql show mnodes
$dnodeRole = $data2_1
print dnodeRole ==> $dnodeRole

if $dnodeRole != master then
  goto loop_wait
endi