原创 OpenStack_Swift源碼分析——Ring的rebalance算法源代碼詳細分析

1 Command類中的rebalnace方法 在上篇文章中講解了,創建Ring已經爲Ring添加設備,在添加設備後需要對Ring進行平衡,平衡 swift-ring-builder object.builder rebalance 首先

原创 Openck_Swift源碼分析——增加、刪除設備時算法具體的實現過程

1 初始添加設備後、上傳Object的具體流程  前幾篇博客中,我們講到環的基本原理即具體的實現過程,加入我們在初始創建Ring是執行如下幾條命令: •swift-ring-builder object.builder create

原创 OpenStack_Swift源碼分析——ObjectReplicator源碼分析(1)

1、ObjectorReplicator的啓動 首先運行啓動腳本 swift-init object-replicator start此運行腳本的運行過程和ring運行腳本運行過程差不多,找到swift 源碼bin下的swift-obj

原创 最長公共子序列變種——帶權的最長公共子序列

1 問題描述 在最長公共子序列及Python實現點擊打開鏈接中講到了最長公共子序列問題描述及實現過程。現在如果在求最長公共子序列的基礎上,對每一個字符加上權重,如有兩個序列a={'a','b','c','d','e'},b={'a','d

原创 OpenStack_Swift源碼分析——創建Ring及添加設備源碼算法詳細分析

1 創建Ring 代碼詳細分析 在OpenStack_Swift——Ring組織架構中我們詳細分析了Ring的具體工作過程,下面就Ring中增加設備,刪除設備,已經重新平衡的實現過程作詳細的介紹。 首先看RingBuilder類

原创 泛型 java 循環對了

鄙人寫的一個泛型java循環隊列   /**  * 泛型循環隊列  *  * kinglion  */ public class Queue<T> {  final int Defaultsize=50;  private  T elem

原创 OpenStack_Swift源碼分析——Ring基本原理及一致性Hash算法

1、Ring的基本概念 Ring是swfit中最重要的組件,用於記錄存儲對象與物理位置之間的映射關係,當用戶需要對Account、Container、Object操作時,就需要查詢對應的Ring文件(Account、Container、O

原创 OpenStack_Swift源碼分析——Object-auditor源碼分析(1)

1 Object-auditor 的啓動 Object-auditor的啓動和object-replicator的啓動過程是一樣的,首先是執行啓動腳本 swift-init object-auditor start啓動腳本會運行swif

原创 OpenStack_Swift源碼分析——Object-auditor源碼分析(2)

1 Object-aduitor審計具體分析 上一篇文章中,講解了Object-aduitor的啓動,其中審計的具體執行是AuditorWorker實現的,在run_audit中實例化了AuditorWorker類,並調用audit_al

原创 OpenStack_Swift源碼分析——ObjectReplicator源碼分析(2)

1、Replicator執行代碼詳細分析 上篇問中介紹了啓動Replicator的具體過程,下面講解Replicator的執行代碼的具體實現,首先看replicate方法: def replicate(self, override_de

原创 OpenStack_Swift源碼分析——Ring代碼的組織架構

1、從部署文件看Ring 在OpenStaci_Swfit源碼分析-單機部署swift中詳細介紹了swift 部署以及API的基本使用,其中在remakerings中介紹了設備的添加以及Ring文件的創建,首先看其具體的部署 #!/

原创 java 遞歸實現全排序

遞歸實現全排序   import java.util.LinkedList; import java.util.List; public class TotalSort {  public static void main(String

原创 linux 下各種壓縮格式的解壓和壓縮

 (所有的#不是要輸入的命令,是對目錄的省略,文件夾要和對應的目錄相同 如 你的文件夾放在了dowload 下,就要回到dowload目錄下,一般文件夾的命名不要用漢語) 對於剛剛接觸Linux的人來說,一定會給Linux下一大堆各式各樣

原创 詞法分析 flex 應用

 代碼: %{ #include<stdio.h> #include<stdlib.h> void print();                            //輸出token序列; void main(int argc,c

原创 最長公共子序列及Python實現

1 最長公共子序列問題描述 一個給定序列的子序列是在該序列中刪除若干元素後得到的序列,確切的說,若給定序列X = {x1,x2,...xm},則另一個序列,Y= {y1,y2...,yn},當另一個序列即是X的子序列又是Y的子序列時,稱Z