Samay Sharma

Samay Sharma

CITUS BLOG AUTHOR PROFILE

Engineering manager at Microsoft focused on open source Postgres. Worked with Citus & Postgres users for many years. CS degree from IIIT Hyderabad. Speaker at #CitusCon, RailsConf, Ignite, & Build. Bollywood movie & dance lover. Dad.

PUBLISHED ARTICLES
Samay Sharma

Debugging Postgres autovacuum problems: 13 tips

Written by By Samay Sharma | July 28, 2022 Jul 28, 2022

If you’ve been running PostgreSQL for a while, you’ve heard about autovacuum. Yes, autovacuum, the thing which everybody asks you not to turn off, which is supposed to keep your database clean and reduce bloat automatically.

And yet—imagine this: one fine day, you see that your database size is larger than you expect, the I/O load on your database has increased, and things have slowed down without much change in workload. You begin looking into what might have happened. You run the excellent Postgres bloat query and you notice you have a lot of bloat. So you run the VACUUM command manually to clear the bloat in your Postgres database. Good!

But then you have to address the elephant in the room: why didn’t Postgres autovacuum clean up the bloat in the first place…? Does the above story sound familiar? Well, you are not alone. 😊

Keep reading
Samay Sharma

The Postgres 10 feature you didn't know about: CREATE STATISTICS

Written by By Samay Sharma | March 6, 2018 Mar 6, 2018

If you’ve done some performance tuning with Postgres, you might have used EXPLAIN. EXPLAIN shows you the execution plan that the PostgreSQL planner generates for the supplied statement. It shows how the table(s) referenced by the statement will be scanned (using a sequential scan, index scan etc), and what join algorithms will be used if multiple tables are used. But, how does Postgres come up with these plans?

Keep reading
Samay Sharma

Fermi Estimates On Postgres Performance

Written by By Samay Sharma | September 29, 2017 Sep 29, 2017

A lot of people look to Citus for a solution that scales out their Postgres database, whether on-prem or as open source or in the cloud, as a fully-managed database as a service. And yet, a common question even before looking at Citus is: “what kind of performance can I get with Postgres?” The answer is: it depends. The performance you can expect from single node Postgres comes down to your workload, both on inserts and on the query side and how large that single node is. Unfortunately, “it depends” often leaves people a bit dissatisfied.

Fortunately, there are some fermi estimates, or in laymans terms ballpark, of what performance single node Postgres can deliver. These ballparks apply both to single-node Postgres, but from there you can start to get estimates of how much further you can go when scaling out with Citus. Let’s walk through a simplified guide for what you should expect in terms of the read performance and ingest performance for queries in Postgres.

Keep reading

Page 1 of 1