Tracking the refresh Performance of Materialized Views with mv_stat in PostgreSQL
Emanuel Calvo & Anthony Sotolongo · May 24, 2021 · 4 min read

The tracking issue of Materialized views The addition of the materialized views feature in Postgres (available since 9.3 version) represents a substantial benefit on read-queries performance if your application can tolerate stale data.

Read Post
Boost your User-Defined Functions in PostgreSQL
Emanuel Calvo & Anthony Sotolongo · Feb 5, 2021 · 9 min read

Introduction Using the RDBMS only to store data is restricting the full potential of the database systems, which were designed for server-side processing and provide other options besides being a data container.

Read Post
63-Node EKS Cluster running on a Single Instance with Firecracker
Álvaro Hernández · Jan 13, 2021 · 7 min read

63-Node EKS Cluster running on a Single Instance with Firecracker This blog post is a part of a series of posts devoted to Firecracker automation. Currently it consists of the following posts:

Read Post
Repository, Tuning Guide and API for your postgresql.conf
Álvaro Hernández · Dec 18, 2020 · 3 min read

Repository, Tuning Guide and API for your postgresql.conf postgresqlco.nf (aka postgresqlCO.NF, or simply “CONF”) was born a little bit more than two years ago. CONF’s main goal was to help Postgres users find more and easier help to understand and tune their postgresql.

Read Post
Free 1GB Postgres Database on AWS CloudShell
Álvaro Hernández · Dec 17, 2020 · 5 min read

Free 1GB Postgres Database on AWS CloudShell TL;DR AWS CloudShell is a CLI embedded in the AWS Web Console. It is meant to make it easier to run the AWS CLI, SDK and other scripts from your web browser, without having to install anything locally or having to deal with local credential and profiles management.

Read Post
Automation to run VMs based on vanilla Cloud Images on Firecracker
Álvaro Hernández · Dec 14, 2020 · 10 min read

Automation to run VMs based on vanilla Cloud Images on Firecracker This blog post is a part of a series of posts devoted to Firecracker automation. Currently it consists of the following posts:

Read Post
AWS announces Babelfish: open source Postgres with SQL Server compatibility
Álvaro Hernández · Dec 1, 2020 · 3 min read

AWS announces Babelfish: open source Postgres with SQL Server compatibility At AWS re:Invent’s first keynote, Andy Jassy has announced a major breakthrough for Postgres: SQL Server compatibility for Postgres. Open Source.

Read Post
Java, Processes and Streams
Matteo Melli · Nov 24, 2020 · 11 min read

When it comes to spawning processes in Java, ProcessBuilder offers a good way to get started. The problem with this approach is when you want to work with the inputs and outputs of a process and you do not want to write another time a lot of boilerplate code just to handle Process’s OutputStream and InputStreams.

Read Post
Universal Relation Data Modelling Considered Harmful
Álvaro Hernández · Oct 28, 2020 · 1 min read

Universal Relation Data Modelling Considered Harmful As part of a continued series of blog posts themed about “Relational databases and NoSQL”, Dr. Michael Stonebraker and I co-authored a new blog post just published on EnterpriseDB’s blog.

Read Post
Beyond jsonb: a generalized, unstructured data type for Postgres
Álvaro Hernández · Aug 6, 2020 · 6 min read

jsonb supports, unsurprisingly, JSON jsonb is, undeniably, king. It is a very flexible data type, that allows for unstructured/schema-less storage. It has very powerful indexing mechanisms, and its internal representation is reasonably compact and efficient.

Read Post
Generated Columns vs. Triggers in PostgreSQL 12
Emanuel Calvo & Anthony Sotolongo · Jul 7, 2020 · 5 min read

A comparative approach between Generated Columns and Triggers In this post, we are going to describe how Generated Columns work and how much it improves query execution times, compared to trigger-based solutions.

Read Post
EXPLAIN ANALYZE may be lying to you
Álvaro Hernández · May 26, 2020 · 10 min read

The Observer effect In physics, the observer effect is the theory that the mere observation of a phenomenon inevitably changes that phenomenon. This is often the result of instruments that, by necessity, alter the state of what they measure in some manner.

Read Post
JOINs the hard way: comparing MongoDB and Postgres
Álvaro Hernández · Apr 6, 2020 · 1 min read

JOINs the hard way: comparing MongoDB and Postgres Dr. Michael Stonebraker and I have just published a new blog post on our series comparing MongoDB and Postgres. This second post compares JOINing data in MongoDB and Postgres, and follows on our previous post, “Schema Later” Considered Harmful.

Read Post
CONF: PostgreSQL configuration for humans
Jorge Solórzano & Olesya Saletska · Jan 27, 2020 · 4 min read

What is PostgresqlCO.NF? PostgresqlCO.NF (CONF for short) is your postgresql.conf documentation and ultimate recommendations' source. Our mission is to help you tune and optimize all of your PostgreSQL configuration. With around 290 configuration parameters in postgresql.conf (and counting), it is definitely a difficult task! We aim to make PostgreSQL configuration accessible for HUMANS.

Read Post
Benchmarking: Do it with transparency or don't do it at all
Álvaro Hernández · Jul 25, 2019 · 13 min read

Introduction This post is a reply to MongoDB’s “Benchmarking: Do it right or don’t do it at all” post. Which they wrote as a response to the whitepaper “Performance Benchmark: PostgreSQL / MongoDB”, published and sponsored by EnterpriseDB and performed by OnGres.

Read Post
Having lunch with PostgreSQL, MongoDB and Json
Álvaro Hernández · Apr 19, 2019 · 12 min read

On a post titled “Postgres JSON, Developer Productivity, and The MongoDB Advantage”, Buzz Moschetti discussed about PostgreSQL’s handling of JSON and how (inconvenient) it is for developers, especially when compared to MongoDB. While the post is almost 18 months old, the principles described there have not changed, and I (mostly) respectfully disagree. Here is my opinion on the topic. Let’s see what there is on today’s menu.

Read Post
jOOQ: Stream processing PostgreSQL query results
Pablo González Doval · Aug 22, 2018 · 10 min read

When Java 8 came out, it proved a great effort to cope with the great demand of stream processing. Streams and lambdas allow you to process the data in a list asynchronously, so that you don’t have to wait until the last element of step 1 is calculated in order to start step 2 (apart from the evident code cleanness). With great amounts of data, this reduces a very painful bottleneck, so why wouldn’t we want this huge data-related improvement in our ORMs?

Read Post