I’d like to have a serious discussion on a few limitations. They might be covered in various degrees in other posts, but I mean to explore the current state analysis of these two and hopefully as technical as possible.
- Databases
- Code execution
Databases
The most standard database type is relational databases (“SQL”). Even though I have seen production type SQL dbs based on keyvalue storage (Cochroach Db, read this very interesting blog post about it), this seems like a very difficult thing to solve on SAFENetwork keeping it ACID and maintaining any resemblance to the performance people are used to today. (I have started an extremely rudimentary attempt to implement SQL over SAFENetwork using the approach of CochroachDb - ACID and performance problems were quickly very evident).
If we want to be truly serverless, the db servers has to be redesigned into decentralized processes. Not only is the coding for that very complicated, I can only imagine the performance drop you’d see.
And so, the future for SQL on SAFENetwork, to me seems cloudy (no pun). I don’t have the information at hand that woud tell me: “no probs, it’ll be easy peasy” or even “it should be doable”.
Even though there’s for quite many years now been a lot of hype around “NoSQL databases”, they simply do something else and have other use cases. I don’t see relational databases going out of fashion for a long time.
(Mind you, I am saying this as a non-conventional database user. In our business we do not rely on relational data models.) And still, even a nosql db, as people are used to them, would have many of the same requirements as the above.
Code execution
There’s often talk in the community of replacing Amazon and Azure etc.
Being a person that uses Azure everyday, I see that as a very far away goal.
The largest problem being that everything needs to be a decentralized application, and the number of applications/functionality (very advanced ones) in Azure is staggering, and growing insanely fast.
Just as with the dbs we have the very same problems:
The first thing is that the problem of how to code these things in a decentralized manner must be solved.
Second thing is that these processes are running on centralized servers, the code execution is fast.
The performance drop that we would see, it would be big.
I think if network latency would be likely to drop massively, we could get down closer to consensusMajority * jobExecutionTime
, and that would be a huge improvement, but I don’t know about the prospects for that.
Current knowledge
What does the core people in MaidSafe, and other thinkers of the community, think about these things? I mean in depth, what’s the take on it?
Do we see a realistic way to implement the db standards that exist for example, or do we see them being replaced with something else that - realistically - actually does what people require them to do? (In case of the latter, it would need to be quite well defined to be considered realistic IMO - i.e. I’d love to hear more about it).
How do you envision a SAFENetwork Azure? What are your concerns and solutions?
I know we might be so damn early in the evolution step of this technology (autonomous networks, decentralized apps, all of it), that we simply cannot know that much now, and have no other choice than to trod on and solve it as we get there. But still, if anyone out there have come further in these thoughts, and would like to elaborate on the details it would be something really nice to start talking more about!