ZhangJiaQiao / 2019-DBMS-Project

This is the programmin project of DBMS course in 2019
19 stars 26 forks source link

p_allocator #8

Closed LSunQQ closed 5 years ago

LSunQQ commented 5 years ago

ta您好,我想问一下这个initFilePmemAddr()是要将freelist里面的节点的fileid与pmem_addr放入map()中吗

ZhangJiaQiao commented 5 years ago

就是将fileid对应的文件和映射后的虚拟地址放入map中,方便取用

ZhangJiaQiao commented 5 years ago

每个fileid就是一个数据文件的名字啊,说明里有写

------------------ 原始邮件 ------------------ 发件人: "LSunQQ"notifications@github.com; 发送时间: 2019年5月4日(星期六) 上午10:03 收件人: "ZhangJiaQiao/2019-DBMS-Project"2019-DBMS-Project@noreply.github.com; 抄送: "Killin'machine"1254860908@qq.com; "State change"state_change@noreply.github.com; 主题: Re: [ZhangJiaQiao/2019-DBMS-Project] p_allocator (#8)

好的,还有就是fileid对应的文件的路径是什么呢,就是那个pmem_map_file的第一个参数好像是文件的路径吧

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub, or mute the thread.

LSunQQ commented 5 years ago

想问一下这样理解对不对,map里面存的是leafgroup文件的fileid和虚拟地址,然后叶子的地址是取出fileid对应的虚拟地址加上offset

LSunQQ commented 5 years ago

还有就是getleaf函数有点不懂,PPointer里面不是已经有一个fileid能找到对应的pmem_addr了吗,为什么函数第二个参数还有pmem_addr....然后那个bitmap是储存在哪里的,ifLeafUsed()函数不是要通过bitmap里面的0/1来判断是否使用过吗

ZhangJiaQiao commented 5 years ago

getLeaf就是申请叶子,获取它的PPointer,以及对应立即返回映射后的地址给FPTreeDB使用。bitmap在每个LeafGroup的头中,这个bitmap和后面叶子的bitmap不同的是为了简单,它是一字节的

ZhangJiaQiao commented 5 years ago

map的理解没错