自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘爱贵的专栏

中科院博士,长期从事存储领域研发工作,分布式存储资深理论研究与实践者,GlusterFS 技术专家,专注软件定义存储,聚焦智能存储、国产自主可控存储和EB级存储方向。。

  • 博客(199)
  • 资源 (21)
  • 收藏
  • 关注

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

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

2008-11-23 20:12:00 1548

原创 hacker & copyleft

自由软件运动的开山鼻祖Richard Stallman认为:1、所有人都对编程着迷,并且在生活的其他方面,我们也愿意展示自己的才华。我们称自己叫“hacker”。2、自由软件使用对称版权copyleft,赋予了用户四个方面的自由度:  0. 运行软件的自由。  1. 学习源代码,修改源代码的自由。  2. 再次分发程序的自由。  3. 分发经自己修改的版本的自由。    发现自己对编程很着迷,也

2008-06-01 15:33:00 1346

原创 四大搜索引擎对比

四大搜索引擎对比 公司/项数/搜索引擎 google yahoo baidu microsoft google 2,300,000,0

2008-05-08 17:35:00 3828

原创 函数的线程安全与可重入

函数的线程安全与可重入刘爱贵 / Aiguille.LIU线程安全的(Thread-Safe):如果一个函数在同一时刻可以被多个线程安全地调用,就称该函数是线程安全的。线程安全函数解决多个线程调用函数时访问共享资源的冲突问题。可重入(Reentrant):函数可以由多于一个线程并发使用,而不必担心数据错误。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入性解决函数运行结果的

2008-05-05 14:41:00 2968

原创 API函数库的构造与编程应用

API函数库的构造与编程应用(刘爱贵 - Aiguille.LIU)  函数库是一组执行特定功能操作的函数集合,可以独立提供给第三方进行程序开发,通常又称为API(Application Programming Interface),即应用程序编程接口。Linux下,函数库一般有两种形式:静态函数库和动态函数库。应用函数库进行编程时,如果使用静态函数库,则需要将其链接进应用程序中;而使用动态共

2008-04-27 18:02:00 2088 2

原创 九重天(Nine steps to heaven)

