本文整理汇总了Golang中genericsmrproto.ProposeReplyTS类的典型用法代码示例。如果您正苦于以下问题:Golang ProposeReplyTS类的具体用法?Golang ProposeReplyTS怎么用?Golang ProposeReplyTS使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ProposeReplyTS类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: waitReplies
func waitReplies(readers []*bufio.Reader, leader int, n int, done chan bool) {
e := false
reply := new(genericsmrproto.ProposeReplyTS)
for i := 0; i < n; i++ {
if err := reply.Unmarshal(readers[leader]); err != nil {
fmt.Println("Error when reading:", err)
e = true
continue
}
//fmt.Println(reply.Value)
if *check {
if rsp[reply.CommandId] {
fmt.Println("Duplicate reply", reply.CommandId)
}
rsp[reply.CommandId] = true
}
if reply.OK != 0 {
successful[leader]++
if reply.Value == 1000772 { //hack: special value means read was local
local[leader]++
}
}
}
done <- e
}
开发者ID:pombredanne,项目名称:qlease,代码行数:26,代码来源:client.go
示例2: waitReplies
func waitReplies(readers []*bufio.Reader, leader int, n int, done chan bool, readings chan int64) {
e := false
tss := make([]int64, n)
reply := new(genericsmrproto.ProposeReplyTS)
for i := 0; i < n; i++ {
/*if *noLeader {
leader = rarray[i]
}*/
if err := reply.Unmarshal(readers[leader]); err != nil {
fmt.Println("Error when reading:", err)
e = true
continue
}
tss[i] = time.Now().UnixNano() - reply.Timestamp
if *check {
if rsp[reply.Instance] {
fmt.Println("Duplicate reply", reply.Instance)
}
rsp[reply.Instance] = true
}
if reply.OK != 0 {
successful[leader]++
}
}
done <- e
for i := 0; i < n; i++ {
readings <- tss[i]
}
}
开发者ID:WIZARD-CXY,项目名称:golang-devops-stuff,代码行数:34,代码来源:client.go
示例3: ReplyProposeTS
func (r *Replica) ReplyProposeTS(reply *genericsmrproto.ProposeReplyTS, w *bufio.Writer) {
//r.clientMutex.Lock()
//defer r.clientMutex.Unlock()
//w.WriteByte(genericsmrproto.PROPOSE_REPLY)
reply.Marshal(w)
w.Flush()
}
开发者ID:nkts,项目名称:golang-devops-stuff,代码行数:7,代码来源:genericsmr.go
示例4: ReplyProposeTS
func (r *Replica) ReplyProposeTS(reply *genericsmrproto.ProposeReplyTS, propose *Propose) {
if propose.Writer == nil || propose.Lock == nil {
return
}
propose.Lock.Lock()
defer propose.Lock.Unlock()
//w.WriteByte(genericsmrproto.PROPOSE_REPLY)
reply.Marshal(propose.Writer)
propose.Writer.Flush()
}
开发者ID:pombredanne,项目名称:qlease,代码行数:10,代码来源:genericsmr.go
示例5: simulatedClient
func simulatedClient(rlReply *masterproto.GetReplicaListReply, leaderId int, readsChan chan float64, writesChan chan float64, done chan bool, idx int) {
N := len(rlReply.ReplicaList)
servers := make([]net.Conn, N)
readers := make([]*bufio.Reader, N)
writers := make([]*bufio.Writer, N)
rarray := make([]int, *reqsNb)
iarray := make([]int, *reqsNb)
put := make([]bool, *reqsNb)
perReplicaCount := make([]int, N)
M := N
if *barOne {
M = N - 1
}
randObj := rand.New(rand.NewSource(int64(42 + idx)))
zipf := ycsbzipf.NewZipf(int(*D), randObj)
for i := 0; i < len(rarray); i++ {
r := rand.Intn(M)
rarray[i] = r
perReplicaCount[r]++
if *conflicts >= 0 {
r = rand.Intn(100)
if r < *conflicts {
iarray[i] = 0
} else {
iarray[i] = i
}
} else {
iarray[i] = int(zipf.NextInt64())
}
//r = rand.Intn(100)
r = randObj.Intn(100)
if r < *writes {
put[i] = true
} else {
put[i] = false
}
}
for i := 0; i < N; i++ {
var err error
servers[i], err = net.Dial("tcp", rlReply.ReplicaList[i])
if err != nil {
log.Printf("Error connecting to replica %d\n", i)
}
readers[i] = bufio.NewReader(servers[i])
writers[i] = bufio.NewWriter(servers[i])
}
var id int32 = 0
args := genericsmrproto.Propose{id, state.Command{state.PUT, 0, 0}, 0}
var reply genericsmrproto.ProposeReplyTS
n := *reqsNb
successful := 0
for i := 0; i < n; i++ {
leader := leaderId
if *noLeader {
leader = rarray[i]
}
args.CommandId = id
if put[i] {
args.Command.Op = state.PUT
} else {
args.Command.Op = state.GET
if *readFrom > 0 {
leader = *readFrom
}
}
args.Command.K = state.Key(karray[iarray[i]])
writers[leader].WriteByte(genericsmrproto.PROPOSE)
before := time.Now()
//log.Println(i, karray[i], iarray[i], karray[iarray[i]])
args.Marshal(writers[leader])
writers[leader].Flush()
if err := reply.Unmarshal(readers[leader]); err != nil {
fmt.Println("Error when reading:", err)
continue
}
if reply.OK != 0 {
successful++
}
after := time.Now()
id++
if put[i] {
writesChan <- (after.Sub(before)).Seconds() * 1000
} else {
readsChan <- (after.Sub(before)).Seconds() * 1000
}
//.........这里部分代码省略.........
开发者ID:pombredanne,项目名称:qlease,代码行数:101,代码来源:client.go
注:本文中的genericsmrproto.ProposeReplyTS类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论