After the first Swiss PostgreSQL community dinner yesterday evening, the conference started this morning. dbi services as Gold partner of the 10th European conference in Lisbon, get the opportunity to have a booth to present all our Open Infrastructures Services.


For the occasion we decided to announce this morning our brand new video of our OpenDB Appliance, which is a real success, because we have more than one hundred views and many attended of the conference was coming to our booth to get more information about it.

Today I followed many sessions, but one of them was especially interesting for me “zheap: An answer to PostgreSQL bloat woes” from Amit Kapila
This presentation presented the new Postgres storage engine “ZHEAP” which is currently under development, currently no availability plan of this storage engine exist, I think not before 2020. But I’m exiting to test this new feature of PostgreSQL.

First what it is this new ZHEAP storage engine? ZHEAP allow the usage of a separate UNDO tablespace to guarantee rollbacks, which currently at Postgres is done with keeping the old and new rows into the table itself. The problem of keeping both values into the table, is that the table will bloat.

The presentation is available here on slideshare : link to the presentation

As an experimented Oracle DBA I want to test it. Therefore I asked my colleague Daniel Westermann: how can I test it ? he say “it’s easy”. I always hear that from Postgres that it’s easy, so I say we will do it now.

At 17h20 I started to clone the git repository of the project
30 minutes later after installing and creating my own build, I’m ready for the testing.

See below some output of the new running development ZHEAP database.

02:42:34 [email protected]:/u02/pgdata/zheap/pg_log/ [ZHEAP] grep -i undo postgresql-Wed.log 

2018-10-17 02:41:49.498 CEST - 10 - 6544 -  - @ LOG:  background worker "undo worker launcher" (PID 6553) exited with exit code 1

02:42:42 [email protected]:/u02/pgdata/zheap/pg_log/ [ZHEAP] grep -i "discard worker" postgresql-Wed.log 

2018-10-17 02:41:52.594 CEST - 1 - 6597 -  - @ LOG:  discard worker started

At startup we see the new “undo worker” and “discard worker” process into the logfile, where Amit Kapila just talked about.
So now I will test to create a new table with the storage_engine “ZHEAP”

02:50:39 [email protected]:/u02/pgdata/zheap/pg_log/ [ZHEAP] sqh
psql (12devel dbi services zheap build)
Type "help" for help.

PSQL>  create table t_zheap(c1 int, c2 varchar) with (storage_engine='zheap');
Time: 12.433 ms

That’s it 🙂 my first table using the zheap storage is created, and I can start testing.

Trust me I was coming back from the session at 17:20 and at less than 30 minutes later, I have a running test system using the ZHEAP storage engine, it is very impressive how fast it is to get access to a Postgres development platform.

Tomorrow I will write a blog where I will make some tests using ZHEAP, because now it’s time for the Party 🙂