- 博客(18)
- 资源 (48)
- 收藏
- 关注
原创 Openck_Swift源码分析——增加、删除设备时算法具体的实现过程
1 初始添加设备后、上传Object的具体流程 前几篇博客中,我们讲到环的基本原理即具体的实现过程,加入我们在初始创建Ring是执行如下几条命令:•swift-ring-builder object.builder create 5 3 1 •swift-ring-builder object.builder add z1-127.0.0.1:6010/sdb1 100
2014-05-28 20:54:19 1414 1
原创 最长公共子序列及Python实现
1 最长公共子序列问题描述一个给定序列的子序列是在该序列中删除若干元素后得到的序列,确切的说,若给定序列X = {x1,x2,...xm},则另一个序列,Y= {y1,y2...,yn},当另一个序列即是X的子序列又是Y的子序列时,称Z是序列X也Y的公共子序列。最长公共子序列问题为给定序列X和Y,找到所有公共子序列中最长的一个(非连续)。2 最长公共子序列的结构解最长公共子序列问题的最
2014-05-26 13:38:27 2866
原创 OpenStack_Swift源码分析——Ring的rebalance算法源代码详细分析
1 Command类中的rebalnace方法在上篇文章中讲解了,创建Ring已经为Ring添加设备,在添加设备后需要对Ring进行平衡,平衡swift-ring-builder object.builder rebalance首先会调用swift/cli/ringbuilder.py中方法,在main方法中首先会判读/etc/swift文件夹下是否有object.builder文
2014-05-22 16:40:20 2628
原创 OpenStack_Swift源码分析——创建Ring及添加设备源码算法详细分析
1 创建Ring 代码详细分析在OpenStack_Swift——Ring组织架构中我们详细分析了Ring的具体工作过程,下面就Ring中增加设备,删除设备,已经重新平衡的实现过程作详细的介绍。首先看RingBuilder类 def __init__(self, part_power, replicas, min_part_hours): #why 最大 2**32
2014-05-22 11:00:18 2178
原创 OpenStack_Swift源码分析——Object-auditor源码分析(2)
1 Object-aduitor审计具体分析上一篇文章中,讲解了Object-aduitor的启动,其中审计的具体执行是AuditorWorker实现的,在run_audit中实例化了AuditorWorker类,并调用audit_all_objects方法,下面看此方法的具体代码实现:def audit_all_objects(self, mode='once', device_dirs
2014-05-16 15:21:33 1398
原创 OpenStack_Swift源码分析——Object-auditor源码分析(1)
1 Object-auditor 的启动Object-auditor的启动和object-replicator的启动过程是一样的,首先是执行启动脚本swift-init object-auditor start启动脚本会运行swift源码bin目录下的if __name__ == '__main__': parser = OptionParser("%prog CONFIG
2014-05-16 00:05:54 1844
原创 OpenStack_Swift源码分析——ObjectReplicator源码分析(2)
1、Replicator执行代码详细分析上篇问中介绍了启动Replicator的具体过程,下面具体讲解Replicator的执行代码的具体实现: def replicate(self, override_devices=None, override_partitions=None): """Run a replication pass""" sel
2014-05-14 22:24:09 1712 1
原创 OpenStack_Swift源码分析——ObjectReplicator源码分析(1)
1、ObjectorReplicator的启动首先运行启动脚本swift-init object-replicator start此运行脚本的运行过程和ring运行脚本运行过程差不多,找到swift 源码bin下的swift-object-replicator其代码如下所示if __name__ == '__main__': parser = OptionParser("%pr
2014-05-14 22:10:33 1341
原创 OpenStack_Swift源码分析——Ring基本原理及一致性Hash算法
1、Ring的基本概念Ring是swfit中最重要的组件,用于记录存储对象与物理位置之间的映射关系,当用户需要对Account、Container、Object操作时,就需要查询对应的Ring文件(Account、Container、Object都有自己对应的Ring),Ring 使用Region(最近几个版本中新加入的)、Zone、Device、Partition和Replica来维护这些信
2014-05-13 18:58:50 6462 1
原创 o(n)算法求大连续字段和,并返回最大子段和中的元素
一整数数组,元素有正有负,要求编写算法求出最大字段和并返回最长这个字段和的元素;问题老生长谈了,运用动态规划算法,对于如何保存字段和的元素,我们可以记住最大字段和的开始位置以及字段和的结束位置,让后复制给一个新数组即刻,算法如下:public class MaxSum { public static int[] sum(int arr[]){ int temp =0; /
2013-09-24 15:59:33 829
原创 泛型 java 循环对了
鄙人写的一个泛型java循环队列 /** * 泛型循环队列 * * kinglion */public class Queue { final int Defaultsize=50; private T element[]; private int size; private int front; private int rear; priva
2012-04-25 14:22:45 643
原创 java 递归实现全排序
递归实现全排序 import java.util.LinkedList;import java.util.List;public class TotalSort { public static void main(String [] args){ String [] array =new String[]{"1","5","3","4"}; listAll(A
2012-04-24 10:25:26 1038
原创 腾讯武汉站一面算法题
在excel中有如下对的关系A B C ......Z AA.....AZ BA....BZ............AAA................ZZZ..............1..............26 27......52 53.....................703.................................编写函数
2012-04-23 12:49:53 3406 1
原创 词法分析 flex 应用
代码:%{#include#includevoid print(); //输出token序列;void main(int argc,char*argv[]); //主函数;struct token{ //二元组;char*idproperty;
2009-11-01 22:59:00 856
原创 linux 下各种压缩格式的解压和压缩
(所有的#不是要输入的命令,是对目录的省略,文件夹要和对应的目录相同 如 你的文件夹放在了dowload 下,就要回到dowload目录下,一般文件夹的命名不要用汉语)对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rar。可是Linux就
2009-11-01 22:57:00 622
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人