|
Andres Freund (Tech)
@
AndresFreundTec
San Francisco, CA
|
|
Postgres Developer, politics nerd, recently moved to US from Germany. Account about tech related things. For politics: @AndresFreundPol
|
|
|
748
Tweets
|
75
Following
|
815
Followers
|
| Tweets |
|
Andres Freund (Tech)
@AndresFreundTec
|
Feb 2 |
|
The effect @firefox can have on my laptop's power usage is just insane. Having some JS heavy website open more than triples power usage. pic.twitter.com/06xSBTnXpJ
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 31 |
|
Don't think so, unfortunately. I hope I'll give an update at another conference later this year - right now this is at a pretty early stage, still...
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 31 |
|
Slides:
twitter.com/AndresFreundTe…
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 31 |
|
Slides (somewhat repaired) for my @fosdempgday talk Asynchronous IO for PostgreSQL
(and probably also Direct IO)
are at anarazel.de/talks/2020-01-…
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 31 |
|
Well, that was a bit dramatic.
While walking to give the presentation, my laptop shut down. Refused to boot again with something like "No TPM found".
Luckily booted after disabling the TPM in bios. Certainly doesn't make for a relaxed start into presenting.
Sorry for that! twitter.com/fosdempgday/st…
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 27 |
|
Update: That's been fixed since.
Thanks @axboe
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 27 |
|
I do wonder if it'd be feasible to, optionally, also share sqthreads between urings, not just the wq workers.
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 27 |
|
I don't think PG can currently benefit from polled submission, due to bottlenecks it has currently, but I hope to address them as part of the io_uring work. And after that using polling e.g. for the journal could be huge.
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 27 |
|
I'm curious about what those ideas to reduce the synchronization overhead are.
Relatedly, one other reason to share urings more widely is that it's feasible to have one or two sqthreads, but not dozens.
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 27 |
|
The code for that doesn't yet work, but my plan is to have a few urings around that aren't *commonly* going to be shared.
So processes not busy doing IO don't hog a full (optimal would be two) urings, the locking is uncontended, but we still can complete their IO if necessary.
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 27 |
|
Yea, I don't like that overhead either.
It's not a bad price to pay to have to do it for journal interleaved writes - the savings are so big.
But being restricted in the number of uring instances due to the memlock limits is quite painful for other IO.
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 26 |
|
Ok, will try to write one.
Do you think sharing between processes is a bad path to go down, given the reasoning I outlined (lore.kernel.org/io-uring/20200…)? I'd rather not work towards building on top of io_uring, that the author of uring finds too constraining for future development.
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 26 |
|
Cool.
Found another fork related one (fcb323cc53e2). I guess I better contribute a liburing test for sharing a uring across a fork...
Shoul've upgrade the kernel earlier in the cycle :(
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 25 |
|
Upgraded Kernel. Now my experimental io_uring branch of postgres is broken :(
Different backends, inheriting io_urings from the postmaster, aren't allowed to submit events anymore. Only consume.
Hm.
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 25 |
|
You'll not be there?
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 23 |
|
Indeed. And it's not just performance in workloads that touch a lot of pages in short order - they can very significantly reduce memory overhead for each connection too.
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 16 |
|
ObjectFile->sections(), SectionRef->isText(), SectionRef->getSize().
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 11 |
|
*but not when benchmarking.
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 11 |
|
When idle my workstation's power supply regulates down its fan so much it stalls. Which then causes it to go to full speed to "recover".
At least I think that's the issue.
So to work without undue distraction I now have to trigger load in the background, but not benchmarking.
|
||
|
|
||
|
Andres Freund (Tech)
@AndresFreundTec
|
Jan 7 |
|
postgres' .text is ~8MB.
|
||
|
|
||