2013年11月17日
摘要: start from init_mlt_rwlock();1.初始化mlt表的读写锁。函数体调pthread_rwlock_init(&mlt.mlt_lock,NULL)该函数为C库提供.初始化该锁之后,后面可以加互斥锁修改mlt表的值。2.初始化互斥锁Priorty_lock,调用pthread_mutex_init(&Priorty_lock,NULL)使rpc线程优先于main函数的thread。3调用init_migrate_ls()函数,初试化migrate表,将Migrate_ls.state置为1(修改的时候加上互斥锁)4 设置conf_path的值为”/etc 阅读全文
posted @ 2013-11-17 16:25 ″ Jerry。 阅读(292) 评论(0) 推荐(0) 编辑
  2013年11月16日
摘要: 首先,编写mdsadd.x文件,使用rpcgen -M mdsadd.x生成mdsadd.h mdsadd_clnt.c mdsadd_svc.c mdsadd_xdr.c分别是一些用到的头文件及远程函数的定义、客户端存根、服务器端存根、远程数据转换。具体的一些代码功能参见文章 rpc生成文件解读,link address:http://www.cnblogs.com/xindufresne/p/3425554.html程序员自己编写的客户端和服务器端的代码,这个是一定需要搞清楚的。实际上,客户端调用某个过程(实际上是每个program里面会含有几个不等的过程)是使用,自己在.x文件里面生命的 阅读全文
posted @ 2013-11-16 16:40 ″ Jerry。 阅读(337) 评论(0) 推荐(0) 编辑
  2013年11月15日
摘要: 该文件是RPCGEN生成的服务器端的存根。主要做了以下的修改0.每个对应的program NEWMDSADD_PROG{ version NEWMDSADD_VERS { struct metadata_info newmdsadd(struct mds_info) = 1; int migrate_metadata(struct metadata_info) = 2; int newmdsdone(struct migrate_argument) = 3; }=1;}=0x20110910;都对应在*.svc.c里面对应一个static voidnewmdsadd_prog_1(str... 阅读全文
posted @ 2013-11-15 16:31 ″ Jerry。 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 对于rpc说明书文件test.x,其中定义服务器过程以及他们的参数和结果。使用rpcgen必须要生成的几个文件:rpcgen–C-Mtest.x//-C生成ANSI C的代码, -Mtest.h:过程及其参数的说明tes_xdr.c:用于rpc外部数据表示test_clnt.c:客户端存根test_svc.c:服务器存根对于说明书文件test.x(至于说明书文件能放那些东西,用什么格式表示,这里不做介绍)const NAMELEN=256;typedef string PATHNAME;const MAXCHUNK=256;struct test_in{PATHNAME pathname;ui 阅读全文
posted @ 2013-11-15 15:44 ″ Jerry。 阅读(852) 评论(0) 推荐(0) 编辑
摘要: 主要修改的地方。1.返回值的类型。 由rpcgen生成的文件,返回的值一般是enum clnt_stat 但是在项目中做了修改,对应文件修改修改为只返回需要的信息, 如newmdsadd_1()只返回了metadata_info的信息,因为只有这个信息是我们所关心的。2.在rpcgen生成的文件中,是直接return掉很多东西,而在spnfsd中代替的是if语句。如果成功的话==RPC_SUCCESS返回metadata_info类型的变量,否则直接返回NULL这样的好处是可以实现,程序的鲁棒性。robust。3.加入了一些语句,memset(),将简要返回值大小的空间,内容清空。以免影响正常 阅读全文
posted @ 2013-11-15 15:09 ″ Jerry。 阅读(191) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2013-11-15 14:53 ″ Jerry。 阅读(4) 评论(0) 推荐(0) 编辑
  2013年11月12日
该文被密码保护。 阅读全文
posted @ 2013-11-12 10:55 ″ Jerry。 阅读(4) 评论(0) 推荐(0) 编辑
  2013年11月6日
摘要: http://blog.csdn.net/leisure512/article/details/4799328http://wenku.baidu.com/view/a6182ad950e2524de5187e0f.html 阅读全文
posted @ 2013-11-06 09:01 ″ Jerry。 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 1 想法去搜集这种记载的文字,所以研究生要学会去搜集资料或信息。2所以我们要看很多的资料。看资料是我们研究生阶段特别重要的,不要轻视了。3 ”。现在培养研究生,就是培养你们要勇于拓宽科技新领域,到第一线去干4论文记载了一个研究课题的过程和结论,达到了什么阶段,怎样达到的5要求大家学外文,学外文不是为了留学、吃洋面包去,而是为了能争取时间直接从人家那里拿来东西,作为研究生,还要参与国际学术交流,因而口语训练也是相当重要6硕士是准备的过程,硕士学习中还要扩大知识面,或者深化你的知识,还得用过去灌输的办法7。长期以来,全世界知识分子有个习惯,就是对自己的研究成果不保密,写出论文(或叫报告)来,实事求 阅读全文
posted @ 2013-11-06 09:00 ″ Jerry。 阅读(214) 评论(0) 推荐(0) 编辑
摘要: pnfs-nfs-utils-708/utils/spnfsd/spnfsd.c文件,从标红的地方开始看。看RPC的一些知识。需要尽快把RPC调用搞清楚。从if(pthread_create(&rpc_tid,NULL,newmdsadd_rpc,NULL) != 0){perror("newmdsadd_rpc thread create failed");exit(1);}else{printf("newmdsadd_rpc is running!\n");}开始看! 阅读全文
posted @ 2013-11-06 08:59 ″ Jerry。 阅读(149) 评论(0) 推荐(0) 编辑