The "legal limit" is terribly misunderstood, but 0.08% is just legal threshold where the state doesn't need to prove impairment and the offense is upgraded to an automatic criminal DUI. A driver in an accident with a BAC of 0.03% could still be charged with a DUI if impairment can be proven but most prosecutors' offices have more important things to work on.
It's also terribly misunderstood by pedants since you can be charged with a DUI with a 0.00 BAC by doing drugs. The point isn't that it's a definitive line in the sand between impairment and not, but if people are trusted to drive a car (generally or broadly speaking, not pedantically speaking), being above or below said limit is a reasonable litmus test for "visibly/obviously impaired" or not.
If you use streaming replication (ie. WAL shipping over the replication connection), a single replica getting really far behind can eventually cause the primary to block writes. Some time back I commented on the behaviour: https://news.ycombinator.com/item?id=45758543
You could use asynchronous WAL shipping, where the WAL files are uploaded to an object store (S3 / Azure Blob) and the streaming connections are only used to signal the position of WAL head to the replicas. The replicas will then fetch the WAL files from the object store and replay them independently. This is what wall-g does, for a real life example.
The tradeoffs when using that mechanism are pretty funky, though. For one, the strategy imposes a hard lower bound to replication delay because even the happy path is now "primary writes WAL file; primary updates WAL head position; primary uploads WAL file to object store; replica downloads WAL file from object store; replica replays WAL file". In case of unhappy write bursts the delay can go up significantly. You are also subject to any object store and/or API rate limits. The setup makes replication delays slightly more complex to monitor for, but for a competent engineering team that shouldn't be an issue.
But it is rather hilarious (in retrospect only) when an object store performance degdaration takes all your replicas effectively offline and the readers fail over to getting their up-to-date data from the single primary.
There is no backpressure from replication and streaming replication is asynchronous by default. Replicas can ask the primary to hold back garbage collection (off by default), which will eventually cause a slow down, but not blocking. Lagging replicas can also ask the primary to hold onto WAL needed to catch up (again, off by default), which will eventually cause disk to fill up, which I guess is blocking if you squint hard enough. Both will take considerable amount of time and are easily averted by monitoring and kicking out unhealthy replicas.
> If you use streaming replication (ie. WAL shipping over the replication connection), a single replica getting really far behind can eventually cause the primary to block writes. Some time back I commented on the behaviour: https://news.ycombinator.com/item?id=45758543
I'd like to know more, since I don't understand how this could happen. When you say "block", what do you mean exactly?
I have to run part of this by guesswork, because it's based on what I could observe at the time. Never had the courage to dive in to the actual postgres source code, but my educated guess is that it's a side effect of the MVCC model.
Combination of: streaming replication; long-running reads on a replica; lots[þ] of writes to the primary. While the read in the replica is going it will generate a temporary table under the hood (because the read "holds the table open by point in time"). Something in this scenario leaked the state from replica to primary, because after several hours the primary would error out, and the logs showed that it failed to write because the old table was held in place in the replica and the two tables had deviated too far apart in time / versions.
It has seared to my memory because the thing just did not make any sense, and even figuring out WHY the writes had stopped at the primary took quite a bit of digging. I do remember that when the read at the replica was forcefully terminated, the primary was eventually released.
þ: The ballpark would have been tens of millions of rows.
What you are describing here does not match how postgres works. A read on the replica does not generate temporary tables, nor can anything on the replica create locks on the primary. The only two things a replica can do is hold back transcation log removal and vacuum cleanup horizon. I think you may have misdiagnosed your problem.
Wars are frequently fought of these three things, and there's no shortage of examples of the humans controlling these resources lording over those that did not.
I believe they were just pointing out that Postgres doesn't do in-place updates, so every update (with or without partitions) is a write followed by marking the previous tuple deleted so it can get vacuumed.
I think the point was that there is way more people involved in Proton that the people/work coming from Wine, not to trivialise the amount of work integrating a bunch of projects take.
I imagine it's referring to anonymous VPN traffic through providers like Mullvad. Your internet traffic through your corp VPN is likely already at Orwellian-levels of surveillance, and that traffic can at least be tracked back to a asingle identifiable business.
Would a child have access to a paid VPN like Mullvad anyway, I wonder.
If they ban OpenVPN and WireGuard through what I can only think is something akin to the great firewall of China, then what is the next step, making ssh -D unlawful?
Maybe encryption too? Maybe they need to ban booting Linux and filter access to open source software as well? Running unsigned code? Might as well just shut down the internet.
> Would a child have access to a paid VPN like Mullvad anyway, I wonder.
Sure. Why not? Paid VPNs are cheap to use, and kids are smart.
A kid who already has a computer to use can turn a relatively large amount of electricity into a relatively small amount of crypto, and can do so very informally. It's usually a money-losing operation, but that matters less when a person is (say) 14 and someone else pays the electric bill: Out of sight, out of mind.
After that: Simply use the proceeds to pay for something like Mullvad or AirVPN (they accept crypto payments just fine).
It's been quite a long time since I was 14 and it was a very different world back then, but I don't think I would have had any trouble connecting these dots at that age.
(And indeed, that's how I used to pay for my own VPN service as a grown adult back when using those things was a lot less common. Rather than potentially draw unwanted interest from my bank by making international payments, I'd just mine some crypto to cover the VPN, and pay the electric bill. It wasn't strictly anonymous or untraceable or anything like that, but it did help cover the tracks that I cared about covering.)
I'd say Mullvad is on the more accessible side, since a Mullvad subscription can be obtained through a relatively small amount of cash. All you need is a few dollars and the ability to mail a letter with a few bucks to Europe.
Wisconsin is a state that's been looking at banning VPNs[1]. And they also apply laws to "companies commonly known to provide VPN services" - which makes me wonder how far that goes. Because technically I could get a free AWS instance, spin up Tailscale on it, and I have a VPN. Is AWS a VPN company since they certainly host servers that are used for VPNs? Who knows!
The whole point is that there's a legal system that allows a plaintiff to make an argument that there was negligence at play, and OP outlined a logical list of examples of how it could be argued up to the government itself being negligent for zoning. It's the job of the legal system to remove the ambiguity of "seemed", particularly in the context of tort and compensation.
This example just happens to be less obvious than a construction company building a house or bridge that collapses and kills people, and most cases in front of a court are equally ambiguous.
reply