Infrastructure at your Service

Category Archives: Postgres

Franck Pachot

Which Bitnami service to choose in the Oracle Cloud Infrastructure?

By | Oracle, Postgres | No Comments

In the Oracle Cloud PaaS you have a marketplace where you can choose your service. Some are packaged from Bitnami and available on multiple OS. My first idea is that in PaaS you do not care about the OS. But Oracle Cloud has this very nice feature where you still have full access to the OS, as root, even in PaaS. Then, you choose the Linux distribution of your preference. Except if performance is different….

 
Read More
Franck Pachot

Postgres, the fsync() issue, and ‘pgio’ (the SLOB method for PostgreSQL)

By | Postgres | 2 Comments

That’s a long blog post title, which is actually just a good pretext to play with Kevin Closson SLOB method for PostgreSQL: pgio I use the beta version of pgio here. If you want to read more about it, you can start on https://kevinclosson.net/2018/05/22/sneak-preview-of-pgio-the-slob-method-for-postgressql-part-i-the-beta-pgio-readme-file/. If you are used to the SLOB for Oracle (https://kevinclosson.net/slob/) you will quickly understand the ‘why’ and ‘how’ of pgio.  

 
Read More
Joël Cattin

PostgreSQL – logical replication with pglogical

By | Database Administration & Monitoring, Database management, Postgres | No Comments

Although PostgreSQL 10 integrate native logical replication (have a look here or here), it is always interesting to be aware of alternative solutions to the available in-core features. One of those is called pglogical. It’s a Postgres extension developed by 2ndQuadrant, major contributor to PostgreSQL development. The goal of this blog post is to discover how to install pglogical and configure it in order to generate simple logical replication cases. Installation To get the extension…

 
Read More
Franck Pachot

Full page logging in Postgres and Oracle

By | Oracle, Postgres | 4 Comments

In my opinion, the volume of logging (aka redo log, aka xlog, aka WAL) is the most important factor for OLTP performance, availability and scalability, for several reasons: This is the only structure where disk latency is a mandatory component of response time This is a big part of the total volume of backups This is sequential by nature, and very difficult to scale by parallelizing In this post, I look at the volume of…

 
Read More
Franck Pachot

Server process name in Postgres and Oracle

By | Oracle, Postgres | No Comments

Every database analysis should start with system load analysis. If the host is in CPU starvation, then looking at other statistics can be pointless. With ‘top’ on Linux, or equivalent such as process explorer on Windows, you see the process (and threads). If the name of the process is meaningful, you already have a clue about the active sessions. Postgres goes further by showing the operation (which SQL command), the state (running or waiting), and…

 
Read More
Franck Pachot

Postgres vs. Oracle access paths IX – Tid Scan

By | Oracle, Postgres | No Comments

In the previous post we have seen how Postgres and Oracle finds the table row from the index entry. It uses the TID / ROWID. I’ll focus on this access path and I will have covered all Postgres access paths to table data. Oracle ACCESS BY ROWID I start with Oracle because we already have seen the TABLE ACCESS BY ROWID. I’ll decompose an index acces to the table. The first step is getting the…

 
Read More
Franck Pachot

Postgres vs. Oracle access paths VIII – Index Scan and Filter

By | Oracle, Postgres | 2 Comments

In the previous post we have seen a nice optimization to lower the consequences of bad correlation between the index and the table physical order: a bitmap, which may include false positives and then requires a ‘recheck’ of the condition, but with the goal to read each page only once. Now we are back to the well-clustered table where we have seen two possible access paths: IndexOnlyScan when all columns we need are in the…

 
Read More