<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      分布式文件快速搜索-設(shè)計與實現(xiàn)(開源/并行)

      2010-07-20 08:50  靈感之源  閱讀(5483)  評論(16)    收藏  舉報

       

      系列文章

      1.分布式文件快速搜索(多計算機并行/多種算法)

      2.分布式文件快速搜索的設(shè)計與實現(xiàn)(開源/分布式計算/并行)

      3.分布式文件快速搜索-技術(shù)細(xì)節(jié)分析(開源/并行)

       

       

       

      特點


      1.分布式:支持通過互聯(lián)網(wǎng)查找任意多計算機,支持TCP/HTTP;
      2.訪問安全:基于角色的訪問控制(RBAC),支持定義遠程訪問的賬戶、允許訪問的目錄等;
      3.快速:

              a).充分發(fā)揮多核CPU的性能,自動進行并行計算;

              b).自動使用NTFS特性快速檢索文件,比普通檢索速度提升10倍以上
      4.智能:自動識別同一部機器上的不同物理磁盤,自動加速;
      5.高效:哈希值、全文索引快速存取,網(wǎng)絡(luò)壓縮傳輸;
      6.可擴展性內(nèi)容搜索:內(nèi)容匹配、全文索引,支持接口;

       


      前世


      這個程序的靈感,可以參考這里詳細(xì)的說明:分布式文件快速搜索(多計算機并行/多種算法)

       

      原來的目的只是查找本計算機的重復(fù)文件,因為3TB的磁盤空間,放了太多電影、圖片、音樂,有不少是重復(fù)。剛開始,對每個文件內(nèi)容都進行哈希值計算,速度非常慢。后來改成先用文件大小碰撞,碰撞后重復(fù)的幾率就極大地減少了,然后再進行文件內(nèi)容哈希,速度就有了巨大的提升。再后來,支持了文件名、文件時間和屬性等過濾條件,可用性也增大了。

       

      但是我不滿足現(xiàn)有的速度,覺得現(xiàn)在的CPU都是多核的,我們可以使用多線程來充分利用多核的威力。單純的多線程處理容易,new Thread就能跑了,但我們的目的是把大量的查找任務(wù)切割,分而治之,然后同時執(zhí)行,并等待所有任務(wù)都完成再繼續(xù)下一步工作,這就是并行計算的目的。

       

      .NET 3.5 SP1開始有了Parallel Extensions,4.0內(nèi)置了Parallel Processing Library(PPL),當(dāng)然還有一系列的相關(guān)類,如ConcurrentDictionary等(終于解決了2.0引入的Dictionary不是線程安全需要自己手工封裝的問題了)。有了這些,我們就可以進行并行計算了。

       

      在引入了多線程檢索文件之后,我還不滿足現(xiàn)有的速度。經(jīng)過分析,可以判斷檢索的文件是否在不同的物理磁盤(不是一個磁盤的不同分區(qū)),則可以在本機動態(tài)使用并行計算。

       

      我還不滿足目前的功能:局限于現(xiàn)有計算機,作為不大。日常工作,我們需要對不同的計算機進行搜索,當(dāng)然,都是局域網(wǎng)內(nèi),我們可以映射網(wǎng)絡(luò)磁盤。但如果是互聯(lián)網(wǎng)上的計算機,你就無能為力了。所以就有了現(xiàn)在的網(wǎng)格文件快速搜索。

       

      必須說明的是,網(wǎng)格文件快速搜索不是一個完整的軟件,只是閑得頭痛而拿來練手的實驗性程序,目前能做的只是檢索、刪除相同/不同計算機上的文件。

       


      今生


      所謂網(wǎng)格,就是分布式,跟Web2.0所謂Tag就是分類一樣,互聯(lián)網(wǎng)包裝的概念層出不窮。

       

      要實現(xiàn)在不同的計算機之間檢索文件,并聚合結(jié)果,我們需要做的工作頗多。首先,我參考了google的MapReduce。MapReduce,實際就是2個步驟,分配工作,然后聚合結(jié)果。在對多個計算機進行檢索,就是分配多個任務(wù),每個任務(wù)檢索指定的計算機,等待所有檢索任務(wù)完成,再聚合結(jié)果。

       

      接著,我們需要對任務(wù)進行分配。分配的原則是遠程按機器分組,本地按磁盤分組。在分配好任務(wù)之后,我們需要在每個計算機運行一個監(jiān)聽程序接受其它機器的請求。監(jiān)聽使用的是異步TCP,使用事件來通知程序進行業(yè)務(wù)處理。在監(jiān)聽程序運行后,客戶端判斷要檢索的文件夾位于遠程計算機,使用異步TCP連接,連接成功后,發(fā)送要檢索的文件夾以及身份信息,在通過身份認(rèn)證之后,便可以進行文件檢索。當(dāng)檢索完成后,返回結(jié)果給請求端,請求端在所有計算機的檢索都完成后,對結(jié)果進行組合。

       

      如果遠程計算機HTTP無法連接(如監(jiān)聽程序沒有啟動),會自動嘗試TCP鏈接,如果仍然失敗會自動容錯并忽略。

       

      現(xiàn)在,網(wǎng)格文件快速搜索正式成為了文件搜索,而不是以前的重復(fù)文件查找了。

       


      搜索流程

       

      上述的步驟只是大概的過程,實際搜索流程要更復(fù)雜。整個搜索過程分2大步:第一步是根據(jù)文件的大小/名稱/時間/屬性等進行過濾,然后對存在相同的文件再進行文件內(nèi)容哈希值判斷。

       

      對于互聯(lián)網(wǎng)上的機器搜索,第一步必須返回所有搜索內(nèi)容,而不是僅僅返回重復(fù)的內(nèi)容,因為我們現(xiàn)在檢索不是本地計算機,是多個互聯(lián)網(wǎng)計算機,譬如計算機A存在文件1.jpg,計算機B也存在同樣的1.jpg,但你必須把計算機A和B的結(jié)果聚合了才知道2個jpg文件相同,所以檢索各個計算機的文件,第一次回返回所有文件信息,在結(jié)果返回聚合后,得出大小/名稱/時間/屬性相同的結(jié)果,再對這些文件進行文件內(nèi)容哈希值處理。文件內(nèi)容哈希值的處理過程跟文件屬性檢索類似,但是哈希值是以磁盤文件形式緩存了,每次獲取文件內(nèi)容哈希值之前,先判斷文件的基本屬性(文件名、大小、修改時間)是否與哈希數(shù)據(jù)庫一致,如果匹配,使用數(shù)據(jù)庫中的值,否則計算新的哈希值。

       

      對于文件內(nèi)容匹配,分3種情況:

      1.完全匹配:使用哈希值判斷,哈希值會在本地緩存;

      2.內(nèi)容包含:運行時判斷;

      3.全文索引:對可以抽取內(nèi)容的文件進行動態(tài)索引,本地緩存;

       

      全文索引支持接口擴展,目前內(nèi)置了對微軟的IFilter接口的實現(xiàn),即將添加對lucene.net和hubbledotnet的支持。

       

      具體流程看下圖:

       

       


       

      將來


      你可以充分發(fā)揮想象力,把它應(yīng)用到不同的領(lǐng)域。如果你應(yīng)用了,記得告訴我,我會很高興它能被別人使用。


      TODO

      參看分布式文件快速搜索(多計算機并行/多種算法) 。

       

      使用

      參看分布式文件快速搜索(多計算機并行/多種算法) 和下面的代碼。


       

      代碼下載

      點擊這里下載:Filio.zip

       

      實際使用,不需要V1*-V5*這些類,現(xiàn)在只是用來對比測試速度的,如果不測試,可以刪除這些類。

       

       

      項目地址

      本項目已經(jīng)在http://filio.codeplex.com/ 開源

       

       

      主站蜘蛛池模板: 性按摩玩人妻hd中文字幕| 国产福利在线观看免费第一福利| 久久人人97超碰精品| 亚洲色偷偷色噜噜狠狠99| 久久热这里这里只有精品| 国产亚洲av人片在线播放| 午夜免费无码福利视频麻豆| 亚洲色成人网站www永久下载| 亚洲成av一区二区三区| 另类专区一区二区三区| 精品一区二区三区国产馆| 国产毛片三区二区一区| 产综合无码一区| 亚洲国产成人精品女人久| 欧美黑人又粗又大久久久| 日本中文一二区有码在线| 亚洲熟妇自偷自拍另类| 日本丰满护士bbw| 国产成人综合网亚洲第一| 国产中文字幕在线精品| 国偷自产av一区二区三区| 老熟妇欲乱一区二区三区| 国产一区二区四区不卡| 亚洲精品欧美综合二区| 西西444www高清大胆| 99国精品午夜福利视频不卡99 | 久久天天躁狠狠躁夜夜婷| 啊灬啊灬啊灬快灬高潮了电影片段| 伊人热热久久原色播放WWW| 大石桥市| 人妻在线中文字幕| 十四以下岁毛片带血a级| 狠狠色噜噜狠狠狠狠2021| 国产熟女一区二区三区蜜臀| 久久精品免视看国产成人| 好硬好湿好爽再深一点动态图视频| 人成午夜免费大片| 土默特左旗| 自拍视频在线观看成人| 日韩成人一区二区三区在线观看 | 香格里拉县|