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

Commit754e495

Browse files
committed
perf.go: do not produce unused connections
1 parentdc88d68 commit754e495

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 -w400 -r 1 -n 1000 -a 100000')}}"
36+
shell:"go run ~/perf.go ~/transfers.go {{connections}} {{runkeys | d('-g -w200 -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 (tTransfersTS)writer(idint,cCommitschanint,cAbortschanint,wg*sync.WaitGroup) {
46-
varconns []*pgx.Conn
4746
varnGlobalTrans=0
4847
varsnapshotint64
4948
varcsnint64
@@ -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:=rangecfg.ConnStrs {
56-
dbconf,err:=pgx.ParseDSN(connstr)
57-
checkErr(err)
58-
conn,err:=pgx.Connect(dbconf)
59-
checkErr(err)
60-
deferconn.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+
deferconn1.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+
deferconn2.Close()
6374

6475

6576
fori:=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-
forconn1==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+
ifcfg.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+
ifcfg.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)

[8]ページ先頭

©2009-2025 Movatter.jp