刘爱贵的专栏

中科院博士,长期从事存储领域研发工作,分布式存储资深理论研究与实践者,GlusterFS 技术专家,当前专注于Server SAN。...

设计新Xlator扩展GlusterFS

1. GlusterFS概述 GlusterFS是一个开源的分布式文件系统,具有强大的Scale-Out横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数...

2012-07-25 20:16:18

阅读数:13175

评论数:17

关于Gluster稳定性的一个BUG

这一段时间一直在研究Gluster集群文件系统,其技术架构和大原理请参考前面的一篇文章“Gluster集群文件系统研究”。为了验证其所声称的高扩展、高可用、高性能的特点,我部署了一个较大规模的测试环境,4个I/O节点(即brick servers,DELL R

2011-07-06 15:41:55

阅读数:8979

评论数:28

网络数据同步开发库libsync

"数据同步算法研究"一文提出了一种改进的数据同步算法,我在实现的原型系统基础上,将文件切分、差异编码、文件同步等关键算法抽取出来封装成动态开发库libsync,方便自己的开发应用。在本人开发的deduputil,WSIO, wsync等软件中,均使用了libsync动态函数库,...

2010-10-18 23:30:00

阅读数:7068

评论数:13

数据相似性检测算法

本文研究了数据相似性的计算方法,对Bloom filter和LCS两种常用相似性检测算法进行剖析、实现和分析比较。

2010-09-08 10:57:00

阅读数:7399

评论数:17

SourceForge上发布dedup util

dedup util是一款开源的轻量级文件打包工具,它基于块级的重复数据删除技术,可以有效缩减数据容量,节省用户 存储空间。目前已经在Sourceforge上创建项目,并且源码正在不断更新中。https://sourceforge.net/projects/deduputil

2010-06-02 12:20:00

阅读数:10424

评论数:34

WSIO - 基于WEB服务的远程文件I/O

 WSIO - 基于WEB服务的远程文件I/O团队名称:IHEPer作者:刘爱贵 电子邮箱:liuag@ihep.ac.cn 单位:中科院高能物理研究所 计算中心 PDF下载:http://download.csdn.net/source/2143070摘要WSIO是一个基于Web Service...

2010-03-19 11:48:00

阅读数:14818

评论数:14

基于Dedup的数据打包技术

基于Dedup的数据打包技术作者简介 :刘爱贵,研究方向为网络存储、数据挖掘和分布式计算;毕业于中科院,目前从事存储软件研发工作。 Email: Aigui.Liu@gmail.com注: 作者学识和经验水平有限,如有错误或不当之处,敬请批评指正。 0、引言    Tar, winrar, win...

2010-01-09 20:39:00

阅读数:10222

评论数:18

字符串Hash函数评估

Hash查找因为其O(1)的查找性能而著称,被对查找性能要求高的应用所广泛采用。它的基本思想是:(1) 创建一个定长的线性Hash表,一般可以初始化时指定length;(2) 设计Hash函数,将关键字key散射到Hash表中。其中hash函数设计是最为关键的,均匀分布、冲突概率小全在它;(3) ...

2009-12-21 21:29:00

阅读数:18691

评论数:27

谨防define宏陷阱

最近在研究Deduplication(重复数据删除)存储技术,实现一个dedup原型系统,结果在Coding中遇到了一个莫名其妙的问题。简略代码如下:#include "dedup.h"#ifndef BLOCK_LEN#define BLOCK_LEN 32 * ...

2009-12-20 13:28:00

阅读数:2160

评论数:5

KMP算法深度解析

 摘要:KMP算法是字符串匹配的经典算法,由于其O(m+n)的时间复杂度,至今仍被广泛应用。大道至简,KMP算法非常简洁,然而,其内部却蕴含着玄妙的理论,以至许多人知其然而不知其所以然。本文旨在解开KMP算法的内部玄妙所在,希望能够有助于学习与理解。 1、KMP算法    一种改进的字符串匹配算法...

2009-08-04 22:59:00

阅读数:66437

评论数:46

输出集合所有子集的算法

算法描述:把求子集运算转换为组合问题。假设集合中包含N个元素, 子集合数 =  C(N, 0) + C(N, 1) + ... + C(N, N-1) + C(N, N),对于任一个子集合,可以用一个N元组表示,即 , 其中Si取值范围为(0, 1),0表示不该子集合不包含该元素,1表示该子集合包...

2009-06-08 20:49:00

阅读数:5355

评论数:1

动态分配二维数组

C/C++程序中经常需要使用malloc / new 来生成数组。对于一维数组,这非常简单,而二维数组,动态分配要稍微复杂一点。这里给出动态分配二维数组的两种方法。 #include #include #define X 100#define Y 100// 方法一:数组空间不连续,两次调用mal...

2009-05-09 15:54:00

阅读数:2237

评论数:9

C语言中函数参数的入栈顺序

对技术执着的人,比如说我,往往对一些问题,不仅想做到“知其然”,还想做到“知其所以然”。C语言可谓博大精深,即使我已经有多年的开发经验,可还是有许多问题不知其所以然。某天某地某人问我,C语言中函数参数的入栈顺序如何?从右至左,我随口回答。为什么是从右至左呢?我终究没有给出合理的解释。于是,只好做了...

2009-05-02 15:50:00

阅读数:6215

评论数:12

GNU C中x++是原子操作吗?

什么是原子操作? 所谓原子操作,就是"不可中断的一个或一系列操作" 。在确认一个操作是原子的情况下,多线程环境里面,我们可以避免仅仅为保护这个操作在外围加上性能开销昂贵的锁,甚至借助于原子操作,我们可以实现互斥锁。 那么,GNU C中x++是原子操作吗?请看下面一段代码:#in...

2009-05-01 11:20:00

阅读数:3507

评论数:4

Windows性能计数器

一、性能计数器概述  性能监视,是Windows NT提供的一种系统功能。Windows NT一直以来总是集成了性能监视工具,它提供有关操作系统当前运行状况的信息,针对各种对象提供了数百个性能计数器。性能对象,就是被监视的对象,典型例子有Processor、Process、Memory、TCP/U...

2009-03-30 21:03:00

阅读数:16971

评论数:5

红黑树

      红黑树(Red-Black Tree)是一种二叉查找树(Binary Search Tree),但作了改进,即在每个结点上增加一个存储位表示结点的颜色,可以是RED或BLACK。通过对任何一条从根到叶子的路径上各个结点的着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是...

2009-02-07 11:18:00

阅读数:2542

评论数:3

GNU C中的零长度数组

随手翻阅"linux内核设计与实现"一书,看到一个关于进程的结构体:struct thread_info {    struct task_struct  *task;    struct exec_domain  *exec_domain;    unsigned long ...

2009-01-01 21:36:00

阅读数:7761

评论数:12

Linux下的C/C++开发与调试工具

  Linux开发环境相当完善,且功能完整,它主要由GNU的编译器和库,以及大量的系统例程及库组成,能够支持C++、C和汇编语言程序,重点是针对C++和C语言。因为Linux的源代码主要是用C语言实现的,开发人员可以方便地获取并进行修改和重新编译,因此为Linux操作系统提供了一个强大的C语言开发...

2008-12-20 11:47:00

阅读数:3699

评论数:0

一种程序界面文字换肤方法

一种程序界面文字换肤方法Aiguille.LIU2008-11-23  对于GUI程序,界面上会呈现许多图片和文字信息。图片一般都是运行时从外部载入的,更换比较容易。然而,文字信息大多情况下都是直接写在程序代码中的。这种情况下,如果想更换文字,就需要重新编译程序,非常不方便。这里介绍一种程序界面文...

2008-11-23 20:12:00

阅读数:1289

评论数:0

函数的线程安全与可重入

函数的线程安全与可重入刘爱贵 / Aiguille.LIU线程安全的(Thread-Safe):如果一个函数在同一时刻可以被多个线程安全地调用,就称该函数是线程安全的。线程安全函数解决多个线程调用函数时访问共享资源的冲突问题。可重入(Reentrant):函数可以由多于一个线程并发使用,而不必担心...

2008-05-05 14:41:00

阅读数:2714

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