九重天(Nine steps to heaven)(刘爱贵 - Aiguille.LIU)偶然翻阅书籍,发现里面记录了一个"Nine steps to heaven"的东西,细细品味觉得很有味道,还颇有哲理。Nine steps to heaven (九重天):1) Physical Health (身体健康)2) Psychologyical Health (心理健康)3) IQ (智商

2008-04-16 08:46:00 1583 3

原创 你是狮子还是瞪羚?

在非洲,瞪羚每天早上醒来时,它知道自己必须跑得比最快的狮子还快,否则就会被吃掉。狮子每天早上醒来时,它知道自己必须超过跑得最慢的瞪羚,否则它就会被饿死。不管你是狮子还是瞪羚,当太阳升起时,你最好开始奔跑。

2008-04-15 09:00:00 2829

原创 散列表设计

散列表设计(刘爱贵 - Aiguille.LIU)1、基本概念  散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。2、常用的构造散列函数的方法  散列函数能使对一个数据序列的访问过程更加迅速有效,通过散列函数,数

2008-04-14 13:09:00 5668 6

原创 C程序中的存储分配

C程序中的存储分配(刘爱贵 - Aiguille.LIU)  C程序设计中,经常需要使用malloc/free动态管理内存,在需要的时候向操作系统申请空间,适合的时候释放不再使用的空间。那么,C库中malloc/free是如何实现的呢?参考"The C Programming Language",我们设计了自己的存储分配程序。  由于程序中某些地方可能不通过malloc调用申请空间,因此,ma

2008-04-12 17:55:00 3112 4

原创 C存储类型和类型限定符

C存储类型和类型限定符(刘爱贵 - Aiguille.LIU)  C存储类分为两类:自动存储类(automatic)和静态存储类(static)。声明对象时使用的存储类说明符以及声明的上下文共同决定了对象的存储类。    自动存储类对象对于一个程序块来说是局部的,在退出程序块时该对象将消失。    (1) 如果没有使用存储类说明符,或者如果使用了auto限定符,则程序块中的声明生成的都是自动存

2008-04-11 20:22:00 4856 1

原创 C语言复杂声明的解析

C语言复杂声明的解析(刘爱贵 Aiguille.LIU)  C语言是一种通用的程序设计语言,它与UNIX系统之间具有非常密切的联系,C语言是在UNIX系统上开发的,并且,无论是UNIX系统本身还是运行其上的大部分程序,都是用C语言编写编写的。C语言很适合用来编写编译器和操作系统以及各种系统底层软件,因此被称为“系统编程语言”,但它同样适合于编写不同领域中的大多数程序。  C语言中,指针的使用非常广

2008-04-10 18:13:00 3630 3

原创 奥运水立方

第一次去看2008奥运“鸟巢”和“水立方”,夜色中的水立方风景别样,可惜鸟巢没有开灯,下次再去。 

2008-04-07 23:20:00 4262

原创 Linux下C程序命令行参数处理

       Linux下开发C程序,甚至是GUI程序,都可能需要处理复杂的命令行参数。健全、可靠的复杂命令行参数处理机制,可使程序方便使用,也更显专业。Linux下几乎所有的命令都提供了参数处理机制,包括短选项和长选项。  POSIX标准中对程序名、参数作了如下相关约定:    * 程序名不宜少于2个字符且不多于9个字符;    * 程序名应只包含小写字母和阿拉伯数字;    * 选项名应该是单

2008-04-05 11:34:00 9643 2

原创 Linux文件系统链接

Linux文件系统链接有两种:硬链接和符号链接,可以使用ln命令建立,默认情况下产生硬链接。ln命令具体使用可以参考man手册。  硬连接直接指向文件的i节点(Index node)。Linux中,任何一个文件可以有多个目录项指向其i节点。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的

2008-04-03 13:15:00 1864

原创 数学之美

计算机技术不断影响着人们的生活方式,使人们的生活应得越来越美好,而数学在计算机技术的发展中起着非常重要的作用。在Google黑板报中的数学之美系列中,我们更能感受到数学的博大精深和美。我把这些文章收集于此,于大家共同分享!^-^数学之美 系列一 -- 统计语言模型数学之美 系列二 -- 谈谈中文分词数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用数学之美系列 四 --

2008-04-01 21:57:00 1985

原创 程序员心目中的编程高手

[ 以下文字和图片资料来自互联网 ]"Bill Joy MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder, and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。这些名字在真正的程序员眼中,一个一个都是如雷贯耳的。作为一名从事计算机行业的人,即使不写程序,你也应该知道他们。如果你是程序员,则更应该了解他们,因为他们让我

2008-03-31 13:58:00 2896 4

原创 用GNU/LINUX工作 - 常用软件

.Shell : bash, csh, ksh.文本编辑器 : vim, emacs, OpenOffice.程序开发 : gcc, make, ld, perl, tcl/tk/wish, j2sdk, php, Gtk/Qt ....论文、幻灯片 : LaTeX, ConTeXt.绘图 : MetaPost, xfig, dia.图像处理 : ImageMagick, Gimp.图像浏览 :

2008-03-30 22:03:00 2411

原创 KISS-UNIX/LINUX哲学思想

  摘录自"UNIX程序设计的艺术"一书KEEP IT SIMPLE, STUPID!  编写只做一件事情,并且要做好的程序;编写可以在一起工作的程序,编写处理文本流的程序,因为这是通用的接口。这就是UNIX哲学.所有的哲学真正的浓缩为一个铁一样的定律,高明的工程师的神圣的“KISS 原则”无处不在。大部分隐式的UNIX哲学不是这些前辈所说的,而是他们所做的和UNIX自身建立的例子

2008-03-30 21:55:00 3415 1

原创 TRIE树

一个能够实现查找元素、增加元素和删除元素三种操作的数据结构称为字典。TRIE树,又称键树,可以用来构造字典,适合所有元素都是由字母和数字标记的情形。下面是TRIE树的一种C++实现:#include #include #include using namespace std;const int num_chars = 26;class Trie {  protected:    str

2008-03-29 13:46:00 2526 3

原创 二叉排序树

二叉排序树(Binary Sort Tree)中,任意结点x,其左子树所有结点的值不大于key[x] ,其右子树的所有结点值不小于key[x]。BST中的操作SEARCH、MINIMUM、MAXIMUM、SUCCESSOR、 PREDECCESSOR、INSERT、DELETE都可以在O(h)内完成,h为树的高度。BST可以用作字典,也可以用作优先队列。BST的C语言实现和操作实例如下:#

2008-03-29 13:45:00 1913

原创 一种五子棋算法

学习算法分析设计时练手所写的,主要是自娱。算法采用极大极小剪枝博弈算法,人工智能还凑和,但BUG多多,有时间再改改。设计主要包括:数据结构、估值函数、胜负判断、搜索算法VC实现:http://goc.ac.cn/liuag/html/software_fivechess.html1、数据结构//记录每步棋,可以建立链表用来进行悔棋、后退(本程序没有实现)struct Step{

2008-03-29 13:39:00 16466 7

原创 背包问题优先队列分枝限界算法

这个大概是算法课上的作业题。所谓的背包问题,可以描述如下:一个小偷打劫一个保险箱,发现柜子里有N类不同大小与价值的物品,但小偷只有一个容积为M的背包来装东西,背包问题就是要找出一个小偷选择所偷物品的组合,以使偷走的物品总价值最大。这个问题的求解有很多种方法,本程序使用分枝限界法求解。/*  Copyright (c) 2006, 刘爱贵, [email protected], C

2008-03-29 13:35:00 3536

原创 中缀和后缀表达式求值算法

表达式求值是程序设计语言编译中的一个最基本问题,它的实现是堆栈应用的一个重要例子。程序中使用常用、直观的“算符优先法”实现。/* Copyright (c) 2006, 刘爱贵,  [email protected], Computing Center of IHEP, Beijing, China */#include "stdafx.h"#include "iostream.h"

2008-03-29 13:32:00 2491

原创 N皇后问题求解算法

大学时C++程序设计课程的作业题目。呵呵!N皇后问题(含八皇后问题的扩展,规则同八皇后):在N*N的棋盘上,放置N个皇后,要求每一横行每一列,每一对角线上均只能放置一个皇后,求解可能的方案及方案数。下面程序利用堆栈数据结构,使用回溯法求出所有可行解。/* Copyright (c) 2006, Computing Center of IHEP, Beijing, China Aigui

2008-03-29 13:29:00 3448 3

原创 Client免输密码登录SSH Server的一种方法

我们经常要在自己工作的UNIX/LINUX系统间SSH登录,SCP传输数据,总是要输入密码,很烦是吧?SSH支持多种登录验证方式,默认使用的是键盘交互方式(Keyboard-Interactive),也就是手工输入密码的那种。而在实际应用中,有时需要免输密码直接登录SSH SERVER,如MPI作业需要在WNs间使用SCP传输数据(非交互方式)。这就需要使用公钥(Public Key)验证方式,并

2008-03-28 15:03:00 2245

转载 开发人员行走Unix的随身四艺

开发人员行走Unix的随身四艺 作者:江南白衣,原文出处: h

2008-03-28 14:58:00 2300

原创 个人所得税计算

VC实现的小工具:http://goc.ac.cn/liuag/html/software_calculatorx.html计算公式很简单,程序一看就明白。PS:那时个税起征点是1600,现在都2000了,^-^//根据税前工资和个税起征点计算所得税double calculateTax(double presalary, double base){   double tax;   d

2008-03-28 14:52:00 2277

原创 递归算法

   递归是设计和描述算法的一种有力的工具,它在复杂算法的描述中被经常采用。采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地,当规模N=1时,能直接得解。(引自:http://blog.chi

2008-03-27 14:37:00 1598 1

原创 常用排序算法及C例程

  排序(Sorting)是计算机程序设计中的一个重要而且常用的操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。下面介绍最为常用的几种排序算法,并进行简单地比较分析以及C语言例程。这些C例程都是笔者在学习和工作中慢慢积累起来的,应该说还是有些用处的。(刘爱贵 / Aiguille.LIU)1、快速排序算法  快速排序是目前公认的最好排序算法,是一种基于分治技术的重要

2008-03-27 13:10:00 2135

原创 几个小算法

介绍几个小算法:数制转换、数据交换、最大公约数、N次方快速算法、KMP算法。这几个算法在相关数据结构和算法书上都有介绍,这里给出C语言实现例子,供大家参考。(刘爱贵 / Aiguille.LIU)1、数制转换算法十进制数N转换为d进制数,根据公式 N = (N div d) * d + N mod d实现 ,堆栈的典型应用。C语言实现如下:#include "./stack.h"#incl

2008-03-27 13:05:00 1625 1

原创 数值交换算法

三种方法:(1)使用临时变量 (2)不使用中间变量,仅使用加法运算 (3)不使用中间变量,使用异或XOR操作#include template void swap_var(T &a, T &b){  T tmp;  tmp = a;  a = b;  b = tmp;}template void swap_add(T &a, T &b){  a = a - b;  b = a + b;

2008-03-26 20:49:00 2456 4

原创 文件访问预测

注:“文件访问预测”是我论文的研究工作中的一部分。    处理器与I/O存在速度鸿沟、网络带宽的限制(特别是无线移动网络)、网络应用的断连操作(如移动计算、AFS)等原因,造成了数据访问的延迟,IO和网络成为了制约性能的瓶颈。  为了解决这个问题,通常采用缓存(Cache)和预取(Pre-fetch)技术。缓存技术利用数据访问的时间局部性,对访问过的数据进行暂时的保留。但由于缓

2008-03-25 21:21:00 2360 7

原创 数据聚类概述

[引言]我调研数据聚类的目的是想基于聚类对文件访问模式进行预测。许多系统把数据访问请求当作是独立的事件。实际上,数据请求并非完全随机,而是由用户或程序的行为驱动的,存在特定的访问模式。同类用户或多或少具有相同的访问模式,同类文件被同时访问的可能性相对比较大,同一个工作集 (可以看作一个类)内的文件往往在一个事务中都被访问。因此,需要根据有文件历史访问信息,对用户或文件等进行聚类,在此基础上对未来访

2008-03-25 21:14:00 3745

原创 如何提高自己的创造力?

创新(Innovation)、技术创新(Technology Innovation),已经成了人们耳熟能详的词汇,进入了每个普通人的生活。我在网络上查阅了一下,创新大致可以定义如下:(1)“创新”一词在汉语中早已有之,然而,近年来,“创新”一词的广泛流行是由经济学中引入“创新”的概念而引发的。 (2)在英文中,这个创新Innovation,它这个词起源于拉丁语。它原意有三层含义,一个,更新。第二,

2008-03-25 13:03:00 4158 2

原创 读我(Readme)

关于我:刘爱贵(Aiguille Liu),更多信息http://goc.ac.cn/liuag/readme.htmlGoogle Page: http://aigui.liu.googlepages.com Homepage: http://www.goc.ac.cn/liuag SOHU Blog: http://www.liuag.cn MSN: liuag@hotmail

2008-03-22 23:53:00 1989

原创 计算机三大理论基石

“如果从事计算机的人都站在一座坟墓前,那么这座坟墓就是图灵机;如果有勇气掘开坟墓,那么有口棺材,就是递归论;里面还有一具骷髅,则是能行性”。这是计算机体系结构课上老师说的,可惜自己计算机理论学的不好。这段话是我翻阅以前的课堂笔记找出来,觉得很精彩。 

2008-03-22 23:42:00 3918 4

原创 集群并行文件系统Lustre部署

liuben Normal liuben 2 180 2006-10-11T09:07:00Z 2006-10-11T09:07:00Z 4 1320 3566 cc-ihep 142 104 9245 9.2812 7.8 磅 0 2

2008-03-21 23:57:00 6592

原创 LINUX Daemon程序设计

liuben liuben 2 49 2006-11-02T07:02:00Z 2006-11-02T07:02:00Z 5 550 3138 cc-ihep 26 6 3853 9.2812 7.8 磅 0 2

2008-03-21 23:56:00 8803 3

原创 计算机软件的四种人才

现代社会分工愈来愈细,计算机软件业亦如此。在我看来,计算机软件大致可以分为以下四类人才:1、技术类:这类人才非常基础,但地位非常重要。他们对系统、编程工具非常熟悉,且具有很强的程序设计能力。通常这类人才很多,但真正合格的为数不多,尤其是大师级的人物更是少见。国内由于传统观念,这类优秀人才更少之又少。2、算法类:这类人才具扎实的数学功底,熟悉数据结构和算法,解决实际问题的数学模型和具体实现方

2008-03-21 23:19:00 3197 4

新一代全闪SDS存储系统技术架构

高性能硬件的快速发展,诸如多核 CPU 、高带网络、高性能 SSD以及各种智能芯片,为新一代性能型全闪 SDS 提供了发展机遇,裸金属云存储应运而生。全闪 SDS 基于全用户态设计(kernel bypass)、polling 模型、专核调度策略、端到端 NVMf 协议,极致发挥裸金属物理性能,实现百微秒级低延迟下的千万级 IOPS 超高性能。新一代性能型全闪 SDS ,为核心业务系统中 SDS 替换传统存储提供了极好的驱动力,为新兴应用提供了极佳的存储基础设施。

2020-12-11

TaoCloud FASS 技术白皮书 v1.9.pdf

新一代性能型全闪SDS,本白皮书在全闪存技术发展、产品体系、技术优势等的基础上,从全闪设计哲学、原理架构、XPE加速引擎、定位与对比等方面详细介绍了FASS全闪存储系统,同时完善了TaoCloud块存储线。

2020-04-19

分布式存储架构实践-2015.12.12

开源分布式存储简评以及分布式存储架构的一些实践

2015-12-12

GlusterFS分布式文件系统

重点内容包括GlusterFS简介,系统原理剖析,典型应用场景和开放问题讨论。

2015-09-22

闪存技术与应用方法-刘爱贵

闪存作为一种革新性的存储技术,由于其超高的性能和成本的不断下降,闪存已经成为数据中心不可或缺的技术元素。闪存有自身鲜明的特点,只有深入地理解其内在的原理和特性,方能更好地使用闪存技术。大数据是闪存最佳应用领域之一,从不同的角度挖掘和探索极有价值的应用方法。

2015-09-22

L101-5 GlusterFS系统原理剖析

GlusterFS架构特点,GlusterFS核心工作原理,GlusterFS典型功能剖析。

2014-01-07

GlusterFS 101培训课程

GlusterFS 101培训主要针对企业内训,同时面向IT主管、运维人员、测试人员、研发人员以及售前售后人员,提供GlusterFS相关基本原理、系统运维、软件测试、研发定制、解决方案等培训内容。

2013-12-02

分布式文件系统

分布式文件系统概述,内容涉及发展历史、系统架构、共享语义、共享锁、访问接口、元数据服务模型、数据分布模式、系统扩展性、系统可用性、cache一致性和典型案例。

2012-05-30

关于职业发展的一点思考

分享关于职业发展的一些思考:方向比努力重要,如何少走点弯路,影响成败的一些因素。

2011-11-05

Linux File Sytem

剖析几种Linux文件系统的原理与机制,并介绍了文件系统测试与性能调优方法

2010-10-09

RAID 技术发展综述

现代企业信息化水平不断提高,数据已经取代计算成为了信息计算的中心。这促使对存储技术的需求越来越高,包括存储容量、 I/O 性能、数据安全性、可扩展性等诸多方面, RAID 应运而生。本文对 RAID 技术的概念特征、基本原理、关键技术、各种等级和发展现状进行了全面的阐述,并为用户如何进行应用选择提供了基本原则。

2009-09-22

快照(Snapshot)技术发展综述

传统数据备份技术存在备份窗口、恢复时间目标RTO和恢复时间点RPO过长的问题,无法满足企业关键性业务的数据保护需求,因此产生了数据快照技术。本文对快照技术的概念、特点、实现技术和发展现状进行了概括性阐述,并对其未来的发展进行了展望。

2009-08-28

Web服务

Web服务概述以及中间技术,并介绍了自己的一个应用实例。

2008-03-28

XML基础及解析技术

内容包括XML概述、基本语法、描述数据、显示,以及如何解析。

2008-03-28

P2P原理与技术

PPT内容包括P2P概述,分类,构件与算法,关键技术特性,P2P分析与比较,研究与未来。

2008-03-28

Introduction to DHT

Introduction to Distributed Hash Tables<br>Eric Rescorla<br>Network Resonance<br>[email protected]

2008-03-28

用GNU/Linux工作

Linux新手入门指南,介绍选择Linux的理由、Linux的哲学思想、学习LINUX的方法以及Linux下常用软件。

2008-03-27

数据挖掘技术及其应用现状

数据挖掘入门教程,介绍数据挖掘技术及其应用现状。

2008-03-27

数据挖掘教程

数据挖掘就是从大量的数据中挖掘出有用的信息。它是根据人<br>们的特定要求,从浩如烟海的数据中找出所需的信息来,供人们的特定需求使用。这个可以作为数据挖掘的入门教程。

2008-03-27

Survey of Clustering Algorithms

这篇文章是聚类算法的综述,几乎涵盖了各个领域的聚类算法,从各种方向上来谈论聚类算法(层次,划分,大数据集,图形,文本聚类,模糊聚类等),以及聚类的相关问题(如何计算距离, 如何确定聚类个数,如何对聚类结果进行评价等)。

2008-03-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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