Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
milvus
milvus
提交
390fad4e
M
milvus
项目概览
milvus
/
milvus
11 个月 前同步成功
通知
261
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,发现更多精彩内容 >>
未验证
提交
390fad4e
编写于
10月 29, 2021
作者:
C
congqixia
提交者:
GitHub
10月 29, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix LatestPosition option conflict with earliest patch (#10907)
Signed-off-by:
N
Congqi Xia
<
congqi.xia@zilliz.com
>
上级
b4182587
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
135 addition
and
123 deletion
+135
-123
internal/datacoord/server.go
internal/datacoord/server.go
+128
-119
internal/datacoord/server_test.go
internal/datacoord/server_test.go
+2
-2
internal/util/mqclient/pulsar_client.go
internal/util/mqclient/pulsar_client.go
+5
-2
未找到文件。
internal/datacoord/server.go
浏览文件 @
390fad4e
...
...
@@ -312,24 +312,25 @@ func (s *Server) initMeta() error {
func
(
s
*
Server
)
startServerLoop
()
{
s
.
serverLoopCtx
,
s
.
serverLoopCancel
=
context
.
WithCancel
(
s
.
ctx
)
s
.
serverLoopWg
.
Add
(
4
)
go
s
.
startStatsChannel
(
s
.
serverLoopCtx
)
go
s
.
startDataNodeTtLoop
(
s
.
serverLoopCtx
)
go
s
.
startWatchService
(
s
.
serverLoopCtx
)
go
s
.
startFlushLoop
(
s
.
serverLoopCtx
)
s
.
startStatsChannel
(
s
.
serverLoopCtx
)
s
.
startDataNodeTtLoop
(
s
.
serverLoopCtx
)
s
.
startWatchService
(
s
.
serverLoopCtx
)
s
.
startFlushLoop
(
s
.
serverLoopCtx
)
go
s
.
session
.
LivenessCheck
(
s
.
serverLoopCtx
,
func
()
{
log
.
Fatal
(
"Data Coord disconnected from etcd, process will exit"
,
zap
.
Int64
(
"Server Id"
,
s
.
session
.
ServerID
))
})
}
func
(
s
*
Server
)
startStatsChannel
(
ctx
context
.
Context
)
{
defer
logutil
.
LogPanic
()
defer
s
.
serverLoopWg
.
Done
()
statsStream
,
_
:=
s
.
msFactory
.
NewMsgStream
(
ctx
)
statsStream
.
AsConsumer
([]
string
{
Params
.
StatisticsChannelName
},
Params
.
DataCoordSubscriptionName
)
log
.
Debug
(
"dataCoord create stats channel consumer"
,
zap
.
String
(
"channelName"
,
Params
.
StatisticsChannelName
),
zap
.
String
(
"descriptionName"
,
Params
.
DataCoordSubscriptionName
))
statsStream
.
Start
()
go
func
()
{
defer
logutil
.
LogPanic
()
defer
s
.
serverLoopWg
.
Done
()
defer
statsStream
.
Close
()
for
{
select
{
...
...
@@ -355,11 +356,10 @@ func (s *Server) startStatsChannel(ctx context.Context) {
}
}
}
}()
}
func
(
s
*
Server
)
startDataNodeTtLoop
(
ctx
context
.
Context
)
{
defer
logutil
.
LogPanic
()
defer
s
.
serverLoopWg
.
Done
()
ttMsgStream
,
err
:=
s
.
msFactory
.
NewMsgStream
(
ctx
)
if
err
!=
nil
{
log
.
Error
(
"new msg stream failed"
,
zap
.
Error
(
err
))
...
...
@@ -371,14 +371,17 @@ func (s *Server) startDataNodeTtLoop(ctx context.Context) {
zap
.
String
(
"timeTickChannelName"
,
Params
.
TimeTickChannelName
),
zap
.
String
(
"subscriptionName"
,
Params
.
DataCoordSubscriptionName
))
ttMsgStream
.
Start
()
defer
ttMsgStream
.
Close
()
go
func
()
{
var
checker
*
LongTermChecker
if
enableTtChecker
{
checker
=
NewLongTermChecker
(
ctx
,
ttCheckerName
,
ttMaxInterval
,
ttCheckerWarnMsg
)
checker
.
Start
()
defer
checker
.
Stop
()
}
defer
logutil
.
LogPanic
()
defer
s
.
serverLoopWg
.
Done
()
defer
ttMsgStream
.
Close
()
for
{
select
{
case
<-
ctx
.
Done
()
:
...
...
@@ -455,13 +458,16 @@ func (s *Server) startDataNodeTtLoop(ctx context.Context) {
}
s
.
helper
.
eventAfterHandleDataNodeTt
()
}
}()
}
//go:norace
// fix datarace in unittest
// startWatchService will only be invoked at start procedure
// otherwise, remove the annotation and add atomic protection
// start a goroutine wto watch services
func
(
s
*
Server
)
startWatchService
(
ctx
context
.
Context
)
{
go
s
.
watchService
(
ctx
)
}
// watchService watchs services
func
(
s
*
Server
)
watchService
(
ctx
context
.
Context
)
{
defer
logutil
.
LogPanic
()
defer
s
.
serverLoopWg
.
Done
()
for
{
...
...
@@ -484,6 +490,7 @@ func (s *Server) startWatchService(ctx context.Context) {
}
}
}
}
// handles session events - DataNodes Add/Del
...
...
@@ -527,6 +534,7 @@ func (s *Server) handleSessionEvent(ctx context.Context, event *sessionutil.Sess
}
func
(
s
*
Server
)
startFlushLoop
(
ctx
context
.
Context
)
{
go
func
()
{
defer
logutil
.
LogPanic
()
defer
s
.
serverLoopWg
.
Done
()
ctx2
,
cancel
:=
context
.
WithCancel
(
ctx
)
...
...
@@ -543,6 +551,7 @@ func (s *Server) startFlushLoop(ctx context.Context) {
_
=
s
.
postFlush
(
ctx
,
segmentID
)
}
}
}()
}
// post function after flush is done
...
...
internal/datacoord/server_test.go
浏览文件 @
390fad4e
...
...
@@ -592,7 +592,7 @@ func TestService_WatchServices(t *testing.T) {
signal
:=
make
(
chan
struct
{},
1
)
go
func
()
{
svr
.
startW
atchService
(
context
.
Background
())
svr
.
w
atchService
(
context
.
Background
())
flag
=
true
signal
<-
struct
{}{}
}()
...
...
@@ -609,7 +609,7 @@ func TestService_WatchServices(t *testing.T) {
svr
.
serverLoopWg
.
Add
(
1
)
go
func
()
{
svr
.
startW
atchService
(
ctx
)
svr
.
w
atchService
(
ctx
)
flag
=
true
signal
<-
struct
{}{}
}()
...
...
internal/util/mqclient/pulsar_client.go
浏览文件 @
390fad4e
...
...
@@ -67,9 +67,12 @@ func (pc *pulsarClient) Subscribe(options ConsumerOptions) (Consumer, error) {
if
err
!=
nil
{
return
nil
,
err
}
//consumer.Seek(pulsar.EarliestMessageID())
//consumer.SeekByTime(time.Unix(0, 0))
pConsumer
:=
&
pulsarConsumer
{
c
:
consumer
,
closeCh
:
make
(
chan
struct
{})}
// prevent seek to earliest patch applied when using latest position options
if
options
.
SubscriptionInitialPosition
==
SubscriptionPositionLatest
{
pConsumer
.
hasSeek
=
true
}
return
pConsumer
,
nil
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录