免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3385 | 回复: 6
打印 上一主题 下一主题

[FastDFS] 测试中碰到的问题:下载不成功 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-26 10:59 |只看该作者 |倒序浏览
50个线程,35个线程不间断上传返回的文件名放在内存的列表中,15线程随机从内存的列表获取文件名不间断下载,运行一段时候后monitor会发现有些下载不成功,查看日志报错如下:
[2009-08-25 18:01:45] ERROR - file: storage_service.c, line: 2009, call stat fail, file: /home/fastdfs/storage/data/00/00/fmSpwEqSzNoAAAAAAAAUAEKVbmk38.txt, error no: 2, error info: No such file or directory
请问这个问题是什么原因造成的?

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
2 [报告]
发表于 2009-08-26 18:34 |只看该作者

回复 #1 zhouzezhong 的帖子

storage server不止1台吧?
貌似文件还没有同步过来,你就去下载文件了。
正确的做法,每次下载文件前,都去询问tracker server,获得可供下载的storage server,然后再到该storage server下载文件。

论坛徽章:
0
3 [报告]
发表于 2009-08-27 09:54 |只看该作者
但是按照上次msn上和你交流的情况:上传文件后如果立即下载,是在tracker一端根据时间戳来判断的,如果要下载文件的时间比storage的最近时间戳要新,则从源上下载.所以按照我的理解如果上传文件后,虽然没有同步过来,但还是会从源上下载,所以不存在下载不成功的现象出现,除非我理解有误.望斑竹解释.

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
4 [报告]
发表于 2009-08-28 09:16 |只看该作者

回复 #3 zhouzezhong 的帖子

的确是这样的。
下载文件过程,你是先查询tracker,获得可供下载的storage server,然后从该storage server下载文件的吗?

论坛徽章:
0
5 [报告]
发表于 2009-08-28 09:38 |只看该作者
是的,就是这样做的.下载的文件名从上传的文件列表中随机获取.results[0], results[1],是随机获取的,代码如下:       

               TrackerClient trackerClient = new TrackerClient();                  
        Socket trackerSocket = trackerClient.getConnection();
                          
        StorageServer storageServer = null;
        StorageClient storageClient        = new StorageClient(trackerSocket,storageServer);
               
        NameValuePair[] metaList=null;
        String[] results;
        int errno;
                  
        storageClient.download_file(results[0], results[1]);

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
6 [报告]
发表于 2009-09-18 19:41 |只看该作者
原帖由 zhouzezhong 于 2009-8-28 09:38 发表
是的,就是这样做的.下载的文件名从上传的文件列表中随机获取.results[0], results[1],是随机获取的,代码如下:       

               TrackerClient trackerClient = new TrackerClient();                  
        Socket trackerS ...


我用java写了个测试脚本,模拟LZ的测试情况,没有发现任何问题!
测试脚本参见附件。
运行测试脚本示例:
java -cp build/fastdfs_client.jar org.csource.fastdfs.TestLoad fdfs_client.conf

FastDFS_Java_Client.rar

93.06 KB, 下载次数: 104

论坛徽章:
0
7 [报告]
发表于 2009-09-19 11:22 |只看该作者
斑竹有msn ?,请加一下我,谢谢 reading_cool@msn.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP