Pinboard (jm)
https://pinboard.in/u:jm/public/
recent bookmarks from jmUbicloud2024-03-06T10:30:05+00:00
https://www.ubicloud.com/
jmUbicloud provides cloud services on bare metal providers, such as Hetzner, OVH, or AWS Bare Metal. Public cloud providers like AWS, Azure, and Google Cloud made life easier for start-ups and enterprises. But they are closed source, have you rent computers at a huge premium, and lock you in. Ubicloud offers an open alternative, reduces your costs, and returns control of your infrastructure back to you. All without sacrificing the cloud's convenience.
Currently supports compute VMs and managed PostgresSQL; no S3-alike service (yet). From the team behind Citus Data, the Postgres scaling product.]]>ubicloud cloud hosting vms ops postgreshttps://pinboard.in/https://pinboard.in/u:jm/b:a8e9f3f457b3/Distributed Postgres goes full open source with Citus2022-09-14T11:42:00+00:00
https://www.citusdata.com/blog/2022/09/12/distributed-postgres-goes-full-open-source-with-citus/
jmpostgres citus oss scalability infrastructurehttps://pinboard.in/https://pinboard.in/u:jm/b:1f345ede6c20/10 Things I Hate About PostgreSQL | by Rick Branson2021-04-06T13:39:59+00:00
https://rbranson.medium.com/10-things-i-hate-about-postgresql-20dbab8c2791
jmOn a particularly large deployment, I eventually had to layer in a second pgbouncer tier. One tier ran on the application servers and another tier on the database servers. Altogether it aggregated connections for around 1 million client processes. Tuning it was 40% dark art, 40% brute force, and 10% pure luck.
Amazing to see that these issues are still something that Postgres users have to worry about :)]]>database postgresql coding postgres pgbouncer ops rick-bransonhttps://pinboard.in/https://pinboard.in/u:jm/b:325436d797ce/glibc changed their UTF-8 character collation ordering across versions, breaking postgres2019-01-11T11:19:17+00:00
https://www.postgresql.org/message-id/flat/BA6132ED-1F6B-4A0B-AC22-81278F5AB81E%40tripadvisor.com
jmStreaming replicas—and by extension, base backups—can become dangerously broken when the source and target machines run slightly different versions of glibc. Particularly, differences in strcoll and strcoll_l leave "corrupt" indexes on the slave. These indexes are sorted out of order with respect to the strcoll running on the slave. Because postgres is unaware of the discrepancy is uses these "corrupt" indexes to perform merge joins; merges rely heavily on the assumption that the indexes are sorted and this causes all the results of the join past the first poison pill entry to not be returned. Additionally, if the slave becomes master, the "corrupt" indexes will in cases be unable to enforce uniqueness, but quietly allow duplicate values.
Moral of the story -- keep your libc versions in sync across storage replication sets!]]>postgresql scary ops glibc collation utf-8 characters indexing sorting replicas postgreshttps://pinboard.in/https://pinboard.in/u:jm/b:7a5ed209308e/When Boring is Awesome: Building a scalable time-series database on PostgreSQL2017-04-05T15:00:38+00:00
https://blog.timescale.com/when-boring-is-awesome-building-a-scalable-time-series-database-on-postgresql-2900ea453ee2
jmdatabase postgresql postgres timeseries tsd storage state via:nelsonhttps://pinboard.in/https://pinboard.in/u:jm/b:9956c3efa969/Why Uber Engineering Switched from Postgres to MySQL2016-07-27T09:47:20+00:00
https://eng.uber.com/mysql-migration/
jmdatabase mysql postgres postgresql uber architecture storage sqlhttps://pinboard.in/https://pinboard.in/u:jm/b:bb13fe501b54/Postmortem for July 27 outage of the Manta service - Blog - Joyent2015-08-03T21:30:25+00:00
https://www.joyent.com/blog/manta-postmortem-7-27-2015
jmpostgres outages joyent manta opshttps://pinboard.in/https://pinboard.in/u:jm/b:f5e8efbbfd4d/jgc on Cloudflare's log pipeline2015-06-25T15:08:24+00:00
https://github.com/cloudflare/jgc-talks/blob/master/dotScale/2015/10trillion.pdf
jmlogs cloudflare kafka go capnproto architecture citusdb postgres analytics streaminghttps://pinboard.in/https://pinboard.in/u:jm/b:18c13be91c44/Mnesia and CAP2014-10-06T15:19:54+00:00
https://medium.com/@jlouis666/mnesia-and-cap-d2673a92850
jmA common “trick” is to claim:
'We assume network partitions can’t happen. Therefore, our system is CA according to the CAP theorem.'
This is a nice little twist. By asserting network partitions cannot happen, you just made your system into one which is not distributed. Hence the CAP theorem doesn’t even apply to your case and anything can happen. Your system may be linearizable. Your system might have good availability. But the CAP theorem doesn’t apply. [...]
In fact, any well-behaved system will be “CA” as long as there are no partitions. This makes the statement of a system being “CA” very weak, because it doesn’t put honesty first. I tries to avoid the hard question, which is how the system operates under failure. By assuming no network partitions, you assume perfect information knowledge in a distributed system. This isn’t the physical reality.
]]>cap erlang mnesia databases storage distcomp reliability ca postgres partitionshttps://pinboard.in/https://pinboard.in/u:jm/b:cb712d5066e6/Validate SQL queries at compile-time in Rust2014-10-01T09:07:27+00:00
https://github.com/sfackler/rust-postgres-macros
jmThe sql! macro will validate that its string literal argument parses as a valid Postgres query.
Based on https://pganalyze.com/blog/parse-postgresql-queries-in-ruby.html , which links the PostgreSQL server code directly into a C extension. Mad stuff, Ted!
(via Rob Clancy)]]>macros postgres compile validation sql rust codinghttps://pinboard.in/https://pinboard.in/u:jm/b:6956cdc9e02f/Database Migrations Done Right2014-05-08T16:53:32+00:00
http://www.brunton-spall.co.uk/post/2014/05/06/database-migrations-done-right/
jmThe rule is simple. You should never tie database migrations to application deploys or vice versa. By minimising dependencies you enable faster, easier and cleaner deployments.
A solid description of why this is a good idea, from an ex-Guardian dev.]]>migrations database sql mysql postgres deployment ops dependencies loose-couplinghttps://pinboard.in/https://pinboard.in/u:jm/b:2e8db5bfa149/