Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
milvus
milvus
提交
39d31f8b
M
milvus
项目概览
milvus
/
milvus
9 个月 前同步成功
通知
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 搜索 >>
未验证
提交
39d31f8b
编写于
5月 30, 2023
作者:
C
congqixia
提交者:
GitHub
5月 30, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Trigger checker while waiting collection/partition released (#24523)
Signed-off-by:
N
Congqi Xia
<
congqi.xia@zilliz.com
>
上级
b09e7aea
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
69 addition
and
43 deletion
+69
-43
internal/querycoordv2/job/job_release.go
internal/querycoordv2/job/job_release.go
+40
-33
internal/querycoordv2/job/job_test.go
internal/querycoordv2/job/job_test.go
+23
-9
internal/querycoordv2/job/utils.go
internal/querycoordv2/job/utils.go
+4
-1
internal/querycoordv2/services.go
internal/querycoordv2/services.go
+2
-0
未找到文件。
internal/querycoordv2/job/job_release.go
浏览文件 @
39d31f8b
...
...
@@ -23,6 +23,7 @@ import (
"go.uber.org/zap"
"github.com/milvus-io/milvus/internal/proto/querypb"
"github.com/milvus-io/milvus/internal/querycoordv2/checkers"
"github.com/milvus-io/milvus/internal/querycoordv2/meta"
"github.com/milvus-io/milvus/internal/querycoordv2/observers"
"github.com/milvus-io/milvus/internal/querycoordv2/session"
...
...
@@ -33,13 +34,14 @@ import (
type
ReleaseCollectionJob
struct
{
*
BaseJob
req
*
querypb
.
ReleaseCollectionRequest
dist
*
meta
.
DistributionManager
meta
*
meta
.
Meta
broker
meta
.
Broker
cluster
session
.
Cluster
targetMgr
*
meta
.
TargetManager
targetObserver
*
observers
.
TargetObserver
req
*
querypb
.
ReleaseCollectionRequest
dist
*
meta
.
DistributionManager
meta
*
meta
.
Meta
broker
meta
.
Broker
cluster
session
.
Cluster
targetMgr
*
meta
.
TargetManager
targetObserver
*
observers
.
TargetObserver
checkerController
*
checkers
.
CheckerController
}
func
NewReleaseCollectionJob
(
ctx
context
.
Context
,
...
...
@@ -50,16 +52,18 @@ func NewReleaseCollectionJob(ctx context.Context,
cluster
session
.
Cluster
,
targetMgr
*
meta
.
TargetManager
,
targetObserver
*
observers
.
TargetObserver
,
checkerController
*
checkers
.
CheckerController
,
)
*
ReleaseCollectionJob
{
return
&
ReleaseCollectionJob
{
BaseJob
:
NewBaseJob
(
ctx
,
req
.
Base
.
GetMsgID
(),
req
.
GetCollectionID
()),
req
:
req
,
dist
:
dist
,
meta
:
meta
,
broker
:
broker
,
cluster
:
cluster
,
targetMgr
:
targetMgr
,
targetObserver
:
targetObserver
,
BaseJob
:
NewBaseJob
(
ctx
,
req
.
Base
.
GetMsgID
(),
req
.
GetCollectionID
()),
req
:
req
,
dist
:
dist
,
meta
:
meta
,
broker
:
broker
,
cluster
:
cluster
,
targetMgr
:
targetMgr
,
targetObserver
:
targetObserver
,
checkerController
:
checkerController
,
}
}
...
...
@@ -93,7 +97,7 @@ func (job *ReleaseCollectionJob) Execute() error {
job
.
targetMgr
.
RemoveCollection
(
req
.
GetCollectionID
())
job
.
targetObserver
.
ReleaseCollection
(
req
.
GetCollectionID
())
waitCollectionReleased
(
job
.
dist
,
req
.
GetCollectionID
())
waitCollectionReleased
(
job
.
dist
,
job
.
checkerController
,
req
.
GetCollectionID
())
metrics
.
QueryCoordNumCollections
.
WithLabelValues
()
.
Dec
()
metrics
.
QueryCoordNumPartitions
.
WithLabelValues
()
.
Sub
(
float64
(
len
(
toRelease
)))
metrics
.
QueryCoordReleaseCount
.
WithLabelValues
(
metrics
.
TotalLabel
)
.
Inc
()
...
...
@@ -105,13 +109,14 @@ type ReleasePartitionJob struct {
*
BaseJob
releasePartitionsOnly
bool
req
*
querypb
.
ReleasePartitionsRequest
dist
*
meta
.
DistributionManager
meta
*
meta
.
Meta
broker
meta
.
Broker
cluster
session
.
Cluster
targetMgr
*
meta
.
TargetManager
targetObserver
*
observers
.
TargetObserver
req
*
querypb
.
ReleasePartitionsRequest
dist
*
meta
.
DistributionManager
meta
*
meta
.
Meta
broker
meta
.
Broker
cluster
session
.
Cluster
targetMgr
*
meta
.
TargetManager
targetObserver
*
observers
.
TargetObserver
checkerController
*
checkers
.
CheckerController
}
func
NewReleasePartitionJob
(
ctx
context
.
Context
,
...
...
@@ -122,16 +127,18 @@ func NewReleasePartitionJob(ctx context.Context,
cluster
session
.
Cluster
,
targetMgr
*
meta
.
TargetManager
,
targetObserver
*
observers
.
TargetObserver
,
checkerController
*
checkers
.
CheckerController
,
)
*
ReleasePartitionJob
{
return
&
ReleasePartitionJob
{
BaseJob
:
NewBaseJob
(
ctx
,
req
.
Base
.
GetMsgID
(),
req
.
GetCollectionID
()),
req
:
req
,
dist
:
dist
,
meta
:
meta
,
broker
:
broker
,
cluster
:
cluster
,
targetMgr
:
targetMgr
,
targetObserver
:
targetObserver
,
BaseJob
:
NewBaseJob
(
ctx
,
req
.
Base
.
GetMsgID
(),
req
.
GetCollectionID
()),
req
:
req
,
dist
:
dist
,
meta
:
meta
,
broker
:
broker
,
cluster
:
cluster
,
targetMgr
:
targetMgr
,
targetObserver
:
targetObserver
,
checkerController
:
checkerController
,
}
}
...
...
@@ -175,7 +182,7 @@ func (job *ReleasePartitionJob) Execute() error {
job
.
targetMgr
.
RemoveCollection
(
req
.
GetCollectionID
())
job
.
targetObserver
.
ReleaseCollection
(
req
.
GetCollectionID
())
metrics
.
QueryCoordNumCollections
.
WithLabelValues
()
.
Dec
()
waitCollectionReleased
(
job
.
dist
,
req
.
GetCollectionID
())
waitCollectionReleased
(
job
.
dist
,
job
.
checkerController
,
req
.
GetCollectionID
())
}
else
{
err
:=
job
.
meta
.
CollectionManager
.
RemovePartition
(
toRelease
...
)
if
err
!=
nil
{
...
...
@@ -184,7 +191,7 @@ func (job *ReleasePartitionJob) Execute() error {
return
utils
.
WrapError
(
msg
,
err
)
}
job
.
targetMgr
.
RemovePartition
(
req
.
GetCollectionID
(),
toRelease
...
)
waitCollectionReleased
(
job
.
dist
,
req
.
GetCollectionID
(),
toRelease
...
)
waitCollectionReleased
(
job
.
dist
,
job
.
checkerController
,
req
.
GetCollectionID
(),
toRelease
...
)
}
metrics
.
QueryCoordNumPartitions
.
WithLabelValues
()
.
Sub
(
float64
(
len
(
toRelease
)))
return
nil
...
...
internal/querycoordv2/job/job_test.go
浏览文件 @
39d31f8b
...
...
@@ -31,6 +31,7 @@ import (
etcdkv
"github.com/milvus-io/milvus/internal/kv/etcd"
"github.com/milvus-io/milvus/internal/proto/datapb"
"github.com/milvus-io/milvus/internal/proto/querypb"
"github.com/milvus-io/milvus/internal/querycoordv2/checkers"
"github.com/milvus-io/milvus/internal/querycoordv2/meta"
"github.com/milvus-io/milvus/internal/querycoordv2/observers"
.
"github.com/milvus-io/milvus/internal/querycoordv2/params"
...
...
@@ -55,15 +56,16 @@ type JobSuite struct {
loadTypes
map
[
int64
]
querypb
.
LoadType
// Dependencies
kv
kv
.
MetaKv
store
meta
.
Store
dist
*
meta
.
DistributionManager
meta
*
meta
.
Meta
cluster
*
session
.
MockCluster
targetMgr
*
meta
.
TargetManager
targetObserver
*
observers
.
TargetObserver
broker
*
meta
.
MockBroker
nodeMgr
*
session
.
NodeManager
kv
kv
.
MetaKv
store
meta
.
Store
dist
*
meta
.
DistributionManager
meta
*
meta
.
Meta
cluster
*
session
.
MockCluster
targetMgr
*
meta
.
TargetManager
targetObserver
*
observers
.
TargetObserver
broker
*
meta
.
MockBroker
nodeMgr
*
session
.
NodeManager
checkerController
*
checkers
.
CheckerController
// Test objects
scheduler
*
Scheduler
...
...
@@ -174,6 +176,8 @@ func (suite *JobSuite) SetupTest() {
suite
.
NoError
(
err
)
err
=
suite
.
meta
.
AssignNode
(
meta
.
DefaultResourceGroupName
,
3000
)
suite
.
NoError
(
err
)
suite
.
checkerController
=
&
checkers
.
CheckerController
{}
}
func
(
suite
*
JobSuite
)
TearDownTest
()
{
...
...
@@ -856,6 +860,7 @@ func (suite *JobSuite) TestReleaseCollection() {
suite
.
cluster
,
suite
.
targetMgr
,
suite
.
targetObserver
,
suite
.
checkerController
,
)
suite
.
scheduler
.
Add
(
job
)
err
:=
job
.
Wait
()
...
...
@@ -877,6 +882,7 @@ func (suite *JobSuite) TestReleaseCollection() {
suite
.
cluster
,
suite
.
targetMgr
,
suite
.
targetObserver
,
suite
.
checkerController
,
)
suite
.
scheduler
.
Add
(
job
)
err
:=
job
.
Wait
()
...
...
@@ -905,6 +911,7 @@ func (suite *JobSuite) TestReleasePartition() {
suite
.
cluster
,
suite
.
targetMgr
,
suite
.
targetObserver
,
suite
.
checkerController
,
)
suite
.
scheduler
.
Add
(
job
)
err
:=
job
.
Wait
()
...
...
@@ -927,6 +934,7 @@ func (suite *JobSuite) TestReleasePartition() {
suite
.
cluster
,
suite
.
targetMgr
,
suite
.
targetObserver
,
suite
.
checkerController
,
)
suite
.
scheduler
.
Add
(
job
)
err
:=
job
.
Wait
()
...
...
@@ -951,6 +959,7 @@ func (suite *JobSuite) TestReleasePartition() {
suite
.
cluster
,
suite
.
targetMgr
,
suite
.
targetObserver
,
suite
.
checkerController
,
)
suite
.
scheduler
.
Add
(
job
)
err
:=
job
.
Wait
()
...
...
@@ -983,6 +992,7 @@ func (suite *JobSuite) TestDynamicRelease() {
suite
.
cluster
,
suite
.
targetMgr
,
suite
.
targetObserver
,
suite
.
checkerController
,
)
return
job
}
...
...
@@ -999,6 +1009,7 @@ func (suite *JobSuite) TestDynamicRelease() {
suite
.
cluster
,
suite
.
targetMgr
,
suite
.
targetObserver
,
suite
.
checkerController
,
)
return
job
}
...
...
@@ -1295,6 +1306,7 @@ func (suite *JobSuite) TestCallReleasePartitionFailed() {
suite
.
cluster
,
suite
.
targetMgr
,
suite
.
targetObserver
,
suite
.
checkerController
,
)
suite
.
scheduler
.
Add
(
releaseCollectionJob
)
err
:=
releaseCollectionJob
.
Wait
()
...
...
@@ -1313,6 +1325,7 @@ func (suite *JobSuite) TestCallReleasePartitionFailed() {
suite
.
cluster
,
suite
.
targetMgr
,
suite
.
targetObserver
,
suite
.
checkerController
,
)
suite
.
scheduler
.
Add
(
releasePartitionJob
)
err
=
releasePartitionJob
.
Wait
()
...
...
@@ -1451,6 +1464,7 @@ func (suite *JobSuite) releaseAll() {
suite
.
cluster
,
suite
.
targetMgr
,
suite
.
targetObserver
,
suite
.
checkerController
,
)
suite
.
scheduler
.
Add
(
job
)
err
:=
job
.
Wait
()
...
...
internal/querycoordv2/job/utils.go
浏览文件 @
39d31f8b
...
...
@@ -26,6 +26,7 @@ import (
"github.com/milvus-io/milvus-proto/go-api/commonpb"
"github.com/milvus-io/milvus-proto/go-api/schemapb"
"github.com/milvus-io/milvus/internal/proto/querypb"
"github.com/milvus-io/milvus/internal/querycoordv2/checkers"
"github.com/milvus-io/milvus/internal/querycoordv2/meta"
"github.com/milvus-io/milvus/internal/querycoordv2/session"
"github.com/milvus-io/milvus/pkg/log"
...
...
@@ -36,7 +37,7 @@ import (
// waitCollectionReleased blocks until
// all channels and segments of given collection(partitions) are released,
// empty partition list means wait for collection released
func
waitCollectionReleased
(
dist
*
meta
.
DistributionManager
,
collection
int64
,
partitions
...
int64
)
{
func
waitCollectionReleased
(
dist
*
meta
.
DistributionManager
,
c
heckerController
*
checkers
.
CheckerController
,
c
ollection
int64
,
partitions
...
int64
)
{
partitionSet
:=
typeutil
.
NewUniqueSet
(
partitions
...
)
for
{
var
(
...
...
@@ -55,6 +56,8 @@ func waitCollectionReleased(dist *meta.DistributionManager, collection int64, pa
break
}
// trigger check more frequently
checkerController
.
Check
()
time
.
Sleep
(
200
*
time
.
Millisecond
)
}
}
...
...
internal/querycoordv2/services.go
浏览文件 @
39d31f8b
...
...
@@ -276,6 +276,7 @@ func (s *Server) ReleaseCollection(ctx context.Context, req *querypb.ReleaseColl
s
.
cluster
,
s
.
targetMgr
,
s
.
targetObserver
,
s
.
checkerController
,
)
s
.
jobScheduler
.
Add
(
releaseJob
)
err
:=
releaseJob
.
Wait
()
...
...
@@ -400,6 +401,7 @@ func (s *Server) ReleasePartitions(ctx context.Context, req *querypb.ReleasePart
s
.
cluster
,
s
.
targetMgr
,
s
.
targetObserver
,
s
.
checkerController
,
)
s
.
jobScheduler
.
Add
(
releaseJob
)
err
:=
releaseJob
.
Wait
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录