This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch doc5.0
in repository https://gitbox.apache.org/repos/asf/kylin.git


The following commit(s) were added to refs/heads/doc5.0 by this push:
     new 006dd3f22f Add toc of dev design
006dd3f22f is described below

commit 006dd3f22f52fcc9980db1b128701df562b2f7e5
Author: XiaoxiangYu <x...@apache.org>
AuthorDate: Wed Sep 21 15:32:03 2022 +0800

    Add toc of dev design
---
 .../development/dev_design/metastore_design.md     | 42 +++++++++++++-------
 website/docs/development/how_to_release.md         |  2 +-
 .../development/how_to_subscribe_mailing_list.md   | 19 +++++----
 .../development/how_to_understand_kylin_design.md  | 46 ++++++++++++++++++++++
 website/sidebars.js                                |  4 ++
 5 files changed, 89 insertions(+), 24 deletions(-)

diff --git a/website/docs/development/dev_design/metastore_design.md 
b/website/docs/development/dev_design/metastore_design.md
index 2022f3b9ab..36660d1732 100644
--- a/website/docs/development/dev_design/metastore_design.md
+++ b/website/docs/development/dev_design/metastore_design.md
@@ -5,7 +5,7 @@ sidebar_label: Metastore Design of Kylin 5
 pagination_label: Metastore Design of Kylin 5
 toc_min_heading_level: 2
 toc_max_heading_level: 6
-pagination_prev: null
+pagination_prev: development/how_to_understand_kylin_design
 pagination_next: null
 showLastUpdateAuthor: true
 showLastUpdateTime: true
@@ -28,15 +28,15 @@ last_update:
 
 #### Core Class and Interface
 
-| Class                       | Comment                                        
    |
-|-----------------------------|----------------------------------------------------|
-| ResourceStore               | 用于管理内存中对元数据的操作                                 
    |
-| InMemResourceStore          | ResourceStore 的实现类, 用于绝大部分情况                   
    |
-| ThreadViewResourceStore     | ResourceStore 的实现类, 作为一个沙盒式的 ResourceStore, 
在事务中使用 |
-| MetadataStore               | 用于管理元数据持久化的操作                                  
    |
-| AuditLogStore               | 用于节点间元数据同步, 以及诊断元数据异常情况                        
    |
-| Epoch                       | 用于保证同时只有一个进程对指定项目下的元数据进行修改操作, 或者提交作业           
    |
-| EpochStore                  | 用于持久化 Epoch                                    
    |
+| Class                   | Comment                                            
|
+|-------------------------|----------------------------------------------------|
+| ResourceStore           | 用于管理内存中对元数据的操作                                     
|
+| InMemResourceStore      | ResourceStore 的实现类, 用于绝大部分情况                       
|
+| ThreadViewResourceStore | ResourceStore 的实现类, 作为一个沙盒式的 ResourceStore, 在事务中使用 
|
+| MetadataStore           | 用于管理元数据持久化的操作                                      
|
+| AuditLogStore           | 用于节点间元数据同步, 以及诊断元数据异常情况                            
|
+| Epoch                   | 用于保证同时只有一个进程对指定项目下的元数据进行修改操作, 或者提交作业               
|
+| EpochStore              | 用于持久化 Epoch                                        
|
 
 
 ### Question and Answer
@@ -58,7 +58,7 @@ Follower 同步元数据变更,通过两个方式,代码在 AuditLogReplayWo
 
 按照设计,Follower 元数据的 delay 在 1-2s 左右(被动广播同步),最多 5s(主动定期同步).
 
-#### 4. How to read meta from metastore?
+#### 4. How ResourceStore was inited when Kylin started?
 todo
 
 #### 5. As a kylin developer, how should I write my code to update metadata?
