milvus/docs/developer_guides/chap09_data_service.md

3.9 KiB

8. Data Service

8.1 Overview

8.2 Data Service Interface

type DataService interface {
  Service
  
  RegisterNode(req RegisterNodeRequest) (RegisterNodeResponse, error)
  Flush(req FlushRequest) error
  
  AssignSegmentID(req AssignSegIDRequest) (AssignSegIDResponse, error)
  ShowSegments(req ShowSegmentRequest) (ShowSegmentResponse, error)
  GetSegmentStates(req SegmentStatesRequest) (SegmentStatesResponse, error)
  GetInsertBinlogPaths(req InsertBinlogPathRequest) (InsertBinlogPathsResponse, error)
  
  GetInsertChannels(req InsertChannelRequest) ([]string, error)

  GetCollectionStatistics(req CollectionStatsRequest) (CollectionStatsResponse, error)
  GetPartitionStatistics(req PartitionStatsRequest) (PartitionStatsResponse, error)
}
  • MsgBase
type MsgBase struct {
  MsgType MsgType
  MsgID	UniqueID
  Timestamp Timestamp
  SourceID UniqueID
}
  • RegisterNode
type RegisterNodeRequest struct {
  MsgBase
  Address string
  Port int64
}

type RegisterNodeResponse struct {
  //InitParams
}
  • AssignSegmentID
type SegIDRequest struct {
  Count uint32
  ChannelName string
	CollectionID UniqueID
  PartitionID UniqueID
}

type AssignSegIDRequest struct {
  MsgBase
  PerChannelRequest []SegIDRequest
}

type SegIDAssignment struct {
  SegmentID UniqueID
  ChannelName string
  Count uint32
	CollectionID UniqueID
  PartitionID UniqueID
  ExpireTime Timestamp
}

type AssignSegIDResponse struct {
  PerChannelResponse []SegIDAssignment
}
  • Flush
type FlushRequest struct {
  MsgBase
  DbID UniqueID
  CollectionID UniqueID
}
  • ShowSegments
type ShowSegmentRequest struct {
  MsgBase
  CollectionID UniqueID
  PartitionID UniqueID
}

type ShowSegmentResponse struct {
  SegmentIDs []UniqueID
}
  • GetSegmentStates
enum SegmentState {
    NONE = 0;
    NOT_EXIST = 1;
    GROWING = 2;
    SEALED = 3;
}

type SegmentStatesRequest struct {
  MsgBase
  SegmentID UniqueID
}

type SegmentStatesResponse struct {
  State SegmentState
  OpenTime Timestamp
  SealedTime Timestamp
  MsgStartPositions []msgstream.MsgPosition
  MsgEndPositions []msgstream.MsgPosition
}
  • GetInsertBinlogPaths
type InsertBinlogPathRequest struct {
  MsgBase
  SegmentID UniqueID
}

type InsertBinlogPathsResponse struct {
  FieldIDToPaths map[int64][]string
}
  • GetInsertChannels
type InsertChannelRequest struct {
  MsgBase
  DbID UniqueID
  CollectionID UniqueID
}
  • GetCollectionStatistics
type CollectionStatsRequest struct {
  MsgBase
  DbName string
  CollectionName string
}
type CollectionStatsResponse struct {
  Stats []KeyValuePair
}
  • GetPartitionStatistics
type PartitionStatsRequest struct {
  MsgBase
  DbName string
  CollectionName string
  PartitionName string
}
type PartitionStatsResponse struct {
  Stats []KeyValuePair
}

8.2 Insert Channel

type InsertRequest struct {
  MsgBase
  DbName string
  CollectionName string
  PartitionName string
  DbID UniqueID
  CollectionID UniqueID
  PartitionID UniqueID
  RowData []Blob
  HashKeys []uint32
}

8.2 Data Node Interface

type DataNode interface {
  Service
  
  WatchDmChannels(req WatchDmChannelRequest) error
  //WatchDdChannel(channelName string) error
  //SetTimeTickChannel(channelName string) error
  //SetStatisticsChannel(channelName string) error
  
  FlushSegments(req FlushSegRequest) error
}
  • WatchDmChannels
type WatchDmChannelRequest struct {
  MsgBase
  InsertChannelNames []string
}
  • FlushSegments
type FlushSegRequest struct {
  MsgBase
  DbID UniqueID
  CollectionID UniqueID
  SegmentID []UniqueID
}
  • SegmentStatistics
type SegmentStatisticsUpdates struct {
    SegmentID UniqueID
    MemorySize int64
    NumRows int64
}

type SegmentStatistics struct{
    MsgBase
    SegStats []*SegmentStatisticsUpdates
}