tanelpoder.com
Creator of https://0x.tools, also a long-time computer performance geek. Perf & troubleshooting blog: tanelpoder.com. All onions are mine.
236 posts
1,309 followers
471 following
Prolific Poster
Conversation Starter
comment in response to
post
And if you haven't done it before, will get a big surprise that OR is much, much harder to implement than AND :-)
comment in response to
post
Yeah, like do you want see what the code is supposed to be doing vs. what it actually does?!
comment in response to
post
Here's the link (and some cats!):
tanelpoder.com/posts/catben...
comment in response to
post
But indeed, if you push more writes than some component in the backend can handle, you'd end up being throttled/blocked somewhere on the way. With write cache, hopefully later down the road of bottlenecks...
comment in response to
post
The controller can bundle up a bunch of cached writes and format a new NAND block with these writes (and adjust the flash-translation-layer metadata accordingly). So you'd get closer to "perfect NAND writes" just like you'd get with append-only LSM trees etc.
comment in response to
post
Link to post here: tanelpoder.com/posts/using-...
comment in response to
post
So, "write through" is not necessarily gonna be slower, if the underlying hardware has some (battery-backed DRAM cache persistence) features in it. Enterprise storage arrays have done these kinds of tricks for decades.
comment in response to
post
And if you look into another device listed in my blog entry (INTEL SSDPED1D280GA), that's an Intel Optane SSD that doesn't even have a DRAM cache as writes always go to the low-latency 3D XPoint "NAND", so it can advertise that it doesn't need additional "flush" requests to persist data sent to it.
comment in response to
post
... then the SSD device can present itself as "write through", even if it actually keeps the write payload in DRAM cache for a while (but has power-loss-protection, so effectively your cached writes will land in persistent storage on power failure).
comment in response to
post
Oh, good detail to bring out: Indeed "write back" means that the write is not persistent when it's acknowledged and you need an explicit request with REQ_OP_FLUSH or FUA flag to direct the controller to persist it.
BUT, if you have a reliable write cache, then... (continued)
comment in response to
post
Link to post here: tanelpoder.com/posts/using-...
comment in response to
post
Link here: tanelpoder.com/posts/python...
comment in response to
post
Here's the link: tanelpoder.com/posts/almost...
comment in response to
post
Here's the link: tanelpoder.com/posts/almost...
comment in response to
post
Just jumped on there, thanks :-)