Replies: 3 comments 2 replies
-
A designI extracted the most basic stateless functionality from the current TableService and OptimizingService, and extracted as some Manager interfaces. So that services are divided into two groups:
Now we can answer the above questions: 1. How to trigger table evaluation when internal table is created.A: Both internal catalog and external catalog, the TableRuntime objects are discovered by TableExplorer threads. There will be a delay to trigger table evaluation after an internal table is created, but it is acceptable. 2. How to implement a stateless table blocker, which has nothing related to TableRuntime.A: TableBlocker can be achieved through the database based CAS operations. 3. How to cancel a process without TableRuntime object.A: We can't do this, but we can do this by proxy the Web Call to master. 4. How to check if a group can be deleted.A: A group could not be deleted if: i. It is the default group of any catalog, this could be checked by database queries. 5. How to implement a stateless TerminalSession.A: TerminalSession currently provides a range of values: i. Saving the current database when executing a sql use $database There are some ways to achieve the same effect in a stateless way:
|
Beta Was this translation helpful? Give feedback.
-
@baiyangtx are you working on it currently? I'm planning to push it forward in Q4. |
Beta Was this translation helpful? Give feedback.
-
I have 2 questions in addition:
|
Beta Was this translation helpful? Give feedback.
-
Background
As this issue described #2810.
The current Master/Standby architecture is becoming a bottleneck. In addition to providing Optimizing task scheduling capabilities, Amoro also provides valuable capabilities such as Dashboard and RestCatalog.
The purpose of this discussion is to propose a solution to make these valuable features not limited to the master/standby architecture.
Goals
Current architecture and the problems
There are 4 services in the API layer:
The core reason for currently using the Master/Standby architecture is the need to manage TableRuntime and OptimizerQueue objects in memory.
Based on the above function sorting, we can conclude that if we want to get rid of the master/standby architecture, what we need to do:
Beta Was this translation helpful? Give feedback.
All reactions