Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite4c52ba

Browse files
committed
ts-test
1 parent3ac7e80 commite4c52ba

File tree

1 file changed

+37
-57
lines changed

1 file changed

+37
-57
lines changed

‎contrib/pg_tsdtm/tests/transfers.go‎

Lines changed: 37 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ const (
1818

1919

2020
varcfg1= pgx.ConnConfig{
21-
Host:"127.0.0.1",
22-
Port:5432,
21+
Host:"astro9",
22+
Port:15432,
2323
Database:"postgres",
2424
}
2525

2626
varcfg2= pgx.ConnConfig{
27-
Host:"127.0.0.1",
28-
Port:5433,
27+
Host:"astro9",
28+
Port:15433,
2929
Database:"postgres",
3030
}
3131

@@ -60,10 +60,12 @@ func prepare_db() {
6060
snapshot=execQuery(conn1,"select dtm_extend($1)",gtid)
6161
snapshot=execQuery(conn2,"select dtm_access($1, $2)",snapshot,gtid)
6262

63-
fori:=0;i<N_ACCOUNTS;i++ {
64-
exec(conn1,"insert into t values($1, $2)",i,INIT_AMOUNT)
65-
exec(conn2,"insert into t values($1, $2)",i,INIT_AMOUNT)
66-
}
63+
//for i := 0; i < N_ACCOUNTS; i++ {
64+
// exec(conn1, "insert into t values($1, $2)", i, INIT_AMOUNT)
65+
// exec(conn2, "insert into t values($1, $2)", i, INIT_AMOUNT)
66+
//}
67+
exec(conn1,"insert into t (select generate_series(0,$1-1), $2)",N_ACCOUNTS,0)
68+
exec(conn2,"insert into t (select generate_series(0,$1-1), $2)",N_ACCOUNTS,0)
6769

6870
exec(conn1,"prepare transaction '"+gtid+"'")
6971
exec(conn2,"prepare transaction '"+gtid+"'")
@@ -104,60 +106,38 @@ func transfer(id int, wg *sync.WaitGroup) {
104106
deferconn2.Close()
105107

106108
fori:=0;i<N_ITERATIONS;i++ {
107-
vardst*pgx.Conn
108-
varsrc*pgx.Conn
109-
choice:=rand.Intn(3)-1
109+
110110
gtid:=strconv.Itoa(id)+"."+strconv.Itoa(i)
111-
ifchoice<0 {
112-
src=conn1
113-
dst=conn1
114-
exec(conn1,"begin transaction")
115-
}elseifchoice>0 {
116-
src=conn2
117-
dst=conn2
118-
exec(conn2,"begin transaction")
119-
}else {
120-
src=conn1
121-
dst=conn2
122-
exec(conn1,"begin transaction")
123-
exec(conn2,"begin transaction")
124-
snapshot=execQuery(conn1,"select dtm_extend($1)",gtid)
125-
snapshot=execQuery(conn2,"select dtm_access($1, $2)",snapshot,gtid)
126-
}
127-
//amount := 2*rand.Intn(2) - 1
128-
amount:=1
129-
account1:=rand.Intn(N_ACCOUNTS)
130-
account2:=rand.Intn(N_ACCOUNTS)
131-
132-
ifaccount1>account2 {
133-
tmp:=account1
134-
account1=account2
135-
account2=tmp
136-
}
111+
amount:=2*rand.Intn(2)-1
112+
account1:=2*id+1
113+
account2:=2*id+2
137114

138-
exec(src,"update t set v = v - $1 where u=$2",amount,account1)
139-
exec(dst,"update t set v = v + $1 where u=$2",amount,account2)
115+
exec(conn1,"begin transaction")
116+
exec(conn2,"begin transaction")
117+
snapshot=execQuery(conn1,"select dtm_extend($1)",gtid)
118+
snapshot=execQuery(conn2,"select dtm_access($1, $2)",snapshot,gtid)
140119

141-
if (src!=dst) {
142-
exec(conn1,"prepare transaction '"+gtid+"'")
143-
exec(conn2,"prepare transaction '"+gtid+"'")
144120

145-
exec(conn1,"select dtm_begin_prepare($1)",gtid)
146-
exec(conn2,"select dtm_begin_prepare($1)",gtid)
121+
exec(conn1,"update t set v = v - $1 where u=$2",amount,account1)
122+
exec(conn2,"update t set v = v + $1 where u=$2",amount,account2)
147123

148-
csn=execQuery(conn1,"select dtm_prepare($1, 0)",gtid)
149-
csn=execQuery(conn2,"select dtm_prepare($1, $2)",gtid,csn)
124+
exec(conn1,"prepare transaction '"+gtid+"'")
125+
exec(conn2,"prepare transaction '"+gtid+"'")
150126

151-
exec(conn1,"selectdtm_end_prepare($1, $2)",gtid,csn)
152-
exec(conn2,"selectdtm_end_prepare($1, $2)",gtid,csn)
127+
exec(conn1,"selectdtm_begin_prepare($1)",gtid)
128+
exec(conn2,"selectdtm_begin_prepare($1)",gtid)
153129

154-
exec(conn1,"commit prepared '"+gtid+"'")
155-
exec(conn2,"commit prepared '"+gtid+"'")
156-
nGlobalTrans++
157-
}else {
158-
exec(dst,"commit")
159-
}
160-
}
130+
csn=execQuery(conn1,"select dtm_prepare($1, 0)",gtid)
131+
csn=execQuery(conn2,"select dtm_prepare($1, $2)",gtid,csn)
132+
133+
exec(conn1,"select dtm_end_prepare($1, $2)",gtid,csn)
134+
exec(conn2,"select dtm_end_prepare($1, $2)",gtid,csn)
135+
136+
exec(conn1,"commit prepared '"+gtid+"'")
137+
exec(conn2,"commit prepared '"+gtid+"'")
138+
nGlobalTrans++
139+
140+
}
161141

162142
fmt.Printf("Test completed, performed %d global transactions\n",nGlobalTrans)
163143
wg.Done()
@@ -215,7 +195,8 @@ func main() {
215195
running=false
216196
inspectWg.Wait()
217197

218-
fmt.Printf("Elapsed time %f sec",time.Since(start).Seconds())
198+
fmt.Printf("Elapsed time %f sec\n",time.Since(start).Seconds())
199+
fmt.Printf("TPS = %f\n",float64(TRANSFER_CONNECTIONS*N_ITERATIONS)/time.Since(start).Seconds())
219200
}
220201

221202
funcexec(conn*pgx.Conn,stmtstring,arguments...interface{}) {
@@ -238,4 +219,3 @@ func checkErr(err error) {
238219
}
239220
}
240221

241-

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp