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

Top all-time · #1766

V

Vlad Mihalcea

Personal blog · vladmihalcea.comprogrammingdata

Vlad Mihalcea's personal blog at vladmihalcea.com covers programming and data. Since 2014, 44 different Hacker News readers have linked it 97 times, most often “The best UUID type for a database Primary Key”. It is still writing: the last post was on 2026-10-23, and you can follow it by feed.

Visit the blog
97mentions?
44HN people?
2014–2025first – last linked?
Links on Hacker News per year · peak 12 in 2015

Hi! My name is Vlad Mihalcea, and I’m a Java Champion. I wrote the High-Performance Java Persistence book, which became one of the best-selling Java books on Amazon.I'm currently developing the amazing Hypersistence Optimizer, and in my free time, I develop various open-source projects (e.g. Hypersi

Most-linked posts?

  1. The best UUID type for a database Primary Key
    5 people · 5 mentions · first linked 2022-12-12
  2. 14 High-Performance Java Persistence Tips – Vlad Mihalcea
    4 people · 5 mentions · first linked 2018-06-29
  3. How Does MVCC (Multi-Version Concurrency Control) Work
    3 people · 3 mentions · first linked 2018-12-12
  4. /2014/06/23/the-hilo-algorithm/
    2 people · 2 mentions · first linked 2016-06-17
  5. /
    2 people · 2 mentions · first linked 2017-02-16
  6. How to get a 10,000 points StackOverflow reputation
    2 people · 2 mentions · first linked 2015-06-10
  7. Time to break free from the SQL-92 mindset
    2 people · 2 mentions · first linked 2014-05-12

