(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{610:function(e,t,a){"use strict";a.r(t);var r=a(70),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://github.com/thulab/iotdb/files/6087969/query-engine.pdf"}}),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}}]);