Skip to content

Commit 754e495

Browse files
committed
perf.go: do not produce unused connections
1 parent dc88d68 commit 754e495

File tree

2 files changed

+43
-25
lines changed

2 files changed

+43
-25
lines changed

tests/perf.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
gather_facts: no
3434
tasks:
3535
- name: run transfers
36-
shell: "go run ~/perf.go ~/transfers.go {{connections}} {{runkeys | d('-g -w 400 -r 1 -n 1000 -a 100000')}}"
36+
shell: "go run ~/perf.go ~/transfers.go {{connections}} {{runkeys | d('-g -w 200 -r 1 -n 1000 -a 100000')}}"
3737
register: transfers_result
3838
- debug: var=transfers_result
3939

tests/perf/transfers.go

Lines changed: 42 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ func (t TransfersTS) prepare_one(connstr string, wg *sync.WaitGroup) {
4343
}
4444

4545
func (t TransfersTS) writer(id int, cCommits chan int, cAborts chan int, wg *sync.WaitGroup) {
46-
var conns []*pgx.Conn
4746
var nGlobalTrans = 0
4847
var snapshot int64
4948
var csn int64
@@ -52,45 +51,64 @@ func (t TransfersTS) writer(id int, cCommits chan int, cAborts chan int, wg *syn
5251
cfg.ConnStrs.Set(cfg.ConnStrs[0])
5352
}
5453

55-
for _, connstr := range cfg.ConnStrs {
56-
dbconf, err := pgx.ParseDSN(connstr)
57-
checkErr(err)
58-
conn, err := pgx.Connect(dbconf)
59-
checkErr(err)
60-
defer conn.Close()
61-
conns = append(conns, conn)
62-
}
54+
// for _, connstr := range cfg.ConnStrs {
55+
// dbconf, err := pgx.ParseDSN(connstr)
56+
// checkErr(err)
57+
// conn, err := pgx.Connect(dbconf)
58+
// checkErr(err)
59+
// defer conn.Close()
60+
// conns = append(conns, conn)
61+
// }
62+
63+
dbconf1, err := pgx.ParseDSN(cfg.ConnStrs[ id % len(cfg.ConnStrs) ])
64+
checkErr(err)
65+
conn1, err := pgx.Connect(dbconf1)
66+
checkErr(err)
67+
defer conn1.Close()
68+
69+
dbconf2, err := pgx.ParseDSN(cfg.ConnStrs[ (id + 1) % len(cfg.ConnStrs) ])
70+
checkErr(err)
71+
conn2, err := pgx.Connect(dbconf2)
72+
checkErr(err)
73+
defer conn2.Close()
6374

6475

6576
for i := 0; i < cfg.IterNum; i++ {
6677

67-
6878
gtid := strconv.Itoa(id) + "." + strconv.Itoa(i)
6979
amount := 2*rand.Intn(2) - 1
7080
from_acc := rand.Intn(cfg.AccountsNum)//cfg.Writers.StartId + 2*id + 1
7181
to_acc := rand.Intn(cfg.AccountsNum)//cfg.Writers.StartId + 2*id + 2
7282

73-
conn1 := conns[rand.Intn(len(conns))]
74-
conn2 := conns[rand.Intn(len(conns))]
75-
for conn1 == conn2 {
76-
conn1 = conns[rand.Intn(len(conns))]
77-
conn2 = conns[rand.Intn(len(conns))]
78-
}
83+
// conn1 := conns[rand.Intn(len(conns))]
84+
// conn2 := conns[rand.Intn(len(conns))]
85+
// for conn1 == conn2 {
86+
// conn1 = conns[rand.Intn(len(conns))]
87+
// conn2 = conns[rand.Intn(len(conns))]
88+
// }
7989

8090
exec(conn1, "begin transaction")
8191
exec(conn2, "begin transaction")
82-
snapshot = _execQuery(conn1, "select dtm_extend($1)", gtid)
83-
snapshot = _execQuery(conn2, "select dtm_access($1, $2)", snapshot, gtid)
92+
93+
if cfg.UseDtm {
94+
snapshot = _execQuery(conn1, "select dtm_extend($1)", gtid)
95+
snapshot = _execQuery(conn2, "select dtm_access($1, $2)", snapshot, gtid)
96+
}
97+
8498
exec(conn1, "update t set v = v - $1 where u=$2", amount, from_acc)
8599
exec(conn2, "update t set v = v + $1 where u=$2", amount, to_acc)
86100
exec(conn1, "prepare transaction '" + gtid + "'")
87101
exec(conn2, "prepare transaction '" + gtid + "'")
88-
exec(conn1, "select dtm_begin_prepare($1)", gtid)
89-
exec(conn2, "select dtm_begin_prepare($1)", gtid)
90-
csn = _execQuery(conn1, "select dtm_prepare($1, 0)", gtid)
91-
csn = _execQuery(conn2, "select dtm_prepare($1, $2)", gtid, csn)
92-
exec(conn1, "select dtm_end_prepare($1, $2)", gtid, csn)
93-
exec(conn2, "select dtm_end_prepare($1, $2)", gtid, csn)
102+
103+
if cfg.UseDtm {
104+
exec(conn1, "select dtm_begin_prepare($1)", gtid)
105+
exec(conn2, "select dtm_begin_prepare($1)", gtid)
106+
csn = _execQuery(conn1, "select dtm_prepare($1, 0)", gtid)
107+
csn = _execQuery(conn2, "select dtm_prepare($1, $2)", gtid, csn)
108+
exec(conn1, "select dtm_end_prepare($1, $2)", gtid, csn)
109+
exec(conn2, "select dtm_end_prepare($1, $2)", gtid, csn)
110+
}
111+
94112
exec(conn1, "commit prepared '" + gtid + "'")
95113
exec(conn2, "commit prepared '" + gtid + "'")
96114
nGlobalTrans++

0 commit comments

Comments
 (0)