Browse Source

table name changed to op

pull/52/head
yedf2 4 years ago
parent
commit
c40ab415a3
  1. 2
      bench/http.go
  2. 2
      dtmsvr/dtmsvr.go
  3. 24
      dtmsvr/dtmsvr.mysql.sql
  4. 30
      dtmsvr/dtmsvr.postgres.sql
  5. 2
      dtmsvr/trans.go

2
bench/http.go

@ -41,7 +41,7 @@ func reloadData() {
time.Sleep(dtmsvr.UpdateBranchAsyncInterval * 2) time.Sleep(dtmsvr.UpdateBranchAsyncInterval * 2)
began := time.Now() began := time.Now()
db := sdbGet() db := sdbGet()
tables := []string{"dtm_busi.user_account", "dtm_busi.user_account_log", "dtm.trans_global", "dtm.trans_branch", "dtm_barrier.barrier"} tables := []string{"dtm_busi.user_account", "dtm_busi.user_account_log", "dtm.trans_global", "dtm.trans_branch_op", "dtm_barrier.barrier"}
for _, t := range tables { for _, t := range tables {
_, err := dtmimp.DBExec(db, fmt.Sprintf("truncate %s", t)) _, err := dtmimp.DBExec(db, fmt.Sprintf("truncate %s", t))
dtmimp.FatalIfError(err) dtmimp.FatalIfError(err)

2
dtmsvr/dtmsvr.go

@ -77,7 +77,7 @@ func updateBranchAsync() {
} }
for len(updates) > 0 { for len(updates) > 0 {
dbr := dbGet().Clauses(clause.OnConflict{ dbr := dbGet().Clauses(clause.OnConflict{
OnConstraint: "trans_branch_pkey", OnConstraint: "trans_branch_op_pkey",
DoUpdates: clause.AssignmentColumns([]string{"status", "finish_time"}), DoUpdates: clause.AssignmentColumns([]string{"status", "finish_time"}),
}).Create(updates) }).Create(updates)
dtmimp.Logf("flushed %d branch status to db. affected: %d", len(updates), dbr.RowsAffected) dtmimp.Logf("flushed %d branch status to db. affected: %d", len(updates), dbr.RowsAffected)

24
dtmsvr/dtmsvr.mysql.sql

@ -23,12 +23,10 @@ CREATE TABLE if not EXISTS dtm.trans_global (
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `gid` (`gid`), UNIQUE KEY `gid` (`gid`),
key `owner`(`owner`), key `owner`(`owner`),
KEY `create_time` (`create_time`),
KEY `update_time` (`update_time`),
key `status_next_cron_time` (`status`, `next_cron_time`) comment '这个索引用于查询超时的全局事务,能够合理的走索引' key `status_next_cron_time` (`status`, `next_cron_time`) comment '这个索引用于查询超时的全局事务,能够合理的走索引'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
drop table IF EXISTS dtm.trans_branch; drop table IF EXISTS dtm.trans_branch_op;
CREATE TABLE IF NOT EXISTS dtm.trans_branch ( CREATE TABLE IF NOT EXISTS dtm.trans_branch_op (
`id` bigint(22) NOT NULL AUTO_INCREMENT, `id` bigint(22) NOT NULL AUTO_INCREMENT,
`gid` varchar(128) NOT NULL COMMENT '事务全局id', `gid` varchar(128) NOT NULL COMMENT '事务全局id',
`url` varchar(128) NOT NULL COMMENT '动作关联的url', `url` varchar(128) NOT NULL COMMENT '动作关联的url',
@ -42,21 +40,5 @@ CREATE TABLE IF NOT EXISTS dtm.trans_branch (
`create_time` datetime DEFAULT NULL, `create_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `gid_uniq` (`gid`, `branch_id`, `op`), UNIQUE KEY `gid_uniq` (`gid`, `branch_id`, `op`)
KEY `create_time` (`create_time`),
KEY `update_time` (`update_time`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
drop table IF EXISTS dtm.trans_log;
CREATE TABLE IF NOT EXISTS dtm.trans_log (
`id` bigint(22) NOT NULL AUTO_INCREMENT,
`gid` varchar(128) NOT NULL COMMENT '事务全局id',
`branch_id` varchar(128) DEFAULT NULL COMMENT '事务分支ID',
`action` varchar(45) DEFAULT NULL COMMENT '行为',
`old_status` varchar(45) NOT NULL DEFAULT '' COMMENT '旧状态',
`new_status` varchar(45) NOT NULL COMMENT '新状态',
`detail` TEXT NOT NULL COMMENT '行为记录的数据',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `gid` (`gid`),
KEY `create_time` (`create_time`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;

30
dtmsvr/dtmsvr.postgres.sql

@ -25,14 +25,12 @@ CREATE TABLE if not EXISTS dtm.trans_global (
CONSTRAINT gid UNIQUE (gid) CONSTRAINT gid UNIQUE (gid)
); );
create index if not EXISTS owner on dtm.trans_global(owner); create index if not EXISTS owner on dtm.trans_global(owner);
CREATE INDEX if not EXISTS create_time ON dtm.trans_global (create_time);
CREATE INDEX if not EXISTS update_time ON dtm.trans_global (update_time);
create index if not EXISTS status_next_cron_time on dtm.trans_global (status, next_cron_time); create index if not EXISTS status_next_cron_time on dtm.trans_global (status, next_cron_time);
drop table IF EXISTS dtm.trans_branch; drop table IF EXISTS dtm.trans_branch_op;
-- SQLINES LICENSE FOR EVALUATION USE ONLY -- SQLINES LICENSE FOR EVALUATION USE ONLY
CREATE SEQUENCE if not EXISTS dtm.trans_branch_seq; CREATE SEQUENCE if not EXISTS dtm.trans_branch_op_seq;
CREATE TABLE IF NOT EXISTS dtm.trans_branch ( CREATE TABLE IF NOT EXISTS dtm.trans_branch_op (
id bigint NOT NULL DEFAULT NEXTVAL ('dtm.trans_branch_seq'), id bigint NOT NULL DEFAULT NEXTVAL ('dtm.trans_branch_op_seq'),
gid varchar(128) NOT NULL, gid varchar(128) NOT NULL,
url varchar(128) NOT NULL, url varchar(128) NOT NULL,
data TEXT, data TEXT,
@ -46,22 +44,4 @@ CREATE TABLE IF NOT EXISTS dtm.trans_branch (
update_time timestamp(0) DEFAULT NULL, update_time timestamp(0) DEFAULT NULL,
PRIMARY KEY (id), PRIMARY KEY (id),
CONSTRAINT gid_uniq UNIQUE (gid, branch_id, op) CONSTRAINT gid_uniq UNIQUE (gid, branch_id, op)
); );
CREATE INDEX if not EXISTS create_time ON dtm.trans_branch (create_time);
CREATE INDEX if not EXISTS update_time ON dtm.trans_branch (update_time);
drop table IF EXISTS dtm.trans_log;
-- SQLINES LICENSE FOR EVALUATION USE ONLY
CREATE SEQUENCE if not EXISTS dtm.trans_log_seq;
CREATE TABLE IF NOT EXISTS dtm.trans_log (
id bigint NOT NULL DEFAULT NEXTVAL ('dtm.trans_log_seq'),
gid varchar(128) NOT NULL,
branch_id varchar(128) DEFAULT NULL,
action varchar(45) DEFAULT NULL,
old_status varchar(45) NOT NULL DEFAULT '',
new_status varchar(45) NOT NULL,
detail TEXT NOT NULL,
create_time timestamp(0) DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
CREATE INDEX if not EXISTS gid ON dtm.trans_log (gid);
CREATE INDEX if not EXISTS create_time ON dtm.trans_log (create_time);

2
dtmsvr/trans.go

@ -105,7 +105,7 @@ type TransBranch struct {
// TableName TableName // TableName TableName
func (*TransBranch) TableName() string { func (*TransBranch) TableName() string {
return "dtm.trans_branch" return "dtm.trans_branch_op"
} }
func (t *TransBranch) changeStatus(db *common.DB, status string) *gorm.DB { func (t *TransBranch) changeStatus(db *common.DB, status string) *gorm.DB {

Loading…
Cancel
Save