bonesmoses | 4 months ago | on: Show HN: Open source, logical multi-master PostgreSQL replication
bonesmoses's comments
bonesmoses | 4 months ago | on: Show HN: Open source, logical multi-master PostgreSQL replication
bonesmoses | 4 months ago | on: Show HN: Open source, logical multi-master PostgreSQL replication
Essentially what that boils down to is you create stream triggers that intercept the logical stream and modify it to fit the column orientation by version. So during the transition, the triggers would be deployed to specific nodes while modifications are rolled out. Once everything was on the new version, triggers were all dropped until the next migration.
Spock doesn't have anything like that _yet_, but as you observed, being unable to use DDL replication significantly increases complexity, and tmux is a poor substitute.
bonesmoses | 4 months ago | on: Show HN: Open source, logical multi-master PostgreSQL replication
bonesmoses | 5 months ago | on: Show HN: Open source, logical multi-master PostgreSQL replication
You can address this partially using a CRDT such as the Delta Apply functionality for certain columns:
https://docs.pgedge.com/spock_ext/conflicts
That will only work with numeric-type (INT, BIGINT, NUMERIC, etc.) columns, but effectively merges data so updates work cumulatively.
bonesmoses | 1 year ago | on: How to get the most out of Postgres memory settings
That said, Now that UUIDv7 is available, switching to that should be a priority.
bonesmoses | 4 years ago | on: Show HN: PgCat, Postgres pooler with sharding, load balancing and failover
bonesmoses | 6 years ago | on: Pgcat – Enhanced PostgreSQL logical replication
Conflict-free Replicated Data Types (CRDTs) and column-level conflict resolution also largely address the issue with data merges and coarse counter systems. I'll just ignore the general design flaw there, considering these should be an insert-only ledger system rather than counters, because bad or naive implementations abound. I get that the application layer shouldn't necessarily have to coddle the database, given absolute ACID would resist non-ideal usage patterns.
I haven't played with the others, but I set up an 8-node CockroachDB and managed to get pgbench to run on it. I was clearly doing something wrong, because I wasn't impressed at the throughput even with very high client counts. From what I could see there, I was clearly being throttled by some mix of RTT and locking contention between the 3-node default consensus group. Supposing this is not problematic in non-overlapping shard locality, you still hit a hard performance ceiling when multiple clients interact with the same pool fragment.
I'll have to look at the others now.
bonesmoses | 6 years ago | on: Pgcat – Enhanced PostgreSQL logical replication
A good conflict management system will have that only as a default. Better ones will also provide mechanisms for overriding LWW in specific scenarios on a per table or even row basis depending on the in/out values from both nodes. The trick is building these conflict management rules so they're independently deterministic, or you'll end up with node divergence.
Normally we just do what you said, and strongly recommend interacting with sticky sessions, geographically disparate segments, etc., to prevent the problem before it happens. It's far easier to avoid a conflict than to correct it after the fact.
While a consensus model "fixes" this, it drastically cuts your throughput to a function of the latency of the most remote node in the quorum, essentially defeating the purpose of having a local Master node. Ideally you would reserve this for specific transactions that are sensitive in that they require absolute consistency regardless of incurred latency (See PACELC). And even this requires a distributed deadlock detector unless more than just the transactions are managed through the consensus layer.
BDR for example provides both of these models for the above reasons. Multi-Master is not an easy problem to solve, and requires a multi-faceted approach to even come close to something usable in a generalized scenario.
bonesmoses | 7 years ago | on: Bandersnatch Shows You What Depersonalization Disorder Feels Like
I wasn't seeing through my eyes. They were transmitting, with perceivable lag and some kind of acknowledged overlay, their sensory data. It's like being embedded in _extremely advanced_ and nearly seamless VR, but also hyper aware of the "nearly" part. It's like the Uncanny Valley effect, but directing it toward your own sensory system.
It doesn't feel quite real anymore, and you don't know why. So that's probably how I'd convey it. "You know the Uncanny Valley? Imagine everything you experienced felt that way."
It's uniquely awful.
bonesmoses | 7 years ago | on: WeWork Will No Longer Let Employees Expense Any Kind of Meat
bonesmoses | 8 years ago | on: Why PostgreSQL is better than MySQL
On the other hand, sometimes a good flamewar really gets the juices flowing and sheds valuable light on painful truths. Even Postgres can learn from being the butt of a few jokes.
bonesmoses | 8 years ago | on: New in PostgreSQL 10
https://blog.2ndquadrant.com/pg-phriday-crazy-correlated-col...
bonesmoses | 8 years ago | on: New in PostgreSQL 10
bonesmoses | 9 years ago | on: America's Reverence for the Bachelor's Degree
We could probably eventually overhaul the system to that end, but I don't envy those trapped in the transition period.
bonesmoses | 9 years ago | on: America's Reverence for the Bachelor's Degree
bonesmoses | 9 years ago | on: America's Reverence for the Bachelor's Degree
And the ratios I've seen are far more than 3-4 applications per position.
bonesmoses | 9 years ago | on: America's Reverence for the Bachelor's Degree
bonesmoses | 9 years ago | on: The Anti-Helicopter Parent’s Plea: Let Kids Play
bonesmoses | 9 years ago | on: The Anti-Helicopter Parent’s Plea: Let Kids Play
Yeah, I get that people are going to naturally jump to conclusions. Yet glossing over the minutiae is exactly how we got into the situation where everyone is jumping at shadows in the first place. Everyone's a rapist! Children are being mowed down in the streets! Drugs are everywhere! Never go outside! Anything else is literal child abuse! How dare you!
How does catering to social media because it might overreact fix that? How is that encouraging empathy? What makes this a "big problem?" Isn't relaxing our iron grip just a tiny fragment and rolling some of this hysteria back slightly do exactly that? Empathy for the situation instead of zealous indignation?