You might need to rethink your clustered index

A common table design that you might be familiar with, is to have an identity column, could be int, or long, or uniqueidentifier, and then, a clustered index is conveniently created on that column. An identity is, technically speaking, the perfect choice for clustered index - it is not null, it is unique, and in most case it’s small. But is that really the best choice?

(Draft) The mysterious case of Gen 2 GC

Have you ever track and debug a Heisenbug? It’s elusive bug that disappear when you try to find it. But how about the opposite of Heisenbug, the one that tracking the bug actually causes it?

Death by a (Few) Thousands of Threads 👻

There are things in life that excites and scares you at the same time. Recently I helped out a case when it’s both exciting and scary. The problem was a gigantic 106 GB memory dump with a very small managed heap compared to the dump’s size. That hints unmanaged memory leak. While I’m fairly confident with memory dump analysis, I haven’t had a lot of good luck with unmanaged memory leaks. It could have turned into a big headache and unknown territory. But if it’s not me then who will go to hell? Then game is on.

Fatal Flaw with Geta-NotFoundHandler

A deep dive into a fatal flaw in Geta-NotFoundHandler that caused high CPU usage due to an endless loop triggered by an empty redirect rule.

A Curious Case of Free Objects

A memory dump investigation into rising memory usage and the mystery of free objects in the Large Object Heap.