1.1 Cache-oblivious High-performance Similarity Join 相似连接(similarity join)及其类似的近邻连接(k-nearest-neighbor 同时,这种方法可以将传统的数据迭代方法转换成缓存参数无关(cache-oblivious)算法。 ? 几种方法效果对比如下所示。可以看出FGF-Hilbert方法有更好的性能、更高的缓存命中率。 ?
1.1 Cache-oblivious High-performance Similarity Join 相似连接(similarity join)及其类似的近邻连接(k-nearest-neighbor 同时,这种方法可以将传统的数据迭代方法转换成缓存参数无关(cache-oblivious)算法。 ? 几种方法效果对比如下所示。可以看出FGF-Hilbert方法有更好的性能、更高的缓存命中率。 ?
Cache-oblivious 这个词对于大部分人都是陌生的,不过别怕。在存储引擎里,有一个数据结构非常非常重要,它负责 page 数据有序性维护,比如在一个 page 里怎么快速定位到我要的记录。 References [1] [Cache-Oblivious Data Structures](https://www.cs.au.dk/~gerth/papers/cacheoblivious05.
这个类别里面,从数据结构来说,就我所知并比较流行的是两类, 一类是COLA(Cache-Oblivious Look ahead Array)(代表应用自然是tokuDB)。 •B-tree [Bayer, McCreight 72] • cache-oblivious B-tree [Bender, Demaine, Farach-Colton 00] • buffer tree 在今天,主要想介绍的就是COLA,所谓cache-oblivious 就是说,他不需要知道具体的内存大小和一个块的大小,或者说,无论内存多大,块有多大,都可以使用同一套逻辑进行处理,这无疑是具有优势的,
: 0 xmalloc : 0 munmap : 0 lazy_lock : 0 tls : 1 cache-oblivious
: 0 xmalloc : 0 munmap : 0 lazy_lock : 0 tls : 1 cache-oblivious