drkp
When Should the Network Be the Computer?
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)
Eris: near-zero-overhead distributed transactions with in-net concurrency ctrl
Coordination-Free Consistent Transactions Using In-Net Concurrency Control [pdf]
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
Network-Ordered Paxos (NOPaxos) implementation - near-zero-overhead replication
Research for Practice: Distributed Transactions and Networks as Physical Sensors
Diamond: data management and storage for wide-area, reactive applications
Consistency should be more consistent
Just Say NO to Paxos Overhead: Replacing Consensus with Network Ordering
(I was one of the authors of SSI in Postgres)