frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

OpenAI Is Preparing to File for an IPO Soon

https://www.wsj.com/tech/ai/openai-is-preparing-to-file-for-an-ipo-very-soon-0ec95af5
1•louiereederson•19s ago•0 comments

Ethereum plans to move from BLS signatures to post quantum secure signatures

https://hashcloak.com/blog/how-ethereum-plans-to-replace-bls-with-post-quantum-signatures
1•badcryptobitch•21s ago•0 comments

Meta lays off 8k employees

https://www.nytimes.com/2026/05/19/technology/meta-layoffs-ai.html
1•Murfalo•22s ago•0 comments

Thomas Massie loses seat after releasing Epstein files -but it's worse than that [video]

https://www.youtube.com/watch?v=ChHMyyRwAcs
1•Cider9986•54s ago•0 comments

Why is Outlook email search so bad?

https://twitter.com/el1s7/status/2057133248556187910
2•_el1s7•2m ago•0 comments

AI and the Future of Music

https://www.youtube.com/watch?v=pDB3yyQnWOQ
1•samdafi•3m ago•1 comments

Google to release first smart glasses since Google Glass flop

https://www.bbc.com/news/articles/cvgz1ynq1nqo
1•Brajeshwar•3m ago•0 comments

Google's new gradient icons for Gmail, Calendar, Drive, and other apps

https://9to5google.com/2026/04/26/gmail-google-gradient-redesign/
1•dragonsenseiguy•4m ago•0 comments

Fears of unfettered hacking spurred by Anthropic's Mythos AI model overstated

https://www.reuters.com/business/fears-unfettered-hacking-spurred-by-anthropics-mythos-ai-model-o...
1•JumpCrisscross•5m ago•0 comments

Show HN: Diom – Back end primitives (queue, rate limit, etc.) in one Rust binary

https://github.com/svix/diom
1•tasn•7m ago•0 comments

Meta to layoff 10% of its workforce (8k jobs)

https://www.businessinsider.com/layoff-meta-severance-details-cobra-jobs-2026-5
1•HyperL0gi•7m ago•0 comments

The next phase of OpenAI's political strategy

https://www.politico.com/news/2026/05/20/chatgpt-state-ai-fight-00928903
1•JumpCrisscross•10m ago•0 comments

Never Use This Site

https://githubstars.com
1•xiaoluolyg•10m ago•1 comments

Basic security in Windows programs running in CrossOver

https://www.dedoimedo.com/computers/crossover-security.html
1•speckx•10m ago•0 comments

Running your own search engine where you are allowed to paint the walls

https://douglasireland.com/i-built-my-own-search-engine-and-you-can-too/
1•thinkalone•11m ago•0 comments

A Common Personal Care Chemical May Trigger Depression in Your Gut

https://tech-paper.com/new-research-found-that-depression-may-begin-in-your-gut-when-a-common-bac...
1•surenohan•12m ago•0 comments

Invariant-Driven Architecture: 20M transactions on a €80/mo Cloud VM

https://medium.com/@hugo.vantighem/invariant-driven-architecture-20m-transactions-on-a-80-mo-scal...
1•le_yougue•12m ago•0 comments

Linux, RSI and the Endless Search for Ergonomics

https://www.tharropoulos.dev/blog/the-endless-search-for-ergonomics/
3•tharropoulos•13m ago•0 comments

ArcBrush – Node-based 2D image editor

https://arcbrush.com/
1•NatKarmios•13m ago•1 comments

State of AI in design – 2026 report

https://stateofaidesign.com/
2•arishi•14m ago•0 comments

AWS just snapped up a host of Apple's M3 Ultra Macs despite high global shortage

https://www.techradar.com/pro/you-cant-buy-them-for-your-home-or-office-but-aws-just-snapped-up-a...
1•theanonymousone•15m ago•0 comments

Stopgap for Claude -p before Anthropic's June 15 billing split

https://gist.github.com/HammerMei/8ceef2740cf094188e1383fce014861a
1•hammer-mei•16m ago•1 comments

Those Darn MacBook Notches

https://www.rubenerd.au/those-macbook-notches/
1•joooscha•16m ago•1 comments

Rights of at least one in seven UK workers illegally violated at their job

https://www.ucl.ac.uk/news/2026/may/rights-least-one-seven-uk-workers-illegally-violated-their-job
1•robtherobber•17m ago•0 comments

Learning Systems and Innate Behavior

https://costa-and-associates.com/works/learning-systems-and-innate-behavior
1•lcmeyer•17m ago•0 comments

The biggest data center ever is becoming a problem in Utah

