<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-23  評(píng)論-58  文章-0  trackbacks-0

    1、收集第一輪投票結(jié)果
    2、統(tǒng)計(jì)投票數(shù),計(jì)算出投票數(shù)最大的id
    3、如果投票數(shù)超過(guò)1/2則選該id為leader
    4、如果最大投票數(shù)id沒(méi)有超過(guò)1/2,則推薦txid最大的id為leader
    5、計(jì)算出最大的txid及其服務(wù)器id
    6、計(jì)算出最大的txid有幾個(gè)
    7、如果最大txid超過(guò)一個(gè),則比較服務(wù)器id,推薦服務(wù)id最大的為leader
    8、發(fā)起第二輪投票

    Java實(shí)現(xiàn)代碼如下:
            /**
             * 選舉leader
             * 
    @param vote 投票信息
             * 
    @return
             
    */

            
    public int forLeader(Map<Integer,Notification> vote)
            
    {
                
    //統(tǒng)計(jì)leader投票數(shù)
                TreeMap<Integer,Integer> tmap=new TreeMap<Integer,Integer>();
                
    for(Map.Entry<Integer,Notification> entry:vote.entrySet())
                
    {
                    Notification nf
    =entry.getValue();
                    
    if(tmap.containsKey(nf.leader))
                        tmap.put(nf.leader, tmap.get(nf.leader)
    +1);
                    
    else
                        tmap.put(nf.leader, 
    1);
                }

                
    //計(jì)算出投票數(shù)最大的id
                int a=0;
                
    int l=0;
                
    for(Map.Entry<Integer,Integer> entry:tmap.entrySet())
                
    {
                    
    if(entry.getValue()>a)
                    
    {
                        a
    =entry.getValue();
                        l
    =entry.getKey();
                    }

                }

                
    //如果投票數(shù)超過(guò)1/2則選該id為leader
                if(a/(My.serverList.size()*1.0)>1/2.0)
                
    {
                    
    //選出leader
                    if(l==My.myid)
                        My.myServerState
    =ServerState.LEADING;
                    
    else
                        My.myServerState
    =ServerState.FLLOWING;
                    My.leader
    =l;
                    
                    
    return -1;
                }

                
    //如果最大投票數(shù)leader沒(méi)有超過(guò)1/2,則推薦txid最大的id為leader
                
    //計(jì)算出最大的txid及其服務(wù)器id
                long txid=0;
                
    int leader=0;
                
    for(Map.Entry<Integer,Notification> entry:vote.entrySet())
                
    {
                    
    if(entry.getValue().txid>txid)
                    
    {
                        leader
    =entry.getKey();
                        txid
    =entry.getValue().txid;
                    }

                }

                
    //計(jì)算出最大的txid有幾個(gè)
                Map<Integer,Notification> vte=new TreeMap<Integer,Notification>();
                
    for(Map.Entry<Integer,Notification> entry:vote.entrySet())
                
    {
                    
    if(entry.getValue().txid==txid)
                    
    {
                        vte.put(entry.getValue().id, entry.getValue());
                    }

                }

                
    //如果超過(guò)一個(gè),則比較服務(wù)器id,推薦服務(wù)id最大的為leader
                if(vte.size()>1)
                
    {
                    
    for(Map.Entry<Integer,Notification> entry:vte.entrySet())
                    
    {
                        
    if(entry.getValue().id>leader)
                            leader
    =entry.getKey();
                    }

                }

                
    return leader;
            }

        }

    posted on 2013-04-17 11:15 nianzai 閱讀(1880) 評(píng)論(0)  編輯  收藏 所屬分類: 分布式

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 99在线免费视频| 日本免费无遮挡吸乳视频电影| 亚洲欧美成aⅴ人在线观看| 国产精品成人免费综合| 99精品热线在线观看免费视频| 亚洲AV人无码综合在线观看| 国产91色综合久久免费分享| 亚洲日韩精品A∨片无码加勒比| 免费无码看av的网站| 国产亚洲精品美女久久久久久下载| 亚洲精品夜夜夜妓女网| 皇色在线视频免费网站| aaa毛片视频免费观看| 亚洲日日做天天做日日谢| 亚洲人成色77777| 18禁美女裸体免费网站| a在线视频免费观看在线视频三区 a毛片成人免费全部播放 | 色吊丝最新永久免费观看网站| 亚洲日本在线免费观看| 67194成手机免费观看| 99re6热视频精品免费观看| 国产日韩一区二区三免费高清 | 亚洲片国产一区一级在线观看| 日韩视频免费在线| 久久久久久国产精品免费免费| 中国人xxxxx69免费视频| 午夜无码A级毛片免费视频 | 亚洲av不卡一区二区三区| 国产精一品亚洲二区在线播放| 国产国拍精品亚洲AV片| 中文字幕亚洲综合久久男男| 亚洲日韩国产精品乱| 亚洲精品国产综合久久一线| 亚洲国产av一区二区三区| 亚洲国产精品一区二区九九| 婷婷综合缴情亚洲狠狠尤物| 亚洲Av无码乱码在线播放| 亚洲乱亚洲乱少妇无码| 国产精品亚洲精品日韩已方| 中文亚洲AV片不卡在线观看| 狠狠色伊人亚洲综合成人|