本文整理匯總了Golang中github.com/couchbase/indexing/secondary/protobuf/projector.TsVbuuid.SeqnoFor方法的典型用法代碼示例。如果您正苦於以下問題:Golang TsVbuuid.SeqnoFor方法的具體用法?Golang TsVbuuid.SeqnoFor怎麽用?Golang TsVbuuid.SeqnoFor使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/couchbase/indexing/secondary/protobuf/projector.TsVbuuid
的用法示例。
在下文中一共展示了TsVbuuid.SeqnoFor方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: scatterMutation
func (kvdata *KVData) scatterMutation(
m *mc.DcpEvent, ts *protobuf.TsVbuuid) (err error) {
vbno := m.VBucket
switch m.Opcode {
case mcd.DCP_STREAMREQ:
if m.Status == mcd.ROLLBACK {
fmsg := "%v ##%x StreamRequest ROLLBACK: %v\n"
logging.Infof(fmsg, kvdata.logPrefix, m.Opaque, m)
} else if m.Status != mcd.SUCCESS {
fmsg := "%v ##%x StreamRequest %s: %v\n"
logging.Errorf(fmsg, kvdata.logPrefix, m.Opaque, m.Status, m)
} else if _, ok := kvdata.vrs[vbno]; ok {
fmsg := "%v ##%x duplicate OpStreamRequest: %v\n"
logging.Errorf(fmsg, kvdata.logPrefix, m.Opaque, m)
} else if m.VBuuid, _, err = m.FailoverLog.Latest(); err != nil {
panic(err)
} else {
fmsg := "%v ##%x StreamRequest: %v\n"
logging.Tracef(fmsg, kvdata.logPrefix, m.Opaque, m)
topic, bucket := kvdata.topic, kvdata.bucket
m.Seqno, _ = ts.SeqnoFor(vbno)
cluster, config := kvdata.feed.cluster, kvdata.config
vr := NewVbucketRoutine(
cluster, topic, bucket,
m.Opaque, vbno, m.VBuuid, m.Seqno, config)
_, err := vr.AddEngines(0xFFFF, kvdata.engines, kvdata.endpoints)
if err != nil {
panic(err)
}
if vr.Event(m) != nil {
panic(err)
}
kvdata.vrs[vbno] = vr
}
kvdata.feed.PostStreamRequest(kvdata.bucket, m)
case mcd.DCP_STREAMEND:
if vr, ok := kvdata.vrs[vbno]; !ok {
fmsg := "%v ##%x duplicate OpStreamEnd: %v\n"
logging.Errorf(fmsg, kvdata.logPrefix, m.Opaque, m)
} else if m.Status != mcd.SUCCESS {
fmsg := "%v ##%x StreamEnd %s: %v\n"
logging.Errorf(fmsg, kvdata.logPrefix, m.Opaque, m)
} else {
fmsg := "%v ##%x StreamEnd: %v\n"
logging.Tracef(fmsg, kvdata.logPrefix, m.Opaque, m)
if vr.Event(m) != nil {
panic(err)
}
delete(kvdata.vrs, vbno)
}
kvdata.feed.PostStreamEnd(kvdata.bucket, m)
case mcd.DCP_SNAPSHOT:
if vr, ok := kvdata.vrs[vbno]; ok && (vr.Event(m) != nil) {
panic(err)
} else if !ok {
fmsg := "%v ##%x unknown vbucket: %v\n"
logging.Fatalf(fmsg, kvdata.logPrefix, m.Opaque, m)
}
case mcd.DCP_MUTATION, mcd.DCP_DELETION, mcd.DCP_EXPIRATION:
if vr, ok := kvdata.vrs[vbno]; ok && (vr.Event(m) != nil) {
panic(err)
} else if !ok {
fmsg := "%v ##%x unknown vbucket: %v\n"
logging.Fatalf(fmsg, kvdata.logPrefix, m.Opaque, m)
}
}
return
}