766 lines
34 KiB
Plaintext
766 lines
34 KiB
Plaintext
|
|
Version 6.03 2019-11-16
|
|
* dual IPs support two different types of inner (intranet) IPs
|
|
* storage server request tracker server to change it's status
|
|
to that of tracker leader when the storage server found
|
|
it's status inconsistence
|
|
* bugfix: fdfs_monitor fix get index of the specified tracker server
|
|
* storage server write to data_init_flag and mark file safely
|
|
(write to temp file then rename)
|
|
|
|
NOTE: the tracker and storage server must upgrade together
|
|
|
|
Version 6.02 2019-11-12
|
|
* get_file_info calculate CRC32 for appender file type
|
|
* disk recovery download file to local temp file then rename it
|
|
when the local file exists
|
|
* support regenerate filename for appender file
|
|
NOTE: the regenerated file will be a normal file!
|
|
|
|
Version 6.01 2019-10-25
|
|
* compress and uncompress binlog file by gzip when need,
|
|
config items in storage.conf: compress_binlog and compress_binlog_time
|
|
* bugfix: must check and create data path before write_to_pid_file
|
|
in fdfs_storaged.c
|
|
|
|
Version 6.00 2019-10-16
|
|
* tracker and storage server support dual IPs
|
|
1. you can config dual tracker IPs in storage.conf and client.conf,
|
|
the configuration item name is "tracker_server"
|
|
2. you can config dual storage IPs in storage_ids.conf
|
|
more detail please see the config files.
|
|
|
|
NOTE: you MUST upgrade libfastcommon to V1.41 or later
|
|
the tracker and storage server must upgrade together
|
|
|
|
* storage server get IP from tracker server
|
|
* storage server report current tracker IP to the tracker server when join
|
|
* tracker server check tracker list when storage server join
|
|
* use socketCreateExAuto and socketClientExAuto exported by libfastcommon
|
|
|
|
Version 5.12 2018-06-07
|
|
* code refine for rare case
|
|
* replace print format OFF_PRINTF_FORMAT to PRId64
|
|
* php_ext fix zend_object_store_get_object call in php5.5
|
|
* make.sh uses macros define in /usr/include/fastcommon/_os_define.h
|
|
* correct CRC32, you must upgrade libfastcommon to V1.38 or later
|
|
|
|
Version 5.11 2017-05-26
|
|
* bug fixed: file_offset has no effect when use trunk file
|
|
* add storage access log header
|
|
* http.conf add parameter http.multi_range.enabed
|
|
|
|
Version 5.10 2017-03-29
|
|
* use fc_safe_read instead of read, and fc_safe_write instead of write
|
|
you must upgrade libfastcommon to V1.35 or later
|
|
* fix getFileContentEx read bytes,
|
|
you must upgrade libfastcommon to V1.36 or later
|
|
* do NOT sync storage server info to tracker leader
|
|
* adjust parameter store_server when use_trunk_file is true
|
|
* clear sync src id when tracker response ENOENT
|
|
* log more info when fdfs_recv_header / fdfs_recv_response fail
|
|
|
|
Version 5.09 2016-12-29
|
|
* bug fixed: list_all_groups expand buffer auto for so many groups
|
|
* tracker.conf add parameters: min_buff_size and max_buff_size
|
|
* php extension fix free object bug in PHP 7
|
|
|
|
Version 5.08 2016-04-08
|
|
* install library to $(TARGET_PREFIX)/lib anyway
|
|
* php extension compiled in PHP 7
|
|
* dio thread use blocked_queue and php extension use php7_ext_wrapper.h,
|
|
you must upgrade libfastcommon to V1.25 or later
|
|
* remove common/linux_stack_trace.[hc]
|
|
|
|
Version 5.07 2015-09-13
|
|
* schedule task add the "second" field
|
|
* make.sh changed, you must upgrade libfastcommon to V1.21 or later
|
|
* bug fixed: storage_disk_recovery.c skip the first file (binlog first line)
|
|
* bug fixed: should close connection after fetch binlog
|
|
* fdfs_storaged.c: advance the position of daemon_init
|
|
* set log rotate time format
|
|
* bug fixed: must check store_path_index
|
|
|
|
Version 5.06 2015-05-12
|
|
* compile passed in mac OS Darwin
|
|
* correct scripts in subdir init.d
|
|
* check item thread_stack_size in storage.conf, you must
|
|
upgrade libfastcommon to V1.14 or later
|
|
|
|
Version 5.05 2014-11-22
|
|
* tracker_mem.c log more info
|
|
* remove useless global variable: g_network_tv
|
|
* storage can fetch it's group_name from tracker server
|
|
|
|
Version 5.04 2014-09-16
|
|
* add fastdfs.spec for build RPM on Linux
|
|
* depend on libfastcommon
|
|
* in multi tracker servers case, when receive higher status like
|
|
online / active and the storage status is wait_sync or syncing,
|
|
the tracker adjust storage status to newer, and the storage rejoin
|
|
to the tracker server
|
|
* fdfs_monitor support delete empty group
|
|
* bug fixed: two tracker leaders occur in rare case
|
|
* add connection stats
|
|
* delete old log files, add parameter: log_file_keep_days
|
|
|
|
Version 5.03 2014-08-10
|
|
* network send and recv retry when error EINTR happen
|
|
* support mac OS Darwin
|
|
* use newest logger from libfastcommon
|
|
* patches by liangry@ucweb.com
|
|
* bug fixed: can't sync large files cause by v5.02
|
|
* use newest files from libfastcommon
|
|
* change TRACKER_SYNC_STATUS_FILE_INTERVAL from 3600 to 300
|
|
* socket send and recv ignore erno EINTR
|
|
|
|
Version 5.02 2014-07-20
|
|
* corect README spell mistake
|
|
* bug fixed: can't deal sync truncate file exception
|
|
* remove tracker_global.c extern keyword to tracker_global.h
|
|
* change log level from ERROR to DEBUG when IOEVENT_ERROR
|
|
* php callback should use INIT_ZVAL to init zval variable
|
|
* add function short2buff and buff2short
|
|
* add get_url_content_ex to support buffer passed by caller
|
|
* logger can set rotate time format
|
|
* logger can log header line
|
|
* #include <stdbool.h> to use C99 bool
|
|
* logger can delete old rotated files
|
|
* bug fixed: connection pool should NOT increase counter when connect fail
|
|
* logger.c do NOT call fsync after write
|
|
|
|
Version 5.01 2014-02-02
|
|
* trunk binlog be compressed when trunk init
|
|
* bug fixed: sync trunk binlog file to other storage servers immediately when
|
|
the trunk server init done
|
|
* move ioevent_loop.[hc] and fast_task_queue.[hc] from tracker/ to common/
|
|
* hash table support locks
|
|
* hash talbe support new functions: hash_inc and hash_inc_ex
|
|
|
|
Version 5.00 2013-12-23
|
|
* discard libevent, use epoll in Linux, kqueue in FreeBSD, port in SunOS directly
|
|
* do_notify_leader_changed force close connection when target is myself
|
|
* modify the INSTALL file and tracker/Makefile.in
|
|
|
|
Version 4.08 2013-11-30
|
|
* bug fixed: FDFS_DOWNLOAD_SERVER_ROUND_ROBIN change to FDFS_STORE_SERVER_ROUND_ROBIN
|
|
* dio_init use memset to init buffer
|
|
* disable linger setting (setsockopt with option SO_LINGER)
|
|
* change log level from error to warning when file not exist on storage server
|
|
|
|
Version 4.07 2013-06-02
|
|
* make.sh add -lpthread by ldconfig check
|
|
* support multi accept threads
|
|
* tracker and storage server close client connection when recv invalid package
|
|
* client/storage_client.c: file_exist with silence flag
|
|
* tracker and storage process support start, stop and restart command
|
|
* tracker/tracker_proto.c fdfs_recv_header: logDebug change to logError
|
|
|
|
Version 4.06 2013-01-24
|
|
* fdfs_upload_file tool enhancement
|
|
* fdfs_download_file tool support offset and download size
|
|
* trunk file upload support sub paths rotating correctly
|
|
* add function: fdfs_http_get_file_extension
|
|
* sync truncate file operation anyway
|
|
|
|
Version 4.05 2012-12-30
|
|
* client/fdfs_upload_file.c can specify storage ip port and store path index
|
|
* add connection pool
|
|
* client load storage ids config
|
|
* common/ini_file_reader.c does NOT call chdir
|
|
* keep the mtime of file same
|
|
* use g_current_time instead of call time function
|
|
* remove embed HTTP support
|
|
|
|
Version 4.04 2012-12-02
|
|
* bug fixed: get storage server id when storage daemon init
|
|
* storage id in filename use global variable
|
|
* dynamic alloc memory 8 bytes alignment
|
|
* fast_task_queue support memory pool chain
|
|
|
|
Version 4.03 2012-11-18
|
|
* trunk_mgr/trunk_mem.c: log error and add more debug info
|
|
* file id generated by storage server can include storage server ID
|
|
|
|
Version 4.02 2012-10-30
|
|
* validate file_ext_name and prefix_name when upload file
|
|
* storage.conf add parameter: file_sync_skip_invalid_record
|
|
* add offset debug info when sync file fail
|
|
* bug fixed: log to binlog also if the file exists when sync file
|
|
* tracker and storage error log support rotate
|
|
* support rotate log by file size
|
|
* rotate log when receive HUP signal
|
|
* fdfs_monitor support set trunk server
|
|
* bug fixed: tracker_mem.c correct double mutex lock
|
|
|
|
Version 4.01 2012-10-21
|
|
* trunk_mgr/trunk_mem.c: trunk init flag check more strictly
|
|
* file signature for checking file duplicate support MD5
|
|
* slave file support both symbol link and direct file
|
|
* tracker server log trunk server change logs
|
|
|
|
Version 4.00 2012-10-06
|
|
* identify storage server by ID instead of IP address
|
|
* tracker.conf: storage reserved space can use ratio such as 10%
|
|
* storage server support access log
|
|
* appender file and trunk file also use rand number in file id
|
|
* bug fixed: test_upload.c: char file_id[64] change to: char file_id[128]
|
|
* set pipe reading fd with attribute O_NOATIME
|
|
* bug fixed: correct php extension call_user_function TSRMLS_DC with TSRMLS_CC
|
|
|
|
Version 3.11 2012-08-04
|
|
* setsockopt set linger.l_linger to micro-seconds in FreeBSD and seconds
|
|
in others
|
|
* trunk binlog reader skip incorrect records
|
|
* bug fixed: single disk recovery support symbol link and trunk file
|
|
* storage generate filename enhancement
|
|
* ETIME change to ETIMEDOUT for FreeBSD
|
|
* tracker_mem.c: load storage server ignore empty ip address
|
|
|
|
Version 3.10 2012-07-22
|
|
* check and init trunk file more gracefully
|
|
* remove unused-but-set-variable
|
|
* bug fixed: return correct group name when g_check_file_duplicate is true
|
|
* bug fixed: php extension call_user_function replace TSRMLS_CC with TSRMLS_DC
|
|
* large the interval of tracker re-select trunk server
|
|
* trunk free block check duplicate using avl tree
|
|
* trunk file sync overwrite the dest file anyway
|
|
* common/avl_tree.c: free data when delete
|
|
* tracker.conf add parameter: trunk_init_reload_from_binlog, when this flag
|
|
is set to true, load all free trunk blocks from the trunk binlog
|
|
* trunk status control only by trunk_mem.c and memcmp struct FDFSTrunkFullInfo
|
|
avoid memory alignment problem
|
|
* auto remove the too old temp file
|
|
|
|
Version 3.09 2012-07-08
|
|
* make.sh avoid override config files of /etc/fdfs/
|
|
* common/logger.c: function log_init can be called more than once
|
|
* php extension logInfo change to logDebug
|
|
* c client logInfo change to logDebug
|
|
* storage_dio.c log info more properly
|
|
* delete the trunk space which be occupied
|
|
* tracker.conf add parameter: trunk_init_check_occupying, when this flag
|
|
is set to true, do not add the trunk nodes which be occupied
|
|
* another method to get local ip addresses
|
|
|
|
Version 3.08 2012-05-27
|
|
* FAST_MAX_LOCAL_IP_ADDRS change from 4 to 16
|
|
* appender file support modify
|
|
* appender file support truncate
|
|
|
|
Version 3.07 2012-05-13
|
|
* tracker/tracker_mem.c: check storage ip address is not empty
|
|
* remove direct IO support
|
|
* trunk binlog sync optimization
|
|
* php extension compile passed in PHP 5.4.0
|
|
* get local ip addresses enhancement
|
|
* trunk server select the storage server whose binglog file size is max
|
|
* sync trunk binlog file correctly when trunk server changed
|
|
|
|
Version 3.06 2012-01-22
|
|
* add common/avl_tree.h and common/avl_tree.c
|
|
* organize trunk free blocks using AVL tree
|
|
* find the trunk server for each group when current tracker be a leader
|
|
* common/sched_thread.c can add schedule entry dynamicly
|
|
* support creating trunk file advancely
|
|
|
|
Version 3.05 2011-12-20
|
|
* remove compile warnings
|
|
* storage server's store_path_count can be more than that of group
|
|
* bug fixed: common/fast_mblock.c malloc bytes are not enough
|
|
* make.sh support OS: HP-UX
|
|
|
|
Version 3.04 2011-11-25
|
|
* bug fixed: duplicate files only save one entry ok with trunk file mode
|
|
* bug fixed: sync correctly with more binlog files
|
|
* fdfs_file_info query file info from storage server
|
|
* bug fixed: php extension compile error using gcc 4.6.1 as:
|
|
variable 'store_path_index' set but not used
|
|
* bug fixed: delete the metadata of trunked file correctly
|
|
* bug fixed: append file ok when check duplicate is on
|
|
* storage/trunk_mgr/trunk_shared.[hc]: trunk_file_stat_func do not
|
|
use function pointer
|
|
* bug fixed: storage/trunk_mgr/trunk_shared.c base64_decode_auto
|
|
overflow 1 byte
|
|
* bug fixed: delete slave file correctly
|
|
* bug fixed: remove debug info
|
|
* md5 function name changed to avoid conflict
|
|
|
|
Version 3.03 2011-10-16
|
|
* ignore existed link when sync link file
|
|
* http token checking support persistent token
|
|
* add functions: storage_file_exist and storage_file_exist1
|
|
* php minfo add fastdfs version info
|
|
* make.sh changed
|
|
* client move libevent dependency
|
|
|
|
Version 3.02 2011-09-18
|
|
* bug fixed: tracker_mem_check_add_tracker_servers add tracker server
|
|
correctly
|
|
* php client compile ok with php 5.2.17
|
|
* re-select trunk server ok
|
|
|
|
Version 3.01 2011-07-31
|
|
* bug fixed: tracker_get_connection_ex and tracker_get_connection_r_ex
|
|
connect two times with multi tracker servers
|
|
* bug fixed: tracker_mem_check_add_tracker_servers condition not correct
|
|
* all logError add source filename and line
|
|
* php extension support upload file callback
|
|
* php extension support download file callback
|
|
|
|
Version 3.00 2011-06-19
|
|
* mass small files optimization
|
|
* add fixed block memory pool: common/fast_mblock.c
|
|
* bug fixed: tracker_mem.c do NOT clear g_groups fields
|
|
* bug fixed: slave file and appender file download ok
|
|
* bug fixed: tracker / storage run by group / user, set file owner
|
|
* tracker server support leader
|
|
* client support static library
|
|
* client_func.h add functions fdfs_tracker_group_equals and
|
|
fdfs_get_file_ext_name
|
|
* bug fixed: test/dfs_func_pc.c compile ok
|
|
* storage server check free space enough when upload a file
|
|
|
|
Version 2.09 2011-02-19
|
|
* bug fixed: write_to_binlog_index then increase g_binlog_index (feedback
|
|
by koolcoy)
|
|
* disk read / write supports direct mode (avoid caching by the file system)
|
|
|
|
Version 2.08 2011-01-30
|
|
* bug fixed: fdfs_trackerd.c set g_tracker_thread_count to 0
|
|
* add cmd TRACKER_PROTO_CMD_SERVER_LIST_ONE_GROUP to support list one group
|
|
* support disk recovery automatically
|
|
* support total_upload_bytes, success_upload_bytes, total_download_bytes and
|
|
success_download_bytes etc. 18 stat fields
|
|
* tracker data file storage_groups.dat changes to storage_groups_new.dat, and
|
|
storage_servers.dat changes to storage_servers_new.dat
|
|
* support file append, add tests: fdfs_appender_test and fdfs_appender_test1
|
|
* storage_dio.c: dio_deal_task split to several functions
|
|
* tracker http check thread exit normally
|
|
* function fdfs_get_file_info_ex changed, add function fdfs_get_file_info_ex1
|
|
* fix some type cast error when compile with c++
|
|
* client add tools: fdfs_upload_appender and fdfs_append_file
|
|
|
|
Version 2.07 2011-01-09
|
|
* slave file's prefix name can be empty
|
|
* FDFS_MAX_GROUPS change from 64 to 512
|
|
* file size field in the file id changed: high 32 bits is random integer
|
|
when the file size < 2GB and the highest bit set to 1
|
|
* tracker_service.c: in function list_group_storages, use strcpy
|
|
intead of memcpy
|
|
* php extension add function fastdfs_tracker_delete_storage
|
|
* client add tool: fdfs_file_info to get file info, including file size,
|
|
create timestamp, source storage ip address and crc32 signature
|
|
* fdfs_upload_file.c: omit more error info when the local file not exist
|
|
|
|
Version 2.06 2010-12-26
|
|
* sync file op: do not sync the file which exists on dest storage server
|
|
and the file size are same
|
|
* bug fixed: sync copy file will clear the existed file on dest storage
|
|
server (truncate the file size to 0), this bug caused by V2.04
|
|
* bug fixed: make temp file discard system function mkstemp,
|
|
use file sequence No. with pthread_mutex_lock
|
|
* bug fixed: function fastdfs_tracker_list_groups, when parameter group_name
|
|
is null or empty string, return all groups info
|
|
* bug fixed: upload a file extends 2GB will fail
|
|
* bug fixed: tracker to tracker sync system data files, in function:
|
|
tracker_mem_get_tracker_server, pTrackerStatus not be set properly
|
|
|
|
Version 2.05 2010-12-05
|
|
* client/fdfs_monitor.c: add sync delay time
|
|
* tracker/fast_task_queue.c: pTask->data = pTask->arg + arg_size;
|
|
change to: pTask->data = (char *)pTask->arg + arg_size;
|
|
* bug fixed: storage_sync.c line 237 cause core dump in Ubuntu 10.04
|
|
* upload file test use mmap, support more test_upload processes
|
|
* client add three tools: fdfs_upload_file, fdfs_download_file and
|
|
fdfs_delete_file
|
|
|
|
Version 2.04 2010-11-19
|
|
* storage.conf: tracker server ip can NOT be 127.0.0.1
|
|
* do not catch signal SIGABRT
|
|
* strerror change to STRERROR macro
|
|
* sync copy file use temp filename first, rename to the correct filename
|
|
when sync done
|
|
* file id use 4 bytes CRC32 signature instead of random number
|
|
* add file: client/fdfs_crc32.c
|
|
* one of file hash code signature function change from APHash_ex
|
|
to simple_hash_ex
|
|
* bug fixed: when fdfs_storaged quit, maybe write to binlog file fail,
|
|
the error info is "Bad file descriptor"
|
|
|
|
Version 2.03 2010-11-08
|
|
* bug fixed: core dump when http.need_find_content_type=false and
|
|
http.anti_steal.check_token=true
|
|
* storage server add join_time field (create timestamp of this storage)
|
|
* tracker server fetch system files from other tracker server when
|
|
first storage server join in (tracker to tracker sync system files)
|
|
* tracker server changes the old ip address to the new address when the
|
|
storage server ip address changed
|
|
* tracker to tracker sync system data files in some case, multi tracker
|
|
server supported well
|
|
|
|
Version 2.02 2010-10-28
|
|
* get parameters function from tracker server changed,
|
|
add paramter: storage_sync_file_max_delay
|
|
* local ip functions move to common/local_ip_func.c
|
|
* when query all storage servers to store, do not increase the current
|
|
write server index
|
|
* struct FDFSHTTPParams add field: need_find_content_type
|
|
* symbol link client library to /usr/lib64 in 64 bits OS
|
|
* storage_client.c: deal file extension name correctly
|
|
|
|
Version 2.01 2010-10-17
|
|
* client/fdfs_monitor.c can specify tracker server
|
|
* micro STORAGE_STORE_PATH_PREFIX_CHAR change to
|
|
FDFS_STORAGE_STORE_PATH_PREFIX_CHAR
|
|
* php extension can set log filename
|
|
* php extension add function: fastdfs_client_version
|
|
* bug fixed: client/tracker_client.c tracker_get_connection_ex NULL pointer
|
|
* set max core dump file size to at least 256MB when DEBUG_FLAG is on,
|
|
make sure to generate core file when core dump with DEBUG_FLAG on
|
|
* upload file can get available storage server list of the group,
|
|
add command TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITHOUT_GROUP_ALL and
|
|
TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITH_GROUP_ALL
|
|
* bug fixed: storage core dump in some case
|
|
|
|
Version 2.00 2010-08-22
|
|
* tracker network io use libevent instead of traditional io model
|
|
* storage network io use libevent instead of traditional io model
|
|
* storage disk read/write use separate threads
|
|
* tracker_mem.c malloc single group and storage struct, remove referer
|
|
* make install copy config files
|
|
* tracker.conf add two parameters: storage_sync_file_max_delay and
|
|
storage_sync_file_max_time
|
|
* client tracker_get_connection increase server_index correctly
|
|
* storage sync to storage server adds active test
|
|
* test programs compile ok
|
|
|
|
Version 1.29 2010-06-30
|
|
* add files: tracker_dump.h and tracker_dump.c, tracker dump global vars
|
|
* add files: storage_dump.h and storage_dump.c, storage dump global vars
|
|
* sockopt.c: tcprecvfile and tcpdiscard add parameter total_recv_bytes
|
|
* storage server add fields: storage_port and storage_http_port
|
|
* auto rename synced remark files when the port of all storage servers
|
|
in a group changed to another port
|
|
* connect server support timeout, adding connect_timeout parameter in
|
|
config file
|
|
* log_init set log to cache to false (no cache)
|
|
|
|
Version 1.28 2010-05-30
|
|
* tracker_servive.c: set current_write_group anyway when current group
|
|
out of space
|
|
* logger support context (multi instance)
|
|
* get storage servers by filename: if the file created one day ago (the create
|
|
timestamp of the file < current_time - 86400), any active storage server matches
|
|
* add files: common/pthread_func.h and common/pthread_func.c
|
|
* common/sched_thread.h, remove statement: extern bool g_continue_flag;
|
|
* client add libfastcommon
|
|
* global variables: g_base_path, g_network_timeout, g_version change to
|
|
g_fdfs_base_path, g_fdfs_network_timeout, g_fdfs_version
|
|
* common/fdfs_base64.h/c change name to common/base64.h/c
|
|
* make.sh use TARGET_PREFIX instead of TARGET_PATH
|
|
* protocol add ACTIVE_TEST, tracker and storage both support
|
|
* php client, bug fixed: fastdfs_connect_server, the sock must init to -1
|
|
* bug fixed: storage status not correct with multi tracker servers
|
|
* sync storage mark file and stat file to disk properly
|
|
|
|
Version 1.27 2010-04-10
|
|
* storage.conf: add if_alias_prefix parameter to get the ip address of the
|
|
local host
|
|
* storage http support domain name
|
|
* php extension add some parameters in fastdfs_client.ini
|
|
* make.sh compile use debug mode
|
|
* type off_t change to int64_t
|
|
* redirect stdout and stderr to log file
|
|
* php extension list_groups add fields: version and http_domain
|
|
|
|
Version 1.26 2010-02-28
|
|
* remove compile warning of logError
|
|
* ini reader support section
|
|
* bug fixed: tracker/tracker_mem.c sync storage server status
|
|
* use storage server http server port anyway
|
|
* bug fixed: ini reader can support relative config filename
|
|
* function enhancement: tracker server can check storage HTTP server alive
|
|
|
|
Version 1.25 2010-02-04
|
|
* storage_sync.c if source file not exist when sync a file, change from
|
|
logWarning to logDebug
|
|
* filename buff size change from 64 to 128
|
|
* bug fixed: c client and php client, log not inited cause core dump when
|
|
call log functions
|
|
* can print stack trace when process core dumped in Linux server
|
|
* bug fixed: tracker/tracker_mem.c load storage servers fail with many groups
|
|
and storage servers
|
|
* common/sockopt.c remove debug info
|
|
* storage stat add fields: version
|
|
* auto adjust when storage server ip address changed
|
|
* bug fixed: when add a new storage server, other storage servers' status keep
|
|
the same, not changed
|
|
* add macros, compile passed in cygwin, thanks Seapeak
|
|
* write to system data file using lock
|
|
* common/ini_file_reader.c: use one context parameter, not two parameters
|
|
* storage status sync modified (the code of tracker and storage both changed)
|
|
* when recv kill signal, worker thread quit more quickly, daemon process
|
|
fdfs_trackerd and fdfs_storage quit very quickly when recv kill signal
|
|
* remove compile warning info of logError
|
|
* tracker server start more quickly with many groups and storage servers
|
|
* bug fixed: correct off_t printf format
|
|
|
|
Version 1.24 2010-01-06
|
|
* call php_fdfs_close with TSRMLS_CC as php_fdfs_close(i_obj TSRMLS_CC)
|
|
* storage server to storage server report ip address as tracker client
|
|
* bug fixed: sendfile exceeds 2GB file in Linux
|
|
* bug fixed: delete storage server
|
|
* storage stat add fields: up_time and src_ip_addr
|
|
* big static or struct memeber char array buffer change to malloc in order to
|
|
decrease stack size
|
|
* FDFS_WRITE_BUFF_SIZE change from 512KB to 256KB
|
|
* bug fixed: client/storage_client.c, meta data miss when upload file
|
|
* decrease thread_stack_size default value in config files: tracker.conf
|
|
and storage.conf
|
|
|
|
Version 1.23 2009-11-29
|
|
* remove unuseless variable "sleep_secs" in tracker_report_thread_entrance
|
|
* storage can bind an address when connect to other servers (as a client)
|
|
* common/md5.h fix UINT4 typedef wrong type in 64 bit OS
|
|
* client/fdfs_test.c: print the source ip address decoded from the remote
|
|
filename
|
|
* client add function fdfs_get_file_info
|
|
* php extension add functions: fastdfs_http_gen_token and fastdfs_get_file_info
|
|
* server process will exit when the http service starts fail
|
|
* support file group, a master file with many slave files whose file id can be
|
|
combined from master file id and prefix
|
|
* php client support uploading slave file
|
|
* ip address in filename change from host byte order to network byte order
|
|
* storage sync performance enhancement, using read buffer of 64KB to avoid
|
|
reading binlog file repeatly
|
|
* storage add prototol cmd: STORAGE_PROTO_CMD_QUERY_FILE_INFO
|
|
* FDFS_FILE_EXT_NAME_MAX_LEN changed from 5 to 6
|
|
* get file info support slave file
|
|
* storage server for uploading file support priority
|
|
|
|
Version 1.22 2009-10-12
|
|
* bug fixed: common/shared_func.c allow_hosts array maybe overflow in some case
|
|
* tracker/tracker_mem.c: protocol TRACKER_PROTO_CMD_SERVICE_QUERY_FETCH_ALL,
|
|
return at least a storage server when active storage
|
|
server count of the group > 0
|
|
* bug fixed: when client connection disconnected, always log debug or error info
|
|
* make.sh: default not install FastDFS services in Linux server
|
|
* common/sockopt.c: setsockopt level SOL_TCP only supported in Linux
|
|
* common/http_func.c: do not use function strsep because strsep is not portable
|
|
* client upload file support callback function
|
|
* client support multi tracker groups (multi FastDFS clusters)
|
|
* bug fixed: thread_stack_size not correct when the param thread_stack_size
|
|
not set in the config file
|
|
* supply php extension (directory name: php_client)
|
|
* c client reconnect server (tracker or storage) when network IO error
|
|
* c client: make tracker server index counter thread safely
|
|
|
|
Version 1.21 2009-09-19
|
|
* bug fixed: when source storage server synced file to new storage server done,
|
|
it's status changed to ONLINE (should keep as ACTIVE, report by zhouzezhong)
|
|
* add thread_stack_size in config file, default value is 1MB (report by chhxo)
|
|
* tracker and storage server use setsockopt to keep alive
|
|
(report by zhouzezhong)
|
|
* bug fixed: storage server with multi-path, upload file fail when the free
|
|
space of each path <= reserved space (the total free space > reserved space,
|
|
report by zhouzezhong)
|
|
* storage_sync.c: when connect fail, do not change the dest storage server '
|
|
status to offline
|
|
* tracker_service.c and storage_service.c change log level from WARNING to DEBUG
|
|
when client connection disconnected (report by Jney402)
|
|
* bug fixed: tracker_client.c correct store_path_index return by tracker server
|
|
(report by happy_fastdfs)
|
|
* bug fixed: tracker_service.c when store_lookup set to 2 (load balance), use
|
|
another pthread lock to avoid long time lock waiting
|
|
(report by happy_fastdfs)
|
|
* add service shell scripts in directory: init.d
|
|
(services will auto installed on Linux, report by hugwww)
|
|
|
|
Version 1.20 2009-09-05
|
|
* base64 use context, functions changed
|
|
* common/ini_file_reader.c: fix memory leak
|
|
* tracker server support HTTP protocol, one thread mode
|
|
* storage server support HTTP protocol, one thread mode
|
|
* fix bug: storage server rebuild, auto sync data correctly
|
|
* fix bug: sync data fail (correct storage server status)
|
|
* when storage server idle time exceeds check_active_interval seconds,
|
|
set it's status to offline
|
|
* tracker counter thread safely
|
|
|
|
Version 1.19 2009-07-23
|
|
* use poll instead of select in sockopt.c
|
|
* hash.c use chain impl by self
|
|
* use FastDHT 1.09 client code
|
|
* ini reader support HTTP protocol, conf file can be an url
|
|
* correct test dir compile error
|
|
* use non-block socket to increase network IO performance
|
|
* add cmd TRACKER_PROTO_CMD_SERVICE_QUERY_FETCH_ALL: query all storage servers
|
|
from which the file can be dowloaded
|
|
* while (1) ... break; changed to do ... while (0);
|
|
|
|
Version 1.18 2009-05-24
|
|
* restart.sh only kill the programs match the program name and all parameters
|
|
* correct get local ip addresses
|
|
* common files do not use global vars like g_network_timeout and g_base_path
|
|
* download file support offset and download bytes
|
|
* hash function change type from unsigned int to signed int
|
|
* file size in file name support 64 bits, old bytes is 4, new bytes is 8
|
|
|
|
Version 1.17 2009-03-19
|
|
* add test programs at sub directory test/
|
|
* common/shared_func.c: rindex change to strrchr, add #include <netinet/in.h>
|
|
* support SunOS (Solaris), compile passed on SunOS 5.10
|
|
* support AIX, compile passed on AIX 5.3
|
|
* sys call statfs change to statvfs
|
|
* use scheduling thread to sync binlog buff / cache to disk, add parameter
|
|
"sync_binlog_buff_interval" to conf file storage.conf
|
|
* use FastDHT v1.07 client code
|
|
|
|
Version 1.16 2009-02-14
|
|
* client can specify group name when upload file
|
|
* tracker_service.c: cmd dispatch changed to "switch ... case"
|
|
not "if ... else if"
|
|
* storage_service.c: call fdfs_quit before tracker_disconnect_server
|
|
|
|
Version 1.15 2009-01-28
|
|
* use FastDHT v1.04 client code
|
|
* use FastDHT client thread safely
|
|
|
|
Version 1.14 2009-01-18
|
|
* storage/storage_sync.c:
|
|
old: if (reader.sync_row_count % 1000 == 0)
|
|
new: if (reader.scan_row_count % 2000 == 0)
|
|
* little adjustment for common files can be used by FastDHT
|
|
* sched_thread.h /.c add global variable g_schedule_flag to quit normally
|
|
* shared_func.h / .c add function get_time_item_from_conf
|
|
* sched_thread.h /.c support time_base of task
|
|
* hash.h / .c add function CRC32, add hash function to support stream hash
|
|
* add FastDHT client files in storage/fdht_client/
|
|
* create symbol link when the file content is duplicate,
|
|
add item "check_file_duplicate" to conf file storage.conf
|
|
* use FastDHT v1.02 client code
|
|
* auto delete invalid entry in FastDHT when the source file does not exist
|
|
|
|
Version 1.13 2008-11-29
|
|
* re-calculate group 's free space when one of it's storage servers'
|
|
free space increase
|
|
* add parameters: sync_interval, sync_start_time and sync_end_time to
|
|
storage.conf
|
|
* performance enhancement: log to buffer, flush to disk every interval seconds
|
|
* standard fds closed by daemon_init: 0(stdin), 1(stdout) and 2(stderr)
|
|
* fix bug: pthread_kill sometimes cause core dump when program terminated
|
|
* fix bug: sync.c open next binlog cause loop call
|
|
|
|
Version 1.12 2008-11-12
|
|
* storage server support multi path (mount point)
|
|
* upload file support file ext name, add source storage ip address to filename
|
|
* add delete command to delete the invalid storage server
|
|
* add client functions which combine group name and filename to file id,
|
|
add anothor client test program: fdfs_test1.c to use file id
|
|
* client download file support callback function
|
|
* add protocol cmd TRACKER_PROTO_CMD_SERVICE_QUERY_UPDATE,
|
|
and client API add tracker_query_storage_update
|
|
* add protocol cmd TRACKER_PROTO_CMD_STORAGE_SYNC_REPORT to report last
|
|
synced timestamp as dest server
|
|
* fix sync old data files to new server bug
|
|
* fcntl change to pthread_mutex_lock
|
|
|
|
Version 1.11 2008-10-04
|
|
* kill report and sync threads when recv terminate signal
|
|
* add item "store_server" in tracker.conf, by default use the first
|
|
storage server to store uploaded files
|
|
* ini_file_reader.c changed: a conf file can include other conf files
|
|
* some adjustment:
|
|
some macro name changed
|
|
add common_define.h
|
|
remove fdfs_define.c
|
|
fdfs_os_bits.h change to _os_bits.h
|
|
|
|
Version 1.10 2008-09-20
|
|
* performance optimizing: use thread pool, create all work threads at startup
|
|
* trim function op in shared_func.c
|
|
* add Makefile template Makefile.in, delete Makefile and Makefile.freebsd
|
|
change make.sh to support all unix systems (passed in Linux and FreeBSD)
|
|
|
|
Version 1.9 2008-09-14
|
|
* security enhancement: support allow hosts which can connect to the server
|
|
* server can be run by the specified group and user, set by the config file
|
|
* change make.sh and add file common/fdfs_os_bits.h,
|
|
remove the warning info of printf format for int64_t param in 64 bits system
|
|
* storage_client.c changed: auto connect to storage server when not connected
|
|
* change some macro name and function name in tracker/tracker_proto.h
|
|
|
|
Version 1.8 2008-09-07
|
|
* communication protocol changed to support large file exceed 2GB:
|
|
# all integer field is 8 bytes big-endian
|
|
# group name fixed length: FDFS_GROUP_NAME_MAX_LEN bytes
|
|
* storage stat numbers (such as total_upload_count, success_upload_count)
|
|
use int64_t (8 bytes integer)
|
|
* ini_file_reader.c add function iniGetInt64Value
|
|
* sockopt.c add function tcpsetnonblockopt
|
|
* shared_func.c add function set_nonblock
|
|
|
|
Version 1.7 2008-08-31
|
|
* performance optimizing:
|
|
# change fopen to syscall open
|
|
# increase the efficiency of socket functions tcpsenddata and tcprecvdata
|
|
* change the return value of socket funtions such as tcpsenddata,
|
|
tcprecvdata and connectserverbyip
|
|
old return value: result=1 for success, result != 1 fail
|
|
new return value: result=0 for success, result != 0 fail, return the error code
|
|
* log function enhancement:
|
|
# support log level
|
|
# parameter "log_level" added to server config file
|
|
# keep the log file opened to increase performance
|
|
* fix log format and parameter mismatched bug (check by printf)
|
|
* log CRIT message to log file when program exit unexpectedly
|
|
* Makefile add compile flag -D_FILE_OFFSET_BITS=64 to support large files
|
|
* change the type of file_size and file_offset to off_t
|
|
* change signal to sigaction
|
|
* fix client Makefile to compile library correctly
|
|
* restart.sh modified: use external command "expr" to replace shell command "let"
|
|
|
|
Version 1.6 2008-08-24
|
|
* add restart daemon shell script: restart.sh
|
|
* use setrlimit to increase max open files if necessary
|
|
* security enhancement: the format of data filename must be: HH/HH/filename,
|
|
eg. B9/F4/SLI2NAAMRPR9r8.d
|
|
* fix bug: errno is not correct where the downloaded file does not exist,
|
|
communication is broken when the download file is a directory
|
|
|
|
Version 1.5 2008-08-17
|
|
* add client function storage_download_file_to_file
|
|
* use pthread_attr_setstacksize to increase thread stack size to 1 MB
|
|
* use sendfile syscall to send file in Linux and FreeBSD
|
|
* fix bug: add O_TRUNC flag when open file to write
|
|
* remove warning info compiled by gcc 4.2
|
|
* fcntl set lock.l_len to 0
|
|
|
|
Version 1.4 2008-08-10
|
|
* storage server recv file method change
|
|
old method: recv the whole file content/buff before write to file
|
|
new method: write to file once recv a certain bytes file buff, eg. 128KB buff size
|
|
* storage client and storage server send file method change
|
|
old method: get the whole file content/buff, then send to storage server
|
|
new method: send file to storage server more times. get a certain bytes file buff, then send to storage server
|
|
* upload file package remove the one pad byte field
|
|
* remove storage status FDFS_STORAGE_STATUS_DEACTIVE and add FDFS_STORAGE_STATUS_DELETED
|
|
|
|
Version 1.3 2008-08-03
|
|
* fix bug: when meta data is empty, get meta data return error
|
|
* support java client
|
|
# memset response header to 0
|
|
# add group_name to upload file response package
|
|
|
|
Version 1.2 2008-07-27
|
|
* add client function storage_set_metadata to support setting metadata(overwrite or merge)
|
|
|
|
Version 1.1 2008-07-20
|
|
* implement storage disk report
|
|
* storing load balance between storage groups(volumes) when set store_lookup to 2
|
|
|
|
Version 1.0 2008-07-12
|
|
* first version
|
|
|