blob: eafca5f1111d43cddf363a6c33150960f519938e [file] [log] [blame]
(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}}]);