3 ms·
I disagree. I've gotten a lot from reading publications about people profiling their applications and posting about the results with descriptions of their appli
by kerkeslager 3y ago
I disagree. I've gotten a lot from reading publications about people profiling their applications and posting about the results with descriptions of their application design and load. Yes, obviously you can't read that and draw conclusions about how the same data structure or algorithm will perform in your application, but it helps you build an intuition for what is likely to work in applications with different characteristics.
Here's an example: https://queue.acm.org/detail.cfm?id=1814327 https://queue.acm.org/detail.cfm?id=1814327
If you read that for the first time and don't learn something, I'd be quite surprised.
- josephg 3y agoThanks for the link! I read that about a decade ago, and its still a great read. That article makes it seem ridiculous to implement software any other way. And yet, yesterday I watched a talk about how ridiculous it is to use mmap to implement a database: https://db.cs.cmu.edu/mmap-cidr2022/ https://db.cs.cmu.edu/mmap-cidr2022/ And I ended up side tracked watching some talks from CMU about database page buffers and such. Its weird how people with different backgrounds (OS / kernel people and database people) come to very similar problems in computing with very different perspectives, and they end up implementing very different systems as a result. And in each case, each community thinks the other way is basically wrong. My understanding is that Linus Torvalds thinks O_DIRECT is a ridiculous flag that database people probably don't want. And from a database perspective, its crazy how difficult the linux kernel makes it to write high performance filesystem code that never corrupts data if the system crashes. fsync is a misshapen sledgehammer, and disk write barriers or IO completion events are totally missing from linux.