Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
milvus
milvus
提交
27808850
M
milvus
项目概览
milvus
/
milvus
10 个月 前同步成功
通知
260
Star
22476
Fork
2472
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
27808850
编写于
4月 12, 2023
作者:
C
congqixia
提交者:
GitHub
4月 12, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Check leader ready before transfer load/release (#23190)
Signed-off-by:
N
Congqi Xia
<
congqi.xia@zilliz.com
>
上级
051d8027
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
30 addition
and
2 deletion
+30
-2
internal/querynode/impl_utils.go
internal/querynode/impl_utils.go
+25
-2
internal/querynode/impl_utils_test.go
internal/querynode/impl_utils_test.go
+5
-0
未找到文件。
internal/querynode/impl_utils.go
浏览文件 @
27808850
...
...
@@ -28,6 +28,17 @@ func (node *QueryNode) TransferLoad(ctx context.Context, req *querypb.LoadSegmen
)
log
.
Info
(
"LoadSegment start to transfer load with shard cluster"
)
_
,
err
:=
node
.
queryShardService
.
getQueryShard
(
shard
)
if
err
!=
nil
{
log
.
Warn
(
"TransferLoad failed, failed to get query shard"
,
zap
.
String
(
"vChannel"
,
shard
),
zap
.
Error
(
err
))
return
&
commonpb
.
Status
{
ErrorCode
:
commonpb
.
ErrorCode_NotShardLeader
,
Reason
:
err
.
Error
(),
},
nil
}
shardCluster
,
ok
:=
node
.
ShardClusterService
.
getShardCluster
(
shard
)
if
!
ok
{
log
.
Warn
(
"TransferLoad failed to find shard cluster"
)
...
...
@@ -38,7 +49,7 @@ func (node *QueryNode) TransferLoad(ctx context.Context, req *querypb.LoadSegmen
}
req
.
NeedTransfer
=
false
err
:
=
shardCluster
.
LoadSegments
(
ctx
,
req
)
err
=
shardCluster
.
LoadSegments
(
ctx
,
req
)
if
err
!=
nil
{
if
errors
.
Is
(
err
,
ErrInsufficientMemory
)
{
log
.
Warn
(
"insufficient memory when shard cluster load segments"
,
zap
.
Error
(
err
))
...
...
@@ -71,6 +82,18 @@ func (node *QueryNode) TransferRelease(ctx context.Context, req *querypb.Release
log
.
Info
(
"ReleaseSegments start to transfer release with shard cluster"
)
shard
:=
req
.
GetShard
()
_
,
err
:=
node
.
queryShardService
.
getQueryShard
(
shard
)
if
err
!=
nil
{
log
.
Warn
(
"TransferRelease failed, failed to get query shard"
,
zap
.
String
(
"vChannel"
,
shard
),
zap
.
Error
(
err
))
return
&
commonpb
.
Status
{
ErrorCode
:
commonpb
.
ErrorCode_NotShardLeader
,
Reason
:
err
.
Error
(),
},
nil
}
shardCluster
,
ok
:=
node
.
ShardClusterService
.
getShardCluster
(
req
.
GetShard
())
if
!
ok
{
log
.
Warn
(
"TransferLoad failed to find shard cluster"
)
...
...
@@ -81,7 +104,7 @@ func (node *QueryNode) TransferRelease(ctx context.Context, req *querypb.Release
}
req
.
NeedTransfer
=
false
err
:
=
shardCluster
.
ReleaseSegments
(
ctx
,
req
,
false
)
err
=
shardCluster
.
ReleaseSegments
(
ctx
,
req
,
false
)
if
err
!=
nil
{
log
.
Warn
(
"shard cluster failed to release segments"
,
zap
.
Error
(
err
))
return
&
commonpb
.
Status
{
...
...
internal/querynode/impl_utils_test.go
浏览文件 @
27808850
...
...
@@ -42,6 +42,10 @@ func (s *ImplUtilsSuite) SetupSuite() {
s
.
querynode
.
UpdateStateCode
(
commonpb
.
StateCode_Healthy
)
s
.
querynode
.
ShardClusterService
=
newShardClusterService
(
client
,
s
.
querynode
.
session
,
s
.
querynode
)
s
.
querynode
.
queryShardService
=
&
queryShardService
{
cancel
:
func
()
{},
queryShards
:
make
(
map
[
string
]
*
queryShard
),
}
}
func
(
s
*
ImplUtilsSuite
)
TearDownSuite
()
{
...
...
@@ -62,6 +66,7 @@ func (s *ImplUtilsSuite) SetupTest() {
},
&
mockSegmentDetector
{},
buildMockQueryNode
)
s
.
querynode
.
ShardClusterService
.
clusters
.
Store
(
defaultChannelName
,
cs
)
s
.
querynode
.
queryShardService
.
queryShards
[
defaultChannelName
]
=
&
queryShard
{}
cs
.
SetupFirstVersion
()
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录