Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #5313

T

Tanel Poder

Personal blog · tanelpoder.com/posts · on HN as tanelpodersystemsdata

Tanel Poder's personal blog at tanelpoder.com covers systems and data. Since 2020, 14 different Hacker News readers have linked it 105 times, most often “Why SELECT * is bad for SQL performance (2020)”. It is still writing: the last post was on 2026-04-10, and you can follow it by feed.

Visit the blog
105mentions?
14HN people?
2020–2026first – last linked?
Links on Hacker News per year · peak 35 in 2025

- Linux, Oracle, SQL performance tuning and troubleshooting training & writing.

The author on HN?

tanelpoder · 6,486 karma · member since 2018

A long-time computer performance nerd, creator of 0x.tools blog: tanelpoder.com

From their public HN profile, which links to this site.

Most-linked posts?

  1. Why SELECT * is bad for SQL performance (2020)
    5 people · 6 mentions · first linked 2020-11-25
  2. Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
    4 people · 6 mentions · first linked 2021-01-29
  3. Measuring process CPU scheduling latency on Linux
    2 people · 3 mentions · first linked 2021-01-23
  4. Peeking into Linux kernel-land using /proc filesystem for quick troubleshooting
    2 people · 2 mentions · first linked 2021-01-20
  5. Visualizing SQL Plan Execution Time with FlameGraphs (2018)
    2 people · 2 mentions · first linked 2021-02-15

