mirror of https://github.com/milvus-io/milvus.git
60 lines
1.2 KiB
Go
60 lines
1.2 KiB
Go
package writenode
|
|
|
|
import (
|
|
"context"
|
|
|
|
etcdkv "github.com/zilliztech/milvus-distributed/internal/kv/etcd"
|
|
"go.etcd.io/etcd/clientv3"
|
|
)
|
|
|
|
type WriteNode struct {
|
|
ctx context.Context
|
|
WriteNodeID uint64
|
|
dataSyncService *dataSyncService
|
|
|
|
metaTable *metaTable
|
|
}
|
|
|
|
func NewWriteNode(ctx context.Context, writeNodeID uint64) (*WriteNode, error) {
|
|
|
|
node := &WriteNode{
|
|
ctx: ctx,
|
|
WriteNodeID: writeNodeID,
|
|
dataSyncService: nil,
|
|
}
|
|
|
|
etcdAddress := Params.EtcdAddress
|
|
etcdClient, err := clientv3.New(clientv3.Config{Endpoints: []string{etcdAddress}})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
etcdKV := etcdkv.NewEtcdKV(etcdClient, Params.MetaRootPath)
|
|
metaKV, err2 := NewMetaTable(etcdKV)
|
|
if err2 != nil {
|
|
return nil, err
|
|
}
|
|
node.metaTable = metaKV
|
|
|
|
return node, nil
|
|
}
|
|
|
|
func (node *WriteNode) Start() {
|
|
node.dataSyncService = newDataSyncService(node.ctx)
|
|
// node.statsService = newStatsService(node.ctx)
|
|
|
|
go node.dataSyncService.start()
|
|
// node.statsService.start()
|
|
}
|
|
|
|
func (node *WriteNode) Close() {
|
|
<-node.ctx.Done()
|
|
|
|
// close services
|
|
if node.dataSyncService != nil {
|
|
(*node.dataSyncService).close()
|
|
}
|
|
// if node.statsService != nil {
|
|
// (*node.statsService).close()
|
|
// }
|
|
}
|