@@ -113,13 +113,25 @@ class SomeService {
 3. 两个事务写的时候别复用同一个对象, 以避免元数据更新时, MVCC 检查失败
 ::: 
 
-#### 6. AuditLog replay and clean
+#### 6. What is Epoch and how do Epoch works? 
 
-todo
+1. 什么是 Epoch?
+    
+  `Epoch` 是全局级别的, 项目粒度的元数据写锁, 用于确保同一时刻只有一个进程会修改指定项目下的元数据.
 
-#### 7. Metadata dumped logic
+2. 什么样的进程可以获取 Epoch?
 
-todo
+  Job 和 All, Query 不可以获得 Epoch, Query 节点被设计为不需要提交任务或者是修改元数据.
+
+3. Epoch 如何管理?
+   
+
+相关类
+- EpochOrchestrator
+- EpochOrchestrator.EpochChecker
+- EpochOrchestrator.EpochRenewer
+- EpochManager
+- EpochChangedListener
 
 ### <span id="metadata_write">Diagram of write a piece of meta </span>
 
diff --git a/website/docs/development/how_to_release.md 
b/website/docs/development/how_to_release.md
index dfa8976855..d0d8fba09d 100644
--- a/website/docs/development/how_to_release.md
+++ b/website/docs/development/how_to_release.md
@@ -6,7 +6,7 @@ pagination_label: How to release
 toc_min_heading_level: 2
 toc_max_heading_level: 6
 pagination_prev: development/how_to_package
-pagination_next: null
+pagination_next: development/how_to_understand_kylin_design
 showLastUpdateAuthor: true
 showLastUpdateTime: true
 keywords:
diff --git a/website/docs/development/how_to_subscribe_mailing_list.md 
b/website/docs/development/how_to_subscribe_mailing_list.md
index f48653c6c2..6e37297afa 100644
--- a/website/docs/development/how_to_subscribe_mailing_list.md
+++ b/website/docs/development/how_to_subscribe_mailing_list.md
@@ -1,8 +1,8 @@
 ---
-title: How to subscribe mailing list
+title: How to subscribe and unsubscribe mailing list
 language: en
-sidebar_label: How to subscribe mailing list
-pagination_label: How to subscribe mailing list
+sidebar_label: How to subscribe and unsubscribe mailing list
+pagination_label: How to subscribe and unsubscribe mailing list
 toc_min_heading_level: 2
 toc_max_heading_level: 6
 keywords:
@@ -16,11 +16,11 @@ last_update:
 ### Mailing List Table
 These are the mailing lists that have been established for kylin project. For 
each list, there is a subscribe, unsubscribe, and an archive link.
 
-|    Mailing List   |   Subscribe Link  | Unsubscribe Link  |   Archive Link   
 |
-|:-----------------:|:-----------------:|:-----------------:|:-----------------:|
-| user              | [subscribe](mailto:user-subscr...@kylin.apache.org)  | 
[unsubscribe](mailto:user-unsubscr...@kylin.apache.org)  | [mail 
archive](https://lists.apache.org/list.html?u...@kylin.apache.org) |
-| dev               | [subscribe](mailto:dev-subscr...@kylin.apache.org)   | 
[unsubscribe](mailto:dev-unsubscr...@kylin.apache.org)   | [mail 
archive](https://lists.apache.org/list.html?d...@kylin.apache.org) |
-| issue             | [subscribe](mailto:issue-subscr...@kylin.apache.org) | 
[unsubscribe](mailto:issue-unsubscr...@kylin.apache.org) | [mail 
archive](https://lists.apache.org/list.html?is...@kylin.apache.org) |
+| Mailing List |                    Subscribe Link                    |        
             Unsubscribe Link                     |                             
  Archive Link                                |
+|:------------:|:----------------------------------------------------:|:--------------------------------------------------------:|:-------------------------------------------------------------------------:|
+|     user     | [subscribe](mailto:user-subscr...@kylin.apache.org)  | 
[unsubscribe](mailto:user-unsubscr...@kylin.apache.org)  | [mail 
archive](https://lists.apache.org/list.html?u...@kylin.apache.org)  |
+|     dev      |  [subscribe](mailto:dev-subscr...@kylin.apache.org)  |  
[unsubscribe](mailto:dev-unsubscr...@kylin.apache.org)  |  [mail 
archive](https://lists.apache.org/list.html?d...@kylin.apache.org)  |
+|    issue     | [subscribe](mailto:issue-subscr...@kylin.apache.org) | 
[unsubscribe](mailto:issue-unsubscr...@kylin.apache.org) | [mail 
archive](https://lists.apache.org/list.html?is...@kylin.apache.org) |
 
 
 ### <span id="mailing_list">Subscribe mailing list</span>
@@ -48,6 +48,9 @@ Following is a successful case.
 ![](images/subscribe_mailing_list_4.jpg)
 
 
+### <span id="unsubscribe_mailing_list">Unsubscribe mailing list</span>
+todo
+
 ----
 
 This doc is rewrite based on [apache mailing list 
doc](https://www.apache.org/foundation/mailinglists.html#subscribing).
\ No newline at end of file
diff --git a/website/docs/development/how_to_understand_kylin_design.md 
b/website/docs/development/how_to_understand_kylin_design.md
new file mode 100644
index 0000000000..735c550ee5
--- /dev/null
+++ b/website/docs/development/how_to_understand_kylin_design.md
@@ -0,0 +1,46 @@
+---
+title: Overall Design of Kylin 5
+language: en
+sidebar_label: Overall Design of Kylin 5
+pagination_label: Overall Design of Kylin 5
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: development/how_to_release
+pagination_next: development/dev_design/metastore_design
+showLastUpdateAuthor: true
+showLastUpdateTime: true
+keywords:
+  - dev-design
+draft: false
+last_update:
+  date: 09/21/2022
+  author: Xiaoxiang Yu
+---
+
+:::info
+Unless more comments, all source code analysis are based on [this code 
snapshot](https://github.com/apache/kylin/tree/edab8698b6a9770ddc4cd00d9788d718d032b5e8)
 .
+:::
+
+### About Design of Kylin 5.0
+1. Metadata Store
+   - [x] Metadata Store
+   - [ ] Metadata Cache
+   - [x] Transaction(CRUD of Metadata)
+   - [ ] Epoch, AuditLog etc.
+2. Metadata Format/Schema
+   - [ ] DataModel, IndexPlan and Dataflow
+   - [ ] Index and Layout
+   - [ ] Computed Column
+3. Query Engine
+   - [ ] How a SQL query was executed in Kylin?
+   - [ ] Query Cache
+   - [ ] Query Profile
+4. Model Engine
+   - [ ] Schema Change(Model Change, Table Change)
+5. Build Engine
+   - [ ] Build AggIndex
+   - [ ] Build TableIndex
+   - [ ] Build Snapshot
+6. Job Engine
+   - [ ] JobScheduler
+   - [ ] HA(and epoch)
\ No newline at end of file
diff --git a/website/sidebars.js b/website/sidebars.js
index a1043e0181..59ec7d333d 100644
--- a/website/sidebars.js
+++ b/website/sidebars.js
@@ -974,6 +974,10 @@ const sidebars = {
                     type: 'doc',
                     id: 'development/how_to_subscribe_mailing_list'
                 },
+                {
+                    type: 'doc',
+                    id: 'development/how_to_understand_kylin_design'
+                },
                 {
                     type: 'doc',
                     id: 'development/dev_design/metastore_design'

Reply via email to