CN110119275A - 一种分布式内存列式数据库编译执行器架构 - Google Patents
一种分布式内存列式数据库编译执行器架构 Download PDFInfo
- Publication number
- CN110119275A CN110119275A CN201910394174.3A CN201910394174A CN110119275A CN 110119275 A CN110119275 A CN 110119275A CN 201910394174 A CN201910394174 A CN 201910394174A CN 110119275 A CN110119275 A CN 110119275A
- Authority
- CN
- China
- Prior art keywords
- code
- executable code
- local
- cache manager
- manager
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种分布式内存列式数据库编译执行器架构,解决了分布式内存列式数据库中DAG算子执行方式上的执行速度缺陷问题。本发明在单机上的编译执行器系统包括匹配与调度器、IR/Bitcode生成器、本地IR代码缓存管理器、编译器、可执行代码缓存管理器和执行器,本地IR代码缓存管理器包括本地IR代码缓存单元,可执行代码缓存管理器包括可执行代码缓存单元;匹配与调度器,用于协调本地IR代码缓存管理器和可执行代码缓存管理器,管理映射信息,并对外部请求的DAG任务进行匹配代码执行或生成代码,以及对外部请求进行响应;IR/Bitcode生成器,用于对未匹配到可执行代码的DAG任务生成IR代码;本地IR代码缓存单元,用于对经过IR/Bitcode生成器生成的IR代码进行缓存管理。
Description
技术领域
本发明涉及分布式内存列式数据库的执行器技术领域,具体涉及一种分布式内存列式数据库编译执行器架构。
背景技术
在大数据时代的海量数据分析场景下,分布式内存列式数据库依靠其快速查询分析功能成为不可替代的重要产品。与传统数据库如MySQL、Oracle等将数据被存储在单机不同,分布式内存列式数据库将数据按列切分,并进一步切分成块并存储在多个节点。
在分布式内存列式数据库中,用户输入的SQL查询语句首先经过词法解析形成语法树,进一步经过逻辑优化器和物理优化器处理形成以DAG表示的执行计划。在执行时,DAG的各节点被派发到物理实体机中执行。
DAG是有向无环图(Directed Acyclic Graph)的简称,DAG的各个节点代表固定的执行操作,被称作算子,由开发人员编写并统一编译到执行器中,在运行时不可被更改。算子对相应的列分片进行批量计算操作,然后将计算结果物化到内存中并发送给下一个节点进行执行。
相对于每次解析数据库表的一个元组进行计算,DAG的批处理操作能够提升CPU利用率最终提升吞吐率。但DAG的算子批处理方式仍然存在如下问题:
1、即使两个相关节点被调度到同一物理机执行,这两个节点间仍然需要通过将数据写入内存甚至进行再拷贝以进行数据传输,而不能动态将两个算子功能融合处理以减少节点间数据传输和访问内存次数,并进一步提升数据和代码局部性加速CPU;
2、算子由于开发人员选择、编写进而被编译到系统中,无法在运行过程中动态生成。这进而导致几方面问题。一是无法根据利用SQL解析和优化阶段的信息生成更高效的执行码;二是无法根据环境比如异构场景等生成新功能算子,或者支持用户定义函数(UserDefined Function,UDF)。
发明内容
本发明所要解决的技术问题是:分布式内存列式数据库中DAG算子执行方式上的执行速度缺陷问题,本发明提供了解决上述问题的一种分布式内存列式数据库编译执行器架构。
本发明通过下述技术方案实现:
一种分布式内存列式数据库在单机上的编译执行器系统,包括匹配与调度器、IR/Bitcode生成器、本地IR代码缓存管理器、编译器、可执行代码缓存管理器和执行器,本地IR代码缓存管理器包括本地IR代码缓存单元和本地基础IR代码库/C库,可执行代码缓存管理器包括可执行代码缓存单元;
匹配与调度器,用于协调本地IR代码缓存管理器和可执行代码缓存管理器,管理映射信息,并对外部请求的DAG任务进行匹配代码执行或生成代码,以及对外部请求进行响应;
IR/Bitcode生成器,用于对未匹配到可执行代码的DAG任务生成IR代码;
本地IR代码缓存单元,用于对经过IR/Bitcode生成器生成的IR代码进行缓存管理;
编译器,用于对本地IR代码缓存单元的IR代码通过LLVM工具编译成可执行代码;
可执行代码缓存单元,用于对编译器编译的可执行代码进行缓存管理;
执行器,用于对可执行代码缓存单元的可执行代码进行执行。
其中:IR是从源语言翻译为目标语言过程中的中间语言,是一组指令集。
进一步地,匹配与调度器包括IR和二进制信息管理器,IR和二进制信息管理器用于管理IR代码和可执行代码的映射以及属性信息。
进一步地,匹配与调度器对外部请求的DAG任务进行匹配代码执行或生成代码,包括:
根据外部请求的DAG任务对可执行代码缓存单元进行搜索,搜寻可执行代码缓存单元中是否存在已编译好的可执行代码,如果有可执行代码则调用可执行代码并传入数据源描述进行执行,否则没有匹配的可执行代码则传入IR/Bitcode生成器。
进一步地,匹配与调度器对外部请求进行相应,其中,外部请求包括IR代码读取请求、执行可执行代码请求中的一种或者几种。
进一步地,还包括本地IR预测生成器,本地IR预测生成器用于记录历史DAG记录,并利用机器学习算法动态预测需要的计算函数并调用IR/Bitcode生成器生成IR和可执行代码。
进一步地,本地IR代码缓存管理器中管理的IR代码是根据本机物理环境编译成可执行代码交由可执行代码缓存管理器进行管理,且本地IR代码缓存管理器与可执行代码缓存管理器是一一对应的关系,IR代码用于跨机复用及代码生成时复用,可执行代码是根据本机编译优化。
一种分布式内存列式数据库在分布式上的编译执行器系统,包括全局IR消息管理器,所述的分布式内存列式数据库在单机上的编译执行器系统;
全局IR信息管理器,用于维护各台单机的本地IR代码缓存管理器中维护的索引信息,以供其他主机查询现有IR生成情况;并且各台主机的本地IR代码缓存管理器根据各自需求查询接收并缓存IR代码;
各主机之间通过匹配与调度器,将本地拥有IR功能集合暴露出去成为微服务,其他主机可远程调用本主机内的可执行代码执行操作或者其他主机通过请求本地发送IR,进而由其他主机在其主机上编译并执行。
进一步地,全局IR信息管理器用于各台主机的本地IR代码缓存管理器根据各自需求查询接收并缓存IR代码,其中,IR包括生成IR和基础IR库,生成IR是和业务相关的IR代码,由各机根据情况进行同步;基础IR库是经常使用的IR代码集合,由各机强制持有,以供开发人员根据系统状况人工增加代码进行手动动态优化。
其中:LLVM是一个编译器后端框架,提供了便捷地生成LLVM IR语言代码的方法以及将LLVM IR语言代码编译成可执行的工具。从LLVM衍生出的C++编译器clang将C++代码编译成IR代码,进而通过LLVM工具编译成可执行文件。
LLVM提供C/C++库以方便地生成LLVM IR语言组成的代码,如函数等。LLVM IR是易读的,类似于汇编但其抽象性隐藏了底层具体硬件特性;LLVM IR也是跨平台的,即同一份LLVM IR可在不同CPU的机器甚至GPU上执行。LLVM提供工具将IR编译成适应特定机器上的可执行代码,也可在按照解释执行方式执行。
本发明具有如下的优点和有益效果:
1、本发明提出了一种全新的分布式内存数据库执行器架构,包括分布式和单机上的层次和服务关系,填补了分布式内存数据库在编译执行方式上的执行器架构设计上的空白;
2、本发明提出的架构在单机上能够在执行时根据运行时信息动态生成代码,并编译执行,以获得更块的计算速度,实验验证:在TCPH-19的测试中,编译执行方式代码执行速度相对传统的多阶段批处理方式(包括多线程并行执行优化后)的执行速度快2至3倍;
3、本发明提出的架构在单机上还能够缓存IR代码和相应的代码生成的可执行指令,同时能够在分布式环境下跨机共享IR代码,并在可复用时直接复用,该方法解决了每次执行都需要编译导致的编译时间过长问题;
4、本发明提出的架构在分布式环境上还能够将本地动态生成的IR代码和可执行代码组成的功能集合以服务的方式暴露给其他机器或本机上层业务,使得在最接近数据的地方进行计算减少传输提升总体性能,以及便于全局分配和使用各机器上的计算资源。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明的单机执行器架构。
图2为本发明的分布式服务架构。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例
如图1所示,一种分布式内存列式数据库在单机上的编译执行器系统,包括匹配与调度器、IR/Bitcode生成器、本地IR代码缓存管理器、编译器、可执行代码缓存管理器和执行器,本地IR代码缓存管理器包括本地IR代码缓存单元和本地基础IR代码库/C库,可执行代码缓存管理器包括可执行代码缓存单元;
匹配与调度器,(1)用于协调本地IR代码缓存管理器和可执行代码缓存管理器,管理映射信息,(2)并对外部请求的DAG任务进行匹配代码执行或生成代码,(3)以及对外部请求进行响应;
其中,(1)匹配与调度器包括IR和二进制信息管理器,IR和二进制信息管理器用于管理IR代码和可执行代码的映射以及属性信息;
(2)匹配与调度器对外部请求的DAG任务进行匹配代码执行或生成代码,根据外部请求的DAG任务对可执行代码缓存单元进行搜索,搜寻可执行代码缓存单元中是否存在已编译好的可执行代码,如果有可执行代码则调用可执行代码并传入数据源描述进行执行,否则没有匹配的可执行代码则传入IR/Bitcode生成器;
(3)匹配与调度器对外部请求进行相应,其中,外部请求包括IR代码读取请求、执行可执行代码请求中的一种或者几种。
IR/Bitcode生成器,用于对未匹配到可执行代码的DAG任务生成IR代码;
本地IR代码缓存单元,用于对经过IR/Bitcode生成器生成的IR代码进行缓存管理;
编译器,用于对本地IR代码缓存单元的IR代码通过LLVM工具编译成可执行代码;
可执行代码缓存单元,用于对编译器编译的可执行代码进行缓存管理;
执行器,用于对可执行代码缓存单元的可执行代码进行执行。
还包括本地IR预测生成器,本地IR预测生成器用于记录历史DAG记录,并利用机器学习算法动态预测需要的计算函数并调用IR/Bitcode生成器生成IR和可执行代码。
本地IR代码缓存管理器中管理的IR代码是根据本机物理环境编译成可执行代码交由可执行代码缓存管理器进行管理,且本地IR代码缓存管理器与可执行代码缓存管理器是一一对应的关系,IR代码用于跨机复用及代码生成时复用,可执行代码是根据本机编译优化。
分布式内存列式数据库在每台物理机上的架构,工作原理是:
首先,对分配而来的DAG任务节点(或者节点集合),由匹配与调度器搜寻是否存在已编译好的可执行代码,如果有可执行代码则调用可执行代码并传入数据源描述进行执行,如果没有匹配的可执行代码,则传入IR/Bitcode生成器,对未找到可执行代码的DAG任务节点(或节点集合)由IR/Bitcode生成器生成IR代码,并加入本地IR代码缓存管理器中,进而由LLVM工具编译成可执行代码,交由可执行代码缓存管理器进行管理,以及后续由运行器进行执行;其次,本地IR代码缓存管理器中管理的代码必须根据本机物理环境编译成可执行代码交由可执行代码缓存管理器管理,同时IR和二进制信息管理器管理IR代码和可执行代码的映射以及属性信息,匹配与调度器用于协调本地IR代码缓存管理器和可执行代码缓存管理器,管理映射信息,对外部请求的DAG任务进行匹配代码执行或生成代码,以及对外部请求进行响应(如IR代码读取请求,执行可执行代码等请求);再者,通过IR预测生成器能记录历史DAG记录,并根据机器学习或其他算法预测可能需要的计算函数并调用生成器生成IR和可执行代码。
本发明在单机上能够在执行时根据运行时信息动态生成代码,并编译执行,以获得更块的计算速度,实验验证:在TCPH-19的测试中,编译执行方式代码执行速度相对传统的多阶段批处理方式(包括多线程并行执行优化后)的执行速度快2至3倍;本发明在单机上还能够缓存IR代码和相应的代码生成的可执行指令,同时能够在分布式环境下跨机共享IR代码,并在可复用时直接复用,该方法解决了每次执行都需要编译导致的编译时间过长问题。
如图2所示,一种分布式内存列式数据库在分布式上的编译执行器系统,包括全局IR消息管理器,所述的分布式内存列式数据库在单机上的编译执行器系统;
全局IR信息管理器,用于维护各台单机的本地IR代码缓存管理器中维护的索引信息,以供其他主机查询现有IR生成情况;并且各台主机的本地IR代码缓存管理器根据各自需求查询接收并缓存IR代码;
各主机之间通过匹配与调度器,将本地拥有IR功能集合暴露出去成为微服务,其他主机可远程调用本主机内的可执行代码执行操作或者其他主机通过请求本地发送IR,进而由其他主机在其主机上编译并执行。
其中:全局IR信息管理器用于各台主机的本地IR代码缓存管理器根据各自需求查询接收并缓存IR代码,其中,IR包括生成IR和基础IR库,生成IR是和业务相关的IR代码,由各机根据情况进行同步;基础IR库是经常使用的IR代码集合,由各机强制持有,以供开发人员根据系统状况人工增加代码进行手动动态优化。
分布式内存列式数据库在总体分布式系统上的架构,工作原理是:
全局IR信息管理器维护各台单机的本地IR代码缓存管理器中维护的索引信息,方便其他主机查询现有IR生成情况。通过全局IR信息管理器的信息,各台主机的本地IR缓存管理器根据各自需求查询接收并缓存IR代码,其中IR分为生成IR和基础IR,生成IR是和业务相关的IR代码,由各机根据情况进行同步;基础IR库为经常使用的IR代码集合,由各机强制持有,便于开发人员根据系统状况人工增加代码进行手动动态优化。各主机通过匹配与调度器,将本地拥有IR功能集合暴露出去成为微服务,其他主机可远程调用本主机内的可执行代码执行一些操作,其他主机也可请求本地发送IR,进而由其他主机在其主机上编译并执行。
本发明提出的架构在分布式环境上还能够将本地动态生成的IR代码和可执行代码组成的功能集合以服务的方式暴露给其他机器或本机上层业务,使得在最接近数据的地方进行计算减少传输提升总体性能,以及便于全局分配和使用各机器上的计算资源。
具体地,可执行代码生成流程如下:
首先匹配与调度器在可执行代码缓存单元中寻找是否存在已满足需求功能的可执行代码,如果没有则进入IR/Bitcode生成器,调用适当的函数生成代码。如下函数为Pipeline生成代码的函数接口:
llvm::Module*GenerateLlvmForPipeline(std::string pipe_name,PlanNode*pipe);
根据LLVM的API,所生成的代码数据结构类型是Module,其中包含了相关的函数的IR代码。对其导出后内容基本如下:
define i64@PipeMain(i64*,i64*){
;函数体:实现了相关的计算
}
;如下是如上函数中调用的基础IR
declare i64@GetColumnPtrById(i64)
declare i64@GetColumnSizeByPtr(i64)
在如上示例中,PipeMain为生成的代码,完成需要的计算功能。而下文中的声明declare为本地基础IR代码库或者C库中的函数,作为基础工具完成基础功能。
IR代码需要编译才能执行,因而下一步进入编译器部分进行处理。编译器模块使用llvm::ExecutionEngine生成可执行代码,如下中将Module对象传入ExecutionEngine形成了p_engine1对象。该对象用于生成可执行代码:
llvm::ExecutionEngine*p_engine1=(llvm::EngineBuilder(std::move(uni_module1))).setEngineKind(llvm::EngineKind::JIT).create();
对于调用的基础IR库的代码,可用llvm::parseIRFile提前从文件或其他输入流中读取并添加到ExecutionEngine中,接着自动完成链接:
std::unique_ptr<llvm::Module>uniptr_module_tmp=llvm::parseIRFile(path_tmp,err_tmp,*p_context_tmp);
p_engine1->addModule(std::move(uniptr_module_tmp));
对于调用的C库函数或其他函数可使用ExecutionEngine中的addGlobalMapping添加映射。
具体地,主机间IR代码的传递如下:
对于生成的IR代码,会将其信息推送给全局IR信息管理器。如其他主机需要该IR可执行代码,则本地可通过其API将其写入文件或指定的输出流中,然后将其发送给目标主机。如下为将IR代码写入文件中:
LLVMWriteBitcodeToFile(module1_ref,"test_engine1.bc");
在目标主机中,可通过llvm::parseIRFile生成Module对象,并将其加入ExecutionEngine中并编译成可执行代码,并将其信息传递给本地IR和二进制信息管理器便于查询和复用。
对于作为基础IR库的代码,不会立即编译成可执行代码,而是添加到ExecutionEngine中用于链接。这样能提供更好的性能,因为编译器可对其进行内联等编译优化。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种分布式内存列式数据库在单机上的编译执行器系统,其特征在于:包括匹配与调度器、IR/Bitcode生成器、本地IR代码缓存管理器、编译器、可执行代码缓存管理器和执行器,本地IR代码缓存管理器包括本地IR代码缓存单元,可执行代码缓存管理器包括可执行代码缓存单元;
匹配与调度器,用于协调本地IR代码缓存管理器和可执行代码缓存管理器,管理映射信息,并对外部请求的DAG任务进行匹配代码执行或生成代码,以及对外部请求进行响应;
IR/Bitcode生成器,用于对未匹配到可执行代码的DAG任务生成IR代码;
本地IR代码缓存单元,用于对经过IR/Bitcode生成器生成的IR代码进行缓存管理;
编译器,用于对本地IR代码缓存单元的IR代码通过LLVM工具编译成可执行代码;
可执行代码缓存单元,用于对编译器编译的可执行代码进行缓存管理;
执行器,用于对可执行代码缓存单元的可执行代码进行执行。
2.根据权利要求1所述的一种分布式内存列式数据库在单机上的编译执行器系统,其特征在于:匹配与调度器包括IR和二进制信息管理器,IR和二进制信息管理器用于管理IR代码和可执行代码的映射以及属性信息。
3.根据权利要求1所述的一种分布式内存列式数据库在单机上的编译执行器系统,其特征在于:匹配与调度器对外部请求的DAG任务进行匹配代码执行或生成代码,包括:
根据外部请求的DAG任务对可执行代码缓存单元进行搜索,搜寻可执行代码缓存单元中是否存在已编译好的可执行代码,如果有可执行代码则调用可执行代码并传入数据源描述进行执行,否则没有匹配的可执行代码则传入IR/Bitcode生成器。
4.根据权利要求1所述的一种分布式内存列式数据库在单机上的编译执行器系统,其特征在于:匹配与调度器对外部请求进行相应,其中,外部请求包括IR代码读取请求、执行可执行代码请求中的一种或者几种。
5.根据权利要求1所述的一种分布式内存列式数据库在单机上的编译执行器系统,其特征在于:还包括本地IR预测生成器,本地IR预测生成器用于记录历史DAG记录,并利用机器学习算法动态预测需要的计算函数并调用IR/Bitcode生成器生成IR和可执行代码。
6.根据权利要求1所述的一种分布式内存列式数据库在单机上的编译执行器系统,其特征在于:本地IR代码缓存管理器中管理的IR代码是根据本机物理环境编译成可执行代码交由可执行代码缓存管理器进行管理,且本地IR代码缓存管理器与可执行代码缓存管理器是一一对应的关系,IR代码用于跨机复用及代码生成时复用,可执行代码是根据本机编译优化。
7.一种分布式内存列式数据库在分布式上的编译执行器系统,其特征在于:包括全局IR消息管理器,权利要求1至6中任意一项所述的分布式内存列式数据库在单机上的编译执行器系统;
全局IR信息管理器,用于维护各台单机的本地IR代码缓存管理器中维护的索引信息,以供其他主机查询现有IR生成情况;并且各台主机的本地IR代码缓存管理器根据各自需求查询接收并缓存IR代码;
各主机之间通过匹配与调度器,将本地拥有IR功能集合暴露出去成为微服务,其他主机可远程调用本主机内的可执行代码执行操作或者其他主机通过请求本地发送IR,进而由其他主机在其主机上编译并执行。
8.根据权利要求7所述的一种分布式内存列式数据库在分布式上的编译执行器系统,其特征在于:全局IR信息管理器用于各台主机的本地IR代码缓存管理器根据各自需求查询接收并缓存IR代码,其中,IR包括生成IR和基础IR库,生成IR是和业务相关的IR代码,由各机根据情况进行同步;基础IR库是经常使用的IR代码集合,由各机强制持有,以供开发人员根据系统状况人工增加代码进行手动动态优化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910394174.3A CN110119275B (zh) | 2019-05-13 | 2019-05-13 | 一种分布式内存列式数据库编译执行器架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910394174.3A CN110119275B (zh) | 2019-05-13 | 2019-05-13 | 一种分布式内存列式数据库编译执行器架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110119275A true CN110119275A (zh) | 2019-08-13 |
CN110119275B CN110119275B (zh) | 2021-04-02 |
Family
ID=67522257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910394174.3A Active CN110119275B (zh) | 2019-05-13 | 2019-05-13 | 一种分布式内存列式数据库编译执行器架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110119275B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111091612A (zh) * | 2019-10-09 | 2020-05-01 | 中国船舶重工集团公司第七0九研究所 | 一种抽象目标码架构的着色语言机器码生成方法及装置 |
CN111580826A (zh) * | 2020-04-30 | 2020-08-25 | 腾讯科技(深圳)有限公司 | 机器学习模型的编译优化方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541927A (zh) * | 2010-12-30 | 2012-07-04 | 北京新媒传信科技有限公司 | 一种实现数据缓存的方法和装置 |
CN105824957A (zh) * | 2016-03-30 | 2016-08-03 | 电子科技大学 | 分布式内存列式数据库的查询引擎系统及查询方法 |
CN106294772A (zh) * | 2016-08-11 | 2017-01-04 | 电子科技大学 | 分布式内存列式数据库的缓存管理方法 |
CN106371887A (zh) * | 2016-11-08 | 2017-02-01 | 西安电子科技大学 | 一种msvl语言的编译系统及方法 |
CN106548049A (zh) * | 2016-12-09 | 2017-03-29 | 武汉斗鱼网络科技有限公司 | 一种代码处理方法和装置 |
US20170286079A1 (en) * | 2016-04-05 | 2017-10-05 | International Business Machines Corporation | LLVM-Based System C Compiler for Architecture Synthesis |
CN108536696A (zh) * | 2017-03-02 | 2018-09-14 | 塞纳德(北京)信息技术有限公司 | 一种数据库个性化自助查询平台和方法 |
US20190108003A1 (en) * | 2017-09-01 | 2019-04-11 | Shenzhen Qianhai Sourcebrella Inc. Ltd. | Defect detection method, device, system and computer readable medium |
-
2019
- 2019-05-13 CN CN201910394174.3A patent/CN110119275B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541927A (zh) * | 2010-12-30 | 2012-07-04 | 北京新媒传信科技有限公司 | 一种实现数据缓存的方法和装置 |
CN105824957A (zh) * | 2016-03-30 | 2016-08-03 | 电子科技大学 | 分布式内存列式数据库的查询引擎系统及查询方法 |
US20170286079A1 (en) * | 2016-04-05 | 2017-10-05 | International Business Machines Corporation | LLVM-Based System C Compiler for Architecture Synthesis |
CN106294772A (zh) * | 2016-08-11 | 2017-01-04 | 电子科技大学 | 分布式内存列式数据库的缓存管理方法 |
CN106371887A (zh) * | 2016-11-08 | 2017-02-01 | 西安电子科技大学 | 一种msvl语言的编译系统及方法 |
CN106548049A (zh) * | 2016-12-09 | 2017-03-29 | 武汉斗鱼网络科技有限公司 | 一种代码处理方法和装置 |
CN108536696A (zh) * | 2017-03-02 | 2018-09-14 | 塞纳德(北京)信息技术有限公司 | 一种数据库个性化自助查询平台和方法 |
US20190108003A1 (en) * | 2017-09-01 | 2019-04-11 | Shenzhen Qianhai Sourcebrella Inc. Ltd. | Defect detection method, device, system and computer readable medium |
Non-Patent Citations (2)
Title |
---|
MARCEL KORNACKER: ""Impala:A Modern,Open-Source SQL Engine for Hadoop"", 《CREATIVE COMMON ATTRIBUTION LICENSE》 * |
郑松: ""基于内存的分布式列式数据库缓存管理系统设计与实现"", 《中国优秀硕士学位论文全文数据库电子期刊 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111091612A (zh) * | 2019-10-09 | 2020-05-01 | 中国船舶重工集团公司第七0九研究所 | 一种抽象目标码架构的着色语言机器码生成方法及装置 |
CN111091612B (zh) * | 2019-10-09 | 2023-06-02 | 武汉凌久微电子有限公司 | 一种抽象目标码架构的着色语言机器码生成方法及装置 |
CN111580826A (zh) * | 2020-04-30 | 2020-08-25 | 腾讯科技(深圳)有限公司 | 机器学习模型的编译优化方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110119275B (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fan et al. | Parallelizing sequential graph computations | |
US8239847B2 (en) | General distributed reduction for data parallel computing | |
US9715373B2 (en) | Dynamic recompilation techniques for machine learning programs | |
US7984043B1 (en) | System and method for distributed query processing using configuration-independent query plans | |
US5325525A (en) | Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time | |
EP0459683B1 (en) | A system and method for database management supporting object-oriented programming | |
US8209664B2 (en) | High level programming extensions for distributed data parallel processing | |
WO2018120171A1 (zh) | 一种用于存储过程的执行方法、设备以及系统 | |
US20160239544A1 (en) | Collaborative planning for accelerating analytic queries | |
WO2017097160A1 (en) | System and method for caching and parameterizing ir | |
Navasca et al. | Gerenuk: Thin computation over big native data using speculative program transformation | |
JP2002525744A (ja) | テキスト・オブジェクトのコンパイル方法およびシステム | |
WO2014146024A1 (en) | Databases and methods of storing, retrieving, and processing data | |
US9740735B2 (en) | Programming language extensions in structured queries | |
WO2023124543A1 (zh) | 用于大数据的数据处理方法和数据处理装置 | |
CN110119275A (zh) | 一种分布式内存列式数据库编译执行器架构 | |
JP3808941B2 (ja) | 並列データベースシステム通信回数削減方法 | |
US20240095241A1 (en) | Data search method and apparatus, and device | |
Potter et al. | Dynamic data exchange in distributed RDF stores | |
Das et al. | A case for stale synchronous distributed model for declarative recursive computation | |
Lai et al. | {GLogS}: Interactive graph pattern matching query at large scale | |
Philippsen et al. | Locality optimization in JavaParty by means of static type analysis | |
Royuela Alcázar | High-level compiler analysis for OpenMP | |
US20240095249A1 (en) | Producing natively compiled query plans by recompiling existing c code through partial evaluation | |
Andres et al. | EDS—collaborating for a high performance parallel relational database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |