未验证 提交 4af2cacb 编写于 作者: Z zhenshan.cao 提交者: GitHub

Refactor IndexService and IndexNode: remove redundant serviceID (#5491)

Signed-off-by: Nzhenshan.cao <zhenshan.cao@zilliz.com>
上级 ca0993c2
......@@ -38,10 +38,6 @@ import (
"github.com/milvus-io/milvus/internal/util/typeutil"
)
const (
reqTimeoutInterval = time.Second * 10
)
type UniqueID = typeutil.UniqueID
type Timestamp = typeutil.Timestamp
......@@ -115,7 +111,7 @@ func (i *IndexNode) Init() error {
Ip: Params.IP,
Port: int64(Params.Port),
},
ServerID: i.session.ServerID,
NodeID: i.session.ServerID,
}
resp, err2 := i.serviceClient.RegisterNode(ctx, request)
......
......@@ -473,7 +473,7 @@ func (i *IndexService) assignmentTasksLoop() {
if err := i.metaTable.UpdateVersion(indexBuildID); err != nil {
log.Debug("IndexService", zap.String("build index update version err", err.Error()))
}
nodeID, builderClient, nodeServerID := i.nodeClients.PeekClient()
nodeID, builderClient := i.nodeClients.PeekClient()
if builderClient == nil {
log.Debug("IndexService has no available IndexNode")
i.assignChan <- []UniqueID{indexBuildID}
......@@ -493,7 +493,7 @@ func (i *IndexService) assignmentTasksLoop() {
if err != nil {
log.Debug("IndexService", zap.String("build index err", err.Error()))
}
if err = i.metaTable.BuildIndex(indexBuildID, nodeServerID); err != nil {
if err = i.metaTable.BuildIndex(indexBuildID, nodeID); err != nil {
log.Debug("IndexService", zap.String("update meta table error", err.Error()))
}
if resp.ErrorCode != commonpb.ErrorCode_Success {
......@@ -524,7 +524,7 @@ func (i *IndexService) watchNodeLoop() {
case sessionutil.SessionDelEvent:
serverID := event.Session.ServerID
log.Debug("IndexService", zap.Any("The IndexNode crashed with ID", serverID))
indexBuildIDs := i.nodeTasks.getTasksByLeaseKey(serverID)
indexBuildIDs := i.nodeTasks.getTasksByNodeID(serverID)
i.assignChan <- indexBuildIDs
i.nodeTasks.delete(serverID)
}
......
......@@ -28,11 +28,6 @@ import (
"github.com/milvus-io/milvus/internal/proto/indexpb"
)
const (
RequestTimeout = 10 * time.Second
maxTasks = 10
)
type Meta struct {
indexMeta *indexpb.IndexMeta
revision int64
......@@ -138,7 +133,7 @@ func (mt *metaTable) AddIndex(indexBuildID UniqueID, req *indexpb.BuildIndexRequ
State: commonpb.IndexState_Unissued,
IndexBuildID: indexBuildID,
Req: req,
NodeServerID: 0,
NodeID: 0,
Version: 0,
},
revision: 0,
......@@ -146,7 +141,7 @@ func (mt *metaTable) AddIndex(indexBuildID UniqueID, req *indexpb.BuildIndexRequ
return mt.saveIndexMeta(meta)
}
func (mt *metaTable) BuildIndex(indexBuildID UniqueID, serverID int64) error {
func (mt *metaTable) BuildIndex(indexBuildID UniqueID, nodeID int64) error {
mt.lock.Lock()
defer mt.lock.Unlock()
log.Debug("IndexService update index meta")
......@@ -159,7 +154,7 @@ func (mt *metaTable) BuildIndex(indexBuildID UniqueID, serverID int64) error {
if meta.indexMeta.State != commonpb.IndexState_Unissued {
return fmt.Errorf("can not set lease key, index with ID = %d state is %d", indexBuildID, meta.indexMeta.State)
}
meta.indexMeta.NodeServerID = serverID
meta.indexMeta.NodeID = nodeID
err := mt.saveIndexMeta(&meta)
if err != nil {
......@@ -168,7 +163,7 @@ func (mt *metaTable) BuildIndex(indexBuildID UniqueID, serverID int64) error {
if m == nil {
return err
}
m.indexMeta.NodeServerID = serverID
m.indexMeta.NodeID = nodeID
return mt.saveIndexMeta(m)
}
err2 := retry.Retry(5, time.Millisecond*200, fn)
......@@ -352,14 +347,14 @@ func (mt *metaTable) GetIndexMeta(indexBuildID UniqueID) Meta {
return meta
}
func (mt *metaTable) GetUnassignedTasks(serverIDs []int64) [][]UniqueID {
func (mt *metaTable) GetUnassignedTasks(nodeIDs []int64) [][]UniqueID {
var tasks [][]UniqueID
var indexBuildIDs []UniqueID
for indexBuildID, meta := range mt.indexBuildID2Meta {
alive := false
for _, serverID := range serverIDs {
if meta.indexMeta.NodeServerID == serverID {
for _, serverID := range nodeIDs {
if meta.indexMeta.NodeID == serverID {
alive = true
}
}
......@@ -477,8 +472,8 @@ func NewNodeTasks() *nodeTasks {
}
}
func (nt *nodeTasks) getTasksByLeaseKey(serverID int64) []UniqueID {
indexBuildIDs, ok := nt.nodeID2Tasks[serverID]
func (nt *nodeTasks) getTasksByNodeID(nodeID int64) []UniqueID {
indexBuildIDs, ok := nt.nodeID2Tasks[nodeID]
if !ok {
return nil
}
......
......@@ -53,7 +53,6 @@ func (i *IndexService) addNode(nodeID UniqueID, req *indexpb.RegisterNodeRequest
value: nodeClient,
key: nodeID,
addr: req.Address,
serverID: req.ServerID,
priority: 0,
}
i.nodeClients.Push(item)
......@@ -77,14 +76,7 @@ func (i *IndexService) RegisterNode(ctx context.Context, req *indexpb.RegisterNo
ErrorCode: commonpb.ErrorCode_UnexpectedError,
},
}
nodeID, err := i.idAllocator.AllocOne()
if err != nil {
ret.Status.Reason = "IndexService:RegisterNode Failed to acquire NodeID"
return ret, nil
}
err = i.addNode(nodeID, req)
err := i.addNode(req.NodeID, req)
if err != nil {
ret.Status.Reason = err.Error()
return ret, nil
......@@ -93,7 +85,7 @@ func (i *IndexService) RegisterNode(ctx context.Context, req *indexpb.RegisterNo
ret.Status.ErrorCode = commonpb.ErrorCode_Success
params := i.prepareNodeInitParams()
ret.InitParams = &internalpb.InitParams{
NodeID: nodeID,
NodeID: req.NodeID,
StartParams: params,
}
return ret, nil
......
......@@ -25,8 +25,6 @@ type PQItem struct {
key UniqueID
addr *commonpb.Address
serverID int64
priority int // The priority of the item in the queue.
// The index is needed by update and is maintained by the heap.Interface methods.
index int // The index of the item in the heap.
......@@ -63,7 +61,7 @@ func (pq *PriorityQueue) Push(x interface{}) {
pq.items = append(pq.items, item)
}
// do not call this directly.
// Pop do not call this directly.
func (pq *PriorityQueue) Pop() interface{} {
old := pq.items
n := len(old)
......@@ -96,7 +94,7 @@ func (pq *PriorityQueue) getItemByKey(key UniqueID) interface{} {
return ret
}
// update modifies the priority and value of an Item in the queue.
// IncPriority update modifies the priority and value of an Item in the queue.
func (pq *PriorityQueue) IncPriority(key UniqueID, priority int) {
pq.lock.Lock()
defer pq.lock.Unlock()
......@@ -107,7 +105,7 @@ func (pq *PriorityQueue) IncPriority(key UniqueID, priority int) {
}
}
// update modifies the priority and value of an Item in the queue.
// UpdatePriority update modifies the priority and value of an Item in the queue.
func (pq *PriorityQueue) UpdatePriority(key UniqueID, priority int) {
pq.lock.Lock()
defer pq.lock.Unlock()
......@@ -139,12 +137,12 @@ func (pq *PriorityQueue) Peek() interface{} {
}
// PeekClient picks an IndexNode with the lowest load.
func (pq *PriorityQueue) PeekClient() (UniqueID, types.IndexNode, int64) {
func (pq *PriorityQueue) PeekClient() (UniqueID, types.IndexNode) {
item := pq.Peek()
if item == nil {
return UniqueID(-1), nil, 0
return UniqueID(-1), nil
}
return item.(*PQItem).key, item.(*PQItem).value, item.(*PQItem).serverID
return item.(*PQItem).key, item.(*PQItem).value
}
func (pq *PriorityQueue) PeekAllClients() []types.IndexNode {
......
......@@ -29,7 +29,7 @@ service IndexNode {
message RegisterNodeRequest {
common.MsgBase base = 1;
common.Address address = 2;
int64 serverID = 3;
int64 nodeID = 3;
}
message RegisterNodeResponse {
......@@ -101,7 +101,7 @@ message IndexMeta {
BuildIndexRequest req = 4;
repeated string index_file_paths = 5;
bool mark_deleted = 6;
int64 node_serverID = 7;
int64 nodeID = 7;
int64 version = 8;
bool recycled = 9;
}
......
......@@ -30,7 +30,7 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type RegisterNodeRequest struct {
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
Address *commonpb.Address `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
ServerID int64 `protobuf:"varint,3,opt,name=serverID,proto3" json:"serverID,omitempty"`
NodeID int64 `protobuf:"varint,3,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
......@@ -75,9 +75,9 @@ func (m *RegisterNodeRequest) GetAddress() *commonpb.Address {
return nil
}
func (m *RegisterNodeRequest) GetServerID() int64 {
func (m *RegisterNodeRequest) GetNodeID() int64 {
if m != nil {
return m.ServerID
return m.NodeID
}
return 0
}
......@@ -655,7 +655,7 @@ type IndexMeta struct {
Req *BuildIndexRequest `protobuf:"bytes,4,opt,name=req,proto3" json:"req,omitempty"`
IndexFilePaths []string `protobuf:"bytes,5,rep,name=index_file_paths,json=indexFilePaths,proto3" json:"index_file_paths,omitempty"`
MarkDeleted bool `protobuf:"varint,6,opt,name=mark_deleted,json=markDeleted,proto3" json:"mark_deleted,omitempty"`
NodeServerID int64 `protobuf:"varint,7,opt,name=node_serverID,json=nodeServerID,proto3" json:"node_serverID,omitempty"`
NodeID int64 `protobuf:"varint,7,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
Version int64 `protobuf:"varint,8,opt,name=version,proto3" json:"version,omitempty"`
Recycled bool `protobuf:"varint,9,opt,name=recycled,proto3" json:"recycled,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
......@@ -730,9 +730,9 @@ func (m *IndexMeta) GetMarkDeleted() bool {
return false
}
func (m *IndexMeta) GetNodeServerID() int64 {
func (m *IndexMeta) GetNodeID() int64 {
if m != nil {
return m.NodeServerID
return m.NodeID
}
return 0
}
......@@ -809,69 +809,68 @@ func init() {
func init() { proto.RegisterFile("index_service.proto", fileDescriptor_a5d2036b4df73e0a) }
var fileDescriptor_a5d2036b4df73e0a = []byte{
// 986 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xdf, 0x6e, 0x1b, 0xc5,
0x17, 0xce, 0x7a, 0x1b, 0xff, 0x39, 0x76, 0xa3, 0x66, 0xda, 0x5f, 0xb5, 0x3f, 0x97, 0xaa, 0xce,
0xb6, 0x80, 0x41, 0xad, 0x53, 0xb9, 0x14, 0xae, 0x90, 0x20, 0xb1, 0x88, 0x2c, 0xd4, 0x2a, 0x9a,
0x44, 0x5c, 0x20, 0x21, 0x6b, 0xe2, 0x3d, 0x49, 0x46, 0xdd, 0x3f, 0xce, 0xce, 0x38, 0x22, 0xf7,
0xdc, 0x73, 0x87, 0x84, 0x78, 0x0e, 0xc4, 0x73, 0x70, 0xc5, 0x2b, 0xf0, 0x18, 0x68, 0x66, 0x67,
0xb7, 0xbb, 0xeb, 0x75, 0xe2, 0x90, 0xc2, 0x15, 0x77, 0x7b, 0xce, 0x9c, 0x33, 0xdf, 0x9c, 0x6f,
0xce, 0xf9, 0x76, 0xe0, 0x2e, 0x0f, 0x3d, 0xfc, 0x7e, 0x22, 0x30, 0x3e, 0xe7, 0x53, 0x1c, 0xcc,
0xe2, 0x48, 0x46, 0x84, 0x04, 0xdc, 0x3f, 0x9f, 0x8b, 0xc4, 0x1a, 0xe8, 0x88, 0x6e, 0x67, 0x1a,
0x05, 0x41, 0x14, 0x26, 0xbe, 0xee, 0x06, 0x0f, 0x25, 0xc6, 0x21, 0xf3, 0x8d, 0xdd, 0xc9, 0x67,
0xb8, 0xbf, 0x58, 0x70, 0x97, 0xe2, 0x09, 0x17, 0x12, 0xe3, 0xd7, 0x91, 0x87, 0x14, 0xcf, 0xe6,
0x28, 0x24, 0x79, 0x0e, 0xb7, 0x8e, 0x98, 0x40, 0xc7, 0xea, 0x59, 0xfd, 0xf6, 0xf0, 0xbd, 0x41,
0x01, 0xc6, 0xec, 0xff, 0x4a, 0x9c, 0xec, 0x30, 0x81, 0x54, 0x47, 0x92, 0x4f, 0xa1, 0xc1, 0x3c,
0x2f, 0x46, 0x21, 0x9c, 0xda, 0x25, 0x49, 0x5f, 0x26, 0x31, 0x34, 0x0d, 0x26, 0x5d, 0x68, 0xaa,
0x92, 0x30, 0x1e, 0x8f, 0x1c, 0xbb, 0x67, 0xf5, 0x6d, 0x9a, 0xd9, 0xee, 0x8f, 0x16, 0xdc, 0x2b,
0x9e, 0x4e, 0xcc, 0xa2, 0x50, 0x20, 0x79, 0x01, 0x75, 0x21, 0x99, 0x9c, 0x0b, 0x73, 0xc0, 0x07,
0x95, 0x58, 0x07, 0x3a, 0x84, 0x9a, 0x50, 0xb2, 0x03, 0x6d, 0x1e, 0x72, 0x39, 0x99, 0xb1, 0x98,
0x05, 0xe9, 0x29, 0xb7, 0x06, 0x25, 0x06, 0x0d, 0x59, 0xe3, 0x90, 0xcb, 0x7d, 0x1d, 0x48, 0x81,
0x67, 0xdf, 0xee, 0xe7, 0xf0, 0xbf, 0x3d, 0x94, 0x63, 0xc5, 0xb3, 0xda, 0x1d, 0x45, 0x4a, 0xd8,
0x13, 0xb8, 0xad, 0xd9, 0xdf, 0x99, 0x73, 0xdf, 0x1b, 0x8f, 0xd4, 0xc1, 0xec, 0xbe, 0x4d, 0x8b,
0x4e, 0xf7, 0x37, 0x0b, 0x5a, 0x3a, 0x79, 0x1c, 0x1e, 0x47, 0xe4, 0x25, 0xac, 0xab, 0xa3, 0x25,
0x2c, 0x6f, 0x0c, 0x1f, 0x55, 0x16, 0xf1, 0x16, 0x8b, 0x26, 0xd1, 0xc4, 0x85, 0x4e, 0x7e, 0x57,
0x5d, 0x88, 0x4d, 0x0b, 0x3e, 0xe2, 0x40, 0x43, 0xdb, 0x19, 0xa9, 0xa9, 0x49, 0x1e, 0x02, 0x24,
0x8d, 0x14, 0xb2, 0x00, 0x9d, 0x5b, 0x3d, 0xab, 0xdf, 0xa2, 0x2d, 0xed, 0x79, 0xcd, 0x02, 0x24,
0xf7, 0xa1, 0x1e, 0x23, 0x13, 0x51, 0xe8, 0xac, 0xeb, 0x25, 0x63, 0xb9, 0x3f, 0x58, 0x70, 0xbf,
0x5c, 0xf9, 0x4d, 0x2e, 0xe3, 0x65, 0x92, 0x84, 0xea, 0x1e, 0xec, 0x7e, 0x7b, 0xf8, 0x70, 0xb0,
0xd8, 0xc9, 0x83, 0x8c, 0x2a, 0x6a, 0x82, 0xdd, 0xdf, 0x6b, 0x40, 0x76, 0x63, 0x64, 0x12, 0xf5,
0x5a, 0xca, 0x7e, 0x99, 0x12, 0xab, 0x82, 0x92, 0x62, 0xe1, 0xb5, 0x72, 0xe1, 0xcb, 0x19, 0x73,
0xa0, 0x71, 0x8e, 0xb1, 0xe0, 0x51, 0xa8, 0xe9, 0xb2, 0x69, 0x6a, 0x92, 0x07, 0xd0, 0x0a, 0x50,
0xb2, 0xc9, 0x8c, 0xc9, 0x53, 0xc3, 0x57, 0x53, 0x39, 0xf6, 0x99, 0x3c, 0x55, 0x78, 0x1e, 0x33,
0x8b, 0xc2, 0xa9, 0xf7, 0x6c, 0x85, 0xa7, 0x3c, 0x6a, 0x55, 0x77, 0xa3, 0xbc, 0x98, 0x61, 0xda,
0x8d, 0x0d, 0xcd, 0xc2, 0x56, 0x25, 0x75, 0x5f, 0xe3, 0xc5, 0x37, 0xcc, 0x9f, 0xe3, 0x3e, 0xe3,
0x31, 0x05, 0x95, 0x95, 0x74, 0x23, 0x19, 0x99, 0xb2, 0xd3, 0x4d, 0x9a, 0xab, 0x6e, 0xd2, 0xd6,
0x69, 0xa6, 0xa7, 0x7f, 0xae, 0xc1, 0x66, 0x42, 0xd2, 0xbf, 0x46, 0x69, 0x91, 0x9b, 0xf5, 0x2b,
0xb8, 0xa9, 0xbf, 0x0b, 0x6e, 0x1a, 0x7f, 0x8b, 0x9b, 0x00, 0x48, 0x9e, 0x9a, 0x9b, 0x74, 0xfc,
0x0a, 0x63, 0xeb, 0x7e, 0x01, 0x4e, 0x3a, 0x64, 0x5f, 0x71, 0x1f, 0x35, 0x1b, 0xd7, 0x53, 0x98,
0x9f, 0x2c, 0xd8, 0x2c, 0xe4, 0x6b, 0xa5, 0xf9, 0xa7, 0x0e, 0x4c, 0xfa, 0x70, 0x27, 0x61, 0xf9,
0x98, 0xfb, 0x68, 0xae, 0xd3, 0xd6, 0xd7, 0xb9, 0xc1, 0x0b, 0x55, 0xa8, 0x83, 0xfd, 0xbf, 0xa2,
0xb6, 0x9b, 0x30, 0x3a, 0x02, 0xc8, 0xc1, 0x26, 0x3a, 0xf2, 0xfe, 0x52, 0x1d, 0xc9, 0x13, 0x42,
0x5b, 0xc7, 0xd9, 0xc1, 0xfe, 0xac, 0x19, 0x4d, 0x7e, 0x85, 0x92, 0xad, 0xd4, 0xf6, 0x99, 0x6e,
0xd7, 0xae, 0xa5, 0xdb, 0x8f, 0xa0, 0x7d, 0xcc, 0xb8, 0x3f, 0x31, 0xfa, 0x6a, 0xeb, 0x71, 0x01,
0xe5, 0xa2, 0xda, 0x43, 0x3e, 0x03, 0x3b, 0xc6, 0x33, 0x2d, 0x32, 0x4b, 0x0a, 0x59, 0x18, 0x53,
0xaa, 0x32, 0x2a, 0x6f, 0x61, 0xbd, 0xea, 0x16, 0xc8, 0x16, 0x74, 0x02, 0x16, 0xbf, 0x99, 0x78,
0xe8, 0xa3, 0x44, 0xcf, 0xa9, 0xf7, 0xac, 0x7e, 0x93, 0xb6, 0x95, 0x6f, 0x94, 0xb8, 0xc8, 0x63,
0xb8, 0x1d, 0x46, 0x1e, 0x4e, 0xb2, 0xbf, 0x72, 0x23, 0xa1, 0x40, 0x39, 0x0f, 0x8c, 0x2f, 0xaf,
0x89, 0xcd, 0xa2, 0x26, 0x76, 0xa1, 0x19, 0xe3, 0xf4, 0x62, 0xea, 0xa3, 0xe7, 0xb4, 0xf4, 0xee,
0x99, 0xed, 0x3e, 0x85, 0x3b, 0xa3, 0x38, 0x9a, 0x15, 0x74, 0x26, 0x27, 0x12, 0x56, 0x41, 0x24,
0x86, 0x7f, 0xd4, 0xa1, 0x93, 0xb0, 0x98, 0x3c, 0x79, 0xc8, 0x0c, 0xc8, 0x1e, 0xca, 0xdd, 0x28,
0x98, 0x45, 0x21, 0x86, 0x32, 0xf9, 0x0d, 0x91, 0xe7, 0x4b, 0xfe, 0xe0, 0x8b, 0xa1, 0x06, 0xb2,
0xfb, 0xc1, 0x92, 0x8c, 0x52, 0xb8, 0xbb, 0x46, 0x02, 0x8d, 0x78, 0xc8, 0x03, 0x3c, 0xe4, 0xd3,
0x37, 0xbb, 0xa7, 0x2c, 0x0c, 0xd1, 0xbf, 0x0c, 0xb1, 0x14, 0x9a, 0x22, 0x3e, 0x2e, 0x66, 0x18,
0xe3, 0x40, 0xc6, 0x3c, 0x3c, 0x49, 0x67, 0xc0, 0x5d, 0x23, 0x67, 0x70, 0x6f, 0x0f, 0x35, 0x3a,
0x17, 0x92, 0x4f, 0x45, 0x0a, 0x38, 0x5c, 0x0e, 0xb8, 0x10, 0x7c, 0x4d, 0xc8, 0x29, 0x74, 0xf2,
0x2f, 0x2c, 0xf2, 0x61, 0x55, 0xdb, 0x55, 0xbc, 0x10, 0xbb, 0xfd, 0xab, 0x03, 0x33, 0x90, 0xef,
0x00, 0xde, 0x76, 0x2e, 0x59, 0xad, 0xb3, 0x17, 0x6f, 0xa9, 0x1c, 0x96, 0x6d, 0xcf, 0x61, 0xa3,
0xf8, 0x34, 0x21, 0x1f, 0x55, 0xe5, 0x56, 0x3e, 0xdc, 0xba, 0x1f, 0xaf, 0x12, 0x9a, 0x41, 0xc5,
0xb0, 0xb9, 0x20, 0x62, 0xe4, 0xe9, 0x65, 0x5b, 0x94, 0x75, 0xbc, 0xfb, 0x6c, 0xc5, 0xe8, 0x0c,
0x73, 0x1f, 0x5a, 0xd9, 0xd4, 0x90, 0x27, 0x55, 0xd9, 0xe5, 0xa1, 0xea, 0x5e, 0x26, 0x9f, 0xee,
0xda, 0xf0, 0x57, 0xdb, 0x48, 0x9e, 0xbe, 0xf2, 0xff, 0xc6, 0xea, 0xdd, 0x8f, 0xd5, 0x21, 0xb4,
0x73, 0xcf, 0x54, 0x52, 0xd9, 0xcb, 0x8b, 0xef, 0xd8, 0x2b, 0xee, 0x6d, 0xe7, 0x93, 0x6f, 0x87,
0x27, 0x5c, 0x9e, 0xce, 0x8f, 0xd4, 0xca, 0x76, 0x12, 0xfa, 0x8c, 0x47, 0xe6, 0x6b, 0x3b, 0x2d,
0x60, 0x5b, 0x67, 0x6f, 0x6b, 0x94, 0xd9, 0xd1, 0x51, 0x5d, 0x9b, 0x2f, 0xfe, 0x0a, 0x00, 0x00,
0xff, 0xff, 0x9b, 0x6b, 0x7c, 0x8a, 0x41, 0x0e, 0x00, 0x00,
// 971 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x4f, 0x6f, 0x1b, 0x45,
0x14, 0xcf, 0x7a, 0x1b, 0xff, 0x79, 0x36, 0x51, 0x33, 0x2d, 0xd5, 0xe2, 0x52, 0xd5, 0x59, 0x0a,
0x18, 0xd4, 0x3a, 0x95, 0x4b, 0xe1, 0x84, 0x04, 0x89, 0x45, 0x64, 0xa1, 0x56, 0xd1, 0x34, 0xe2,
0x80, 0x84, 0xac, 0x89, 0xf7, 0x25, 0x19, 0x75, 0xff, 0x38, 0x3b, 0xe3, 0x88, 0xdc, 0xb9, 0x73,
0x03, 0xf1, 0x41, 0x10, 0x9f, 0x83, 0x13, 0x07, 0xbe, 0x0c, 0x9a, 0xd9, 0xd9, 0xed, 0xee, 0x7a,
0x9d, 0x38, 0x24, 0x70, 0xea, 0x6d, 0xdf, 0x9b, 0xf7, 0xe6, 0x37, 0xef, 0xf7, 0xde, 0xfc, 0x76,
0xe0, 0x0e, 0x0f, 0x3d, 0xfc, 0x71, 0x22, 0x30, 0x3e, 0xe3, 0x53, 0x1c, 0xcc, 0xe2, 0x48, 0x46,
0x84, 0x04, 0xdc, 0x3f, 0x9b, 0x8b, 0xc4, 0x1a, 0xe8, 0x88, 0x6e, 0x67, 0x1a, 0x05, 0x41, 0x14,
0x26, 0xbe, 0xee, 0x06, 0x0f, 0x25, 0xc6, 0x21, 0xf3, 0x8d, 0xdd, 0xc9, 0x67, 0xb8, 0xbf, 0x5a,
0x70, 0x87, 0xe2, 0x31, 0x17, 0x12, 0xe3, 0x97, 0x91, 0x87, 0x14, 0x4f, 0xe7, 0x28, 0x24, 0x79,
0x0a, 0xb7, 0x0e, 0x99, 0x40, 0xc7, 0xea, 0x59, 0xfd, 0xf6, 0xf0, 0xfd, 0x41, 0x01, 0xc6, 0xec,
0xff, 0x42, 0x1c, 0xef, 0x30, 0x81, 0x54, 0x47, 0x92, 0xcf, 0xa1, 0xc1, 0x3c, 0x2f, 0x46, 0x21,
0x9c, 0xda, 0x05, 0x49, 0x5f, 0x27, 0x31, 0x34, 0x0d, 0x26, 0xf7, 0xa0, 0x1e, 0x46, 0x1e, 0x8e,
0x47, 0x8e, 0xdd, 0xb3, 0xfa, 0x36, 0x35, 0x96, 0xfb, 0xb3, 0x05, 0x77, 0x8b, 0x27, 0x13, 0xb3,
0x28, 0x14, 0x48, 0x9e, 0x41, 0x5d, 0x48, 0x26, 0xe7, 0xc2, 0x1c, 0xee, 0x7e, 0x25, 0xce, 0x2b,
0x1d, 0x42, 0x4d, 0x28, 0xd9, 0x81, 0x36, 0x0f, 0xb9, 0x9c, 0xcc, 0x58, 0xcc, 0x82, 0xf4, 0x84,
0x5b, 0x83, 0x12, 0x7b, 0x86, 0xa8, 0x71, 0xc8, 0xe5, 0xbe, 0x0e, 0xa4, 0xc0, 0xb3, 0x6f, 0xf7,
0x4b, 0x78, 0x77, 0x0f, 0xe5, 0x58, 0x71, 0xac, 0x76, 0x47, 0x91, 0x92, 0xf5, 0x08, 0xde, 0xd1,
0xcc, 0xef, 0xcc, 0xb9, 0xef, 0x8d, 0x47, 0xea, 0x60, 0x76, 0xdf, 0xa6, 0x45, 0xa7, 0xfb, 0x87,
0x05, 0x2d, 0x9d, 0x3c, 0x0e, 0x8f, 0x22, 0xf2, 0x1c, 0xd6, 0xd5, 0xd1, 0x12, 0x86, 0x37, 0x86,
0x0f, 0x2b, 0x8b, 0x78, 0x83, 0x45, 0x93, 0x68, 0xe2, 0x42, 0x27, 0xbf, 0xab, 0x2e, 0xc4, 0xa6,
0x05, 0x1f, 0x71, 0xa0, 0xa1, 0xed, 0x8c, 0xd2, 0xd4, 0x24, 0x0f, 0x00, 0x92, 0x21, 0x0a, 0x59,
0x80, 0xce, 0xad, 0x9e, 0xd5, 0x6f, 0xd1, 0x96, 0xf6, 0xbc, 0x64, 0x01, 0xaa, 0x56, 0xc4, 0xc8,
0x44, 0x14, 0x3a, 0xeb, 0x7a, 0xc9, 0x58, 0xee, 0x4f, 0x16, 0xdc, 0x2b, 0x57, 0x7e, 0x9d, 0x66,
0x3c, 0x4f, 0x92, 0x50, 0xf5, 0xc1, 0xee, 0xb7, 0x87, 0x0f, 0x06, 0x8b, 0x53, 0x3c, 0xc8, 0xa8,
0xa2, 0x26, 0xd8, 0xfd, 0xb3, 0x06, 0x64, 0x37, 0x46, 0x26, 0x51, 0xaf, 0xa5, 0xec, 0x97, 0x29,
0xb1, 0x2a, 0x28, 0x29, 0x16, 0x5e, 0x2b, 0x17, 0xbe, 0x9c, 0x31, 0x07, 0x1a, 0x67, 0x18, 0x0b,
0x1e, 0x85, 0x9a, 0x2e, 0x9b, 0xa6, 0x26, 0xb9, 0x0f, 0xad, 0x00, 0x25, 0x9b, 0xcc, 0x98, 0x3c,
0x31, 0x7c, 0x35, 0x95, 0x63, 0x9f, 0xc9, 0x13, 0x85, 0xe7, 0x31, 0xb3, 0x28, 0x9c, 0x7a, 0xcf,
0x56, 0x78, 0xca, 0xa3, 0x56, 0xf5, 0x34, 0xca, 0xf3, 0x19, 0xa6, 0xd3, 0xd8, 0xd0, 0x2c, 0x6c,
0x55, 0x52, 0xf7, 0x2d, 0x9e, 0x7f, 0xc7, 0xfc, 0x39, 0xee, 0x33, 0x1e, 0x53, 0x50, 0x59, 0xc9,
0x34, 0x92, 0x91, 0x29, 0x3b, 0xdd, 0xa4, 0xb9, 0xea, 0x26, 0x6d, 0x9d, 0x66, 0x66, 0xfa, 0xb7,
0x1a, 0x6c, 0x26, 0x24, 0xfd, 0x6f, 0x94, 0x16, 0xb9, 0x59, 0xbf, 0x84, 0x9b, 0xfa, 0x4d, 0x70,
0xd3, 0xf8, 0x57, 0xdc, 0x04, 0x40, 0xf2, 0xd4, 0x5c, 0x67, 0xe2, 0x57, 0xb8, 0xb6, 0xee, 0x57,
0xe0, 0xa4, 0x97, 0xec, 0x1b, 0xee, 0xa3, 0x66, 0xe3, 0x6a, 0x0a, 0xf3, 0x8b, 0x05, 0x9b, 0x85,
0x7c, 0xad, 0x34, 0xff, 0xd5, 0x81, 0x49, 0x1f, 0x6e, 0x27, 0x2c, 0x1f, 0x71, 0x1f, 0x4d, 0x3b,
0x6d, 0xdd, 0xce, 0x0d, 0x5e, 0xa8, 0x42, 0x1d, 0xec, 0xbd, 0x8a, 0xda, 0xae, 0xc3, 0xe8, 0x08,
0x20, 0x07, 0x9b, 0xe8, 0xc8, 0x87, 0x4b, 0x75, 0x24, 0x4f, 0x08, 0x6d, 0x1d, 0x65, 0x07, 0xfb,
0xbb, 0x66, 0x34, 0xf9, 0x05, 0x4a, 0xb6, 0xd2, 0xd8, 0x67, 0xba, 0x5d, 0xbb, 0x92, 0x6e, 0x3f,
0x84, 0xf6, 0x11, 0xe3, 0xfe, 0xc4, 0xe8, 0xab, 0xad, 0xaf, 0x0b, 0x28, 0x17, 0xd5, 0x1e, 0xf2,
0x05, 0xd8, 0x31, 0x9e, 0x6a, 0x91, 0x59, 0x52, 0xc8, 0xc2, 0x35, 0xa5, 0x2a, 0xa3, 0xb2, 0x0b,
0xeb, 0x55, 0x5d, 0x20, 0x5b, 0xd0, 0x09, 0x58, 0xfc, 0x7a, 0xe2, 0xa1, 0x8f, 0x12, 0x3d, 0xa7,
0xde, 0xb3, 0xfa, 0x4d, 0xda, 0x56, 0xbe, 0x51, 0xe2, 0xca, 0xfd, 0x8c, 0x1b, 0xf9, 0x9f, 0x71,
0x5e, 0x06, 0x9b, 0x45, 0x19, 0xec, 0x42, 0x33, 0xc6, 0xe9, 0xf9, 0xd4, 0x47, 0xcf, 0x69, 0xe9,
0x0d, 0x33, 0xdb, 0x7d, 0x0c, 0xb7, 0x47, 0x71, 0x34, 0x2b, 0x48, 0x4b, 0x4e, 0x17, 0xac, 0x82,
0x2e, 0x0c, 0xff, 0xaa, 0x43, 0x27, 0x21, 0x2e, 0x79, 0xe1, 0x90, 0x19, 0x90, 0x3d, 0x94, 0xbb,
0x51, 0x30, 0x8b, 0x42, 0x0c, 0x65, 0xf2, 0xe7, 0x21, 0x4f, 0x97, 0xfc, 0xb4, 0x17, 0x43, 0x0d,
0x64, 0xf7, 0xa3, 0x25, 0x19, 0xa5, 0x70, 0x77, 0x8d, 0x04, 0x1a, 0xf1, 0x80, 0x07, 0x78, 0xc0,
0xa7, 0xaf, 0x77, 0x4f, 0x58, 0x18, 0xa2, 0x7f, 0x11, 0x62, 0x29, 0x34, 0x45, 0xfc, 0xa0, 0x98,
0x61, 0x8c, 0x57, 0x32, 0xe6, 0xe1, 0x71, 0x3a, 0xf6, 0xee, 0x1a, 0x39, 0x85, 0xbb, 0x7b, 0xa8,
0xd1, 0xb9, 0x90, 0x7c, 0x2a, 0x52, 0xc0, 0xe1, 0x72, 0xc0, 0x85, 0xe0, 0x2b, 0x42, 0x4e, 0xa1,
0x93, 0x7f, 0x54, 0x91, 0x8f, 0xab, 0x26, 0xad, 0xe2, 0x41, 0xd8, 0xed, 0x5f, 0x1e, 0x98, 0x81,
0xfc, 0x00, 0xf0, 0x66, 0x58, 0xc9, 0x6a, 0xc3, 0xbc, 0xd8, 0xa5, 0x72, 0x58, 0xb6, 0x3d, 0x87,
0x8d, 0xe2, 0x6b, 0x84, 0x7c, 0x52, 0x95, 0x5b, 0xf9, 0x56, 0xeb, 0x7e, 0xba, 0x4a, 0x68, 0x06,
0x15, 0xc3, 0xe6, 0x82, 0x6e, 0x91, 0xc7, 0x17, 0x6d, 0x51, 0x96, 0xee, 0xee, 0x93, 0x15, 0xa3,
0x33, 0xcc, 0x7d, 0x68, 0x65, 0xb7, 0x86, 0x3c, 0xaa, 0xca, 0x2e, 0x5f, 0xaa, 0xee, 0x45, 0x8a,
0xe9, 0xae, 0x0d, 0x7f, 0xb7, 0x8d, 0xca, 0xe9, 0x96, 0xbf, 0xbd, 0x56, 0x37, 0x7f, 0xad, 0x0e,
0xa0, 0x9d, 0x7b, 0x99, 0x92, 0xca, 0x59, 0x5e, 0x7c, 0xba, 0x5e, 0xd2, 0xb7, 0x9d, 0xcf, 0xbe,
0x1f, 0x1e, 0x73, 0x79, 0x32, 0x3f, 0x54, 0x2b, 0xdb, 0x49, 0xe8, 0x13, 0x1e, 0x99, 0xaf, 0xed,
0xb4, 0x80, 0x6d, 0x9d, 0xbd, 0xad, 0x51, 0x66, 0x87, 0x87, 0x75, 0x6d, 0x3e, 0xfb, 0x27, 0x00,
0x00, 0xff, 0xff, 0x41, 0x8a, 0x38, 0xec, 0x30, 0x0e, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册