(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{606:function(e,t,a){"use strict";a.r(t);var r=a(68),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"queryengine"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#queryengine"}},[e._v("#")]),e._v(" QueryEngine")]),e._v(" "),a("img",{staticStyle:{width:"100%","max-width":"800px","max-height":"600px","margin-left":"auto","margin-right":"auto",display:"block"},attrs:{src:"https://user-images.githubusercontent.com/19167280/73625242-f648a100-467e-11ea-921c-b954a3ecae7a.png"}}),e._v(" "),a("h2",{attrs:{id:"design-ideas"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#design-ideas"}},[e._v("#")]),e._v(" Design ideas")]),e._v(" "),a("p",[e._v("The query engine is responsible for parsing all user commands, generating plans, delivering them to the corresponding executors, and returning result sets.")]),e._v(" "),a("h2",{attrs:{id:"related-classes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#related-classes"}},[e._v("#")]),e._v(" Related classes")]),e._v(" "),a("ul",[a("li",[a("p",[e._v("org.apache.iotdb.db.service.TSServiceImpl")]),e._v(" "),a("p",[e._v("IoTDB server-side RPC implementation, which directly interacts with the client.")])]),e._v(" "),a("li",[a("p",[e._v("org.apache.iotdb.db.qp.Planner")]),e._v(" "),a("p",[e._v("Parse SQL, generate logical plans, optimize logical plans, and generate physical plans.")])]),e._v(" "),a("li",[a("p",[e._v("org.apache.iotdb.db.qp.executor.PlanExecutor")]),e._v(" "),a("p",[e._v("Distribute the physical plan to the corresponding actuators, including the following four specific actuators.")]),e._v(" "),a("ul",[a("li",[e._v("MManager: Metadata operations")]),e._v(" "),a("li",[e._v("StorageEngine: Data write")]),e._v(" "),a("li",[e._v("QueryRouter: Data query")]),e._v(" "),a("li",[e._v("LocalFileAuthorizer: Permission operation")])])]),e._v(" "),a("li",[a("p",[e._v("org.apache.iotdb.db.query.dataset.*")]),e._v(" "),a("p",[e._v("The batch result set is returned to the client and contains part of the query logic.")])])]),e._v(" "),a("h2",{attrs:{id:"query-process"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#query-process"}},[e._v("#")]),e._v(" Query process")]),e._v(" "),a("ul",[a("li",[e._v("SQL parsing")]),e._v(" "),a("li",[e._v("Generate logical plans")]),e._v(" "),a("li",[e._v("Generate physical plans")]),e._v(" "),a("li",[e._v("Constructing a result set generator")]),e._v(" "),a("li",[e._v("Returning result sets in batches")])]),e._v(" "),a("h2",{attrs:{id:"related-documents"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#related-documents"}},[e._v("#")]),e._v(" Related documents")]),e._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/SystemDesign/QueryEngine/Planner.html"}},[e._v("Query Plan Generator")])],1),e._v(" "),a("li",[a("RouterLink",{attrs:{to:"/SystemDesign/QueryEngine/PlanExecutor.html"}},[e._v("PlanExecutor")])],1)])])}),[],!1,null,null,null);t.default=s.exports}}]);