Skip to content

Commit 7b0436c

Browse files
authored
docs: added all english translated docs in reference as folder (#2118)
1 parent c748d58 commit 7b0436c

File tree

70 files changed

+7538
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+7538
-0
lines changed
102 KB
Loading
32.2 KB
Loading
27.5 KB
Loading
39.2 KB
Loading

docs/en/reference/arch/index.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
=============================
2+
Architecture
3+
=============================
4+
5+
6+
.. toctree::
7+
:maxdepth: 1
8+
9+
online_arch
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Online Module Architecture
2+
3+
## 1. Overview
4+
5+
The main modules of OpenMLDB's online architecture include Apache ZooKeeper, nameserver, and tablets (further including SQL engine and storage engine). The following figure shows the relationship between these modules. Among them, tablets are the core modules of the entire OpenMLDB storage and computing, and also modules that consume more resources; ZooKeeper and nameserver are mainly used for auxiliary functions, such as metadata management and high availability. The function of each module will be described in detail below.
6+
![image-20220316160612968](images/architecture.png)
7+
8+
9+
## 2. Apache ZooKeeper
10+
OpenMLDB relies on ZooKeeper for service discovery and metadata storage and management functions. There will be interaction between ZooKeeper and OpenMLDB SDK, tablets, namesever for distributing and updating metadata.
11+
12+
## 3. Nameserver
13+
Nameserver is mainly used for tablet management and failover. When a tablet node goes down, the nameserver triggers a series of tasks to perform a failover, and when the node recovers, it reloads the data into the node. In order to ensure the high availability of the nameserver itself, the nameserver will deploy multiple instances during deployment at the same time. The namesaver will then use the primary/secondary node deployment mode, with only be one primary node at the same time. Multiple nameservers implement the preemption of the primary node through ZooKeeper. Therefore, if the current primary node unexpectedly goes offline, the secondary node will use ZooKeeper to elect a node to become the primary node again.
14+
15+
## 4. Tablets
16+
Tablet is used by OpenMLDB to execute SQL and data storage, and it is also the core of the entire OpenMLDB function implementation and the bottleneck of resource consumption. From a functional point of view, Tablet includes two modules: SQL engine and storage engine. Tablet is also the smallest configurable granularity of OpenMLDB deployment resources. A tablet cannot be split across multiple physical nodes; however, there can be multiple tablets on a single physical node.
17+
18+
### 4.1 SQL Engine
19+
The SQL engine is responsible for executing SQL query calculations. The execution process after the SQL engine receives the request of the SQL query is shown in the following figure:
20+
![img](images/sql_engine.png)
21+
The SQL engine parses SQL into an AST syntax tree through [ZetaSQL](https://github.com/4paradigm/zetasql). Because we have added special SQL syntax for feature engineering extensions such as `LAST JOIN`, `WINDOW UNION`, etc., the open source ZetaSQL has been optimized. After a series of compilation transformation, optimization, and LLVM-based codegen as shown in the figure above, the execution plan is finally generated. Based on the execution plan, the SQL engine obtains the storage layer data through the catalog to perform the final SQL execution operation. In the distributed version, a distributed execution plan is generated, and the execution task is sent to other tablet nodes for execution. Currently, the SQL engine of OpenMLDB adopts the push mode, which distributes tasks to the nodes where the data is located for execution instead of pulling the data back. This has the benefit of reducing data transfers.
22+
23+
### 4.2 Stoage Engine
24+
The Storage engine is responsible for the storage of OpenMLDB data and supports the corresponding high-availability-related functions.
25+
26+
#### Data Distribution
27+
OpenMLDB Cluster Edition is a distributed database. The data of a table will be partitioned, and multiple copies will be created, and finally distributed in different nodes. Two important concepts are explained here: replicas and partitioning.
28+
29+
- Replication: In order to ensure high availability and improve the efficiency of distributed queries, the data table will be stored in multiple copies, and these copies are called replicas.
30+
31+
- Partition: When a table (or specifically a copy) is stored, it will be further divided into multiple partitions for distributed computing. The number of partitions can be specified when the table is created, but once created, the number of partitions cannot be dynamically modified. A partition is the smallest unit of master-slave synchronization and expansion and contraction of a storage engine. A partition can be flexibly migrated between different tablets. At the same time, different partitions of a table can be calculated in parallel, improving the performance of distributed computing. OpenMLDB will automatically try to balance the number of partitions on each tablet to improve the overall performance of the system. Multiple partitions of a table may be distributed on different tablets. The roles of partitions are divided into primary partitions (leader) and secondary partition (followers). When a calculation request is obtained, the request will be sent to the primary partition corresponding to the data for calculation; the secondary partition is used to ensure high availability.
32+
33+
The figure below shows the storage layout of a data table on three tablets based on four partitions in the case of two replicas. In actual use, if the load of one or several tablets is too high, data migration can be performed based on partitioning to improve the load balance and overall throughput of the system.
34+
35+
![image-20220317150559595](images/table_partition.png)
36+
37+
#### Data Persistence and Master-Slave Synchronization
38+
The online data of the current version of OpenMLDB is all stored in memory. In order to achieve high availability, the data will be persisted to the hard disk in the form of binlog and snapshot.
39+
40+
![image-20220317152718586](images/binlog_snapshot.png)
41+
42+
As shown in the figure above, the server will write memory and binlog at the same time after receiving the write request from the SDK. Binlog is used for master-slave synchronization. After the data is written to binlog, a background thread will asynchronously read the data from binlog and synchronize it to the slave node. After receiving the synchronization request from the node, the memory and binlog are also written. Snapshot can be regarded as a mirror of memory data, but for performance reasons, snapshot is not dumped from memory, but generated by merging binlog and the previous snapshot. Expired data will be deleted during the merging process. OpenMLDB will record the master-slave synchronization and the offset merged into the snapshot. If all the data in a binlog file is synchronized to the slave node and merged into the snapshot, the binlog file will be deleted by the background thread.
43+
44+
45+
:::{note}
46+
In the upcoming v0.5.0 version, OpenMLDB will also support disk-based storage engines, and its persistence mechanism will be different from the description in this article.
47+
:::
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<mxfile host="Electron" modified="2022-03-17T09:46:29.167Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/16.5.1 Chrome/96.0.4664.110 Electron/16.0.7 Safari/537.36" etag="xis9TBwNbTprPz3Ur1U9" version="16.5.1" type="device" pages="4"><diagram id="R_XDnZOIMWWPD0mZHOEB" name="Page-2">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</diagram><diagram id="SO2rqIOmWMtu2-xlwOeZ" name="Page-3">5Zpdb5swFIZ/DdJ20QlsIHDZZElaaVO3pVW33lQudgKqgxFxQ7JfP1NMEjBs61I+mt1U4TUY/LwH+xwXDY6Wm2mMIv8zw4RqQMcbDX7UAHANKP6mwjYTbMPNhEUc4EzS98Is+Eky0cjVpwCTldQyiTNGeRAVRY+FIfF4QUNxzJLiaXNGcUGI0IIUHiMVZh6iRDntNsDcz1QHDPb6BQkWfn5nw5bjW6L8ZNnxykeYJQcSHGtwFDPGs1/LzYjQlF3O5ez75d0afpneXI+v8JW7Xk8ukrOss8lLLtkNISYh/+eu7wfoxyw8128uOZ6uIqon1qO8RF8j+iR5ybHybQ4wZk8hJmknhgaHiR9wMouQl7YmImKE5vMllc1/+aRyRGsSc7I58Ek++ZSwJeHxVpwiW6GVXSGD0LDlgyd7SwGUmn9gJ8hPRDKMFruu96jED0nrBeSgQu6dGILoS9ff/4ah/meG84DSEaMsfr4WYkScuSf0FY/ZIzlosT2HPMwbpG6XqDsqdacCutkUc7OWuXEk86YIGlbPEFq1CEFPEZaCcIemK4J2LUF4Mi9+OWw7hz5Q16nxRBuONMcBctbNBfdUTCgFPtQ79sBRAx+8rdm3c4SGmm/lDI+dfvsbtxW5WrvQjVrox87YrQVuiwy/OVE0/Yp9eHeeXIfD+Zmd+G+nTtC7LBQq0VVE3ysVCo1BLFdbLSatlQhBLcJjV57+zJom6Bl0NeV6raWqrbjtfNasz5hOp1Qox23n0N03slRZNujdUlU/0Z5Oemq5Re5t1rbV1Ou3Evuan9pO3xiqW4NNbRC0FZdtFqvVTCv2Cl+p4O/PbFCO5O6pq0nDNXqghBsKcjFEXuRa5BeykJRgSwnRYBGKQ0/QJEIfpsACD9Fz2bAMME5vU2lk0eqmnDHy/7ttS8cHztgVzsDGnFEzi8wZNcE4bWeg2zNn8vsrzsD/zBnb7pszFbsfPLXmXlz2vJQICDzgAQuFoq4q/bBrzkI+kw+1O86+dBCLZIO1lW0U7DRN64OlGGqYjuoocJtyVK0RPhGEBeJTyQhK75Bpqe9QJfHG3iG1PpgwSllyLPOmCA5AawTF4f4DnOe2g6+Y4PgX</diagram><diagram id="vZXWqp3JycL1zH1D7VJl" name="Page-4">7Vpbc5s4FP41fswOkrj5Mcl22+1up92mM83sS0cBBTMGxIIc2/n1K4wESCI1uMGp474k+CAO0vedo3NBM3Sdbt4WOF98oCFJZtAKNzP0+wzCOUD8byXY1gIXzGtBVMRhLbJawU38SGohkNJVHJJSyGoRozRhca4KA5plJGCKDBcFXavD7mkSKoIcR8QQ3AQ4MaVf45AtaqkPvVb+jsTRQr4ZuGJ9KZaDxUrKBQ7puiNCb2bouqCU1Vfp5pokFXYSlw/0y/bxz8fFbfT+c/LZij+6y28XtbI/xjzSLKEgGXte1bBW/YCTlcBLrJVtJYAFXWUhqZSAGbpaL2JGbnIcVHfX3GK4bMHSRNweOFOxogdSMLLp8CRm/pbQlLBiy4fIu5IVYYVA8rpuOYWWGLPo8ukL9rCwo6jR3WLFLwRcI6BDJwKdbUMVOunAXegknAp086mgs/dDR7LwsvJ+/itIcFnGgYpW44xW9YMVdNm4NxwNJgmVPcSEsgOVY5lISVlBEsziB3Xn6UNPvOETjfn0GqaQDxSmIIKqipKuioCIp7qurimykf99RQwXEWGGoh2ZzbIP59cx+C23WVAFEcywQTW3Y6aRu+Pzmia04JKMZnzk1X2cJJoIJ3GUVRbCWSZcflV5Rcz3/ktxI43DsHpNr++13mlN6H7I07iwoOF+bo9Nwamcz+1xPjepGLinOyNqqXH/W1F546LchfZLPgDY+aa9ya+i6v8XfJeQ6nkg9fHp1SrrAWdGPHfn3xwtaHkG9d4xqfemph7+on4XD4D3s1Hv/zj1sI/6lKS0mt4w2nnUzqvLYJvEnIdif1Z0VxP2910jwMEy2tH4ccW4FjJx+gQRUpl03UH7tzMVk/P9yZOEOaTBKt3hMRrmyeC0VTihbSbyfSmWPRWcsk7t4HkXZwmNTgpVmeBJVJ2XRhUYqJ4Sng7QkrYXt1KzUD89K3UstYh/eSvtq+F/RcVBVKoOAlwzvzlqVARmT6HMcF4uKHsab1yE+7FWmwtTgoqAWv8Dv8c/enpc7mSg9hTypwaq42uW6vdYqn1MUM0CfF1wsAxEX3eNBKAWDCzT2O1jVkigrzrWKOl0JQXUw1qS4w38J2lJAqglQrCpbMc2JRuCG1W+qmjipiToK4Gf5re363ySHMK5xqF3IIMIaQzaYBCDHFK87QzLqwHl0xM23iMm3BpErfF5zWNAXf06zUPzSzDXVAx2cL1TMrf0vWJiF4dmLX8uHGr1v+scvE0jW1d1XA4HdA6+G4ZfC4GHRllVkfERd2r6zEbFebig42l+480PY9C1PC3KDnPAsVHWeI+Y8KRRFo779P9KvNv2tKa3/IYw+sO+p4fYYRnYs9FnNgTOw7t7GDw0wDqWo6s6Lod9BwDOg0M9NMJDGbQ1RWC6RPfdLf7m3yPw/t+/Nuslzpef/rm9+NEcSW3xVM1pcXATnOzhKf2YW1ONjN9j9yg6mFv+sz0tWg9vj9yiN/8D</diagram><diagram id="38PAIYBkWgtNtB78BqOS" name="Page-5">5VldU9s4FP01mWkfYGzLdpxHGli6OzChZIalTx01Um1tHcuV5Xz0168USbFleUlCSAuzL2AdydfSuedeXS4DMJ6vrhkss1uKcD4IPLQagMtBEIx8IH5KYK2A2E8UkDKCFOQ1wJT8xAr0DVoThCuNKYhTmnNS2uCMFgWecQuDjNGlvewbzZEFlDDFDjCdwdxF/yaIZwpNgmGDf8QkzcyX/XikZubQLNYnqTKI6LIFgasBGDNKuXqar8Y4l9wZXoL1xPe+LD5GZw/19Q/+pSJ+daaM/XHIK9sjMFzwFzatbS9gXmvC9GH52jDIaF0gLK34A/BhmRGOpyWcydmlkIzAMj7P9fQ3WnAtAj+QY5LnY5pTtrEFUIQTFAq84ox+x62ZJPgK4ljM7HlYs3HMOF61XK0Pf43pHHO2Fkv0bBBqx2oh+0CPl40sANC+ztqSAFrxUEsx3dpu6BYPmvED2A96yI9zLukpYWF5If5RS51t+D2rNgRfiAV+WK6aSfGUyt/TTzdi7qpISYGNRbFBZVQtcbwsWOS2K20XFVTYsv2pIZiTtBDDmXAYFvgH6RMiIvBCT8wJQvIzvdpp1OUZ+ehN7Sv7w5UQgY4SQkcJvtejhDA6kRCAI4Q7yCpBZhDDuWRJ/XwQVCPIBfn/HaPe7hg9Ga/DDq9J5PLq9/Bqou7FeQ1dXnMo7pkusZOSk7kIqiOJTRlERJDaCZBT8R2Gr43vyOF7LOqJFBcmC31lJgG9u7l5uBVr/7x//6ZJD8DvJj12SP9U482WpdgHslaxxC6Q+1oFwRvivZtcfj/vw92lEy7Qhaxh5e2Yw6oiM5tDvCL8UdMtnz/L5/NIjy5XranLtRkUYvOPxoActN6Sw+a1zci8d5hjKlqzGd4d6hyyFD9lT6sTI6tMd93ccmPU40WDMZxDThZ2cd/nWv2FO0rEcZvoNVe9UVE4Ou9c6urk+r12Pd0xBUYdQUYdoSlqHEMbrW0P/nz5JcfL7zBJvBYXjkLjMsO8/0wX9pgC0S914ugFcojJB2feuScqWzspeOGOtLBNQdu087mVnJ5IQXeYEXF8WfGfIr/Ee+YX0594JeoEYSfBDJ+bXoa2IeDtp0yhFbhuLSvlguqJDQeJ/R0/7AhdWXxR2Zt7+n+XvEDSKdlHz75/nOrfNXXi5OW7/Yup+ONUNuSa7sMxJabTTPol3YFhbAdErAOkpZDAuNHqDjyhhn0LzckC3dcZHsZ/TaaPl9PJMLld9LaJusEi5G2YoYxnNKUFzK8atNNnadbcUFpquv/BnK8137Dm9Jh425nfTd7eneCDPSN479A8qur33V7NGHKY0/QNah10tB6MAkfrvVIHB7Mrhk2rXGWg5v8N4Opf</diagram></mxfile>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<mxfile host="Electron" modified="2022-03-17T07:25:42.000Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/16.5.1 Chrome/96.0.4664.110 Electron/16.0.7 Safari/537.36" etag="sEVNszE6W2lfuHfw3hsl" version="16.5.1" type="device"><diagram id="X6vERnzMgd5yRUKAtKmq" name="Page-1">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</diagram></mxfile>

docs/en/reference/index.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
=============================
2+
References
3+
=============================
4+
5+
.. toctree::
6+
:maxdepth: 1
7+
rest_api
8+
arch/index
9+
sql/index
10+
ip_tips

0 commit comments

Comments
 (0)