【技术实现步骤摘要】
基于动态压缩前缀树的KV缓存方法与装置
[0001]本申请涉及数据处理
,尤其涉及一种基于动态压缩前缀树的KV缓存方法与装置。
技术介绍
[0002]目前著名的中文问答社区已拥有千万级的问题、亿级的回答,而各社区对缓存的依赖规模更加庞大,日均需处理过亿缓存请求。而海量的数据请求的性能、扩展性,对线上用户体验、公司决策、产品策略等非常重要。
[0003]为了解决复杂度较高的缓存请求,通常通过横向扩展充分利用计算机的CPU性能,业界中最常见的解决方案为Redis,但Redis仍存在不足之处,例如,Redis虽然支持I/O线程的多核,但计算逻辑一般多为单核处理,对于复杂的计算命令,多核收效甚微,并且其多核的扩展存在上限;Redis底层基于哈希表实现Key的存储,无法保证Key的有序;此外,Redis对于按照区间的范围查找效果很差,需要扫描全集。
技术实现思路
[0004]本申请提供一种基于动态压缩前缀树的KV缓存方法与装置,以实现横向扩展,解决复杂度高的缓存请求,充分利用现代计算机的CPU性能。 />[0005]第一本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于动态压缩前缀树的KV缓存方法,其特征在于,所述方法包括:获取客户端的请求,并将所述客户端的请求分配至多个线程;对任一线程,通过对所述客户端的请求进行解析获取执行命令,并基于动态压缩前缀树执行所述执行命令,得到执行结果;其中,所述动态压缩前缀树包括并发管理单元、内存回收单元、内存压缩单元,所述并发管理单元用于为所述动态压缩前缀树的各节点调整版本号,所述版本号包括读写阻塞标志位和重试标志位。2.根据权利要求1所述的方法,其特征在于,所述为所述动态压缩前缀树的各节点调整版本号,包括:若某节点存在写操作,则在进行写操作之前和写操作之后,均对所述节点的版本号进行第一类加处理,以调整所述读写阻塞标志位的值;若某节点存在删除操作,则在进行删除操作时,对所述节点的版本号进行第二类加处理,以调整所述重试标志位的值。3.根据权利要求2所述的方法,其特征在于,所述读写阻塞标志位用于判断各节点是否存在写操作以及是否阻塞其他线程的读写操作,相应的,基于所述读写阻塞标志位判断各节点是否存在写操作以及是否阻塞其他线程的读写操作的步骤具体包括:针对任一线程当前访问的节点,获取所述节点的版本号;基于所述节点的版本号,确定所述节点的读写阻塞标志位的值;若所述读写阻塞标志位的值为1,则表示所述节点存在写操作且已阻塞其他线程的读写操作;若所述读写阻塞标志位的值为0,则表示所述节点不存在写操作且未阻塞其他线程的读写操作。4.根据权利要求2所述的方法,其特征在于,所述重试标志位用于判断访问各节点是否需要进行重试操作,相应的,基于所述重试标志位判断访问各节点是否需要进行重试操作的步骤具体包括:针对任一线程当前访问的节点,获取所述节点的版本号;基于所述节点的版本号,确定所述节点的重试标志位的值;若所述重试标志位的值为1,则表示访问所述节点需要进行重...
【专利技术属性】
技术研发人员:高天一,代晓磊,姜诚,谢丹博,
申请(专利权)人:智者四海北京技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。