On Friday, 15 April 2022 at 17:47:48 UTC+1 nicolas...@gmail.com wrote:

> any feedback is welcome. 
>

The only feedback I can give is from your reading your documentation, which 
appears at this point to be very vague.

I was looking for a proper architectural white paper that says exactly what 
CAP and transaction serializability tradeoffs you're making. The nearest I 
could find was this one-page "tech design":
https://docs.matrixorigin.io/0.3.0/MatrixOne/Overview/MatrixOne-Tech-Design/matrixone-techdesign/
It's full of general statements like *"consistency protocols are proposed 
to ensure the consistency of replicate logs. Common consistency protocols 
include Paxos and Raft"* - rather than saying exactly what MatrixOne has 
chosen to do.

There is a link that says "Please refer to AOE Technical Design 
<https://docs.matrixorigin.io/0.3.0/rfcs/20211210_aoe_overall_design.md> for 
more details", but that link gives a 404 error.

Searching for the word "isolation", it appears in the glossary only, and 
nowhere else.

In comparison, CockroachDB 
<https://www.cockroachlabs.com/docs/v21.2/architecture/overview.html> and 
FoundationDB <https://apple.github.io/foundationdb/technical-overview.html> 
have a ton of detailed documentation saying *exactly* how they handle 
things like overlapping transactions, consistency, node failures, shard 
splitting etc; and these change over time as they revisit the design 
decisions and trade-offs they made.  I'm not saying you are positioning 
yourself against those two particular databases. I just give them as 
examples where the level of documentation is good enough to evaluate the 
database design for a particular application.

Otherwise, I think it's a dangerous claim to make that MatrixOne suits 
almost all database use cases.  For example, many use cases value data 
consistency and durability far above performance.  If you're saying 
MatrixOne can match the consistency and durability of the best SQL 
databases, *and* give higher performance, then that is a bold claim to make 
without detailed justification.  What level of stress and regression 
testing are you doing? Are you running any Jepsen-like scenarios? The happy 
path is easy to get right - dealing with all possible failure modes is hard.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/c0972709-f2c9-4f08-bafc-35ff5cc4c2aan%40googlegroups.com.

Reply via email to