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

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

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

      分布式文件系統KFS基礎知識介紹

      Kosmos distributed file system,簡稱KFS,是一個類GFS的分布式文件系統,被設計用于分布式的結構化存儲。下面將對KFS的體系結構進行簡單介紹,最后給出一個使用KFS C++ API的示例。

      1. KFS體系結構

      KFS和GFS的整體結構類似,圖中所示為GFS的體系結構圖(來自于Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung的論文“The Google File System”):

       

      KFS系統由三部分組成,分別是metaserver(相當于GFS master)、chunkserver(相當于GFS chunkserver)和client library(相當于GFS client):

      • metaserver:元數據服務器,使用B+樹存儲分布式文件系統的全局文件系統命名空間,一個KFS中僅有一個metaserver;
      • chunkserver: 一個大文件被切分成許多固定大小的文件塊block,文件塊block被以chunk的方式存儲在獨立的chunkserver上,每個 chunkserver上可能存不同文件的block,一個block會被存在不同的chunkserver上(默認為3份);在一個KFS中,有一系列 的chunkserver,chunkserver將chunk存儲在底層的文件系統(如Linux的XFS、EXT2);
      • client library:提供文件系統訪問的API,使應用可以通過接口操縱KFS;在將實際的應用和KFS集成起來時,需要在應用中包含KFS的客戶端庫文件。

      下面以KFS client端對某一文件的訪問為例,說明KFS的工作流程。假設該文件名為/kfs/testdata,分為以下幾步完成:

      • client端以該路徑名/kfs/testdata為參數,向metaserver發出請求;
      • metaserver將該文件對應的文件屬性信息返回到client端;
      • client端將文件名和對應的文件偏移(file name, chunk index)為關鍵字發送給metaserver;
      • metaserver對所管理的各chunkserver進行分析,將擁有該偏移塊的(chunk handle, chunk locations)返回給client端;
      • client端以(chunk handle, byte range)為關鍵字,向相應的chunkserver發送數據讀寫請求;
      • chunkserver返回對應數據區段的chunk data給client端;
      • client端得到chunk data。

      2. KFS API調用

      KFS 支持的客戶端包括有C++、Java和Python,以C++為例,KFS客戶端API調用的一般過程如下:首先,調用 getKfsClientFactory()->SetDefaultClient(serverHost, port)方法,獲取一個KfsClient類型的指針;然后,通過這個KfsClient類型的指針,調用所需的文件系統的函數(如創建目錄、刪除目 錄、創建文件、刪除文件、獲取文件信息等)。

      下面給出一個示例,通過調用KFS的C++ API,得到文件的stat信息(該代碼不能直接運行):

       1 usingnamespace KFS;
      2 usingnamespace KFS::tools;
      3 KfsFileStat statInfo;
      4 KfsClientPtr kfsClient = getKfsClientFactory()->SetDefaultClient(serverHost, port);
      5 if (!kfsClient) {
      6 cout <<"failed to initialize kfs client!"<< endl;
      7 exit(0);
      8 }
      9 if (verboseLogging) {
      10 KFS::MsgLogger::SetLevel(log4cpp::Priority::DEBUG);
      11 } else {
      12 KFS::MsgLogger::SetLevel(log4cpp::Priority::WARN);
      13 }
      14 if (kfsClient->Stat(kfsPath, statInfo) <0) {
      15 cout <<"KFS path: "<< kfsPath <<" is non-existent!"<< endl;
      16 exit(-1);
      17 }

      有關其他文件系統訪問接口的調用方法與上述示例類似,具體可參考kfs目錄下examples子目錄中的C++ example代碼以及Java example代碼。

      posted on 2011-08-21 11:34  大圓那些事  閱讀(5954)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 欧美精品V欧洲精品| 国产亚洲中文字幕久久网| 亚洲一区二区精品另类| 一区二区三区国产不卡| 少妇粗大进出白浆嘿嘿视频| 中文字幕色av一区二区三区| 人人妻人人添人人爽日韩欧美| 国产涩涩视频在线观看| 18禁超污无遮挡无码网址| 成人无码午夜在线观看| 亚洲av永久无码精品水牛影视| 性男女做视频观看网站| 乱人伦人妻系列| 综合激情亚洲丁香社区| 国产中文字幕在线一区| 久久综合九色综合久桃花| 动漫av网站免费观看| 韩国免费a级毛片久久| av无码小缝喷白浆在线观看| 饥渴少妇高潮正在播放| 蜜桃视频一区二区三区四| 国产麻豆md传媒视频| 蜜臀av一区二区精品字幕| 亚洲国产天堂久久综合226114| 国产片AV国语在线观看手机版| 久久精品国产一区二区三| 99在线视频免费观看| 国产视频一区二区三区四区视频| 中国熟妇牲交视频| 日本一区二区三区18岁| 欧美牲交a欧美牲交aⅴ一| 日韩AV片无码一区二区不卡| 先锋影音男人av资源| 亚洲最大中文字幕无码网站| 九九热99精品视频在线| 国产成人午夜在线视频极速观看| yyyy在线在片| 色综合久久综合香蕉色老大| 亚洲精品国偷自产在线99人热| 亚洲国产熟女一区二区三区| 日韩精品有码中文字幕|