FastDFS trunk binlog的A ,D (version:3.11)
来源:互联网 发布:淘宝hottoys在哪买 编辑:程序博客网 时间:2024/05/16 01:56
看FastDFS的trunk操作时, 开始以为binlog中记录的A, D是表示小文件在trunk中的增加和删除文件的操作; 后来比较代码和binlog文件才发现原来是表示空闲空间的操作:
FastDFS 中进行trunk操作时, 会将操作过程记录到trunk下的binlog中, 记录的A(TRUNK_OP_TYPE_ADD_SPACE)和D(TRUNK_OP_TYPE_DEL_SPACE)不是表示向trunk中写入文件, 而是表示空闲空间的操作; 如下面的日志, 第一个表示创建了一个大小为67108864的节点并加入到AVL树中(1348197690 A 0 0 0 1 0 67108864);当向trunk文件中写入数据(小文件)时, 因为要用到空闲节点中的空间; 所以现将原来的空闲空间节点删除(1348197690 D 0 0 0 1 0 67108864); 将空闲中间的大小减去写入文件的大小(67108864 - 70 = 67108794)后作为一个节点加入到AVL树中(1348197690 A 0 0 0 1 70 67108794); 创建一个大小为70的节点加入到AVL树中(1348197690 A 0 0 0 1 0 70); 将文件内容写入到trunk中, 将大小为70的节点置为已用(置为FDFS_TRUNK_STATUS_HOLD); 所以从空闲空间中删除(1348197690 D 0 0 0 1 0 70); 所以A不是表示增加文件到trunk中; D不是表示从trunk中删除文件; 删除文件会在binlog中记录A, 表示将空闲空间增加到AVL树中; 而增加文件则最后的操作是D,表示空闲空间被用掉。
1348197690 A 0 0 0 1 0 67108864
1348197690 D 0 0 0 1 0 67108864
1348197690 A 0 0 0 1 70 67108794
1348197690 A 0 0 0 1 0 70
1348197690 D 0 0 0 1 0 70
1348218956 D 0 0 0 1 70 67108794
1348218956 A 0 0 0 1 140 67108724
1348218956 A 0 0 0 1 70 70
1348218956 D 0 0 0 1 70 70
1348456492 D 0 0 0 1 140 67108724
1348456492 A 0 0 0 1 324 67108540
1348456492 A 0 0 0 1 140 184
1348456492 D 0 0 0 1 140 184
storage_trunk.dat:内容:
270 :storage/data/trunk/binlog 文件的大小
0 0 0 1 140 67108724
path.store_path_index path.sub_path_high path.sub_path_low file.id file.offset file.size*/
binlog的大小指的是重新启动后binlog文件的大小, 在插入小文件到trunk操作过程中binlog文件大小会变化, 但storage_trunk.dat内的表示binlog文件大小是不变的; 但当trunk server和组内的storage同步数据时会根据storage_trunk.dat记录的binlog大小和实际的大小进行增量同步, 此时会改变storage_trunk.dat中记录binlog的大小, trunk的增量同步就是根据这个来实现的。trunk server 关闭时会, 此时会更改storage_trunk.dat中binlog的大小为现在的binlog文件的大小。trunk server重启后会根据binlog的记录来组建内部的数据结构(主要是AVL树), 也会更改storage_trunk.dat中binlog的大小为现在的binlog文件的大小。
- FastDFS trunk binlog的A ,D (version:3.11)
- FastDFS trunk 数据结构 (version:3.11)
- FastDFS storage 分析 (version:3.11)
- FastDFS FastTracker 分析(version:3.11)
- FastDFS Storage的加入和同步 (version:3.11)
- FastDFS之Binlog同步
- FastDFS之Binlog同步
- FastDFS storage server IP 更改 (version:3.11)
- FastDFS之Binlog同步(增量同步)
- FastDFS下载文件测试 ./fdfs_test %FastDFS%/conf/client.conf download (version:3.11)
- There was an error pushing a new version to trunk: getaddrinfo: nodename nor servname provided, or n
- leetcode 240: Search a 2D Matrix II C++Version
- 常见的D/A和A/D
- 关于fastDFS+nginx的集群配置问题解答集锦Q&A
- TRUNK的作用功能.什么是TRUNK
- 关于C语言的printf("%d,%d,%d,%d\n",a,++a,a--,a--);
- 交换机的TRUNK
- VLAN-TRUNK的作用
- Get Tables of SQLServer in PowerShell
- FastDFS trunk 数据结构 (version:3.11)
- 理解Spring
- [Java] Netty Websocket Server Javascript Client
- 生活思考一
- FastDFS trunk binlog的A ,D (version:3.11)
- IE7、IE8的CSS兼容性问题
- 百度2013校园招聘移动软件研发工程师笔试题
- FastDFS storage server IP 更改 (version:3.11)
- MD5加密和解密Web程序使用
- VS2010 项目引用了DLL文件,也写了Using, 编译时提示:未能找到类型或命名空
- 如何使用strace+pstack利器分析程序性能
- 图片存储架构学习:独立的图片服务器,给爱一个独立的空间
- FastDFS storage 分析 (version:3.11)