Architecture #41
Replies: 12 comments 42 replies
-
I'm trying to get the vision of this project and drawing the picture below: It seems that nowadays, we have multiple data processing solutions for different business scenario, see left upper diagram: ES, Redis, MongoDB, RDBMS, ... Each business logic should choose their preferring solution(s) and write tons of code to glue up. Thus here comes several federated query engine to try to implement "One SQL to Rule Them All". Alongside, there are other reimplements on the storage engine just for optimizing the data format or disk representation for each solutions. Most of them are built on RocksDB or other famous storage engine but with also tons of code (duplicate, suboptimal) to be optimized. And here comes Engula who provides a multi-model & cloud native storage engine, which eases solutions to use the same API and gain an optimized storage engine (efficient, elastic, adaptive, and extensible). Even when the federate query engine grows stronger, and Engula becomes de facto optimized, every business logic can write their load and store logic between these two layers (the middleware is thin enough to be covered by any programmer, with fruitful toolkits and APIs to use), while the operators & analyst make query from the unified query engine. Then we arrive the universe goal - one platform, all data. (To be clear, business logic cannot be "unified" innately). |
Beta Was this translation helpful? Give feedback.
-
@huachaohuang I noticed that you have published 0.1.0 & 0.1.1 version of engula on crate.io https://crates.io/crates/engula . Can it be revoked or overwritten or we should start with a later version? |
Beta Was this translation helpful? Give feedback.
-
I'm interested in how do plan to build multi-model storage. Aurora and FoundationDB are not similar although they both separate log and storage. The storage server of FoundationDB supports the |
Beta Was this translation helpful? Give feedback.
-
Their difference is so important so that I do not think we can ignore it. If the goal of Engula is similar to FoundationDB's layers, it would be hard to combine transaction code and storage server, because the storage node only support simple method such as |
Beta Was this translation helpful? Give feedback.
-
Even If the developers of engula is not going to implement a shared storage, I think it does not matter.
|
Beta Was this translation helpful? Give feedback.
-
@Little-Wallace Thanks for sharing your insights. I may not able to answer your questions one by one. But I think the following materials can help to answer some of the questions: |
Beta Was this translation helpful? Give feedback.
-
I drew an architecture to help thinking today. Let me add a brief description here. The first idea is to support a unit group concept in microunit. For example, we can create a group of storage units. We can locate units in the same group with a unique group name. Then we can implement a higher-level storage on top of a storage group. The higher-level implementation distribute objects among the storage group, and pulls information from all storage units in the group to form a global map of objects. So given an object name, the higher-level is able to tell the location of the object without external metadata. |
Beta Was this translation helpful? Give feedback.
-
The paper Log-structured Protocols in Delos is interesting. The stackable engine part is what I prospect on Engula modules. |
Beta Was this translation helpful? Give feedback.
-
@huachaohuang After reading the latest design document (#132), I still have some question about the detail.
|
Beta Was this translation helpful? Give feedback.
-
When advocating Engula to potential contributors, I found it would help a lot if we can divide the module into logical parts. Concretely, I can see four independent parts in our project:
If we somehow converge logic parts, we can advocate them in parallel. And potential contributors can find targets they're interested in easily - it's a fine-grained division than the whole project but coarse-grained than modules some of which are actually coupled. @huachaohuang I need your help to confirm that this taxonomy works so that I can push further work in advocating and dev docs.
|
Beta Was this translation helpful? Give feedback.
-
I like this idea. engula provide the potential ability to combine them together, right? |
Beta Was this translation helpful? Give feedback.
-
Hi guys. I have read the design documention. I am interested in Engula and want to make contributions to it. But I have some questions: |
Beta Was this translation helpful? Give feedback.
-
This discussion is about the overall architecture.
References:
Beta Was this translation helpful? Give feedback.
All reactions