Skip to content

Commit e4c52ba

Browse files
committed
ts-test
1 parent 3ac7e80 commit e4c52ba

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
var cfg1 = pgx.ConnConfig{
21-
Host: "127.0.0.1",
22-
Port: 5432,
21+
Host: "astro9",
22+
Port: 15432,
2323
Database: "postgres",
2424
}
2525

2626
var cfg2 = 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-
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-
}
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
defer conn2.Close()
105107

106108
for i := 0; i < N_ITERATIONS; i++ {
107-
var dst *pgx.Conn
108-
var src *pgx.Conn
109-
choice := rand.Intn(3)-1
109+
110110
gtid := strconv.Itoa(id) + "." + strconv.Itoa(i)
111-
if choice < 0 {
112-
src = conn1
113-
dst = conn1
114-
exec(conn1, "begin transaction")
115-
} else if choice > 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-
if account1 > 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, "select dtm_end_prepare($1, $2)", gtid, csn)
152-
exec(conn2, "select dtm_end_prepare($1, $2)", gtid, csn)
127+
exec(conn1, "select dtm_begin_prepare($1)", gtid)
128+
exec(conn2, "select dtm_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
func exec(conn *pgx.Conn, stmt string, arguments ...interface{}) {
@@ -238,4 +219,3 @@ func checkErr(err error) {
238219
}
239220
}
240221

241-

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy