trunk 中以的树以size为key(tree_info_by_size)的AVL树中的数据是FDFSTrunkSlot *chain 的方式保存的, FDFSTrunkSlot下面保存着相同大小的node(fast_mblock_node)链表, 所以以size查找时找到的是一个相同大小node的链表。函数: trunk_add_free_block
runk 中以的树以 FDFSTrunkFileIdentifier为key(tree_info_by_id)的AVL树中的数据是FDFSTrunksById *pTrunksById的方式保存的。FDFSTrunksById下相同FDFSTrunkFileIdentifier trunk_file_id的node(FDFSTrunkFullInfo)放在数组FDFSTrunkFullInfo **blocks中; 相同的文件ID以offset大小的顺序(pTrunkInfo->file.offset)从小到大排序。函数: trunk_free_block_insert
本文深入探讨了FDFSTrunk数据结构的实现方式,包括以size为key的AVL树和以FDFSTrunkFileIdentifier为key的AVL树的存储机制,以及trunk_add_free_block和trunk_free_block_insert函数的应用场景。
1万+

被折叠的 条评论
为什么被折叠?



