- 博客(20)
- 资源 (3)
- 收藏
- 关注
原创 TFS文件系统策略分析
TFS文件系统策略分析 首先我们来看一下TFS分布式文件系统的特点介绍: 1.完全扁平化的数据组织结构,抛弃了传统文件系统的目录结构。2.在块设备基础上建立自有的文件系统,减少EXT3等文件系统数据碎片带来的性能损耗3.单进程管理单块磁盘的方式,摒除RAID5机制4.带有HA机制的中央控制节点,在安全稳定和性能复杂度之间取得平衡。5.尽量缩减元数据大小,将元数据全部加载入内存,提升访问速度。6.跨机架和IDC的负载均衡和冗余安全策略。7.完全平滑扩容“源码之前,了无秘密”,了解TFS的最好方法是阅读
2011-01-07 22:22:00
4290
2
原创 TFS文件系统写文件分析
TFS文件系统写入文件分析对TFS文件系统的写入文件的关键代码做下分析.(1).写文件消息包函数int DataManagement::write_data(const WriteDataInfo& write_info, const int32_t lease_id, int32_t& version, constchar* data_buffer, UpdateBlockType& repair) { TBSYS_LOG(DEBUG,
2010-12-29 21:41:00
3827
1
原创 TFS文件系统数据服务器启动加载分析
TFS文件系统数据服务器启动加载分析 TFS文件系统的数据服务器在启动时会有加载超级块,加载文件块的操作,可以对照代码,做下分析. (1).启动加载int BlockFileManager::bootstrap(const SysParam::FileSystemParam& fs_param) { //装载超级块 int ret = load_super_blk(fs_param); if (TFS_SUCCESS !
2010-12-29 21:38:00
2878
原创 TFS文件系统格式化分析
<br />TFS文件系统格式化分析<br /> TFS文件系统数据服务器 DataServer在使用之前,需要先对文件系统进行格式化,可以对相关的代码进行一下分析.<br /> (1).格式化文件系统<br />//格式化文件系统<br />int BlockFileManager::format_block_file_system(const SysParam::FileSystemParam& fs_param)<br /> {<br /> int ret
2010-12-29 21:35:00
3326
原创 TFS数据块同步推送分析
<br /> 看了TFS文件系统的代码,描述一下TFS的写文件时数据块复制的处理过程:<br /> 客户端接口函数:<br />//写文件操作组包的方法:写文件时的协议的方法是会发送多个独立的消息包过去<br /> int TfsFile::tfs_write(char *data, const int32_t len)<br /> {<br /> if (is_open_flag_ == TFS_FILE_OPEN_FLAG_NO)<br /> {<br />
2010-12-16 22:04:00
3024
原创 FastDFS源码阅读笔记(三)
<br /> 然后在是跟踪服务器tacker部分:<br /> (五).fast_queue_queue.c<br />staticstruct fast_task_queue g_free_queue;<br /> <br />staticstruct fast_task_info *g_mpool = NULL;<br /> <br />int task_queue_init(struct fast_task_queue *pQueue)<br />{<br /> int result;<br
2010-11-17 20:55:00
5171
1
原创 FastDFS源码阅读笔记(二)
<br />(三).storage_service.c<br />//上传文件完成后的回调函数<br />staticvoid storage_upload_file_done_callback(struct fast_task_info *pTask,constint err_no)<br />{<br /> StorageClientInfo *pClientInfo;<br /> StorageFileContext *pFileContext;<br /> TrackerHeade
2010-11-17 20:42:00
5785
原创 FastDFS源码阅读笔记(一)
<br />FastDFS是fishman大牛做的分布式文件系统,并且将项目源码进行了开源,小弟抱着学习的态度,学习了源码,并且将自己关心的比如上传文件,下载文件,文件的数据同步在看的途中做了下学习笔记.<br /> 首先是数据服务器storage部分.<br />(一).storage_nio.c<br />//对于超时的处理:删除文件列表,释放任务到队列里面<br />void task_finish_clean_up(struct fast_task_info *pTask)<br />{<br
2010-11-17 20:35:00
9303
3
原创 memcache中内存管理源码剖析
<br /> memcahce采用了内存页面,内存页面上的内存块技术实现了内存管理器,对item的指针采用了hashtable的方法,通过item的key值实现快速定位查找item指针的方法,这里详细剖析一下实现的关键代码.<br /> 首先是内存管理,在Slabs.c代码中实现.<br /> (1).void slabs_init()<br />void slabs_init(const size_t limit, const double factor, const bool preallo
2010-08-13 09:09:00
3305
1
原创 Clucene索引合并剖析
<br /> Clucene在IndexWriter::addDocument中对每个加入的文档,就得到新的段名,生成一个新的段信息,segmentInfos数组信息里面加入这个新段信息,当达到合并阀值时触发段的合并操作<br /> (1).void IndexWriter::maybeMergeSegments()方法<br />//检查是否合并段<br />void IndexWriter::maybeMergeSegments()<br />{<br /> //初次建立时每个段就会有一个文档
2010-07-19 08:41:00
2098
原创 Clucene索引建立剖析
<br /> 下面,我们将结合代码,对Clucene建立索引的过程进行剖析.<br /> (一). main函数中调用建立索引的过程<br />(1).void IndexFiles()方法:<br />//参数:索引文件路径,索引后的目标路径<br />void IndexFiles(char* path, char* target, constbool clearIndex)<br />{<br /> IndexWriter* writer = NULL;<br /> lucene::a
2010-07-19 08:39:00
5056
原创 Clucene构建索引的辅助工具类剖析
<br /> 下面,我们将对Clucene构建索引的辅助工具类进行剖析,并且对关键代码进行介绍.<br /> 一.首先,我们来看一看,辅助工具类图,清楚一下这几个类的关系:<br /> (1).类图1描述了基类Directory, 文件目录类FSDirectory,内存文件目录类RAMDirectory<br /> 类之间的关系图<br /> <br /> (2).类图2描述了索引读入工具类IndexInput, 索引缓冲读入工具类Buffere
2010-07-05 15:22:00
1520
原创 CLucene阅读笔记
阅读了开源的搜索引擎Lucene的c++版本,这里将笔记比较粗的列举一下,详细的剖析过程,会逐步的整理贴上来. 处理输入: (1).streambase.h template class StreamBase {}; (2).inputstreambuffer.h template class InputStreamBuffer {}; (3).bufferedstream.h template class B
2010-06-29 18:28:00
2193
原创 编译原理及实践教材TINY编译器代码解析
<br /> 编译原理及实践教材附带了TINY编译器,在这里对这个小型编译器的代码,做一下简单的解析.<br /> TINY编译器的词法分析Lex源程序是:<br />%{<br />#include "globals.h"<br />#include "util.h"<br />#include "scan.h"<br />/* lexeme of identifier or reserved word */<br />char tokenString[MAXTOKENLEN+1];<br />
2010-06-28 09:30:00
5059
1
原创 c++设计模式之备忘录模式
最近在看王翔老师写的 设计模式基于c#的工程化实现,比较惊讶于c#的语法表达能力,对书中的备忘录模式,用c++进行改写. ============================================================== MemoByStack.hpp /*抽象状态类型的接口*/ class State{ public
2009-04-23 09:20:00
866
原创 c++改写李维面向对象实践指南
以前出过李维老师的一本书,>,我先后使用c++,java语言改写了一遍,这里列出c++改写的主要的类:======================================================================TPFMTask:class TPFMTask{ protected: TPFMSchedule *pFSchedule;
2009-04-15 11:05:00
995
原创 C++实现的ORM映射工具类介绍(三)
================================================================DBMapping类:class DBMapping{private: map *pTableMap; void delTabPtrFromMap(map *pMap);public: DBMapping(); ~DBMapping(); void addTabl
2009-04-15 10:38:00
1375
1
原创 C++实现的ORM映射工具类介绍(二)
================================================================/*数据库连接对象*/class Connection{private: string driver; void *pConn;public: Connection(); ~Connection(); void * getConnecti
2009-04-15 10:32:00
1323
原创 C++实现的ORM映射工具主要类介绍(一)
/*基类:*/template class OrmDBBase{public: virtual int save(T t)=0; virtual int update(T t)=0; virtual int del(T t)=0; virtual list selList(string selSql)=0; }; =============================
2009-04-15 10:24:00
1945
原创 C++实现的ORM映射工具
1 OrmDao简介1.1. 对象关系-映射简介对像和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,数据库中表现为关系数据, 内存中的对象之间存在关联和继承关系, 而在数据库中,关系数据无法直接表达多对多关联和继承关系, 因此,对象-关系映射(ORM)系统一般以中间件的形式存在, 主要实现程序对象到关系数据库数据的映射.在开发关系数据库的系统时,
2009-04-15 09:48:00
3791
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人