storage功能概要分析

2021-06-18 18:50:14 字數 2456 閱讀 2553

storage初始化註冊:其對於tracker做客戶端處理

1、storage程序main->storage_func_init->storage_func_init->tracker_get_my_server_id->tracker_get_storage_id->tcpsenddata_nb(tracker_proto_cmd_storage_get_server_id)/fdfs_recv_response

2、storage程序main->storage_func_init->fdfs_get_storage_ids_from_tracker_group->fdfs_get_storage_ids_from_tracker_server->tcpsenddata_nb(tracker_proto_cmd_storage_fetch_storage_ids)/fdfs_recv_response

3、storage程序main->tracker_report_thread_start->tracker_report_thread_entrance->tracker_get_storage_max_status->tracker_get_storage_status->tcpsenddata_nb(tracker_proto_cmd_storage_get_status)定時觸發

storage程序main->storage_func_init->storage_check_and_make_data_dirs->storage_disk_recovery_restore->recovery_get_src_storage_server->tracker_get_storage_max_status->tracker_get_storage_status->tcpsenddata_nb(tracker_proto_cmd_storage_get_status)初始化獲取

tracker作服務端處理:

1、tracker_deal_task(tracker_proto_cmd_storage_get_server_id)->tracker_deal_get_storage_id->fdfs_get_storage_id_by_ip

2、tracker_deal_task(tracker_proto_cmd_storage_fetch_storage_ids)->tracker_deal_fetch_storage_ids

3、tracker_deal_task(tracker_proto_cmd_storage_get_status)->tracker_deal_server_get_storage_status->

獲取到的資料放入fast_task_info結構的data欄位中,靜荷資料前有trackerheader頭,靜荷資料依次拷貝,服務處理最後呼叫send_add_event完成傳送

storage之間相互同步:

tracker_report_thread_start->tracker_report_thread_entrance->tracker_heart_beat->tracker_check_response->

a、storage相互間開始同步:trunk_sync_thread_start_all->trunk_sync_data->tcpsenddata_nb(storage_proto_cmd_trunk_sync_binlog)/響應

b、向tracker通報變化:tracker_merge_servers->tracker_sync_diff_servers->tcpsenddata_nb(tracker_proto_cmd_storage_replica_chg) 

服務端處理:

storage_deal_task(storage_proto_cmd_trunk_sync_binlog)->storage_server_trunk_sync_binlog->trunk_binlog_write_buffer->trunk_binlog_fsync 寫入trunk_binlog_fd檔案並fsync強制落盤

tracker變化處理:tracker_deal_storage_replica_chg->tracker_mem_sync_storages 只向group中相應storage_id記錄ip和狀態變化

storage與client互動,client做客戶端

1、php_method(fastdfs, storage_upload_by_filename1)->storage_upload_by_filename1_ex(storage_proto_cmd_upload_file)->storage_upload_by_filename_ex->storage_do_upload_file->tcpsenddata_nb()/tcpsendfile/fdfs_recv_response

當中會使用sendfile零拷貝傳送完整檔案,包括file_1g_size以上的大檔案

storage服務端處理:

storage_deal_task(storage_proto_cmd_upload_file)->storage_upload_file->storage_write_to_file

JMeter 功能概要(二)

存放可執行檔案和配置檔案 jmeter.bat windows的啟動檔案 jmeter.log 日誌檔案 jmeter.sh linux的啟動檔案 jmeter.properties 系統配置檔案 jmeter server.bat windows分布式測試要用到的伺服器配置 jmeter serv...

網路各層功能和概要

物理層 各種通訊物件,資料鏈路層 對應硬體 例 介面卡 網絡卡 任務 將ip資料報封裝成幀,功能 使在物理層透明傳輸 傳輸的資料的內容 格式及編碼沒有限制 差錯檢測 可靠性,資料鏈路層傳輸免去對丟失資訊 干擾資訊及順序不正確等的擔心。在物理層中這些情況都可能發生,在資料鏈路層中必須用糾錯碼來檢錯與糾...

資料分析 概要

隨著網際網路的日益繁榮以及人工智慧的不斷火熱,我們會產生大量的資料,這些資料背後隱藏著大量的有用 核心的資訊。比如說通過蒐集 京東 天貓等購物資料,可以大概了解使用者喜歡購買哪些商品,從而構建知識圖譜,然後通過系統推薦演算法給使用者推薦一些商品,從而促進消費。因此,資料分析也越來越有地位,當然資料分...