What Hacker News says?

  1. Yes, can confirm, the book is great. I was also happy to see that the author correctly (in my mind) used the term “embedding vectors” vs. “vector embeddings” that most others seem to use… Some more context about my pet peeve: https://tanelpoder.com/posts/embedding-vectors-vs-vector-emb...

    Comment linking /posts/embedding-vectors-vs-vector-embeddings/

    on “The maths you need to start understanding LLMs”
  2. Submitted Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation as a story · 497 points

    HN discussion
  3. Valid question! 1) Learning & researching capabilities of modern HW 2) Running RDBMS stress tests (until breaking point), Oracle, Postgres+TimescaleDB, MySQL, probably ScyllaDB soon too 3) Why? As a performance troubleshooter consultant+trainer, I regularly have to reproduce complex problems that show up only under high concurrency & load - stuff that you can't just reproduce in a VM in a laptop. 4) Fun - seeing if…

    Comment linking /videos/

    on “Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation”
  4. Submitted Why SELECT * is bad for SQL performance (2020) as a story · 259 points

    HN discussion
  5. Good question. I don't ever read kernel code as a starting point, only if some profiling or tracing tool points me towards an interesting function or codepath. And interesting usually is something that takes most CPU in perf output or some function call with an unusually high latency in ftrace, bcc/bpftrace script output. Or just a stack trace in a core- or crashdump. As far as mindset goes - I try to apply the deve…

    Comment linking /psnapper

    on “Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation”
  6. Submitted Do not use redirection characters in your shell prompt as a story · 217 points

    HN discussion
  7. Seems like you could build a workstation that runs these quesries faster and cheaper than AWS ever could on a RAIDed set of NVME drives. https://tanelpoder.com/posts/11m-iops-with-10-ssds-on-amd-th...

    Comment linking /posts/11m-iops-with-10-ssds-on-amd-threadripper-pro-workstation/

    on “Searching the web for under $1000/month”
  8. Submitted Is Your Linux Version Hiding Interrupt CPU Usage from You? as a story · 133 points

    HN discussion
  9. Do you mean arguments and the internal syscall number used for a syscall on your given platform? I recently had enough of parsing the various syscall.h files on different architectures and wrote a debugfs syscall info reader instead. That way you can see all tracepoint-instrumented syscalls and arguments available exactly on your currently running kernel on your platform: https://tanelpoder.com/posts/list-linux-syst…

    Comment linking /posts/list-linux-system-call-arguments-with-syscallargs/

    on “A Linux kernel syscall implementation tracker”
  10. Submitted MySQL now shows its thread names at OS level for better troubleshooting as a story · 131 points

    HN discussion
  11. Great post called "Achieving 11M IOPS & 66 GB/s IO on a Single ThreadRipper Workstation" [1, 2] that basically walks through step-by-step that your computer is just a bunch of interconnected networks. Highly recommend the post if you're into this and also sort of amazing how far single systems have come. You can basically do "big data" type things on this single box. [1] https://tanelpoder.com/posts/11m-iops-with-10…

    Comment linking /posts/11m-iops-with-10-ssds-on-amd-threadripper-pro-workstation/

    on “Your computer is a distributed system”
  12. Submitted When eBPF pt_regs reads return garbage on the latest Linux kernels, blame Fred as a story · 105 points

    HN discussion
  13. AMD definitely has a recent high end desktop/workstation platform with its ThreadRipper Pro WX CPUs (EPYC server CPUs) that have 128 PCIe 4.0 lanes and 8 memory channels. And enough PCIe slots to actually use this throughput with the right kind of hardware, like a bunnch of PCIe4.0 NVMe SSDs [1]. Yep, the platform is 2 years old, but supports both the Zen2 and current Zen3 CPUs (but not PCIe5.0 & DDR5 as Zen 4 requi…

    Comment linking /posts/11m-iops-with-10-ssds-on-amd-threadripper-pro-workstation/

    on “The death of the PCIe expansion card”
  14. Submitted New Tool: lsds – List All Linux Block Devices and Settings in One Place as a story · 101 points

    HN discussion
  15. Sometime ago I posted this: https://tanelpoder.com/2009/03/14/the-real-history-of-oracle... probably not true, but fun to think about.

    Comment linking /2009/03/14/the-real-history-of-oracle-database-revealed/

    on “Oracle started as a CIA project (2014)”
  16. Submitted High System Load with Low CPU Utilization on Linux? (2020) as a story · 90 points

    HN discussion
  17. I wrote the CatBench vector search playground toy app exactly for this reason! [1] ("cat-similarity search for recommendation engines and cat-fraud detection"). I built it both for learning & fun, but also it's useful for demoing vector search functionality, plugged in to regular RDBMS application schemas in business context. I used cats & dogs as it's something everyone understands, instead of diving deep into some…

    Comment linking /posts/catbench-vector-search-query-throughput-latency-monitoring/

    on “How can AI ID a cat?”
  18. Submitted RAM is the new disk – and how to measure its performance (2015) as a story · 75 points

    HN discussion
  19. I took a completely different path to visualizing embedding vectors’ physical layout [1] - mainly to explain how the data structures, data volumes and comparison would radically differ, compared to your regular btree index searches. I made sure to mention that you can’t make any conclusions based on just human eyeballing of these vector heatmaps, but the database people I’ve demoed this to, seem to have reached some…

    Comment linking /posts/comparing-vectors-of-the-same-rotated-image/

    on “A visual exploration of vector embeddings”
  20. Submitted I rage-converted my RTX4090 into an eGPU as a story · 46 points

    HN discussion
  21. On Linux this is not true, on an IO heavy system - with lots of synchronous I/Os done concurrently by many threads - your load average may be well over the number of CPUs, without having a CPU shortage. Say, you have 16 CPUs, load avg is 20, but only 10 threads out of 20 are in Runnable (R) mode on average, and the other 10 are in Uninterruptible sleep (D) mode. You don't have a CPU shortage in this case. Note that…

    Comment linking /posts/high-system-load-low-cpu-utilization-on-linux/

    on “Linux Performance Analysis (2015)”
  22. Submitted Using Postgres pg_test_fsync tool for testing low latency writes as a story · 40 points

    HN discussion
  23. When I was looking into this, I found that just running ps (with -L option to see all threads, not just processes/thread group leaders) with some grep/sort/uniq was the easiest way to break down where does the “too high Linux system load” come from. No need to compile C code or have root access to drill down into load. And you could drill down further by sampling some additional /proc/PID/task/TID/ files, like “sysc…

    Comment linking /posts/high-system-load-low-cpu-utilization-on-linux/

    on “Where Linux's load average comes from in the kernel”
  24. Submitted List Any Linux Tracepoint with Their Arguments, Datatypes and Related Structs as a story · 40 points

    HN discussion
  25. By the way, JVMs also set thread names for their own housekeeping threads (on Linux at least, not sure from which version) and allow applications to name them too. I wrote an example here: https://tanelpoder.com/posts/measuring-java-jvm-thread-level...

    Comment linking /posts/measuring-java-jvm-thread-level-activity-on-linux/

    on “MySQL now shows its thread names at OS level for better troubleshooting”
  26. Submitted Oracle Shared Pool Internals: Allocated Chunk Status Indicators in Heap Dumps as a story · 40 points

    HN discussion
  27. Yup, for best results you wouldn't just dump your existing pointer-chasing and linked-list data structures to CXL (like the Optane's transparent mode was, whatever it was called). But CXL-backed memory can use your CPU caches as usual and the PCIe 5.0 lane throughput is still good, assuming that the CXL controller/DRAM side doesn't become a bottleneck. So you could design your engines and data structures to account…

    Comment linking /posts/testing-oracles-use-of-optane-persistent-memory/

    on “GigaByte CXL memory expansion card with up to 512GB DRAM”
  28. Submitted Optimizing eBPF I/O latency accounting when running 37M IOPS, on 384 CPUs as a story · 22 points

    HN discussion
  29. The title says Database Protocols, but the author writes only about MySQL and Postgres. There are other databases out there, for example Oracle that I’m the most familiar with and it has had a break/reset mechanism built in to its protocol for at least 30 years [1]. Its a 2 step operation (2 roundtrips), one sending an error back to the client instead of the expected result and the second step will reset “current ca…

    Comment linking /2008/04/10/sqlnet-breakreset-to-client/

    on “Database Protocols Are Underwhelming”
  30. Submitted Catbench Vector Search Demo Has Postgres SQL Throughput, Latency Monitoring Now as a story · 18 points

    HN discussion

Search all of HN for tanelpoder.com

Linked by the same people?