Is it worthwhile to implement transactional causal consistency in MongoDB?

Now MongoDB supports (non-transactional) causal consistency and (transactional) snapshot isolation. However, it does not support transactional causal consistency yet.

So I am wondering if it is worthwhile to implement transactional causal consistency in MongoDB.

A major benefit of transactional causal consistency lies in its performance:

Such anomalies can be prevented by transactional causal consistency (TCC), the strongest consistency model that can be achieved without expensive consensus protocols [5, 19, 21] required in stricter consistency models such as serializable transactions.

1 Like

Indeed, MongoDB seems to claim causal consistency only; see https://docs.mongodb.com/manual/core/causal-consistency-read-write-concerns/

Although I didn’t find any claim about TCC, the testing effort MongoDB may achieve STRONGER causal consistency guarantee? was spent on TCC with no anomaly detected yet.

It would be great to clarify if MongoDB actually implements TCC!

In particular, although https://docs.mongodb.com/manual/core/causal-consistency-read-write-concerns/ discusses Isolation under Causal Consistency, it focuses on isolated operations, not transactions.

BTW, the testing was based on https://docs.mongodb.com/manual/reference/mongodb-defaults/ where the majority concern (default starting in v5.0) was used on the transaction level (overriding the other 3 levels) and “All operations within a transaction use the transaction write concern” (so, majority reads as well). It’s still unclear if TCC is actually provided.