I have some experience with that specific question, although it was a few years ago...
Do you remember what conflict was causing things to fall over?
In general, the usual important parameters to tweak are:
- max_pred_locks_per_transaction may need to be increased; otherwise locks will switch to coarse granularity to save room in the lock table
- for tables that fit in memory, the planner may choose a sequential scan even when an index scan is available, which can be faster but creates more conflicts on a serializable workload. Increasing cpu_tuple_cost should avoid that (or even just enable_seqscan=off to force indexes whenever available)
Yes, Viewstamped Replication is underappreciated! It is actually older than Paxos, although the original paper is pretty incomprehensible too.
The more recent "Viewstamped Replication Revisited" paper is probably my favorite introduction to consensus protocols and their use in a real system:
http://pmg.csail.mit.edu/papers/vr-revisited.pdf
And Tapir too, I see... and Arrakis? And speculative Paxos? Keep up the awesome work, I always learn stuff from your papers :) And thanks for confirming, I hadn't actually thought about SI in the single-writer case until that comment.