ZhangJiaQiao / 2019-DBMS-Project

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

fptree的期望性能 #26

Open penhison opened 5 years ago

penhison commented 5 years ago

请问fptree的期望性能有多高? 我使用ycsb同样的代码测试leveldb和fptree,发现在load阶段fptree比leveldb慢了一倍,在run阶段两者性能差不多

在我们的实现中,每次修改叶子后都会立即调用LeafNode::persist,我们每次都判断叶子是否是pmem地址,若是则用pmem_persist持久化,如不是则用pmme_msync持久化,其实现代码为:

void LeafNode::persist() {
    if (pmem_is_pmem(this->pmem_addr, calLeafSize())) {
        pmem_persist(this->pmem_addr, calLeafSize());
    } else {
        pmem_msync(this->pmem_addr, calLeafSize());
    }
}
howardlau1999 commented 5 years ago

看官方文档,pmem_is_pmem非常费时,最好调用一次后将结果缓存起来

penhison commented 5 years ago

的确是pmem_is_pmem的问题,将结果提前缓存下来后在220w的测试结果中fptree的load阶段比leveldb快了20%,run阶段fptree比leveldb快3倍

ZhangJiaQiao commented 5 years ago

一次修改对应持久化对应修改的位置即可,不用持久化整个叶子

penhison commented 5 years ago

叶子节点没有相对应的成员函数,是否可以自己添加必要的成员函数?

ZhangJiaQiao commented 5 years ago

不影响测试就行

---原始邮件--- 发件人: "penhison"notifications@github.com 发送时间: 2019年5月22日(星期三) 晚上9:56 收件人: "ZhangJiaQiao/2019-DBMS-Project"2019-DBMS-Project@noreply.github.com; 抄送: "Comment"comment@noreply.github.com;"ZhangJiaQiao"1254860908@qq.com; 主题: Re: [ZhangJiaQiao/2019-DBMS-Project] fptree的期望性能 (#26)

叶子节点没有相对应的成员函数,是否可以自己添加必要的成员函数?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.