CN116710908A - 语义感知计算存储协调方法 - Google Patents
语义感知计算存储协调方法 Download PDFInfo
- Publication number
- CN116710908A CN116710908A CN202180087375.4A CN202180087375A CN116710908A CN 116710908 A CN116710908 A CN 116710908A CN 202180087375 A CN202180087375 A CN 202180087375A CN 116710908 A CN116710908 A CN 116710908A
- Authority
- CN
- China
- Prior art keywords
- semantic
- dag
- ndp
- distributed
- push
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000003860 storage Methods 0.000 title claims description 35
- 238000004364 calculation method Methods 0.000 title description 2
- 230000008447 perception Effects 0.000 title description 2
- 230000015654 memory Effects 0.000 claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 72
- 230000006870 function Effects 0.000 claims description 39
- 238000005192 partition Methods 0.000 claims description 15
- 238000013500 data storage Methods 0.000 claims description 9
- 230000003044 adaptive effect Effects 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000001902 propagating effect Effects 0.000 claims 1
- 238000007405 data analysis Methods 0.000 abstract description 4
- 238000005457 optimization Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000001914 filtration Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006722 reduction reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Operations Research (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于分布式计算机系统的数据分析的计算机实现方法包括:由分布式计算引擎从用户应用程序接收有向无环图(directed acyclic graph,DAG)计划;使用所述分布式计算引擎的查询分析器模块转换所述DAG计划的操作,其中,转换后DAG操作包括至少一个语义缓存操作和至少一个近数据处理(near data processing,NDP)下推操作;使用所述计算机系统的数据集群的NDP执行器模块执行所述NDP下推操作;对所述分布式计算引擎的分布式语义缓存存储器执行所述语义缓存操作;完成所述转换后DAG操作,并将完成的DAG计划的结果返回给所述用户应用程序。
Description
背景技术
在大数据处理环境中,多个数据处理引擎用于处理一组共享数据。该数据处理引擎包括计算资源和数据资源,数据处理通常包括计算系统和数据存储系统之间的数据处理流水线。当数据沿着数据管线移动时,不同的资源在不同的阶段对数据进行操作。这些系统要处理的数据量持续增长。随着数据规模的扩大,数据处理管线变得更加复杂,可能包括多层计算和存储。为了解决多个数据处理引擎的协调问题,计算系统和数据存储系统通常被分解。由于多个数据处理资源分配的复杂性,优化数据处理引擎的性能是一个挑战。
发明内容
现在描述各种示例,简单地介绍一些概念,在具体实施方式中会进一步描述这些概念。发明内容并非旨在确定请求保护的主题的关键或必要特征,也并非旨在限制请求保护的主题的范围。
根据本发明的一个方面,提供一种用于分布式计算机系统的数据分析的计算机实现方法。所述计算机系统包括数据存储设备的至少一个数据集群。所述方法包括由分布式计算引擎从用户应用程序接收有向无环图(directed acyclic graph,DAG)计划;使用所述分布式计算引擎的查询分析器模块转换所述DAG计划的操作,其中,转换后DAG操作包括至少一个语义缓存操作和至少一个近数据处理(near data processing,NDP)下推操作;使用所述数据集群的NDP执行器模块执行所述至少一个NDP下推操作;对所述分布式计算引擎的分布式语义缓存存储器执行所述至少一个语义缓存操作;完成所述转换后DAG操作,并将完成的DAG计划的结果返回给所述用户应用程序。
可选地,在前述方面中,该方面的另一实现方式提供:使用所述查询分析器模块将NDP下推原语操作合并到所述转换后DAG操作中;使用所述分布式计算引擎的查询执行器模块执行所述转换后DAG操作;将所述NDP下推原语操作推送到所述数据集群予以执行,并将结果返回给所述分布式计算引擎。
可选地,在上述任一方面中,该方面的另一实现方式提供:在子图中标识所述至少一个数据集群可执行的NDP下推操作;确定用于执行标识的NDP操作的成本函数值;根据确定的成本函数值,将标识的NDP下推操作包括在所述转换后DAG操作中。
可选地,在上述任一方面中,该方面的另一实现方式提供:搜索所述分布式语义缓存存储器的内容的语义信息;根据所述语义信息,使用所述查询分析器模块将语义感知缓存命令合并到所述转换后DAG操作中。
可选地,在前述方面中,该方面的另一实现方式提供:确定用于执行所述语义感知缓存命令的成本函数值;根据确定的成本函数值,将所述语义感知缓存命令包括在所述转换后DAG操作中。
可选地,在上述两个方面中的任一方面中,这些方面的另一实现方式提供:标识存储在所述分布式语义缓存存储器中的数据的元数据;根据标识的元数据,包括数据跳过缓存操作或自适应分区缓存操作中的至少一个操作。
可选地,在上述三个方面中的任一方面中,这些方面的另一实现方式提供标识存储在所述分布式语义缓存存储器中的中间数据的语义信息,所述语义感知缓存命令包括加载所述中间数据。
可选地,在上述四个方面中的任一方面中,这些方面的另一实现方式提供作为分布式多层语义缓存存储器的分布式语义缓存存储器,所述语义信息指示所述分布式多层语义缓存存储器的内容。
根据本发明的另一方面,提供一种分布式计算机系统。所述系统包括:至少一个数据集群,包括多个数据存储设备和近数据处理(near data processing,NDP)执行器模块;分布式语义缓存存储器;分布式计算引擎。所述分布式计算引擎包括多个处理节点、查询分析器模块和至少一个查询执行器模块。所述查询分析器模块用于从用户应用程序接收有向无环图(directed acyclic graph,DAG)计划,其中,所述DAG计划包括数据流操作和数据加载操作;将所述DAG计划的所述操作转换为包括至少一个语义缓存操作和至少一个近数据处理(near data processing,NDP)下推操作的转换后DAG操作。所述至少一个查询执行器模块用于将所述至少一个NDP下推操作传播到所述NDP执行器模块以供所述数据集群执行;对所述分布式计算引擎的分布式语义缓存存储器执行所述至少一个语义缓存操作;完成所述转换后DAG操作,并将完成的DAG计划的结果返回给所述用户应用程序。
可选地,在前述方面中,该方面的另一实现方式提供:查询分析器模块,用于将NDP下推原语操作合并到所述转换后DAG操作中;查询执行器模块,用于将所述NDP下推原语操作推送到所述数据集群予以执行,并接收所述NDP下推原语操作的结果。
可选地,在上述任一方面中,这些方面的另一实现方式提供查询分析器模块,所述查询分析器模块用于:在所述DAG计划的子图中标识所述数据集群可执行的NDP下推操作;确定用于执行标识的NDP操作的成本函数值;根据确定的成本函数值,将标识的NDP下推操作包括在所述转换后DAG操作中。
可选地,在上述任一方面中,这些方面的另一实现方式提供查询分析器模块,所述查询分析器模块用于:搜索所述分布式语义缓存存储器的内容的语义信息;根据搜索的语义信息,使用所述查询分析器模块将语义感知缓存命令合并到所述转换后DAG操作中。
可选地,在上述任一方面中,这些方面的另一实现方式提供查询分析器模块,所述查询分析器模块用于:确定用于执行所述语义感知缓存命令的成本函数值;根据确定的成本函数值,将所述语义感知缓存命令包括在所述转换后DAG操作中。
可选地,在上述任一方面中,这些方面的另一实现方式提供作为分布式多层语义缓存存储器的分布式语义缓存存储器,所述语义信息指示所述分布式多层语义缓存存储器的内容。
可选地,在前述方面中,该方面的另一实现方式提供分布式语义缓存存储器,所述分布式语义缓存存储器包括用于提供从所述查询分析器模块接收的缓存命中查询结果的语义缓存管理器模块。
根据本发明的另一方面,提供一种包括可执行指令的计算机可读存储介质,所述可执行指令在由分布式计算引擎的一个或多个处理节点执行时使所述分布式计算引擎执行以下动作,所述动作包括:从用户应用程序接收有向无环图(directed acyclic graph,DAG)计划;将所述DAG计划的操作转换为包括至少一个语义缓存操作和至少一个近数据处理(near data processing,NDP)下推操作;将所述至少一个NDP下推操作推送到数据集群予以执行,并接收所述NDP下推操作的结果;对所述分布式计算引擎的分布式语义缓存存储器执行所述至少一个语义缓存操作;完成转换后DAG操作,并将完成的DAG计划的结果返回给所述用户应用程序。
可选地,在前述方面中,该方面的另一实现方式提供包括可执行指令的计算机可读存储介质,所述可执行指令使所述分布式计算引擎执行以下动作,所述动作包括:在子图中标识所述数据集群可执行的NDP下推原语操作;确定用于执行标识的NDP原语操作的成本函数值;根据确定的成本函数值,将标识的NDP下推原语操作合并在所述转换后DAG操作中。
可选地,在上述任一方面中,该方面的另一实现方式提供包括可执行指令的计算机可读存储介质,所述可执行指令使所述分布式计算引擎执行以下动作,所述动作包括:搜索所述分布式语义缓存存储器的内容的语义信息;根据所述语义信息,将语义感知缓存命令合并到所述转换后DAG操作中。
可选地,在上述任一方面中,该方面的另一实现方式提供包括可执行指令的计算机可读存储介质,所述可执行指令使所述分布式计算引擎执行以下动作,所述动作包括:确定用于执行所述语义感知缓存命令的成本函数值;根据确定的成本函数值,将所述语义感知缓存命令包括在所述转换后DAG操作中。
附图说明
包括了示出示例性实施例的一些图,文字说明见具体实施方式。
图1为实现一个或多个示例性实施例的分布式计算系统的图解。
图2为实现一个或多个示例性实施例的数据处理系统的一部分的示例的框图。
图3为实现一个或多个示例性实施例的分布式计算机系统的数据分析方法的示例的流程图。
图4为实现一个或多个示例性实施例的查询分析器模块的示例的框图。
图5A-5C为示出实现一个或多个示例性实施例的分布式计算引擎的计算资源之间的通信的序列图。
图6为实现一个或多个示例性实施例的计算机系统的示意性框图。
具体实施方式
在以下描述中参考了形成本文一部分的附图,在附图中,以图解方式示出可实践的具体实施例。这些实施例进行了足够详细的描述以使本领域技术人员能够实践本发明,应理解,可利用其它实施例,并且在不脱离本发明范围的情况下可进行结构、逻辑和电更改。因此,以下示例性实施例的描述不具有限制意义,本发明的范围由所附权利要求书限定。
在一个实施例中,本文描述的功能或算法可在软件中实现。该软件可由存储于例如一个或多个非瞬时性存储器或其它类型的基于硬件的本地或联网存储设备等计算机可读介质或计算机可读存储设备中的计算机可执行指令组成。此外,这些功能对应于可以是软件、硬件、固件或其任意组合的模块。多个功能可以根据需要在一个或多个模块中执行,所描述的实施例仅仅是示意性的。软件可在数字信号处理器、专用集成电路(application-specific integrated circuit,ASIC)、微处理器或在计算机系统上运行的其它类型的处理器上执行,所述计算机系统例如个人计算机、服务器或其它计算机系统,从而将此类计算机系统变成具体编程的机器。
该功能可用于使用例如软件、硬件、固件等执行操作。例如,短语“用于”可指用于实现关联功能的硬件元件的逻辑电路结构。短语“用于”还可指用于实现固件或软件的关联功能的编码设计的硬件元件的逻辑电路结构。术语“模块”是指可使用任何合适的硬件(例如,处理器等)、软件(例如,应用程序等)、固件或硬件、软件和固件的任何组合来实现的结构元件。术语“逻辑”包括执行任务的任何功能。例如,流程图中所示的每个操作都对应于执行该操作的逻辑。操作可使用软件、硬件、固件等执行。术语“组件”、“系统”等可指计算机相关实体、硬件、执行中的软件、固件或其组合。组件可以是处理器上运行的进程、对象、执行、程序、函数、子例程、计算机或软件和硬件的组合。术语“处理器”可指硬件组件,例如计算机系统的处理单元。
此外,所要求保护的主题可实现为使用标准编程和工程技术产生软件、固件、硬件或其任何组合以控制计算设备实现所公开的主题的方法、设备或制造品。本文中使用的术语“制造品”旨在包括可从任何计算机可读存储设备或介质访问的计算机程序。计算机可读存储介质可包括但不限于磁存储设备,例如硬盘、软盘、磁条、光盘、光碟(compact disk,CD)、数字多功能磁盘(digital versatile disk,DVD)、智能卡、闪存设备等。相反,计算机可读介质(即,不限于存储介质)还可包括通信介质,例如用于无线信号的传输介质等。
数据处理系统包括计算资源(例如,处理单元)和数据存储资源(例如,各种形式的存储器单元)。多个计算和数据资源可包括在设备的一个集群中。正在处理的所有数据均可用于集群中的所有设备。随着要处理的数据量的持续增长,一些方法将系统分解为多个集群,以分解系统。
图1为数据处理系统的图解。该数据处理系统是分布式计算系统,包括多个分析集群或计算集群,以及一个或多个数据集群。分析集群102包括分析服务器104、缓存服务器106和用于在服务器之间传送数据的集群网络108。数据集群110可以是数据湖集群。数据湖可以是结构化或非结构化数据的集中式大规模存储库。数据集群110包括存储服务器112。
数据流水线用于提高数据处理的效率,但随着要处理的数据量的增长,数据处理管线变得更加复杂。复杂的数据处理管线可包括多层数据,包括计算层、缓存层和存储层。手动规划数据处理解决方案中集群角色的编排需要用户付出大量努力,而结果可能不是最高效或优化解决方案。一个改进是在整体观上自动优化数据处理系统的整体性能。这种方法应为选择和排序系统集群角色的自动决策过程制定最佳做法,并应限定应用程序、计算集群、数据集群和存储之间的交互和信息传递。
图2为数据处理系统的一部分的示例的框图。图2的示例示出一个分析集群202、一个数据集群210和分布式语义缓存存储器206的一部分。该系统在分析集群与数据集群之间添加包括分布式计算引擎的逻辑层220。220中的系统元件可在逻辑层220内部实现,或者可在系统的上游或下游实现或部署。分布式计算引擎包括多个处理节点(例如,主控节点222和一个或多个工作节点224)。处理节点包括处理电路(例如,一个或多个处理单元)、存储器以及具有由处理电路执行的指令的一个或多个应用程序。处理节点可包括执行所述功能的模块。
逻辑层220具有语义知识,以实现大数据处理应用的查询分析和执行的端到端优化。语义知识是关于数据内容如何形成的知识,不一定是内容本身的值。逻辑层220支持向逻辑层220发送查询的各种大数据应用。
逻辑层220的分布式计算引擎使用数据的语义知识的收集和存储来标识用户查询的近数据处理(near data processing,NDP)能力和语义缓存能力。分布式计算引擎将来自用户应用程序的查询划分为任务、分析任务,并通过将任务划分为子任务来导出转换后计划,这些子任务整体使用系统的功能,例如NDP和语义缓存,以实现任务的全局优化。例如,查询请求可以是限定数据处理中数据的非循环流的有向无环图(directed acyclicgraph,DAG)计划的形式,并且分布式计算引擎可从DAG计划生成子图(例如,有向树)。接收到的DAG计划会根据语义缓存和NDP的整体知识自动优化。
图3为用于分布式计算机系统的数据分析方法的示例的流程图。该方法可使用图2的分布式计算机系统来实现。在框302,从用户应用程序接收DAG计划。在框304,分析DAG计划。图2的系统的分布式计算引擎包括主控节点222中的查询或任务分析器模块。查询分析器模块226分析DAG计划以标识子图,将针对这些子图收集数据访问信息。数据访问是对分布式语义缓存存储器206和系统存储器212的访问。
图4是在主控处理节点(例如,图2的主控节点222)中实现的查询分析器模块426的示例的框图,该查询分析器模块可用于分析关于图3的框304描述的DAG计划。查询分析器模块426分析从用户应用程序传递过来的DAG计划,生成执行计划以优化该DAG计划(例如,使用查询计划生成器445和DAG处理器447中的一个或两个)并完成DAG操作。优化基于计算和数据集群的计算能力以及计划的成本(例如,在完成时间、使用的处理资源、使用的存储资源等方面)中的一个或两个。
生成的优化计划标识出具有应缓存的数据的子查询或子图、哪些子图具有应缓存的数据以及数据应缓存多久。查询分析器模块426包括语义缓存接口442,并保持与图2中语义缓存管理器242的连接。语义缓存管理器242给出来自查询分析器模块426的语义缓存命中查询的结果或可能的语义缓存条目的列表。可与语义缓存管理器和查询分析器交换数据净荷,包括子图标识符(subgraph identifier,ID)和子图结果。控制净荷可包括子图ID缓存方向。
优化的计划还标识出可卸载到系统存储侧进行近数据处理的子图。除了语义缓存和近数据处理之外,一些优化方法包括查询分析器模块426使用加速器管理器444确定哪些子图应使用处理加速器。查询分析器模块426存储优化策略448和知识库446。NDP信息可通过NDP接口443接收。知识库446可指示数据集群的NDP能力和分布式语义缓存的能力。
返回到图3的决策框306,查询分析器模块确定是否应使用语义缓存操作。语义缓存操作的一些示例包括自适应分区、数据跳过以及中间数据存储和加载(例如,从分布式语义缓存存储器)。自适应分区是根据工作负载特征动态重组数据的过程。例如,如果存在具有过滤操作的许多作业,该过滤操作涉及具有特定属性值的数据,则根据属性值将数据排序和拆分成新的分区可能是有益的。初始数据重新排序到可存储在分布式缓存中的新分区中。由于已知新分区中的所有数据都具有该属性,不再执行标识具有该属性的数据所需的过滤和映射操作,因此节省了处理资源。然而,因重新分区数据所致的额外开销在额外存储空间和计算方面可能相当大。
数据跳过是维护存储数据的次级分区属性信息的过程。用于次级分区属性值的数据结构的一些示例包括:
1.每个分区的数字属性的最小值/最大值;
2.单个分区内的类别属性的所有值的列表;
3.单个分区内的属性值的布隆过滤器(Bloom filter)。
如果数据跳过信息确保消除分区不会导致DAG或子图结果不同,则可(例如,由查询分析器)删减该分区。例如,如果已知某些分区没有受关注属性,则可从数据处理中删减这些分区。数据跳过信息可存储为数据跳过元数据。由于删减的分区无需进行过滤和映射,因此节省了处理资源。
中间数据缓存是分布式计算引擎存储操作结果的过程。数据可能未被分布式计算引擎完全处理,但其他操作能够使用此中间结果,从而允许再使用该数据。例如,第一DAG或子图可使用过滤操作从存储的未处理数据获取记录。第二DAG或子图可使用相同的过滤操作。如果过滤操作的结果存储在缓存中,则第二操作可加载数据而无需执行过滤操作。存储并从语义缓存加载中间结果可免去与重新执行操作相关的处理。
此外,在框306,查询分析器可使用成本函数来确定语义感知缓存操作是否应包括在优化的DAG计划或优化的子图中。成本可基于完成DAG所需的时间和子图使用的资源(例如,存储量、所需的处理器数量等)等参数。
在示例中,成本函数可确定为
成本=存储成本估计(推送计划)+计算成本估计(推送计划)+α·大小估计(推送计划),
其中,推送计划是推送到查询分析器进行优化的部分DAG计划或子图,α是可定制参数(例如,可由系统管理员定制)。在框308,查询分析器查询语义缓存,以寻找将传统缓存存储操作转换为传送语义信息的相应语义感知缓存操作的机会,并实现包括上述三种技术中的至少一种技术的技术,上述三种技术为:自适应分区、数据跳过元数据和中间数据。语义感知操作的一些示例包括:
存储→(重新分区(源路径,属性,输出路径,层),
数据跳过元数据(源路径,属性,输出路径,层),
中间数据(输入DAG,输出路径,层))
加载→优化(输入DAG)
逐出→删除(路径,层)。
如图2的示例所示,语义缓存存储器可以是分布式多层语义缓存存储器。这些层包括作为最高层的内存缓存230、作为中间层的存储缓存232和作为最低层的存储器234。最高层提供最快的结果,最低层提供结果最慢。如上文示例所示,语义信息可包括层信息。
在框310,查询分析器确定分布式语义缓存中的数据是否全都是完成转换后DAG计划所需的。如果是,则在框312从分布式语义缓存存储器206收集数据。完成转换后的子图操作和DAG计划操作,并将DAG计划的结果返回给用户。这些操作可由图2的一个或多个工作节点224的查询执行器模块236完成。如果在框310处确定分布式语义缓存中的数据不足以完成DAG计划或不足以充分优化DAG计划,则在314处,查询分析器模块226收集缓存数据上的元数据,并将子图转换为包括基于语义感知数据跳过和自适应分区技术的任务。
在框316,查询分析器模块226检查数据的知识库以获得NDP下推机会。查询分析器模块226可检查数据集群210的计算机服务的注册表。根据数据集群210的能力,查询分析器模块226可将子图中的操作(例如,投影、聚合、分组、用户定义函数等)转换为NDP下推操作,以便由数据集群处理。优化的计划可包括利用NDP机会或仅检索数据的决定。例如,查询分析器模块226可能希望执行非NDP操作以从存储器检索数据,并在分布式语义缓存中创建数据的物化视图以备将来使用。
查询分析器模块226可在转换的子图操作中包括NDP下推原语操作(例如,过滤、映射、归约、投影、聚合分组等)。查询执行器模块236执行优化的子图,并包括NDP客户端应用程序或NDP客户端238以将NDP操作传播到数据集群予以执行。数据集群210包括NDP执行器240,该NDP执行器包括能够执行从查询执行器模块236接收的NDP下推操作的处理电路。
下推操作的近数据处理减少了分布式计算引擎进行后续操作所需的数据量,从而减少存储侧和计算侧的集群之间需要传输的数据量。这还减少了计算侧所需的内存存储量。
回到图3,在框318,查询分析器模块可使用成本函数来确定数据集群可执行的NDP下推操作是否应包括在优化的DAG计划或优化的子图中。在示例中,通过用于确定语义感知缓存操作成本的相同方法计算出NDP下推操作的成本函数值。如果确定的成本函数值不是太大并且低于预定成本阈值,标识的NDP下推操作会包括在转换后DAG计划操作中。
在320处,查询分析器模块226形成执行计划。该执行计划是优化的DAG计划,包括针对数据处理系统能力的整体方法。优化的计划协调NDP下推原语和例如数据跳过和自适应分区等语义感知缓存操作的执行。优化的计划可以是DAG计划的优化子图,也可以是完整的优化DAG计划。
在322处,查询分析器模块226根据查询分析器模块226的优化策略将优化计划发送到一个或多个查询执行器模块236。在324,合并子图的操作结果并完成DAG计划的任何最终操作,以生成DAG计划的结果。在一些方面,子图的NDP操作结果与子图的语义感知缓存操作结果合并,这些子图的结果是用于DAG计划的进一步操作的中间结果。完成的DAG计划的结果返回给用户应用程序。
图5A-5C为示出图2系统的分布式计算引擎的计算资源之间的通信的序列图。这些资源包括查询分析器526、分布式语义缓存存储器506、查询执行器536、NDP客户端538和数据集群提供的NDP服务540。NDP服务540执行从计算侧卸载到存储侧的操作的计算服务。NDP服务540可包括在图2的NDP执行器240中。
图5A的示例示出用于优化DAG计划的缓存操作的优化流程。驱动器502可以是图2的分析集群202中的任何驱动器。驱动器502确定要发送到分布式计算引擎的查询分析器526的候选查询计划550,并将逻辑DAG计划552发送到查询分析器526。查询分析器解析逻辑DAG计划。在一些方面,查询分析器526通过将传统缓存操作转换为语义感知缓存操作来优化逻辑DAG计划。在图5A的示例中,查询分析器526将解析的逻辑DAG计划发送到分布式语义缓存存储器506。分布式语义缓存存储器506的语义缓存管理器优化解析的逻辑DAG计划的缓存操作,并将传统缓存操作转换为语义感知缓存操作(例如,包括基于数据跳过和自适应分区的任务,如关于图3的示例所述)。所得优化逻辑DAG计划可包括数据分区信息。将优化的逻辑DAG计划554返回给查询分析器526。
图5B和5C为示出通过将NDP下推操作合并到DAG计划中来优化DAG计划的优化流程的序列图。查询分析器526从分布式语义缓存存储器506接收优化的逻辑DAG计划,在图5B中将优化的逻辑DAG计划转换为包括NDP下推操作,并将优化的逻辑DAG计划转换为包括多个任务的物理DAG计划。将物理DAG计划556发送到查询执行器536予以执行。查询执行器536可远离查询分析器526,而查询分析器526与查询执行器536之间的通信通过云进行。物理DAG计划可包括加速指令和NDP DAG操作。查询执行器536解析物理DAG,并将NDP DAG操作558发送到NDP客户端538。
在图5C中,NDP客户端538向NDP服务540发送请求560。这些请求包括对NDP操作的请求。在图5B和5C的示例中,查询执行器536的传输层将请求作为超文本传输协议(Hypertext Transfer Protocol,HTTP)请求发送到数据集群的NDP服务。NDP服务发送对请求的响应562,包括处理后的数据。NDP客户端538解析和转换响应,并将NDP操作和状态的结果564发送到查询执行器536。查询执行器536执行物理DAG计划的其余部分,并将结果566发送到查询分析器526。查询分析器526累积来自语义感知缓存操作和来自查询执行器536的子图的结果,并将查询计划的结果568发送到驱动器502。
本文描述的方法、系统和设备提供了智能逻辑层,用于优化大数据查询,同时最小化所需的用户交互。用户应用程序将语义DAG计划发送到逻辑层,数据的语义知识用于提供DAG计划的端到端优化。语义知识提供了一种整体方法,可使用语义缓存、近数据处理、硬件加速和其他优化将DAG计划任务划分为子任务,以最好地利用这些功能。
图6为用于执行根据示例性实施例的方法和算法的计算机600的示意性框图。不需要在各个实施例中使用所有组件。一个示例是可包括处理单元602、存储器603、可移动存储器610和不可移动存储器612的计算设备。尽管示例性计算设备图示和描述为计算机600,但该计算设备在不同的实施例中可呈不同形式。例如,该计算设备可以是服务器、路由器或虚拟路由器。
尽管各种数据存储元件示为计算机600的一部分,但存储器还可包括或可选地包括可通过例如互联网或基于服务器的存储器等网络访问的基于云的存储器。还请注意,SSD可包括可运行解析器的处理器,从而允许通过SSD与主存储器之间的I/O通道传输解析的、过滤的数据。
存储器603可包括易失性存储器614和非易失性存储器608。计算机600可包括例如易失性存储器614、非易失性存储器608、可移动存储器610和不可移动存储器612等各种计算机可读介质,或可访问包括各种计算机可读介质的计算环境。计算机存储器包括随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)或电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、闪存或其它存储器技术、只读光盘存储器(compact disc read-only memory,CD ROM)、数字通用光盘(digital versatile disk,DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储器或其它磁存储设备,或能够存储计算机可读指令的任何其它介质。
计算机600可以包括或可以访问计算环境,该计算环境包括输入接口606、输出接口604和通信接口616。输出接口604可以包括显示设备,例如触摸屏,其也可以用作输入设备。输入接口606可包括触摸屏、触摸板、鼠标、键盘、摄像头、一个或多个设备专用按钮、集成在计算机600内或通过有线或无线数据连接耦合到该计算机的一个或多个传感器以及其它输入设备中的一个或多个。计算机600可在联网环境中运行,使用通信连接连接到一个或多个远程计算机,如数据库服务器。远程计算机可包括个人计算机(personal computer,PC)、服务器、路由器、网络PC、对等设备或其它常见数据流网络交换机等。通信连接可包括局域网(local area network,LAN)、广域网(wide area network,WAN)、蜂窝网、Wi-Fi、蓝牙或其它网络。根据一个实施例,计算机600的各种组件与系统总线620连接。
存储在计算机可读介质上的计算机可读指令可由计算机600的处理单元602执行,例如程序618。在一些实施例中,程序618包括用于实现本文描述的一个或多个方法的软件。硬盘驱动、CD-ROM和RAM是包括存储设备等非瞬时性计算机可读介质的一些制品示例。术语计算机可读介质和存储设备不包括被认为过于瞬时的载波。存储器还可以包括联网存储器,如存储区域网络(storage area network,SAN)。计算机程序618可用于使处理单元602执行本文描述的一个或多个方法或算法。在一些示例中,计算机600是分布式计算引擎的主控处理节点,并且计算机程序实现查询分析器模块,例如图2的查询分析器模块226。
虽然上文详细描述了几个实施例,但也可以进行其它修改。例如,在图中描述的逻辑流程不需要所示的特定顺序或连续顺序来达到期望的结果。可以提供其它步骤,也可以从所描述的流程中删除步骤,并可以在所描述的系统中添加或移除其它组件。其它实施例可以在所附权利要求书的范围内。
Claims (20)
1.一种由分布式计算机系统执行的方法,其特征在于,所述分布式计算机系统包括分布式计算引擎和数据存储设备的至少一个数据集群,所述方法包括:
由所述分布式计算引擎从用户应用程序接收有向无环图(directed acyclic graph,DAG)计划;
使用所述分布式计算引擎的查询分析器模块转换所述DAG计划的操作,其中,转换后DAG操作包括至少一个语义缓存操作和至少一个近数据处理(near data processing,NDP)下推操作;
使用所述至少一个数据集群的NDP执行器模块执行所述至少一个NDP下推操作;
使用所述分布式计算引擎的处理节点对所述分布式计算引擎的分布式语义缓存存储器执行所述至少一个语义缓存操作;
使用所述分布式计算引擎完成所述转换后DAG操作,并将完成的DAG计划的结果返回给所述用户应用程序。
2.根据权利要求1所述的方法,其特征在于,所述执行所述至少一个NDP下推操作包括:
使用所述查询分析器模块将NDP下推原语操作合并到所述转换后DAG操作中;
使用所述分布式计算引擎的查询执行器模块执行所述转换后DAG操作;
将所述NDP下推原语操作推送到所述数据集群予以执行,并将结果返回给所述分布式计算引擎。
3.根据权利要求1或2所述的方法,其特征在于,所述合并所述NDP下推原语操作包括:
在子图中标识所述至少一个数据集群可执行的NDP下推操作;
确定用于执行标识的NDP操作的成本函数值;
根据确定的成本函数值,将标识的NDP下推操作包括在所述转换后DAG操作中。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述执行所述至少一个语义缓存操作包括:
搜索所述分布式语义缓存存储器的内容的语义信息;
根据所述语义信息,使用所述查询分析器模块将语义感知缓存命令合并到所述转换后DAG操作中。
5.根据权利要求4所述的方法,其特征在于,所述合并所述语义感知缓存命令包括:
确定用于执行所述语义感知缓存命令的成本函数值;
根据确定的成本函数值,将所述语义感知缓存命令包括在所述转换后DAG操作中。
6.根据权利要求4或5所述的方法,其特征在于,包括:
标识存储在所述分布式语义缓存存储器中的数据的元数据;
根据标识的元数据,包括数据跳过缓存操作或自适应分区缓存操作中的至少一个操作。
7.根据权利要求4-6中任一项所述的方法,其特征在于,所述语义信息标识存储在所述分布式语义缓存存储器中的中间数据,所述语义感知缓存命令包括加载所述中间数据。
8.根据权利要求4-7中任一项所述的方法,其特征在于,所述分布式语义缓存存储器为分布式多层语义缓存存储器,所述语义信息指示所述分布式多层语义缓存存储器的内容。
9.一种分布式计算机系统,其特征在于,所述系统包括:
至少一个数据集群,包括多个数据存储设备和近数据处理(near data processing,NDP)执行器模块;
分布式语义缓存存储器;
分布式计算引擎,包括:
多个处理节点;
查询分析器模块,用于:
从用户应用程序接收有向无环图(directed acyclic graph,DAG)计划,其中,所述DAG计划包括数据流操作和数据加载操作;
将所述DAG计划的所述操作转换为包括至少一个语义缓存操作和至少一个近数据处理(near data processing,NDP)下推操作的转换后DAG操作;
至少一个查询执行器模块,用于:
将所述至少一个NDP下推操作传播到所述NDP执行器模块以供所述数据集群执行;
对所述分布式计算引擎的所述分布式语义缓存存储器执行所述至少一个语义缓存操作;
完成所述转换后DAG操作,并将完成的DAG计划的结果返回给所述用户应用程序。
10.根据权利要求9所述的系统,其特征在于
所述查询分析器模块用于将NDP下推原语操作合并到所述转换后DAG操作中;
所述查询执行器模块用于将所述NDP下推原语操作推送到所述数据集群予以执行,并接收所述NDP下推原语操作的结果。
11.根据权利要求9或10所述的系统,其特征在于,所述查询分析器模块用于:
在所述DAG计划的子图中标识所述数据集群可执行的NDP下推操作;
确定用于执行标识的NDP操作的成本函数值;
根据确定的成本函数值,将标识的NDP下推操作包括在所述转换后DAG操作中。
12.根据权利要求9-11中任一项所述的系统,其特征在于,所述查询分析器模块用于:
搜索所述分布式语义缓存存储器的内容的语义信息;
根据搜索的语义信息,使用所述查询分析器模块将语义感知缓存命令合并到所述转换后DAG操作中。
13.根据权利要求12所述的系统,其特征在于,所述查询分析器模块用于:
确定用于执行所述语义感知缓存命令的成本函数值;
根据确定的成本函数值,将所述语义感知缓存命令包括在所述转换后DAG操作中。
14.根据权利要求12或13所述的系统,其特征在于,所述分布式语义缓存存储器为分布式多层语义缓存存储器,所述语义信息指示所述分布式多层语义缓存存储器的内容。
15.根据权利要求14所述的系统,其特征在于,所述分布式语义缓存存储器包括用于提供从所述查询分析器模块接收的缓存命中查询结果的语义缓存管理器模块。
16.一种包括可执行指令的计算机可读存储介质,其特征在于,所述可执行指令在由分布式计算引擎的一个或多个处理节点执行时使所述分布式计算引擎执行以下动作,所述动作包括:
从用户应用程序接收有向无环图(directed acyclic graph,DAG)计划;
将所述DAG计划的操作转换为包括至少一个语义缓存操作和至少一个近数据处理(near data processing,NDP)下推操作;
将所述至少一个NDP下推操作推送到数据集群予以执行,并接收所述NDP下推操作的结果;
对所述分布式计算引擎的分布式语义缓存存储器执行所述至少一个语义缓存操作;
完成转换后DAG操作,以生成所述DAG计划的结果;
将所述结果返回给所述用户应用程序。
17.根据权利要求16所述的计算机可读存储介质,其特征在于,包括使所述分布式计算引擎执行以下动作的指令,所述动作包括:
将NDP下推原语操作合并到所述转换后DAG操作中;
将所述NDP下推原语操作推送到所述数据集群予以执行;
接收所述NDP下推原语操作的结果;
使用接收到的结果完成所述转换后DAG操作。
18.根据权利要求17所述的计算机可读存储介质,其特征在于,包括使所述分布式计算引擎执行以下动作的指令,所述动作包括:
在子图中标识所述数据集群可执行的NDP下推原语操作;
确定用于执行标识的NDP原语操作的成本函数值;
根据确定的成本函数值,将标识的NDP下推原语操作合并在所述转换后DAG操作中。
19.根据权利要求16-19中任一项所述的计算机可读存储介质,其特征在于,包括使所述分布式计算引擎执行以下动作的指令,所述动作包括:
搜索所述分布式语义缓存存储器的内容的语义信息;
根据所述语义信息,将语义感知缓存命令合并到所述转换后DAG操作中。
20.根据权利要求19所述的计算机可读存储介质,其特征在于,包括使所述分布式计算引擎执行以下动作的指令,所述动作包括:
确定用于执行所述语义感知缓存命令的成本函数值;
根据确定的成本函数值,将所述语义感知缓存命令包括在所述转换后DAG操作中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/015063 WO2022164421A1 (en) | 2021-01-26 | 2021-01-26 | Method of semantic-aware compute-storage coordination |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116710908A true CN116710908A (zh) | 2023-09-05 |
Family
ID=74669541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180087375.4A Pending CN116710908A (zh) | 2021-01-26 | 2021-01-26 | 语义感知计算存储协调方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116710908A (zh) |
WO (1) | WO2022164421A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10572481B1 (en) * | 2018-03-26 | 2020-02-25 | Jeffrey M. Gunther | System and method for integrating health information sources |
US11144548B2 (en) * | 2018-04-24 | 2021-10-12 | Dremio Corporation | Optimized data structures of a relational cache with a learning capability for accelerating query execution by a data system |
-
2021
- 2021-01-26 WO PCT/US2021/015063 patent/WO2022164421A1/en active Application Filing
- 2021-01-26 CN CN202180087375.4A patent/CN116710908A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022164421A1 (en) | 2022-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11888702B2 (en) | Intelligent analytic cloud provisioning | |
US11922221B2 (en) | System and method for automatic dependency analysis for use with a multidimensional database | |
US11675785B2 (en) | Dynamic asynchronous traversals for distributed graph queries | |
US11423082B2 (en) | Methods and apparatus for subgraph matching in big data analysis | |
CN107239335B (zh) | 分布式系统的作业调度系统及方法 | |
JP6117378B2 (ja) | 分散型データベースクエリ・エンジン用のシステムおよび方法 | |
Verma et al. | Big data management processing with Hadoop MapReduce and spark technology: A comparison | |
CN109815283B (zh) | 一种异构数据源可视化查询方法 | |
US12001425B2 (en) | Duplication elimination in depth based searches for distributed systems | |
CN107038161B (zh) | 一种用于过滤数据的设备及方法 | |
JP2022505545A (ja) | ナレッジグラフのパーティション分割 | |
EP3251034A1 (en) | Query optimization adaptive to system memory load for parallel database systems | |
CA2912420C (en) | Managing memory and storage space for a data operation | |
US11657069B1 (en) | Dynamic compilation of machine learning models based on hardware configurations | |
US8938443B2 (en) | Runtime optimization of spatiotemporal events processing | |
US12026162B2 (en) | Data query method and apparatus, computing device, and storage medium | |
Gupta et al. | Map-based graph analysis on MapReduce | |
US11841857B2 (en) | Query efficiency using merged columns | |
CN116710908A (zh) | 语义感知计算存储协调方法 | |
JP7211255B2 (ja) | 検索処理プログラム、検索処理方法及び情報処理装置 | |
US12235822B2 (en) | Relationship analysis using vector representations of database tables | |
US20240394254A1 (en) | Unified query optimization for scale-out query processing | |
CN116710898A (zh) | 数据分析下推操作的自动选择 | |
Alsayoud et al. | Index selection on MapReduce relational-databases | |
WO2024243112A1 (en) | Unified query optimization for scale-out query processing |
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 |