自从1周以来,我发现了一个有趣的话题: 自适应基数树, 我发现它是用于索引内存的非常有用的技术,特别是在现代硬件架构中。
实际上我无法理解第4页中的一点,称为Node48。
我附上了我的意思。 http://s30.postimg.org/nff1am2r5/xadaptive_radix.png
这也是文章的主页:http://www-db.in.tum.de/~leis/papers/ART.pdf
任何比我更聪明的人都可以为我解释,我会非常高兴。 感谢。
答案 0 :(得分:13)
我相信您了解NODE_4和NODE_16的工作原理。 在NODE_4和NODE_16中,它们在节点的第一部分中放置了4到16个8位密钥。搜索密钥的成本是32位和128位,可以放入常规寄存器和SIMD寄存器。
但是,如果我们在NODE_48中使用相同的方式,搜索的成本将被读取384位,甚至不能适合256位SIMD寄存器。所以,Viktor Leis等人。在NODE_48的第一部分中使用子索引而不是键。子索引包含256个8位偏移,表示指针的位置。例如。如果你想在NODE_48中搜索103(可能是0到255),程序会:
它执行2次偏移计算而不是48次(SIMD)选择。
增加:
用于访问NODE_4(或NODE_16)中的第103个元素: