You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2015/01/23 09:32:28 UTC
[41/50] [abbrv] incubator-kylin git commit: add JobEngine Design
add JobEngine Design
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/79c13451
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/79c13451
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/79c13451
Branch: refs/heads/inverted-index
Commit: 79c1345141ec0ab700a1326e3baf887eb70522cf
Parents: 51f8335
Author: qianhao.zhou <qi...@ebay.com>
Authored: Fri Jan 23 15:34:52 2015 +0800
Committer: qianhao.zhou <qi...@ebay.com>
Committed: Fri Jan 23 15:34:52 2015 +0800
----------------------------------------------------------------------
docs/JobEngine/Design.md | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/79c13451/docs/JobEngine/Design.md
----------------------------------------------------------------------
diff --git a/docs/JobEngine/Design.md b/docs/JobEngine/Design.md
new file mode 100644
index 0000000..9c1a94d
--- /dev/null
+++ b/docs/JobEngine/Design.md
@@ -0,0 +1,37 @@
+## Job Engine Design
+
+> Purpose: The **Job Engine** is a coordinator which manage the tasks' life cycle and CRUD of the tasks. To be clearified, the **Job Engine** does not run the task itself, instead the task runs on hadoop(or whatever it depends).
+
+### Executable
+
+
+
+**Executable** is a top-level interface for all kinds of jobs or tasks.
+
+**AbstractExecutable** is a abstract implementation of **Executable**, it provides:
+
+ 1. some getter and setter method
+ 2. default implementation of **Executable**.execute()
+ 3. life cycle method of an **Executable** and their default implementation
+
+**DefaultChainedExecutable** is an implementation of AbstractExecutable which contains a group of **Executable**
+
+### ExecutableManager
+**ExecutableManager** provide the CRUD function for an **Executable**
+
+### ExecutableDao
+**ExecutableDao** provide the access of the persistent object for Executable
+
+There are two persistent object for one **Executable**
+
+1. **ExecutablePO** is to store the runnning parameters for the **Executable**, and once the **Executable** is submitted, **ExecutablePO** is unmodifiable.
+2. **ExecutableOutputPO** is to store the running result for the **Executable**, for instance the current state, error log.
+
+### DefaultScheduler
+**DefaultScheduler** is a coordinator for **Executable**s.
+
+There is a daemon thread call JobFetcher running periodically. It is responsible for scheduling the **Executable**s
+
+ Note: there should always be only one instance running in the cluster. And it is configured using "kylin.server.mode" in the "kylin.properties", there are two modes "all" & "query", "all" means it will defaultly start the scheduler. So if there are multiple kylin instances, make sure there is only one instance whose "kylin.server.mode" is set to "all".
+
+
\ No newline at end of file