https://www.theverge.com/ai-artificial-intelligence/933687/utah-stratos-project-data-center-kevin...
3•Brajeshwar•18m ago•0 comments

Red light therapy: The science behind the hype [video]

https://www.youtube.com/watch?v=WbYbhA1N224
1•mgh2•19m ago•0 comments

Bigger context windows won't save your agent

https://rahulbaboota.substack.com/p/bigger-context-windows-wont-save
1•RahulBaboota•19m ago•1 comments

Bot Consent Protocol – Offici

1•t-Hac•20m ago•0 comments

Sigstore is an open source project for improving software supply chain security

https://docs.sigstore.dev/about/overview/
2•mooreds•23m ago•0 comments
Open in hackernews

Using Postgres pg_test_fsync tool for testing low latency writes

https://tanelpoder.com/posts/using-pg-test-fsync-for-testing-low-latency-writes/
40•mfiguiere•11mo ago

Comments

singron•11mo ago
Note that this workload is a worst case for iops and you will get higher iops in nearly any optimized workload. E.g. postgres needs to sync the WAL in order to commit (which does look like this test), but there are a ton of other writes that happen in parallel on the heap and index pages in addition to any reading you do. IME the consumer drives that benchmark at 500K iops and get only 500 iops on this test might get 10K or 20K iops on a more typical mixed workload.
tanelpoder•11mo ago
Throughput with enough I/O concurrency, yes. That's actually why I wrote this blog entry, just to bring attention to this - having nice IOPS numbers do not translate to nice individual I/O latency numbers. If an individual WAL write takes ~1.5 ms (instead of tens of microseconds), this means that your app transactions also take 1.5+ ms and not sub-millisecond. Not everyone cares about this (and often don't even need to care about this), but worth being aware of.

I tend to set up a small, but completely separate block device (usually on enterprise SAN storage or cloud block store) just for WAL/redo logs to have a different device with its own queue for that. So that when that big database checkpoint or fsync happens against datafiles, the thousands of concurrently submitted IO requests won't get in the way of WAL writes that still need to complete fast. I've done something similar in the past with separate filesystem journal devices too (for niche use cases...)

Edit: Another use case for this is that ZFS users can put the ZIL on low-latency devices, while keeping the main storage on lower cost devices.

natmaka•11mo ago
> I tend to set up a small, but completely separate block device (usually on enterprise SAN storage or cloud block store) just for WAL/redo logs

I'm not sure about this, as this separate device may handle more of the total (aggregated) work by being a member of an unique pool (RAID made of all available non-spare devices) used by the PostgreSQL server.

It seems to me that in most cases the most efficient setup, even when trying hard to reduce the maximal latency (and therefore to sacrifice some throughput), is an unique pool AND an adequate I/O scheduling enforcing a "max latency" parameter.

If, during peaks of activity, your WAL-dedicated device isn't permanently at 100% usage while the data pool is, then dedicating it may (overall) bump up the max latency and reduce throughput.

Tweaking some parameters (bgwriter, full_page_writes, wal_compression, wal_writer_delay, max_wal_senders, wal_level, wal_buffers, wal_init_zero...) with respect to the usage profile (max tolerated latency, OLTP, OLAP, proportion of SELECTs and INSERTs/UPDATEs, I/O subsystem characteristics and performance, kernel parameters...) is key.

tanelpoder•11mo ago
When doing 1M+ IOPS, you probably do not want to use OS IO schedulers due to the OS (timer & spinlock) overhead [1] and let the hardware take care of any scheduling in their device queues. But you're right about flattening the IO burst spikes via DB configuration, so that you'd have constant slow checkpointing going on, instead of a huge spike every 15 minutes...

All this depends on what kind of storage backend you're on, local consumer SSDs with just one NVMe namespace each, or local SSDs with multiple namespaces (with their own queues) or a full-blown enterprise storage backend where you have no idea what's really going in the backend :-)

[1]: https://tanelpoder.com/posts/11m-iops-with-10-ssds-on-amd-th...

Edit: Note that I wasn't proposing using an entire physical disk device (or multiple) for the low latency files, but just a part of it. Local enterprise-grade SSDs support multiple namespaces (with their own internal queues) so you can carve out just 1% of that for separate I/O processing. And with enterprise SAN arrays (or cloud elastic block store offerings) this works too, you don't know how many physical disks are involved in the backend anyway, but at your host OS level, you get a separate IO queue that is not gonna be full of thousands of checkpoint writes.

fendale•11mo ago
> local enterprise-grade SSDs support multiple namespaces (with their own internal queues)

What do you mean by namespaces here? Are they created by having different partitions or LVM volumes? As you mentioned consumer grade SSDs only have a single namespace, I am guessing this is something that needs some config when mounting the drive?

