2020-10-29 12:42:47 +00:00
|
|
|
package msgstream
|
|
|
|
|
|
|
|
import (
|
|
|
|
internalPb "github.com/zilliztech/milvus-distributed/internal/proto/internalpb"
|
|
|
|
)
|
|
|
|
|
2020-11-04 09:58:43 +00:00
|
|
|
type MsgType = internalPb.MsgType
|
2020-10-29 12:42:47 +00:00
|
|
|
|
|
|
|
type TsMsg interface {
|
2020-11-02 08:01:04 +00:00
|
|
|
SetTs(ts Timestamp)
|
|
|
|
BeginTs() Timestamp
|
|
|
|
EndTs() Timestamp
|
2020-10-29 12:42:47 +00:00
|
|
|
Type() MsgType
|
2020-11-02 08:01:04 +00:00
|
|
|
HashKeys() []int32
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////Insert//////////////////////////////////////////
|
|
|
|
type InsertTask struct {
|
2020-11-02 08:01:04 +00:00
|
|
|
HashValues []int32
|
2020-10-29 12:42:47 +00:00
|
|
|
internalPb.InsertRequest
|
|
|
|
}
|
|
|
|
|
2020-11-02 08:01:04 +00:00
|
|
|
func (it InsertTask) SetTs(ts Timestamp) {
|
|
|
|
// TODO::
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
2020-11-02 08:01:04 +00:00
|
|
|
func (it InsertTask) BeginTs() Timestamp {
|
|
|
|
timestamps := it.Timestamps
|
|
|
|
var beginTs Timestamp
|
|
|
|
for _, v := range timestamps {
|
|
|
|
beginTs = Timestamp(v)
|
|
|
|
break
|
|
|
|
}
|
|
|
|
for _, v := range timestamps {
|
|
|
|
if beginTs > Timestamp(v) {
|
|
|
|
beginTs = Timestamp(v)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return beginTs
|
|
|
|
}
|
|
|
|
|
|
|
|
func (it InsertTask) EndTs() Timestamp {
|
|
|
|
timestamps := it.Timestamps
|
|
|
|
var endTs Timestamp
|
|
|
|
for _, v := range timestamps {
|
|
|
|
endTs = Timestamp(v)
|
|
|
|
break
|
|
|
|
}
|
|
|
|
for _, v := range timestamps {
|
|
|
|
if endTs < Timestamp(v) {
|
|
|
|
endTs = Timestamp(v)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return endTs
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (it InsertTask) Type() MsgType {
|
2020-11-04 09:58:43 +00:00
|
|
|
return it.MsgType
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
2020-11-02 08:01:04 +00:00
|
|
|
func (it InsertTask) HashKeys() []int32 {
|
|
|
|
return it.HashValues
|
|
|
|
}
|
|
|
|
|
2020-10-29 12:42:47 +00:00
|
|
|
/////////////////////////////////////////Delete//////////////////////////////////////////
|
|
|
|
type DeleteTask struct {
|
2020-11-02 08:01:04 +00:00
|
|
|
HashValues []int32
|
2020-10-29 12:42:47 +00:00
|
|
|
internalPb.DeleteRequest
|
|
|
|
}
|
|
|
|
|
2020-11-02 08:01:04 +00:00
|
|
|
func (dt DeleteTask) SetTs(ts Timestamp) {
|
|
|
|
// TODO::
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
2020-11-02 08:01:04 +00:00
|
|
|
func (dt DeleteTask) BeginTs() Timestamp {
|
|
|
|
timestamps := dt.Timestamps
|
|
|
|
var beginTs Timestamp
|
|
|
|
for _, v := range timestamps {
|
|
|
|
beginTs = Timestamp(v)
|
|
|
|
break
|
|
|
|
}
|
|
|
|
for _, v := range timestamps {
|
|
|
|
if beginTs > Timestamp(v) {
|
|
|
|
beginTs = Timestamp(v)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return beginTs
|
|
|
|
}
|
|
|
|
|
|
|
|
func (dt DeleteTask) EndTs() Timestamp {
|
|
|
|
timestamps := dt.Timestamps
|
|
|
|
var endTs Timestamp
|
|
|
|
for _, v := range timestamps {
|
|
|
|
endTs = Timestamp(v)
|
|
|
|
break
|
|
|
|
}
|
|
|
|
for _, v := range timestamps {
|
|
|
|
if endTs < Timestamp(v) {
|
|
|
|
endTs = Timestamp(v)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return endTs
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (dt DeleteTask) Type() MsgType {
|
2020-11-04 09:58:43 +00:00
|
|
|
return dt.MsgType
|
|
|
|
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
2020-11-02 08:01:04 +00:00
|
|
|
func (dt DeleteTask) HashKeys() []int32 {
|
|
|
|
return dt.HashValues
|
|
|
|
}
|
|
|
|
|
2020-10-29 12:42:47 +00:00
|
|
|
/////////////////////////////////////////Search//////////////////////////////////////////
|
|
|
|
type SearchTask struct {
|
2020-11-02 08:01:04 +00:00
|
|
|
HashValues []int32
|
2020-10-29 12:42:47 +00:00
|
|
|
internalPb.SearchRequest
|
|
|
|
}
|
|
|
|
|
2020-11-02 08:01:04 +00:00
|
|
|
func (st SearchTask) SetTs(ts Timestamp) {
|
2020-10-29 12:42:47 +00:00
|
|
|
st.Timestamp = uint64(ts)
|
|
|
|
}
|
|
|
|
|
2020-11-02 08:01:04 +00:00
|
|
|
func (st SearchTask) BeginTs() Timestamp {
|
|
|
|
return Timestamp(st.Timestamp)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (st SearchTask) EndTs() Timestamp {
|
|
|
|
return Timestamp(st.Timestamp)
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (st SearchTask) Type() MsgType {
|
2020-11-04 09:58:43 +00:00
|
|
|
return st.MsgType
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
2020-11-02 08:01:04 +00:00
|
|
|
func (st SearchTask) HashKeys() []int32 {
|
|
|
|
return st.HashValues
|
|
|
|
}
|
|
|
|
|
2020-10-29 12:42:47 +00:00
|
|
|
/////////////////////////////////////////SearchResult//////////////////////////////////////////
|
|
|
|
type SearchResultTask struct {
|
2020-11-02 08:01:04 +00:00
|
|
|
HashValues []int32
|
2020-10-29 12:42:47 +00:00
|
|
|
internalPb.SearchResult
|
|
|
|
}
|
|
|
|
|
2020-11-02 08:01:04 +00:00
|
|
|
func (srt SearchResultTask) SetTs(ts Timestamp) {
|
2020-10-29 12:42:47 +00:00
|
|
|
srt.Timestamp = uint64(ts)
|
|
|
|
}
|
|
|
|
|
2020-11-03 06:53:36 +00:00
|
|
|
func (srt SearchResultTask) BeginTs() Timestamp {
|
2020-11-02 08:01:04 +00:00
|
|
|
return Timestamp(srt.Timestamp)
|
|
|
|
}
|
|
|
|
|
2020-11-03 06:53:36 +00:00
|
|
|
func (srt SearchResultTask) EndTs() Timestamp {
|
2020-11-02 08:01:04 +00:00
|
|
|
return Timestamp(srt.Timestamp)
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (srt SearchResultTask) Type() MsgType {
|
2020-11-04 09:58:43 +00:00
|
|
|
return srt.MsgType
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
2020-11-02 08:01:04 +00:00
|
|
|
func (srt SearchResultTask) HashKeys() []int32 {
|
|
|
|
return srt.HashValues
|
|
|
|
}
|
|
|
|
|
2020-11-04 08:28:14 +00:00
|
|
|
/////////////////////////////////////////TimeTick//////////////////////////////////////////
|
|
|
|
type TimeTickTask struct {
|
2020-11-02 08:01:04 +00:00
|
|
|
HashValues []int32
|
2020-11-03 08:38:16 +00:00
|
|
|
internalPb.TimeTickMsg
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
2020-11-04 08:28:14 +00:00
|
|
|
func (tst TimeTickTask) SetTs(ts Timestamp) {
|
2020-10-29 12:42:47 +00:00
|
|
|
tst.Timestamp = uint64(ts)
|
|
|
|
}
|
|
|
|
|
2020-11-04 08:28:14 +00:00
|
|
|
func (tst TimeTickTask) BeginTs() Timestamp {
|
2020-11-02 08:01:04 +00:00
|
|
|
return Timestamp(tst.Timestamp)
|
|
|
|
}
|
|
|
|
|
2020-11-04 08:28:14 +00:00
|
|
|
func (tst TimeTickTask) EndTs() Timestamp {
|
2020-11-02 08:01:04 +00:00
|
|
|
return Timestamp(tst.Timestamp)
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
2020-11-04 08:28:14 +00:00
|
|
|
func (tst TimeTickTask) Type() MsgType {
|
2020-11-04 09:58:43 +00:00
|
|
|
return tst.MsgType
|
2020-10-29 12:42:47 +00:00
|
|
|
}
|
|
|
|
|
2020-11-04 08:28:14 +00:00
|
|
|
func (tst TimeTickTask) HashKeys() []int32 {
|
2020-11-02 08:01:04 +00:00
|
|
|
return tst.HashValues
|
|
|
|
}
|