Open penhison opened 5 years ago
论文里提到叶子的头部(即bitmap+pNext+fingerprints)部分的大小应该设置为一个cache-line大小,而当前主流CPU的cache-line大小都是64byte,那么叶子的度应该设置为26(4byte bitmap + 8byte pNext + 26 * 2byte fingerprints = 64byte)才能取得最佳性能。 而fptree框架的默认叶子的度的大小为56,这不是论文提及的最优值,是否应在最终实现时把叶子的默认的度改回26(测试代码不兼容)。
叶子的默认的度的大小设为56有什么额外的考虑吗?
我把叶子的度的大小改为26后,运行ycsb的220w测试,整体性能相比叶子的度的大小为56时提升了10%到20%
抱歉,算错了,要满足cache-line大小的话叶子的度应该是21才对(6byte bitmap + 16byte pNext + 21 * 2byte fingerprints = 64byte)
56的度的设置没有考量,但是你已经注意到cache-line的对其问题,你可以额外说明下,作为自己的额外工作。可以将这个实验结果写在实验报告中,但是不要改测试代码
论文里提到叶子的头部(即bitmap+pNext+fingerprints)部分的大小应该设置为一个cache-line大小,而当前主流CPU的cache-line大小都是64byte,那么叶子的度应该设置为26(4byte bitmap + 8byte pNext + 26 * 2byte fingerprints = 64byte)才能取得最佳性能。 而fptree框架的默认叶子的度的大小为56,这不是论文提及的最优值,是否应在最终实现时把叶子的默认的度改回26(测试代码不兼容)。
叶子的默认的度的大小设为56有什么额外的考虑吗?
我把叶子的度的大小改为26后,运行ycsb的220w测试,整体性能相比叶子的度的大小为56时提升了10%到20%