The distributed file system FastDFS 6.15.2 has been released, with the following major improvements:
- The file synchronization between storage servers supports multithreading;
- The access log is based on libserverframe;
- The communication protocol of FastDFS is compatible with both IPv4 and IPv6 address lengths;
- The underlying libraries used, libfastcommon and libserverframe, support io_uring (requiring a Linux kernel version >= 6.2), which offers better performance than epoll.
Other minor improvements:
- check tracker leader before accept trunk server
- move finish_callback from fast_task_info to TrackerClientInfo
- query file info support combined flags: FDFS_QUERY_FINFO_FLAGS_NOT_CALC_CRC32 and FDFS_QUERY_FINFO_FLAGS_KEEP_SILENCE
- fix compile warnings under gcc 14
Set the number of file synchronization threads in storage.conf. The configuration example is as follows:
# file sync min thread count, must >= 1
# default value is 1
# since V6.15
sync_min_threads = 1
# file sync max thread count, should >= sync_min_threads
# set to auto for twice of store_path_count
# default value is auto
# since V6.15
sync_max_threads = auto
Log configuration includes global configuration and section configuration. Section configuration inherits global configuration and can be reset to overwrite global configuration. The section for error logs is [error-log], and the section for access logs is [access-log]. For details, refer to tracker.conf and storage.conf in the conf directory (located towards the end of the configuration files).
The communication protocol of FastDFS can automatically adapt to both IPv4 and IPv6 address lengths. It can be configured in tracker.conf, with an example configuration as follows:
# the response IP address size, value list:
## IPv6: IPv6 address size (46)
## auto: auto detect by storage_ids.conf, set to IPv6 address size
## when contains IPv6 address
# default value is auto
# since V6.15
response_ip_addr_size = auto
If the client SDK being used utilizes IPv6 address length, it is necessary to configure the response_ip_addr_size to IPv6. Otherwise, the default configuration can be used.
The Java SDK project provided by FastDFS is named fastdfs-client-java, which already supports automatic adaptation to IPv4 and IPv6 address lengths. The current version is V1.39, and it is recommended to upgrade it together with the FDFS Server.