What Hacker News says?

  1. A problem with this approach is it's not monotonical. Especially if you want to use this thing as an index in a database, you'll run into problems where you try doing middle insertions frequently, which causes fragmentation. The solution to this problem is making the higher order characters time sorted [1]. You don't need to go all out like uuid, you can have a pretty low resolution. It's more important that new ins…

    Comment linking /uuid-database-primary-key/

    on “You'll regret using natural keys”
  2. Submitted Why you should pay developers to learn as a story · 10 points

    HN discussion
  3. Excellent post, write ups like this are the reason I keep coming here. What about the hi/lo algorithm as a middle ground? https://vladmihalcea.com/2014/06/23/the-hilo-algorithm/ In short, and I hope I don't oversimplify, each "shard" or "cluster" in the database gets a "block" of ids it can then go and assign on their own, the sequential "atomic" increase happens only once per hi "block", lowering the contention. Th…

    Comment linking /2014/06/23/the-hilo-algorithm/

    on “Be Careful with UUID or GUID as Primary Keys”
  4. Submitted A beginner’s guide to Cache synchronization strategies as a story · 7 points

    HN discussion
  5. Most ORM-related problems are related to lack of knowledge of how the tool works. However, if you understand how databases work, how to tune the driver and how to get the ORM tool to generate the same queries you'd otherwise write yourself, then you are fine. For more details, check out these [14 High-Performance Persistence Tips]( https://vladmihalcea.com/14-high-performance-java-persistenc... ).

    Comment linking /14-high-performance-java-persistence-tips/

    on “How not to structure database-backed web apps: performance bugs in the wild”
  6. Submitted 14 High-Performance Java Persistence Tips as a story · 6 points

    HN discussion
  7. Thanks for sharing this. For anyone else interested, here’s one post he has on the problem: https://vladmihalcea.com/n-plus-1-query-problem/

    Comment linking /n-plus-1-query-problem/

    on “OO in Python is mostly pointless”
  8. Submitted MySQL Query Optimization with Releem as a story · 5 points

    HN discussion
  9. See https://vladmihalcea.com/ He has a lot of info on high performance Hibernate and particularly the n + 1 issue. It should be mostly avoidable.

    Comment linking /

    on “OO in Python is mostly pointless”
  10. Submitted Twelve Years of Blogging as a story · 4 points

    HN discussion
  11. For those who don’t know what it is: https://vladmihalcea.com/2014/06/23/the-hilo-algorithm/ Basically, it optimizes for lots of insert operations by using a composite primary key, one of which is a SERIAL assigned by the server, and the other is a value arbitrarily assigned by the client. This allows a client to assign and use many new unique keys without asking the server for a new value for every individual row.

    Comment linking /2014/06/23/the-hilo-algorithm/

    on “PG Casts – Postgres Screencasts”
  12. Submitted The Anatomy of Connection Pooling as a story · 4 points

    HN discussion
  13. If speed is one of the things holding you back from testing with the native database, running the database data on a tmpfs mountpoint is worth looking at. https://vladmihalcea.com/how-to-run-integration-tests-at-war...

    Comment linking /how-to-run-integration-tests-at-warp-speed-with-docker-and-tmpfs/

    on “The database ruins all good ideas”
  14. Submitted How Does the 2PL (Two-Phase Locking) Algorithm Work as a story · 4 points

    HN discussion
  15. I wrote the book in MarkDown using IntelliJ IDEA. The book is stored on GitHub and LeanPub fetches the files and renders it. My blog is running on WordPress.com. I'm using a Business plan so I can better customize the website. https://vladmihalcea.com/wordpress-business-plan/

    Comment linking /wordpress-business-plan/

    on “Writing a software book and making over $100k”
  16. Submitted 14 High-Performance Java Persistence Tips – Vlad Mihalcea as a story · 4 points

    HN discussion
  17. The book made more than 100k as it's still selling pretty well. In fact, the sales have increased over time, even if the book is now 5 years old. I keep on updating it and will release a second edition soon. The marketing effort is not just for the book. It also helps me sell: - video courses - on-site training - online training and workshops - find consulting opportunities - subscription licenses for a software pro…

    Comment linking /hypersistence-optimizer/

    on “Writing a software book and making over $100k”
  18. Submitted A beginner’s guide to database multitenancy as a story · 4 points

    HN discussion
  19. No, that's not an issue at all. I have hundreds of articles on my blog that are also covered in the book: https://vladmihalcea.com/tutorials/hibernate/ But reading the book is easier than browsing the articles because the book has a certain structure while the articles focus on a single topic only.

    Comment linking /tutorials/hibernate/

    on “Writing a software book and making over $100k”
  20. Submitted How does a relational database work as a story · 4 points

    HN discussion
  21. That's where my blog, https://vladmihalcea.com/blog/ or my StackOverflow answer, https://stackoverflow.com/users/1025118/vlad-mihalcea come into play. Most of my readers get to know me from these resources prior to knowing about my book.

    Comment linking /blog/

    on “Writing a software book and making over $100k”
  22. Submitted PostgreSQL Index Types as a story · 3 points

    HN discussion
  23. https://vladmihalcea.com/how-does-mvcc-multi-version-concurr... http://www.interdb.jp/pg/pgsql05.html

    Comment linking /how-does-mvcc-multi-version-concurrency-control-work/

    on “Readings in Database Systems, 5th Edition (2015)”
  24. Submitted Way to get more Twitter followers as a story · 3 points

    HN discussion
  25. You actually should in the backend, at least when using clustered indices... See also https://vladmihalcea.com/clustered-index/ Last section about "Clustered Index column monotonicity". Of course a public facing uuid or so is possible, but you want to index this too...

    Comment linking /clustered-index/

    on “AI Dungeon public disclosure vulnerability report”
  26. Submitted The race condition that led to bankruptcy as a story · 3 points

    HN discussion
  27. I've been using Hibernate for 17 years and never had any performance issue with it. Want to know my secret? It's very simple. I just read the manual in 2004. After using it successfully for so long, I wrote a best-seller about how to get the most out of it: https://www.amazon.com/High-Performance-Java-Persistence-Vla... And, just because afterward I even worked on Hibernate to add all sorts of performance improvemen…

    Comment linking /trainings/high-performance-sql/

    on “Relational databases aren’t dinosaurs, they’re sharks”
  28. Submitted 60 years of COBOL – past, present, and future as a story · 3 points

    HN discussion
  29. I understand that this is an example so I try to build some context around those queries. The issue here is that you (apparently) want to guarantee that whoever sees the result of the select (probably a customer) can safely buy the last available book with the update. This can't be solved in a simple way because minutes can pass between that select and that update. This means that you can't put those queries in a tr…

    Comment linking /a-beginners-guide-to-database-locking-and-the-lost-update-phenomena/

    on “The Troublesome Active Record Pattern”
  30. Submitted High-Performance Java Persistence Tips as a story · 3 points

    HN discussion

Search all of HN for vladmihalcea.com

Linked by the same people?