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 system sh/deploy.sh -n dnode4 -i 4 system sh/deploy.sh -n dnode5 -i 5 system sh/deploy.sh -n dnode6 -i 6 system sh/cfg.sh -n dnode1 -c supportVnodes -v 4 system sh/cfg.sh -n dnode2 -c supportVnodes -v 4 system sh/cfg.sh -n dnode3 -c supportVnodes -v 4 system sh/cfg.sh -n dnode4 -c supportVnodes -v 4 system sh/cfg.sh -n dnode5 -c supportVnodes -v 4 system sh/cfg.sh -n dnode6 -c supportVnodes -v 4 print ========== step1 system sh/exec.sh -n dnode1 -s start sql connect sql create dnode $hostname port 7200 sql create dnode $hostname port 7300 sql create dnode $hostname port 7400 system sh/exec.sh -n dnode2 -s start system sh/exec.sh -n dnode3 -s start system sh/exec.sh -n dnode4 -s start $x = 0 step10: $x = $x + 1 sleep 1000 if $x == 10 then print ====> dnode not ready! return -1 endi sql select * from information_schema.ins_dnodes print ===> $data00 $data01 $data02 $data03 $data04 $data05 print ===> $data10 $data11 $data12 $data13 $data14 $data15 print ===> $data20 $data21 $data22 $data23 $data24 $data25 print ===> $data30 $data31 $data32 $data33 $data34 $data35 if $rows != 4 then return -1 endi if $data(1)[4] != ready then goto step10 endi if $data(2)[4] != ready then goto step10 endi if $data(3)[4] != ready then goto step10 endi if $data(4)[4] != ready then goto step10 endi sql create database d1 replica 3 vgroups 1 $x = 0 step11: $x = $x + 1 sleep 1000 if $x == 60 then print ====> db not ready! return -1 endi sql show d1.vgroups print ===> $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09 $leaderExist = 0 if $rows != 1 then return -1 endi if $data(2)[4] == leader then $leaderExist = 1 endi if $data(2)[6] == leader then $leaderExist = 1 endi if $data(2)[8] == leader then $leaderExist = 1 endi if $leaderExist != 1 then goto step11 endi sql create database d2 replica 3 vgroups 1 $x = 0 step12: $x = $x + 1 sleep 1000 if $x == 60 then print ====> d2 not ready! return -1 endi sql show d2.vgroups print ===> $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09 $leaderExist = 0 if $rows != 1 then return -1 endi if $data(3)[4] == leader then $leaderExist = 1 endi if $data(3)[6] == leader then $leaderExist = 1 endi if $data(3)[8] == leader then $leaderExist = 1 endi if $leaderExist != 1 then goto step12 endi sql create table d1.t1 (t timestamp, i int) sql insert into d1.t1 values(now+1s, 15) sql insert into d1.t1 values(now+2s, 14) sql insert into d1.t1 values(now+3s, 13) sql insert into d1.t1 values(now+4s, 12) sql insert into d1.t1 values(now+5s, 11) sql create table d2.t2 (t timestamp, i int) sql insert into d2.t2 values(now+1s, 25) sql insert into d2.t2 values(now+2s, 24) sql insert into d2.t2 values(now+3s, 23) sql insert into d2.t2 values(now+4s, 22) sql insert into d2.t2 values(now+5s, 21) sql select * from information_schema.ins_dnodes print dnode1 openVnodes $data(1)[2] print dnode2 openVnodes $data(2)[2] print dnode3 openVnodes $data(3)[2] print dnode4 openVnodes $data(4)[2] if $data(1)[2] != 1 then return -1 endi if $data(2)[2] != 2 then return -1 endi if $data(3)[2] != 2 then return -1 endi if $data(4)[2] != 1 then return -1 endi print ========== step2 sql drop dnode 2 sql select * from information_schema.ins_dnodes print dnode1 openVnodes $data(1)[2] print dnode2 openVnodes $data(2)[2] print dnode3 openVnodes $data(3)[2] print dnode4 openVnodes $data(4)[2] if $data(1)[2] != 2 then return -1 endi if $data(2)[2] != null then return -1 endi if $data(3)[2] != 2 then return -1 endi if $data(4)[2] != 2 then return -1 endi system sh/exec.sh -n dnode2 -s stop -x SIGINT print ========== step3 sql create dnode $hostname port 7500 system sh/exec.sh -n dnode5 -s start $x = 0 step3: $x = $x + 1 sleep 1000 if $x == 10 then print ====> dnode not ready! return -1 endi sql select * from information_schema.ins_dnodes print ===> $data00 $data01 $data02 $data03 $data04 $data05 print ===> $data10 $data11 $data12 $data13 $data14 $data15 print ===> $data20 $data21 $data22 $data23 $data24 $data25 print ===> $data30 $data31 $data32 $data33 $data34 $data35 if $rows != 4 then return -1 endi if $data(1)[4] != ready then goto step3 endi if $data(3)[4] != ready then goto step3 endi if $data(4)[4] != ready then goto step3 endi if $data(5)[4] != ready then goto step3 endi sql balance vgroup sql select * from information_schema.ins_dnodes print dnode1 openVnodes $data(1)[2] print dnode3 openVnodes $data(3)[2] print dnode4 openVnodes $data(4)[2] print dnode5 openVnodes $data(5)[2] if $data(1)[2] != 1 then return -1 endi if $data(3)[2] != 2 then return -1 endi if $data(4)[2] != 2 then return -1 endi if $data(5)[2] != 1 then return -1 endi print ========== step4 sql create database d3 replica 3 vgroups 1 sql create table d3.t3 (t timestamp, i int) sql insert into d3.t3 values(now+1s, 35) sql insert into d3.t3 values(now+2s, 34) sql insert into d3.t3 values(now+3s, 33) sql insert into d3.t3 values(now+4s, 32) sql insert into d3.t3 values(now+5s, 31) sql select * from information_schema.ins_dnodes print dnode1 openVnodes $data(1)[2] print dnode3 openVnodes $data(3)[2] print dnode4 openVnodes $data(4)[2] print dnode5 openVnodes $data(5)[2] if $data(1)[2] != 2 then return -1 endi if $data(3)[2] != 3 then return -1 endi if $data(4)[2] != 2 then return -1 endi if $data(5)[2] != 2 then return -1 endi print ========== step5 sql create dnode $hostname port 7600 system sh/exec.sh -n dnode6 -s start $x = 0 step5: $x = $x + 1 sleep 1000 if $x == 10 then print ====> dnode not ready! return -1 endi sql select * from information_schema.ins_dnodes print ===> $data00 $data01 $data02 $data03 $data04 $data05 print ===> $data10 $data11 $data12 $data13 $data14 $data15 print ===> $data20 $data21 $data22 $data23 $data24 $data25 print ===> $data30 $data31 $data32 $data33 $data34 $data35 print ===> $data40 $data41 $data42 $data43 $data44 $data45 if $rows != 5 then return -1 endi if $data(1)[4] != ready then goto step5 endi if $data(3)[4] != ready then goto step5 endi if $data(4)[4] != ready then goto step5 endi if $data(5)[4] != ready then goto step5 endi if $data(6)[4] != ready then goto step5 endi sql balance vgroup sql select * from information_schema.ins_dnodes print dnode1 openVnodes $data(1)[2] print dnode3 openVnodes $data(3)[2] print dnode4 openVnodes $data(4)[2] print dnode5 openVnodes $data(5)[2] print dnode5 openVnodes $data(6)[2] if $data(1)[2] != 1 then return -1 endi if $data(3)[2] != 2 then return -1 endi if $data(4)[2] != 2 then return -1 endi if $data(5)[2] != 2 then return -1 endi if $data(6)[2] != 2 then return -1 endi print ========== step6 sql drop dnode 3 sql select * from information_schema.ins_dnodes print dnode1 openVnodes $data(1)[2] print dnode3 openVnodes $data(3)[2] print dnode4 openVnodes $data(4)[2] print dnode5 openVnodes $data(5)[2] print dnode5 openVnodes $data(6)[2] if $data(1)[2] != 2 then return -1 endi if $data(3)[2] != null then return -1 endi if $data(4)[2] != 3 then return -1 endi if $data(5)[2] != 2 then return -1 endi if $data(6)[2] != 2 then return -1 endi system sh/exec.sh -n dnode3 -s stop -x SIGINT sql reset query cache sleep 100 print ========== step7 sql select * from d1.t1 order by t desc print $data01 $data11 $data21 $data31 $data41 if $data01 != 11 then return -1 endi if $data11 != 12 then return -1 endi if $data21 != 13 then return -1 endi if $data31 != 14 then return -1 endi if $data41 != 15 then return -1 endi sql select * from d2.t2 order by t desc print $data01 $data11 $data21 $data31 $data41 if $data01 != 21 then return -1 endi if $data11 != 22 then return -1 endi if $data21 != 23 then return -1 endi if $data31 != 24 then return -1 endi if $data41 != 25 then return -1 endi sql select * from d3.t3 order by t desc print $data01 $data11 $data21 $data31 $data41 if $data01 != 31 then return -1 endi if $data11 != 32 then return -1 endi if $data21 != 33 then return -1 endi if $data31 != 34 then return -1 endi if $data41 != 35 then return -1 endi system sh/exec.sh -n dnode1 -s stop -x SIGINT system sh/exec.sh -n dnode2 -s stop -x SIGINT system sh/exec.sh -n dnode3 -s stop -x SIGINT system sh/exec.sh -n dnode4 -s stop -x SIGINT system sh/exec.sh -n dnode5 -s stop -x SIGINT system sh/exec.sh -n dnode6 -s stop -x SIGINT system sh/exec.sh -n dnode7 -s stop -x SIGINT system sh/exec.sh -n dnode8 -s stop -x SIGINT