1 Star 0 Fork 393

mitslyj/FastDFS

forked from happyfish100/FastDFS 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
HISTORY 36.29 KB
一键复制 编辑 原始数据 按行查看 历史
happyfish100 提交于 2022-02-25 15:13 . use libfastcommon V1.56
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827
Version 6.08 2022-02-25
* use libfastcommon V1.56
NOTE: you MUST upgrade libfastcommon to V1.56 or later
Version 6.07 2020-12-31
* use libfastcommon V1.44
NOTE: you MUST upgrade libfastcommon to V1.44 or later
* correct spell iovent to ioevent follows libfastcommon
Version 6.06 2019-12-30
* bugfixed: fdfs_storaged can't quit normally
* bugfixed: init/memset return ip address to ascii 0 for Java SDK
Version 6.05 2019-12-25
* fdfs_trackerd and fdfs_storaged print the server version in usage.
you can execute fdfs_trackerd or fdfs_storaged without parameters
to show the server version
* trunk server support compress the trunk binlog periodically,
the config items in tracker.conf: trunk_compress_binlog_interval
and trunk_compress_binlog_time_base
* trunk binlog compression support transaction
* support backup binlog file when truncate trunk binlog,
the config item in tracker.conf: trunk_binlog_max_backups
* support alignment size for trunk space allocation
the config item in tracker.conf: trunk_alloc_alignment_size
* support merge free trunk spaces
the config item in tracker.conf: trunk_free_space_merge
* support delete unused trunk files
the config item in tracker.conf: delete_unused_trunk_files
* fdfs_monitor.c: do NOT call getHostnameByIp
NOTE: you MUST upgrade libfastcommon to V1.43 or later
Version 6.04 2019-12-05
* storage_report_ip_changed ignore result EEXIST
* use get_gzip_command_filename from libfastcommon v1.42
* support compress error log and access log
* disk recovery support multi-threads to speed up
* bugfix: should use memset to init pReader in function
storage_reader_init, this bug is caused by v6.01
NOTE: you MUST upgrade libfastcommon to V1.42 or later
Version 6.03 2019-11-20
* 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)
* code refine: combine g_fdfs_store_paths and g_path_space_list,
and extent struct FDFSStorePathInfo
* check store path's mark file to prevent confusion
* new selected tracker leader do NOT notify self by network
* larger network_timeout for fetching one-store-path binlog
when disk recovery
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
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/mitslyj/fastdfs.git
git@gitee.com:mitslyj/fastdfs.git
mitslyj
fastdfs
FastDFS
master

搜索帮助