暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
一种基于OpenCL实现时序数据延迟压缩的方法_CN117112197A_上海沄熹科技有限公司.pdf
44
12页
0次
2024-04-25
免费下载
(19)国家知识产权局
(12)发明专利申请
(10)申请公布号
(43)申请公布日
(21)申请号 202310760591 .1
(22)申请日 2023 .06.27
(71)申请人 上海沄熹科技有限公司
地址 200120 上海市浦东新区中国上海
自由贸易试验区张东路1158丹桂
10592305-22
(72)发明人 苑晓龙 金宁 
(74)专利代理机构 济南信达专利事务所有限公
37100
专利代理师 冯春连
(51)Int.Cl .
G06F
9/50
(2006 .01)
G06F
9/54
(2006 .01)
G06F
15/16
(2006 .01)
(54)发明名称
一种基于OpenCL实现时序数据延迟压缩的
方法
(57)摘要
本发明公开一种基于OpenCL实现时序数据
延迟压缩的方法涉及数据处理技术领域包括
C L S e r i e s C L L a z y B u f f e r
CLUncompressedChunkCLCompressedChunk
册事件处理器定义REDISMODULE_EVENT_TS_
CHUNK类型事件并发送事件处理器根据不同的
事件类型和延迟压缩策略中的控制参数驱动是
否协调GPU执行实现了压缩算法的内核程序
义内存管理器为未压缩和已压缩数据块申请和
C P U
CLSeries中间接引用CLUncompressedChunk
CLCompressedChunk的指针CPU处理器响应客户
CLUncompressedChunk填充时序数据事件处理
器接收到REDISMODULE_EVENT_TS_CHUNK事件
发延迟压缩策略GPU处理器压缩数据并填充到
C L C o m p r e s s e d C h u n k C P U
CLCompressedChunk的压缩数据替换基数树的原
对应数据本发明可以降低数据库进程的CPU
内存空间的占用率
权利要求书2页 说明书6页 附图3页
CN 117112197 A
2023.11.24
CN 117112197 A
1 .一种基于OpenCL实现时序数据延迟压缩的方法其特征在于,包括如下步骤
S1设计CLSeries构体CLLazyBuffer构体CLUncompressedChunk构体
CLCompressedChunk结构体作为时序数据异构延迟压缩数据的存储容器和辅助工具
cl_uncompressed_chunk定义为CLUncompressedChunk具体实例对象cl_compressed_
chunk定义为CLCompressedChunk具体实例对象;
S2执行RedisModule_Onload函数RedisModule_Onload函数中通过RedisModule_
SubscribeToServer函数以回调函数的方式来注册事件处理器EvtTsChunkHandler
REDISMO DULE_EVENT_ TS_CHUNKRed is Mod ule API
RedisModule_FireServerEvent函数来发送定义的事件
事件处理器EvtTsChunkHandler根据不同的事件类型和延迟压缩策略中的控制参数驱
动是否协调GPU执行实现了压缩算法的内核程序
S3定义CPUGPU构处理器共享内存区域的内存管理器CLMemoryManager
CLUncompressedChunk结构体和CLCompressedChunk结构体申请和回收内存空间该空间为
CPUGPU的共享内存空间
C L S e r i e s C P U C P U O p e n C L
CLEnqueueMapBuffer函数将上述申请的共享内存空间映射为CLSeries结构体中间接引用
cl_uncompressed_chunkcl_compressed_chunk的指针
S4CPU处理器响应客户端写入时序数据请求为cl_uncompressed_chunk填充时序数据
时,事件处理器EvtTsChunkHandler接收到REDISMODULE_EVENT_TS_CHUNK事件触发延迟压
缩策略GPU理器会cl_uncompressed_chunk中的填充数据压缩并填充cl_
compressed_chunk中,最后CPU处理器用cl_compressed_chunk的压缩数据(即节点6)替换
基数树中与CLUncompressedChunk结构体相一致的未压缩填充数据
2 .根据权利要求1所述的一种基于OpenCL实现时序数据延迟压缩的方法其特征在于
执行步骤S1设计的CLSeries结构体定义了lazy_comp_flag标识和lazy_buffer指针还定
义了NewSeriesAddSampleSeriesTrim三种函数其中
lazy_comp_flag标识用于定义时序数据序列是否采用延迟压缩策略
lazy_buffer指针引用CLLazyBuffer结构体
C L L a z y B u f f e r C L U n c o m p r e s s e d C h u n k
CLCompressedChunk构体空间 ,CLLazyCompress
CLLazyCompress函数定义了延迟压缩策略
CLUncompressedChunk结构体用于存储未压缩的数据块
CLCompressedChunk结构体用于存储压缩的数据块
3 .根据权利要求2所述的一种基于OpenCL实现时序数据延迟压缩的方法其特征在于
CLLazyCompress函数定义的延迟压缩策略为
cl_uncompressed_chunksize大于等于capacity*compress_factor阈值时
OpenCL标准定义的clEnqueueTask函数执行内核将CLUncompressedChunk结构体中时序
数据压缩后存储到cl_compressed_chunk的内存空间中
4 .根据权利要求2所述的一种基于OpenCL实现时序数据延迟压缩的方法其特征在于
CLUncompressedChunk结构体用于存储未压缩的数据块其具体定义了基准时间戳样本
权 利 要 求 书
1/2
2
CN 117112197 A
2
样本个数样本大小
5 .根据权利要求4所述的一种基于OpenCL实现时序数据延迟压缩的方法其特征在于
CLCompressedChunk结构体用于存储压缩的数据块其具体定义了大小个数标识基准
基准时间戳数据
6 .根据权利要求1所述的一种基于OpenCL实现时序数据延迟压缩的方法其特征在于
执行步骤S2定义的REDISMODULE_EVENT_TS_CHUNK事件类型包括如下三种
REDISMODULE_SUBEVENT_TS_CHUNK_NEW
REDISMODULE_SUBEVENT_TS_CHUNK_SPLIT
REDISMODULE_SUBEVENT_TS_CHUNK_DEL
REDISMODULE_EVENT_TS_CHUNK事件关联的数据即CLSeries构体的NewSeries
AddSampleSeriesTrim三种函数其中
NewSeries函数和AddSample函数对NewChunk函数的调用会触发新建事件
AddSample函数对SplitChunk函数的调用会触发拆分事件
SeriesTrim函数对FreeChunk函数的调用会触发删除事件
7 .根据权利要求1所述的一种基于OpenCL实现时序数据延迟压缩的方法其特征在于
执行步骤S3内存管理器CLMemoryManager包括如下相关函数:
RedisModule_CL_Alloc通过OpenCL标准定义的clCreateBuffer函数通过传递设置为
CL_MEM_ALLOC_HOST_PTR的参数申请指定大小的内存空间;
RedisModule_CL_Free通过OpenCL标准定义的clReleaseMemObject函数释放内存
RedisModule_CL_CallocRedisModule_CL_Alloc同样的操作申请内存空间并对空
间逐一进行初始化设置值为0
RedisModule_CL_Realloc通过OpenCL标准定义的clCreateBuffer函数通过传递设置
CL_MEM_ALLOC_HOST_PTR的参数 ,并基于指定的地址作为起始地址申请指定大小的内
存空间 ,即基于起始地址扩展内存空间
RM_CL_MallocUsableSize计算通过OpenCL标准申请内存空间中已使用空间大小
8.根据权利要求1所述的一种基于OpenCL实现时序数据延迟压缩的方法其特征在于
执行步骤S4设计实现数据块回收策略
回收cl_uncompressed_chunk中已经被压缩的数据块并基于cl_uncompressed_chunk
中未压缩数据块的地址申请capacity大小的内存空间以便继续存储客户端写入的时序数
据;
回收cl_compressed_chunk中除最后一个压缩数据块之外的数据块基于最后一个压
缩数据块的地址申请capacity大小的内存空间以便存储下次压缩后的时序数据
这一过程中调用OpenCLclEnqueueUnmapMemObject函数解除已经回收的共享内存
空间的映射
权 利 要 求 书
2/2
3
CN 117112197 A
3
of 12
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。