tanelpoder•11mo ago
With SSDs that support namespaces you can use commands like "nvme create-ns" to create logical "partitioning" of the underlying device, so you'll end up with device names like this (also in my blog above):

/dev/nvme0n1 /dev/nvme0n2 /dev/nvme0n3 ...

Consumer disks support only a single namespace, as far as I've seen. Different namespaces give you extra flexibility, I think some even support different sector sizes for different namespaces).

So under the hood you'd still be using the same NAND storage, but the controller can now process incoming I/Os with awareness of which "logical device" they came from. So, even if your data volume has managed to submit a burst of 1000 in-flight I/O requests via its namespace, the controller can still pick some latest I/Os from other (redo volume) namespaces to be served as well (without having to serve the other burst of I/Os first).

So, you can create a high-priority queue by using multiple namespaces on the same device. It's like logical partitioning of the SSD device I/O handling capability, not physical partitioning of disk space like the OS "fdisk" level partitioning would be. The OS "fdisk" partitioning or LVM mapping is not related to NVMe namespaces at all.

Also, I'm not a NVMe SSD expert, but this is my understanding and my test results agree so far.

fendale•11mo ago
Ah ok - so googling a bit on this, you do specify the size when creating the namespace. So if you have multiple namespaces, they appear as separate devices on the OS, and then you can mkfs and mount each as if its a different disk. Then you get the different IO queues at the hardware level, unlike with traditional partitioning.
tanelpoder•11mo ago
Yep, exactly - with OS level partitioning or logical volumes, you'd still end up with a single underlying block device (and a single queue) at the end of the day.
CodesInChaos•11mo ago
Could you run this on network block storage like EBS? I assume those have pretty high latency as well, even with high IOPS volumes?
tanelpoder•11mo ago
I'll see if I have a chance to run such a test on AWS in coming days (and would need to keep running it for much longer than just 5 seconds shown in the blog).

If you care about WAL write/commit latency, you could provision a small-ish EBS io2 Block Express device (with provisioned IOPS) just for your WAL files and the rest of your data can still reside on cheaper EBS storage. And you might not even need to hugely overprovision your WAL device IOPS (as databases can batch commit writes for multiple transactions).

But the main point is that once your WAL files are on a completely separate blockdevice from all the other datafile I/O, they won't suffer from various read & write IO bursts that can happen during regular database activity. On Oracle databases, I put controlfiles to these separate devices too, as they are on the critical path during redo log switches...

CodesInChaos•11mo ago
How do you backup those split volumes? I like EBS volume snapshots, since they're atomic, incremental, fast to restore and make it easy to spin up a clone. But obviously that approach won't work for split volumes.
tanelpoder•11mo ago
Yep indeed, that's a tradeoff, if your DB fits into a single volume. I'm not that deeply familiar with databases other than Oracle (that has its own ways to work work around this), so for ease of use, everything on a single volume keeps things simpler.

One thing that I try to achieve anyway, is to spread & "smoothen" the database checkpoint & fsync activity over time via database checkpointing parameters, so you won't have huge "IO storms" every 15 minutes, but just steady writing of dirty buffers going on all the time. So, even if all your files are stored on the same blockdevice, you'll less likely see a case where your WAL writes wait behind 50000 checkpoint write requests issued just before.

CoolCold•11mo ago
well, likely you can just use those as ZFS with ZIL or in more tradional setup with LVM + LVW writeback cache - which from my experience greatly improves latency
dboreham•11mo ago
Aha! Useful article because I somehow never knew about pg_test_fsync until now. I wrote and maintained a similar tool long ago before open source times, when I worked on database storage engines. Several times since I've wished I still had that tool. Now I do. Excellent.
CoolCold•11mo ago
fio, used like

    fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300 --name=mytest
is very good approximation here on "real" iops - note on "fdatasync" - it easily finds out the consumer SSD 500 iops vs DC SSD with 30000 iops
anarazel•11mo ago
The numbers in the post highlight an issue I have with Samsung consumer SSDs - they've slowed down FUA writes to an absurd degree.

        open_datasync                       249.578 ops/sec    4007 usecs/op
        fdatasync                           608.573 ops/sec    1643 usecs/op
open_datasync (i.e. O_DSYNC) ends up as FUA writes, fdatasync() as a plain write followed by a cache flush.

On just about anything else a single FUA write is either the same speed as a write + fdatasync, or considerably faster.

This is pretty annoying, as using O_DSYNC is a lot more suitable for concurrent WAL writes, but because Samsung SSDs are widespread, changing the default would regress performance substantially for a good number of users.