- Its query planner is ancient and broken - it comes up with very bad plans. Every time we rely on it, we regret it eventually
- you have to use locks to prevent mangled write transactions, instead of the db handling it. Jepsen report is scathing
- its pretty hard to set it up in semi-sync replication mode, a.k.a. "only return from a transaction commit when the transaction is present on at least one other replica". Once you've set it up, you have to deal with insane things like transactions being visible on replicas before leaders, or even worse transactions visible on replicas briefly but never visible on leaders or other replicas
- every knob and feature contains subtle bugs, sometimes ones as scary as index corruption, that you only discover after it has caused you pain
I don't know why you would choose it unless you were already running it
- Its query planner is ancient and broken - it comes up with very bad plans. Every time we rely on it, we regret it eventually
- you have to use locks to prevent mangled write transactions, instead of the db handling it. Jepsen report is scathing
- its pretty hard to set it up in semi-sync replication mode, a.k.a. "only return from a transaction commit when the transaction is present on at least one other replica". Once you've set it up, you have to deal with insane things like transactions being visible on replicas before leaders, or even worse transactions visible on replicas briefly but never visible on leaders or other replicas
- every knob and feature contains subtle bugs, sometimes ones as scary as index corruption, that you only discover after it has caused you pain
I don't know why you would choose it unless you were already running it