国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于HBase分布式環(huán)境下移動(dòng)對(duì)象并行網(wǎng)格索引同步方法_2

      文檔序號(hào):9597901閱讀:來源:國知局
      _node)方法得到鎖目錄下所有子節(jié)點(diǎn),并判斷序號(hào)最小的子結(jié)點(diǎn)是不是自己創(chuàng)建的結(jié)點(diǎn),如果是,那么它就獲得了這個(gè)鎖;
      [0015](4)如果序號(hào)最小的子結(jié)點(diǎn)不是自己創(chuàng)建的,那么當(dāng)前索引用戶進(jìn)程就調(diào)用ZooKeeper的exists方法并監(jiān)控ZooKeeper上目錄節(jié)點(diǎn)列表中比自己序號(hào)小的最晚創(chuàng)建的有序臨時(shí)節(jié)點(diǎn)狀態(tài);
      [0016](5)如果監(jiān)視的節(jié)點(diǎn)狀態(tài)發(fā)生變化,則跳轉(zhuǎn)到步驟3,直到退出鎖競爭。
      [0017]分布式鎖是分布式環(huán)境下進(jìn)行共享資源控制的常用手段,它能有效協(xié)調(diào)分布式環(huán)境下的多線程協(xié)調(diào)問題,十分適合應(yīng)用于基于Twitter Storm LBS查詢框架之中。因此,本文將基于ZooKe印er的分布式鎖服務(wù)來解決分布式環(huán)境下LBS并行處理的同步問題。
      [0018]ZooKeeper分布式服務(wù)框架是Apache Hadoop的一個(gè)子項(xiàng)目,它主要是用來解決分布式應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問題,如:統(tǒng)一命名服務(wù)、分布式鎖服務(wù)、集群管理、分布式應(yīng)用配置項(xiàng)的管理等。它支持單機(jī)模式和分布式模式,在分布式模式下,能夠?yàn)榉植际綉?yīng)用提供高性能和可靠的協(xié)調(diào)服務(wù),而且使用ZooKeeper可以大大簡化分布式協(xié)調(diào)服務(wù)的實(shí)現(xiàn),這就為開發(fā)分布式應(yīng)用大大降低了成本。
      [0019]ZooKeeper在集群中每個(gè)節(jié)點(diǎn)都維護(hù)著一棵相同的樹,樹的結(jié)構(gòu)和Linux的目錄結(jié)構(gòu)的概念類似。
      [0020]本發(fā)明的優(yōu)點(diǎn)是:支持云計(jì)算環(huán)境中基于HBase的網(wǎng)格索引的高吞吐率的并發(fā)操作。
      【附圖說明】
      [0021]圖1網(wǎng)格索引結(jié)構(gòu)示意圖
      [0022]圖2并行更新與查詢例子
      [0023]圖3基于ZooKeeper的分布式共享鎖算法流程圖
      【具體實(shí)施方式】
      [0024]實(shí)施例1
      [0025]網(wǎng)格劃分如圖1所示,假設(shè)共享資源為圖中單元格20,有四個(gè)索引用戶進(jìn)程要訪問此單元格
      [0026](1)首先針對(duì)網(wǎng)格單元20,創(chuàng)建一個(gè)ZooKe印er結(jié)點(diǎn)作為鎖目錄,并且結(jié)點(diǎn)類型為PERSISTENT。用它來描述被共享的資源,稱為:/l0ck_n0de,用網(wǎng)格id作為標(biāo)識(shí)符,表示為/20。
      [0027](2)每個(gè)希望獲得鎖的索引用戶進(jìn)程在鎖目錄下創(chuàng)建一個(gè)結(jié)點(diǎn)locks_i,作為鎖/20的子結(jié)點(diǎn),該結(jié)點(diǎn)類型為有序臨時(shí)節(jié)點(diǎn)(EPHEMERAL_SEQUENTIAL)。此時(shí),有四個(gè)進(jìn)程創(chuàng)建了結(jié)點(diǎn),根據(jù)它們創(chuàng)建節(jié)點(diǎn)的時(shí)間先后順序,分別表示為/20/locks_l、/20/locks_2、/20/locks_3 和 /20/locks_4o
      [0028](3)當(dāng)前索引用戶進(jìn)程調(diào)用ZooKeeper的getChildren(/20)方法得到鎖目錄所有子節(jié)點(diǎn):/20/locks_l、/20/locks_2、/20/locks_3 和 /20/locks_4,獲取序號(hào)最小的子節(jié)點(diǎn)/20/lock-l,并判斷獲取到的序號(hào)最小的子結(jié)點(diǎn)是不是自己創(chuàng)建的結(jié)點(diǎn),如果當(dāng)前索引用戶進(jìn)程創(chuàng)建了/20/locks_l,最小的節(jié)點(diǎn)是自己創(chuàng)建的,那么它就獲得了鎖/20。
      [0029](4)如果當(dāng)前索引用戶創(chuàng)建了節(jié)點(diǎn)/20/locks_4,最小的節(jié)點(diǎn)/20/locks_l不是當(dāng)前索引用戶進(jìn)程創(chuàng)建的,那么它就調(diào)用ZooKeeper的exists (/20,true)方法,監(jiān)控ZooKeeper上目錄節(jié)點(diǎn)列表中比自己序號(hào)小的最晚創(chuàng)建的有序臨時(shí)節(jié)點(diǎn)/20/locks_3的狀態(tài),因?yàn)槟夸浌?jié)點(diǎn)列表中比自己序號(hào)小的節(jié)點(diǎn)分別有/20/locks_l、/20/locks_2和/20/locks_3,其中,/20/locks_3節(jié)點(diǎn)創(chuàng)建時(shí)間和/20/locks_4節(jié)點(diǎn)的創(chuàng)建時(shí)間最接近。
      [0030](5)如果當(dāng)前索引用戶監(jiān)視的節(jié)點(diǎn)/20/locks_3狀態(tài)發(fā)生變化,則跳轉(zhuǎn)到步驟3,直到退出鎖競爭。
      [0031]如果索引用戶進(jìn)程想要釋放鎖或者退出鎖競爭,只需要?jiǎng)h除其在鎖目錄下創(chuàng)建的子結(jié)點(diǎn)即可。本文在此不在詳細(xì)陳述。
      [0032]可以看出,基于ZooKe印er的分布式共享鎖是按照FIFO的策略分配共享資源。進(jìn)程請(qǐng)求鎖的順序和獲得鎖的順序是一致的。
      [0033]圖3是ZooKe印er實(shí)現(xiàn)分布式共享鎖的算法流程圖,從圖中可以看出通過ZooKeeper進(jìn)行分布式環(huán)境下的進(jìn)程同步非常方便。
      【主權(quán)項(xiàng)】
      1.基于HBase分布式環(huán)境下移動(dòng)對(duì)象并行網(wǎng)格索引同步方法,其特征在于,包括以下幾步: (1)針對(duì)每個(gè)網(wǎng)格單元,創(chuàng)建一個(gè)ZooKe印er結(jié)點(diǎn)作為鎖目錄,并且結(jié)點(diǎn)類型為持久節(jié)點(diǎn),這種類型的節(jié)點(diǎn)在創(chuàng)建后,就一直存在,直到有刪除操作來主動(dòng)清除這個(gè)節(jié)點(diǎn)一一不會(huì)因?yàn)閯?chuàng)建該節(jié)點(diǎn)的索引用戶連接失效而消失。這個(gè)節(jié)點(diǎn)用來描述被共享的資源,稱為/lock_node,并有一個(gè)標(biāo)志符; (2)每個(gè)希望獲得鎖的索引用戶進(jìn)程在鎖目錄下創(chuàng)建一個(gè)結(jié)點(diǎn),作為鎖/loCk_node的子結(jié)點(diǎn),該結(jié)點(diǎn)類型為有序臨時(shí)節(jié)點(diǎn),這類節(jié)點(diǎn)的基本特性和持久節(jié)點(diǎn)是一致的,在ZooKeeper中,每個(gè)父節(jié)點(diǎn)會(huì)為他的第一級(jí)子節(jié)點(diǎn)維護(hù)一份時(shí)間順序,會(huì)記錄每個(gè)子節(jié)點(diǎn)創(chuàng)建的先后順序,每個(gè)節(jié)點(diǎn)有一個(gè)序號(hào); (3)當(dāng)前索引用戶進(jìn)程調(diào)用ZooKeeper的getChildren方法得到鎖目錄下所有子節(jié)點(diǎn),并判斷序號(hào)最小的子結(jié)點(diǎn)是不是自己創(chuàng)建的結(jié)點(diǎn),如果是,那么它就獲得了這個(gè)鎖; (4)如果序號(hào)最小的子結(jié)點(diǎn)不是自己創(chuàng)建的,那么當(dāng)前索引用戶進(jìn)程就調(diào)用ZooKeeper的exists方法并監(jiān)控ZooKeeper上目錄節(jié)點(diǎn)列表中比自己序號(hào)小的最晚創(chuàng)建的有序臨時(shí)節(jié)點(diǎn)狀態(tài); (5)如果監(jiān)視的節(jié)點(diǎn)狀態(tài)發(fā)生變化,則跳轉(zhuǎn)到步驟3,直到退出鎖競爭。
      【專利摘要】本發(fā)明提供了基于HBase分布式環(huán)境下移動(dòng)對(duì)象并行網(wǎng)格索引同步方法,包括幾步:(1)針對(duì)每一個(gè)網(wǎng)格單元,創(chuàng)建一個(gè)ZooKeeper結(jié)點(diǎn)作為鎖目錄;(2)每個(gè)希望獲得鎖的索引用戶進(jìn)程在鎖目錄下創(chuàng)建一個(gè)結(jié)點(diǎn),該結(jié)點(diǎn)類型為有序臨時(shí)節(jié)點(diǎn)。(3)當(dāng)前索引用戶進(jìn)程調(diào)用ZooKeeper的getChildren方法得到鎖目錄所有子節(jié)點(diǎn),并判斷序號(hào)最小的子結(jié)點(diǎn)是不是自己創(chuàng)建的結(jié)點(diǎn),是,那么它就獲得了這個(gè)鎖;(4)不是,那么它就調(diào)用ZooKeeper的exists方法并監(jiān)控ZooKeeper上目錄節(jié)點(diǎn)列表中比自己序號(hào)小的最晚創(chuàng)建的有序臨時(shí)節(jié)點(diǎn)狀態(tài);(5)監(jiān)視的比自己序號(hào)小的最晚創(chuàng)建的節(jié)點(diǎn)狀態(tài)發(fā)生變化,則跳轉(zhuǎn)到步驟3,直到退出鎖競爭。本發(fā)明優(yōu)點(diǎn)是支持云計(jì)算環(huán)境中基于HBase的網(wǎng)格索引的高吞吐率的并發(fā)操作。
      【IPC分類】G06F17/30
      【公開號(hào)】CN105354263
      【申請(qǐng)?zhí)枴緾N201510697236
      【發(fā)明人】王波濤, 王國仁, 常立東, 趙凱利, 黃山
      【申請(qǐng)人】東北大學(xué)
      【公開日】2016年2月24日
      【申請(qǐng)日】2015年10月19日
      當(dāng)前第2頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1