原创 nfs-ganesha的mdcache源碼分析----mdcache_readdir流程

2 mdcache_readdir       在2.5.0之後的版本中,加入了readdir chunk,可以不完全將目錄存入cache中,默認每個chunk存128個條目(可以通過Dir_Chunk設置),整個系統chunk的水線爲1

原创 內存映射mmap

一直都對內存映射文件這個概念很模糊,不知道它和虛擬內存有什麼區別,而且映射這個詞也很讓人迷茫,今天終於搞清楚了。。。下面,我先解釋一下我對映射這個詞的理解,再區分一下幾個容易混淆的概念,之後,什麼是內存映射就很明朗了。 原理:首先,“映射

原创 nfs-ganesha的mdcache源碼分析----mdcache_lookup流程

        項目中使用了ganesha-nfs,之前使用了nfs-ganesha的2.3.3版本, 但是貌似cache中出現了一些問題,而2.4以後的版本重構了inode cache模塊,導致只能自己分析源碼,解決部分bug(其實大部

原创 malloc的brk和mmap

先放一張虛擬地址空間分佈圖(圖截至深入理解計算機系統第三版):    malloc的分配內存有兩個系統調用,一個brk,一個mmap,brk是將.data的最高地址指針_edata往高地址走,mmap則是在進程的虛擬地址空間(在堆和棧之間

原创 phxpaxos 狀態機

引用的話:        狀態機這個名詞大家都不陌生,一個狀態機必然涉及到一個狀態轉移,而Paxos的每個實例,就是狀態轉移的輸入,由於每臺機器的實例編號都是連續有序增長的,而每個實例確定的值是一樣的,那麼可以保證的是,各臺機器的狀態機輸

原创 白話解析:一致性哈希算法 consistent hashing

  在瞭解一致性哈希算法之前,最好先了解一下緩存中的一個應用場景,瞭解了這個應用場景之後,再來理解一致性哈希算法,就容易多了,也更能體現出一致性哈希算法的優點,那麼,我們先來描述一下這個經典的分佈式緩存的應用場景。一、場景描述  假設,我

原创 phxpaxos的Proposer和Acceptor的流程

    在paxos算法中,主要包含了三個角色,proposer、accepter和learner。learner在paxos算法的論文中提及不是很詳細,但是在phxpaxos實現是最爲複雜的,之後獨立一篇文章分析。    在微信的文檔中

原创 ganesha 2.3.3 遇到的問題記錄

項目中在使用ganesha2.3.3版本中,遇到一個棘手的問題。    我們是自己實現的一個分佈式文件系統,對接的ganesha-nfs的2.3.3的接口。有一個應用場景是將目錄通過nfs掛載給vmware,以建立虛擬機使用。最近在測試強