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

Commit31208e7

Browse files
kvapkelvich
authored andcommitted
Implement two async transactions in the deadlock tap test.
1 parente62a796 commit31208e7

File tree

1 file changed

+41
-32
lines changed

1 file changed

+41
-32
lines changed

‎t/000_deadlock.pl

Lines changed: 41 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ sub query_exec
2222
{
2323
my ($dbi,$sql) =@_;
2424
my$rv =$dbi->do($sql) ||die;
25-
print"query_exec('$sql')\n";
25+
print"query_exec('$sql') =$rv\n";
2626
return$rv;
2727
}
2828

2929
subquery_exec_async
3030
{
3131
my ($dbi,$sql) =@_;
3232
my$rv =$dbi->do($sql, {pg_async=> PG_ASYNC}) ||die;
33-
print"query_exec('$sql')\n";
33+
print"query_exec_async('$sql') =$rv\n";
3434
return$rv;
3535
}
3636

@@ -56,7 +56,7 @@ sub allocate_ports
5656
return@allocated_now;
5757
}
5858

59-
my$nnodes =2;
59+
my$nnodes =3;
6060
my@nodes = ();
6161

6262
# Create nodes and allocate ports
@@ -89,22 +89,19 @@ sub allocate_ports
8989
listen_addresses = '$host'
9090
unix_socket_directories = ''
9191
port =$pgport
92-
max_connections = 200
93-
shared_buffers = 1GB
94-
max_prepared_transactions = 200
95-
max_worker_processes = 100
92+
max_prepared_transactions = 10
93+
max_worker_processes = 10
9694
wal_level = logical
9795
fsync = off
98-
max_wal_size = 100GB
99-
min_wal_size = 1GB
10096
max_wal_senders = 10
10197
wal_sender_timeout = 0
10298
max_replication_slots = 10
10399
shared_preload_libraries = 'raftable,multimaster'
104-
multimaster.workers =8
105-
multimaster.queue_size =104857600 #100mb
100+
multimaster.workers =4
101+
multimaster.queue_size =10485760 #10mb
106102
multimaster.node_id =$id
107103
multimaster.conn_strings = '$mm_connstr'
104+
multimaster.use_raftable = true
108105
raftable.id =$id
109106
raftable.peers = '$raft_peers'
110107
));
@@ -122,27 +119,39 @@ sub allocate_ports
122119
$node->start();
123120
}
124121

125-
$nodes[0]->psql("create table t(k int primary key, v text)");
126-
$nodes[0]->psql("insert into t values (1, 'hello'), (2, 'world')");
122+
my ($rc,$out,$err);
123+
sleep(10);
127124

128-
#my @conns = map { DBI->connect('DBI:Pg:' . $_->connstr()) } @nodes;
129-
#
130-
#query_exec($conns[0], "begin");
131-
#query_exec($conns[1], "begin");
132-
#
133-
#query_exec($conns[0], "update t set v = 'foo' where k = 1");
134-
#query_exec($conns[1], "update t set v = 'bar' where k = 2");
135-
#
136-
#query_exec($conns[0], "update t set v = 'bar' where k = 2");
137-
#query_exec($conns[1], "update t set v = 'foo' where k = 1");
138-
#
139-
#query_exec_async($conns[0], "commit");
140-
#query_exec_async($conns[1], "commit");
141-
#
142-
#my $ready = 0;
143-
#$ready++ if $conns[0]->pg_ready;
144-
#$ready++ if $conns[1]->pg_ready;
145-
#
146-
#is($ready, 1, "one of the connections is deadlocked");
125+
$nodes[0]->psql('postgres',"create table t(k int primary key, v text)");
126+
$nodes[0]->psql('postgres',"insert into t values (1, 'hello'), (2, 'world')");
127+
128+
#sub space2semicol
129+
#{
130+
#my $str = shift;
131+
#$str =~ tr/ /;/;
132+
#return $str;
133+
#}
147134
#
135+
my@conns =map { DBI->connect('DBI:Pg:' .$_->connstr()) }@nodes;
136+
137+
query_exec($conns[0],"begin");
138+
query_exec($conns[1],"begin");
139+
140+
query_exec($conns[0],"update t set v = 'asd' where k = 1");
141+
query_exec($conns[1],"update t set v = 'bsd' where k = 2");
142+
143+
query_exec($conns[0],"update t set v = 'bar' where k = 2");
144+
query_exec($conns[1],"update t set v = 'foo' where k = 1");
145+
146+
query_exec_async($conns[0],"commit");
147+
query_exec_async($conns[1],"commit");
148+
149+
formy$i (1..2)
150+
{
151+
($rc,$out,$err) =$nodes[$i]->psql('postgres',"select * from t");
152+
print(" rc[$i] =$rc\n");
153+
print("out[$i] =$out\n");
154+
print("err[$i] =$err\n");
155+
}
156+
148157
#sleep(2);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp