Page 65 - 《软件学报》2020年第10期
P. 65

张鸿骏  等:一种适应 GPU 的混合访问缓存索引框架                                                      3041


         第 2.3 节描述了基于 LRU 的缓存替换策略,第 2.4 节给出了 CUDA 编程技术的基本概念.
         2.1    CHT基本概念
                                                           [9]
             典型的 CHT 包含两种散列方法对键值数据(KV)进行映射 .图 1 给出了两个典型的插入场景,即将两个不
         同的键值数据 KV 1 和 KV 2 插入到 CHT 中.其中,行号标明了散列索引的位置信息,每个位置的桶内按照典型的
         CHT 设置有 4 个槽对键值数据进行存储.例如,H 1 和 H 2 表示两个独立的散列方法,每个键值数据可以通过这两
         种散列方法映射到两个不同的候选位置上.对于 KV 1 ,映射到位置 0 和位置 2,对于 KV 2 ,映射到位置 3 和位置 5.
         当插入 KV 1 时,通过两种散列方法找到对应的候选位置 0 和 2,这两个位置的桶中均有空闲槽用于插入新的键值
         数据.根据具体 CHT 的算法,选择 0 或 2 位置的桶加以插入.

















                                        Fig.1   Set KV 1  and KV 2  on a CHT
                                        图 1   在 CHT 中插入 KV 1 和 KV 2
             当插入 KV 2 时,通过两种散列方法找到对应位置 3 和 5,发现位置 3 和位置 5 的桶中已无空闲槽.当遇到此
         种情况时,CHT 会在候选位置的桶中选择一个槽内的键值数据进行踢出,将新的数据放入该槽内,同时通过散列
         方法计算踢出键值数据的另一候选位置,如果有空闲槽,则放入,如果没有,则重复踢出置换操作,直至找到空闲
         的槽.典型的 CHT 设有踢出置换次数阈值,当达到阈值后,停止踢出替换操作,CHT 进行扩容.CHT 踢出置换操作
         的引入,使 CHT 中的空闲槽能更多地被使用,从而使得 CHT 的负载率可以大于 95%.在 KV 2 的插入场景中,由于
         对应候选位置 3 和位置 5 的桶中已无空闲槽,则随机选择位置 5 桶中槽内值为 o 的键值数据进行踢出置换,将
         KV 2 放入原有位置 5 桶中 o 对应的槽中.通过散列方法计算 o 的另一候选桶位置为 1,查询位置 1 的桶,发现无空
         闲槽,则继续选择一个键值数据 d 进行踢出置换,将 o 放在原有 d 的槽空间中.再对 d 进行散列值计算,查看另一
         候选位置 4 的桶,有空闲槽.将 d 放入空闲槽中,结束本次插入操作.Li 等人                   [29] 证明了采用宽度优先,直至找到一
         条可以置换的路径查找策略,是一种有效的踢出置换方式.
             当进行查询时,通过 H 1 与 H 2 计算散列值,查找对应位置的桶中槽内键值数据,通过遍历与比较槽内键数据
         来获取存储的值数据.
             CHT 仅支持同一种任务类型同时发生,如并发插入操作或并发查询操作.当插入和查询操作同时发生时,插
         入操作可能因无空闲槽,发生置换操作.此时,若查询正在置换的目标数据,或查询的目标数据在未正确返回前,
         目标数据置换入另一桶中的槽内,将造成对已索引数据的查询失败.当发生上述两种情况导致插入与查询同时
         进行时,散列表即丧失了数据完整性.CCHT 相对于 CHT 移除了无空闲槽时的置换操作,因此,支持插入和查询
         操作并发执行,提升了散列表的并发性能.
         2.2    CHT的典型实现
             CHT 在实际应用中的性能,受到大量参数的影响.在 CHT 中,关键的散列函数个数与每个位置中的存储空
         间个数影响了 CHT 的负载率及访问的延迟.当增加 CHT 中散列函数个数,允许键值数据映射到更多的位置上
         时,由于对请求数据的候选地址变多,因此查找空闲槽的机会变大.这种多散列函数的方式可以有效地提升 CHT
   60   61   62   63   64   65   66   67   68   69   70