The Redesign of Engula #358
Replies: 1 comment 2 replies
-
Thanks for pushing this redesign! On the key features that should be what we focus on from now on, I'd like to understand their priorities and steps we achieve them - we cannot achieve all of them at once, though 😆 It writes:
Let's review these features button up. Cloud-native ArchitectureFor a cloud-native arch, I can see that we're implementing a standalone database now. It can be run standalone which users can play with. However, it's far from a realistic cloud-native arch or we can simply access the database on cloud. The question is, when we'll start to make progress on this direction? I assume that it's the final feature we focus on, so I don't talk about its implementation but ask for an estimate so that contributors know that we don't focus on this feature yet. ACID TransactionsI can see there're already several related works: However, it works like a single instance transaction which is quite different from distributed transaction. The question is, when we'll start to define the semantic of distributed transaction over our collection database? I assume that it depends on what data structures we're going to support and realistic works should be mapped into transactions over those data structures. Data StructuresThus, we're back to the root features. What data structures do we want to support at the following releases? Let me try to interpret the current API design.
Here are some questions that may help on defining the API:
And finally, apart from a low-level API design, what's your expectation that users use Engula v0.3, v0.4, and v0.5 for? For example, to cover the common use case of Redis as a cache service, the supported data structure should include simple KV, list, and hash map, all over strings. The point here is that we cannot achieve all feature at once, so we must focus one thing after another. Thus, contributors can follow the current focused tasks and join force. For example, support more data type on the same expression may be easily scale out or adopting some skill set presented by contributors (e.g., type-exercise-in-rust). In the contrast, if we talk about multiple things in parallel evenly, but actually omit some of them, those who are attracted by the omitted topics will be upset which should have been avoided. For example, we'd like to build a cloud-native arch, and it's welcome to leave comment as well as point out the risk in the current arch, but we won't spend a lot of time on implementation in the next several releases - it should be clear. |
Beta Was this translation helpful? Give feedback.
-
During the discussion and development of Engula in the past few months, we encountered a few problems:
To address these problems, we are going to make a serious redesign of Engula, in terms of its position and architecture.
First of all, Engula will position itself as a persistent data structure store, used as a database and storage engine. The key features of Engula are as follows:
This redesign will be carried out as follows:
I will create a tracking issue for 0.3 later.
Beta Was this translation helpful? Give feedback.
All reactions