Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Turbo码先生
redis
提交
e9385752
R
redis
项目概览
Turbo码先生
/
redis
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e9385752
编写于
5月 09, 2013
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Test: more PSYNC tests (backlog TTL).
上级
a7486a65
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
37 addition
and
11 deletion
+37
-11
tests/integration/replication-psync.tcl
tests/integration/replication-psync.tcl
+37
-11
未找到文件。
tests/integration/replication-psync.tcl
浏览文件 @
e9385752
...
...
@@ -7,7 +7,13 @@ proc stop_bg_complex_data {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
{}
{
...
...
@@ -16,7 +22,8 @@ proc test_psync {backlog cond} {
set master_port
[
srv -1 port
]
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_handle1
[
start_bg_complex_data $master_host $master_port 11 100000
]
...
...
@@ -24,20 +31,30 @@ proc test_psync {backlog cond} {
test
{
First server should have role slave after SLAVEOF
}
{
$slave slaveof $master_host $master_port
after 1000
s 0 role
}
{
slave
}
wait_for_condition 50 100
{
[
s 0 role
]
eq
{
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
# link multiple times.
for
{
set j 0
}
{
$j
<
10
0
}
{
incr j
}
{
after 100
;
# 100 times 100 milliseconds = 10 seconds total test
for
{
set j 0
}
{
$j
<
$duration*1
0
}
{
incr j
}
{
after 100
# catch
{
puts
"MASTER
[
$master
dbsize
]
keys, SLAVE
[
$slave
dbsize
]
keys"
}
if
{(
$j
% 20
)
== 0
}
{
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} {
}
}
test_psync
100000
0
{
test_psync
{
ok psync
}
6 1000000 3600
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
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录