• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang genericsmrproto.ProposeReplyTS类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang twocloud.RequestBundle类代码示例发布时间:2022-05-24
下一篇:
Golang genericsmrproto.Propose类代码示例发布时间:2022-05-24
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap