Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
e9385752
Commit
e9385752
authored
May 09, 2013
by
antirez
Browse files
Test: more PSYNC tests (backlog TTL).
parent
a7486a65
Changes
1
Hide whitespace changes
Inline
Side-by-side
tests/integration/replication-psync.tcl
View file @
e9385752
...
@@ -7,7 +7,13 @@ proc stop_bg_complex_data {handle} {
...
@@ -7,7 +7,13 @@ proc stop_bg_complex_data {handle} {
catch
{
exec /bin/kill -9 $handle
}
catch
{
exec /bin/kill -9 $handle
}
}
}
proc test_psync
{
backlog cond
}
{
# Creates a master-slave pair and breaks the link continuously to force
# partial resyncs attempts, all this while flooding the master with
# write queries.
#
# You can specifiy backlog size, ttl, delay before reconnection, test duration
# in seconds, and an additional condition to verify at the end.
proc test_psync
{
descr duration backlog_size backlog_ttl delay cond
}
{
start_server
{
tags
{
"repl"
}}
{
start_server
{
tags
{
"repl"
}}
{
start_server
{}
{
start_server
{}
{
...
@@ -16,7 +22,8 @@ proc test_psync {backlog cond} {
...
@@ -16,7 +22,8 @@ proc test_psync {backlog cond} {
set master_port
[
srv -1 port
]
set master_port
[
srv -1 port
]
set slave
[
srv 0 client
]
set slave
[
srv 0 client
]
$master config set repl-backlog-size $backlog
$master config set repl-backlog-size $backlog_size
$master config set repl-backlog-ttl $backlog_ttl
set load_handle0
[
start_bg_complex_data $master_host $master_port 9 100000
]
set load_handle0
[
start_bg_complex_data $master_host $master_port 9 100000
]
set load_handle1
[
start_bg_complex_data $master_host $master_port 11 100000
]
set load_handle1
[
start_bg_complex_data $master_host $master_port 11 100000
]
...
@@ -24,20 +31,30 @@ proc test_psync {backlog cond} {
...
@@ -24,20 +31,30 @@ proc test_psync {backlog cond} {
test
{
First server should have role slave after SLAVEOF
}
{
test
{
First server should have role slave after SLAVEOF
}
{
$slave slaveof $master_host $master_port
$slave slaveof $master_host $master_port
after 1000
wait_for_condition 50 100
{
s 0 role
[
s 0 role
]
eq
{
slave
}
}
{
slave
}
}
else
{
fail
"Replication not started."
}
}
test
"Test replication partial resync
with backlog
$backlog
"
{
test
"Test replication partial resync
:
$descr
"
{
# Now while the clients are writing data, break the maste-slave
# Now while the clients are writing data, break the maste-slave
# link multiple times.
# link multiple times.
for
{
set j 0
}
{
$j
< 1
0
0
}
{
incr j
}
{
for
{
set j 0
}
{
$j
<
$duration*
10
}
{
incr j
}
{
after 100
;
# 100 times 100 milliseconds = 10 seconds total test
after 100
# catch
{
puts
"MASTER
[
$master
dbsize
]
keys, SLAVE
[
$slave
dbsize
]
keys"
}
# catch
{
puts
"MASTER
[
$master
dbsize
]
keys, SLAVE
[
$slave
dbsize
]
keys"
}
if
{(
$j
% 20
)
== 0
}
{
if
{(
$j
% 20
)
== 0
}
{
catch
{
catch
{
$slave client kill $master_host:$master_port
if
{
$delay
}
{
$slave multi
$slave client kill $master_host:$master_port
$slave debug sleep $delay
$slave exec
}
else
{
$slave client kill $master_host:$master_port
}
}
}
}
}
}
}
...
@@ -71,9 +88,18 @@ proc test_psync {backlog cond} {
...
@@ -71,9 +88,18 @@ proc test_psync {backlog cond} {
}
}
}
}
test_psync
100000
0
{
test_psync
{
ok psync
}
6 1000000 3600
0
{
assert
{[
s -1 sync_partial_ok
]
> 0
}
assert
{[
s -1 sync_partial_ok
]
> 0
}
}
}
test_psync 100
{
test_psync
{
no backlog
}
6 100 3600 0
{
assert
{[
s -1 sync_partial_err
]
> 0
}
}
test_psync
{
ok after delay
}
3 100000000 3600 3
{
assert
{[
s -1 sync_partial_ok
]
> 0
}
}
test_psync
{
backlog expired
}
3 100000000 1 3
{
assert
{[
s -1 sync_partial_err
]
> 0
}
assert
{[
s -1 sync_partial_err
]
> 0
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment