Eliminating PostgreSQL catalog traversal overhead with local partition calculations for up to 20x faster hash partition queries.| Shayon Mukherjee
If AI learns from human intelligence, can it ever truly transcend its origins? Is AGI a technical milestone or philosophical mirage?| Shayon Mukherjee
When LLM models generates clean, professional-looking code, it's tempting to stop exploring alternatives. But therein lies the risks that comes with premature closure. So what is premature closure?| Shayon Mukherjee
A follow-up exploration into PostgreSQL CTE materialization, diving deeper into why non-idempotent subqueries can execute multiple times, leading to unexpected results.| Shayon Mukherjee
How a seemingly straightforward DELETE query using a CTE and LIMIT returned more rows than expected due to query planner optimization.| Shayon Mukherjee
Safely leverage PostgreSQL's asynchronous commit for significant performance gains| Shayon Mukherjee
Prototyping new features and fixing bugs has become so much faster now that we have coding copilots like Cursor and LLMs (Large Language Models). We can generate boilerplate code in no time, saving time that would have gone into repetitive tasks. AI suggestions often feel like magic—type a quick prompt, accept a snippet, and plug it in. However, this speed comes with a downside: it’s too easy to bypass deep thinking.| Posts on Shayon Mukherjee
Practical scaling strategies for application developers who don't have a dedicated database team| Shayon Mukherjee
Testing against a real database uncovers hidden pitfalls that can appear as the application matures| Shayon Mukherjee
When dealing with very large PostgreSQL tables (we’re talking 15TB+), sometimes routine maintenance like archiving very old data can become surprisingly challenging. Despite having good indexes. I recently faced this issue when trying to clean up very old data on a very large and legacy table. The Problem Initial approach used standard ID-based pagination. Imagine a query like this: DELETE FROM large_table WHERE id IN ( SELECT id FROM large_table WHERE created_at < '2023-04-01' ORDER BY id ...| Shayon Mukherjee
This new capability extends PostgreSQL logical replication, enabling DDL tracking and bringing more flexibility to database migrations through pg_easy_replicate| Shayon Mukherjee
When you use `IF NOT EXISTS` and re-run your index creation, the task can silently complete while leaving behind an invalid index.| Shayon Mukherjee
The dichotomy between the progressive ethos that once permeated the tech industry and the current political endorsements by its so called elites suggests a community at a crossroads. It beckons a fundamental question: what are the core values we hold dear, and how do they translate into our actions and legacies| Shayon Mukherjee
pg_easy_replicate is a CLI orchestrator tool that makes the process of setting up and managing logical replication between PostgreSQL databases a breeze.| Shayon Mukherjee
I explored various approaches and ended up with a worker pool model using a Semaphore, here they are| Shayon Mukherjee
Have you ever had a brilliant idea that you wanted to act on immediately? We've all been there, and it's tempting to jump right in. But what if I told you there's immense value in simply sitting on an idea?| Shayon Mukherjee
The urgency often obscures the fact that incidents cause more incidents. Incidents are not isolated events but links in a chain, each capable of setting off a cascade of further issues. The key lies in resisting these impulses, favoring a methodical exploration of safe, effective and reversible solutions.| Shayon Mukherjee
It's about being agile enough to shift directions based on detailed, early feedback and being fearless in the face of potential failure because every detail examined is a lesson learned.| Shayon Mukherjee
Imagine looking for a specific book in a library. Reading through books sequentially is like a sequential scan in a database, while jumping directly to the desired book is like a random access. The `random_page_cost` reflects the relative cost of random access compared to sequential access in the database. At a very high level.| Shayon Mukherjee
It means believing that each member will effectively handle their responsibilities, understanding that collective problem-solving is more powerful when issues arise, and recognizing that fast doesn't equate to reckless.| Shayon Mukherjee
pg-osc is a CLI tool for making non-blocking, zero downtime schema changes in PostgreSQL| Shayon Mukherjee
Why I enjoy PostgreSQL - Infrastructure Engineer's Perspective| Shayon Mukherjee
Over the last year or so there have been many good discussions on IaaS/PaaS and how its time to reinvent Heroku| Shayon Mukherjee
Network failures and especially transient ones, are a given.| Shayon Mukherjee
One thing I noticed when inspecting signals is that there isn't really an easy way of doing so.| Shayon Mukherjee