Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
anarazel
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
21 ms
·
211.
▲
by
anarazel
3y ago
The TLB is basically keyed by (address space, virtual address % granularity), or needs to be flushed entirely when switching between different views of the address space (e.g. switching between processes). Unless your address space is exact
212.
▲
by
anarazel
3y ago
pgbouncer is not transparent, you loose features, particularly when using the pooling mode actually allowing a larger number of active concurrent connections. Solving those issues is a lot easier with threads than with processes.
213.
▲
by
anarazel
3y ago
I'm not sure if I'd judge it as harshly, but you have a good point: A lot of debugging / validation tooling understands threads, but not memory shared between processes.
214.
▲
by
anarazel
3y ago
Because it makes it a lot easier to address some of postgres' weaknesses? This is a proposal by long time contributor to postgres, that a number of other long time contributors agree with (and others disagree with!). Why shouldn'
215.
▲
by
anarazel
3y ago
> That said, many of these things are solvable without a full switch to a threaded model (eg. by having pooling built-in and session-state-aware). The thing is that that's a lot easier with threads. Much of the session state lives i
216.
▲
by
anarazel
3y ago
Heikki is far from the only "senior" postgres contributor thinking that this is the right direction in the long term. > You're just defending your hero who has gone rogue. That doesn't sound like judging an idea on it
217.
▲
by
anarazel
3y ago
> Like light-threads, heavy-threads would share the same process-security-boundary and therefore switching between them would be cheap. No need to flush TLB, I$, D$. > Like processes, heavy-threads would have mostly-separate address s
218.
▲
by
anarazel
3y ago
We would still have a separate supervisor process of we moved connections to threads.
219.
▲
by
anarazel
3y ago
Postgres already shares a lot of state between processes via shared memory. There's not a whole lot that would initially change from a concurrency perspective.
220.
▲
by
anarazel
3y ago
Postgres is already concurrent today. There's a lot of shared state between the processes (via shared memory).
221.
▲
by
anarazel
3y ago
We would still have a separate process doing that part of postmaster's work.
222.
▲
by
anarazel
3y ago
> Apologies autocorrect substituted Moor for Lane. > > But I believe you knew that but pedantry stopped you from just suggesting it. I was wondering about it, but thought it wouldn't really make sense, given that Tom was the
223.
▲
by
anarazel
3y ago
> I saw a bunch of nays and a lot of “abstains” a lack of vote against something is not a vote of approval. There's definitely some ayes, including the people mentioned in the post upthread. > Basically Postgres loses 10% perfor
224.
▲
by
anarazel
3y ago
It worked like this for much longer. The oldest version I have around is 9.2 and it behaves the same. You probably are thinking of a somewhat more complex scenario...
225.
▲
by
anarazel
3y ago
> Msbuild isn't too bad once you've got over the culture shock that (a) everything is XML rather than tab-delimited makefiles and (b) you've got a glossary of terms that maps to things you know https://learn.mic
226.
▲
by
anarazel
3y ago
I liked Tegel. The low distances between entrance and all the gates, combined with the per-gate security, allowed to arrive much closer to the departure time than at other airports, IME. I never checked luggage flying via Tegel tho.
227.
▲
by
anarazel
3y ago
Forgot to say: Obviously a partial index is going to be considerably better, performance and size wise.
228.
▲
by
anarazel
3y ago
> My recollection in postgres anyway is that low cardinality indexes aren't useful, because it doesn't take into account which side of the 1/99% you're on when determining to use the index. It does take that into acco
229.
▲
by
anarazel
3y ago
Yeah- we've been working on that for quite a while, and it'll take a few more years to finish it. I hope we can get some important parts into 17 though. FWIW, there have been smaller prerequisites merged into 15 already, and 16 h
230.
▲
by
anarazel
3y ago
If it were easy to do well in-core, I think we'd do it immediately. Unfortunately the interesting pooling modes in pgbouncer also break a few things - which would likely not be acceptable in core postgres. Avoiding such breakage requir
231.
▲
by
anarazel
3y ago
I'm sure there's a rate of concurrent writes where that wouldn't be true anymore, but if so, you're likely not going to be benefiting that much from the approach to caching.
232.
▲
by
anarazel
3y ago
> PG 11 is end-of-life, right? So you won't be getting new security updates. Not quite yet https://www.postgresql.org/support/versioning/ - the final release will be November 9, 2023.
233.
▲
by
anarazel
3y ago
> I also don't see anyone claiming they can saturate their network interface with postgres the same way they can with any KV store. I recently tested it, and I could trivially saturate a 10GBit interface with postgres. https:/
234.
▲
by
anarazel
4y ago
I think that's often fixed using a per run random seed, rather than a per table seed. The patch linked in the python bug linked from that article does seem to do that, for example.
235.
▲
by
anarazel
4y ago
One situation where I painfully learned that it doesn't, is when you iterate over one hashtable to fill another. To defend against that one needs to add some per-hashtable randomized state into the hash IV. Through bad experience I als
236.
▲
by
anarazel
4y ago
Sorry, I should have used something more standard - but it was what I had ready... It just selects every column from a single table, pg_class. Which is where postgres stores information about relations that exist in the current database.
237.
▲
by
anarazel
4y ago
I agree that redis can handle some query volumes and client counts that postgres can't. But FWIW I can easily saturate a 10GBit ethernet link with primary key-lookup read-only queries, without the results being ridiculously wide or any
238.
▲
by
anarazel
4y ago
CREATE DOMAIN unsigned_64bit_int AS numeric CONSTRAINT range CHECK (VALUE >= 0 AND VALUE < 2^64 AND round(VALUE) = VALUE);
239.
▲
by
anarazel
4y ago
> I suppose you reduce the blast radius a little for memory corruption issues when programming in something like C, but these days if you are using a type safe language I'm not convinced it buys you much in terms of fault tolerance.
240.
▲
by
anarazel
4y ago
It's just a clientside knob for psql. You can do something like it in any client.
More ›