pealdoy 发表于 2011-01-26 11:14

FastDFS生成文件名问题

可以问一下这个文件名的生成方式吗?
是根据原文件名hash得出的?
重复的几率大不大?如果生成的文件名重复了是否就存储失败呢?

还有就是在大批量操作小文件时经常出现如下异常:

似乎是socket没有及时释放?有人遇到过这个问题吗?
java.net.SocketException: No buffer space available (maximum connections reached?): connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:529)
        at org.csource.fastdfs.ClientGlobal.getSocket(ClientGlobal.java:107)
        at org.csource.fastdfs.StorageServer.<init>(StorageServer.java:33)
        at org.csource.fastdfs.TrackerClient.getUpdateStorage(TrackerClient.java:352)
        at org.csource.fastdfs.StorageClient.newUpdatableStorageConnection(StorageClient.java:1059)
        at org.csource.fastdfs.StorageClient.delete_file(StorageClient.java:558)
        at org.csource.fastdfs.StorageClient1.delete_file1(StorageClient1.java:295)

我用的是java客户端;
谢谢

happy_fish100 发表于 2011-01-26 12:38

本帖最后由 happy_fish100 于 2011-01-26 12:39 编辑

回复 1# pealdoy

生成的文件名中,包含了创建时间戳、文件大小、源storage server ip地址、文件内容crc32检验码,当文件小于2GB时,还会包含一个随机数。
代码中会循环10次,判断新生成的文件名是否已存在。
所以,当文件小于2GB时,文件重名的概率,非常非常低,重名的问题已经完全避免掉了。

出现这个异常情况,是在压力测试的情况下么?
如果是在压力测试的情况,那可以忽略。这个和java的垃圾回收(包括资源回收)机制有关。

pealdoy 发表于 2011-01-26 12:53

回复 2# happy_fish100


    谢谢回复。

异常确实是压力测试的时候出现的。

zx4866123 发表于 2012-09-12 09:45

本帖最后由 zx4866123 于 2012-09-12 09:46 编辑

回复 2# happy_fish100

膜拜!


   

payend 发表于 2012-12-05 12:16

本帖最后由 payend 于 2012-12-05 12:32 编辑

这个和jvm没有什么关系。
主要还是因为客户端端口被占用满了,无法获取到新的端口。在最新的fastdfs_client_v1.24.jar依然可以出现这个问题。
调整time_wait回收时间也许可以解决这个问题。
TCP    192.168.1.100:65508   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65510   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65513   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65515   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65518   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65519   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65521   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65523   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65525   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65529   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65530   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65531   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65533   192.168.1.150:23000   TIME_WAIT       0
TCP    192.168.1.100:65535   192.168.1.150:23000   TIME_WAIT       0

2008lory 发表于 2012-12-13 00:31

happy_fish100 发表于 2011-01-26 12:38 static/image/common/back.gif
回复 1# pealdoy

生成的文件名中,包含了创建时间戳、文件大小、源storage server ip地址、文件内容crc ...


请教版主,是怎么将创建时间戳、文件大小、源storage server ip地址……信息包含到文件名中的。怎么一个过程。

snowimg0427 发表于 2013-01-29 10:59

包括源storage server ip地址?那我机器迁个机房怎么办?
IP八成是要变啊。。。
页: [1]
查看完整版本: FastDFS生成文件名问题