Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
milvus
milvus
提交
d41cc0b2
M
milvus
项目概览
milvus
/
milvus
11 个月 前同步成功
通知
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 搜索 >>
未验证
提交
d41cc0b2
编写于
2月 02, 2023
作者:
W
wayblink
提交者:
GitHub
2月 02, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revoke session to only delete session key created by this node (#21935)
Signed-off-by:
N
wayblink
<
anyang.wang@zilliz.com
>
上级
88293b8b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
12 deletion
+10
-12
internal/util/sessionutil/session_util.go
internal/util/sessionutil/session_util.go
+10
-12
未找到文件。
internal/util/sessionutil/session_util.go
浏览文件 @
d41cc0b2
...
...
@@ -355,12 +355,14 @@ func (s *Session) getCompleteKey() string {
// RegisterService will save a key-value in etcd
// key: metaRootPath + "/services" + "/ServerName-ServerID"
// value: json format
// {
// ServerID int64 `json:"ServerID,omitempty"`
// ServerName string `json:"ServerName,omitempty"`
// Address string `json:"Address,omitempty"`
// Exclusive bool `json:"Exclusive,omitempty"`
// }
//
// {
// ServerID int64 `json:"ServerID,omitempty"`
// ServerName string `json:"ServerName,omitempty"`
// Address string `json:"Address,omitempty"`
// Exclusive bool `json:"Exclusive,omitempty"`
// }
//
// Exclusive means whether this service can exist two at the same time, if so,
// it is false. Otherwise, set it to true.
func
(
s
*
Session
)
registerService
()
(
<-
chan
*
clientv3
.
LeaseKeepAliveResponse
,
error
)
{
...
...
@@ -410,12 +412,7 @@ func (s *Session) registerService() (<-chan *clientv3.LeaseKeepAliveResponse, er
keepAliveCtx
,
keepAliveCancel
:=
context
.
WithCancel
(
context
.
Background
())
s
.
keepAliveCancel
=
func
()
{
// delete the session key to make roll update faster
// ignore the resp and error handle, just delete
_
,
_
=
s
.
etcdCli
.
Delete
(
keepAliveCtx
,
completeKey
)
if
s
.
enableActiveStandBy
&&
!
s
.
isStandby
.
Load
()
.
(
bool
)
{
_
,
_
=
s
.
etcdCli
.
Delete
(
keepAliveCtx
,
s
.
activeKey
)
}
s
.
Revoke
(
time
.
Second
)
keepAliveCancel
()
}
ch
,
err
=
s
.
etcdCli
.
KeepAlive
(
keepAliveCtx
,
resp
.
ID
)
...
...
@@ -776,6 +773,7 @@ func (s *Session) updateStandby(b bool) {
// 3, If 2. return true, this service becomes ACTIVE. Exit STANDBY mode.
// 4, If 2. return false, which means an ACTIVE service already exist.
// Start watching the active key. Whenever active key disappears, STANDBY node will go backup to 2.
//
// activateFunc is the function to re-active the service.
func
(
s
*
Session
)
ProcessActiveStandBy
(
activateFunc
func
())
error
{
s
.
activeKey
=
path
.
Join
(
s
.
metaRoot
,
DefaultServiceRoot
,
s
.
ServerName
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录