Enterprise PostgreSQL Solutions

Key Management

Key management consists of four parts: key generation, key preservation, key exchange, and key rotation. Key Generation Only for the study of symmetric encryption, so I mainly introduce symmetric encryption. The symmetric password generation method is: A random number is a key Password-based key generation HKDF (HMAC-based extraction and extended key derivation) A random number…
Read more

Can you gain performance with Pgpool-II as a load balancer?

The world’s most valuable resource is no longer the oil or gold, but data. And at the heart of data lies the database which is expected to store, process and retrieve the desired data as quickly as possible. But having a single database server doesn’t mostly serve the purpose. A single server has its drawbacks…
Read more

The performance test on the AES modes

After introducing the difference between the AES modes, in this document, I will put the results about the AES modes performance. The following tests just use one core CPU. AES-NI:The Advanced Encryption Standard Instruction Set (or Intel Advanced Encryption Standard New Instructions, AES-NI for short) is an extension of the x86 instruction set architecture for…
Read more

Parallel Foreign Scan of PostgreSQL

PostgreSQL Community is working on adding built-in sharding in Postgres and it seems that the community is following the FDW based sharding approach for adding built-in sharding for PG. The Parallel Foreign Scan is a very important part of this approach as it will provide the functionality of executing multiple foreign scans in parallel and…
Read more

An Overview of Logical Replication in PostgreSQL

Logical Replication appeared in Postgres10, it came along with number of keywords like ‘logical decoding’, ‘pglogical’, ‘wal2json’, ‘BDR’ etc. These words puzzle me so much so I decided to start the blog with explaining these terms and describing the relationships between them. I will also mention a new idea for a tool called ‘logical2sql’, it…
Read more

An Overview of Replication in PostgreSQL Context

Replication is a critical part of any database system that aims to provide high availability (HA) and effective disaster recovery (DR) strategy. This blog is aimed at establishing the role of replication in a database system. The blog will give a general overview of replication and its types as well as an introduction to replication options…
Read more

Horizontal scalability with Sharding in PostgreSQL – Where it is going Part 3 of 3.

Built-in Sharding Architecture The build-in sharding feature in PostgreSQL is using the FDW based approach, the FDW’s are based on sql/med specification that defines how an external data source can be accessed from the PostgreSQL server. PostgreSQL provides number of foreign data wrapper (FDW’s) that are used for accessing external data sources, the postgres_fdw is…
Read more

Horizontal scalability with Sharding in PostgreSQL – Where it is going Part 2 of 3.

Declarative Partitioning So far we have discussed scalability, what is scalability, why and when you need and what are the different types of scalability. Now we are starting to get into the meat of this topic and will discuss declarative partitioning and sharding in PostgreSQL. The sharding functionality is being laid on top of declarative partitioning…
Read more

Horizontal scalability with Sharding in PostgreSQL – Where it is going Part 1 of 3

I recently had the opportunity of taking part in couple of interesting talks on the future of sharding in PostgreSQL. The first talk was delivered by Bruce Momjain in PostgreSQL conf Ottawa (May 2019) in which he presented the future of Sharding in PostgreSQL and talked about current state and future of built-in sharding in…
Read more

The difference in five modes in the AES encryption algorithm

Recently, I did some work with Sawada-san on the TDE. So I studied on the encryption algorithm. So far, I study five modes in the AES. In this document, I will introduce the difference in the five kinds of mode. General The block ciphers are schemes for encryption or decryption where a block of plaintext…
Read more

How To Add Extensions To PG on Ubuntu

How Extensibility Works PostgreSQL is extensible because its operation is catalog-driven. PostgreSQL stores much more information in its catalogs: not only information about tables and columns, but also information about data types, functions, access methods, and so on. These tables can be modified by the user, and since PostgreSQL bases its operation on these tables,…
Read more

Pgpool II 4.1 taking the bull by its horn

I will start with providing some explanation for the blog title before i dive into the blog itself. The title of this blog is that “Pgpool II 4.1 taking the bull by its horn”, the “bull” in this case is Pgpool II performance and “taking it by its horn” means that 4.1 is performance release…
Read more

The JIT benchmarking results and findings in PostgreSQL 11

Just-in-time compilation of SQL statements is one of the new features in PostgreSQL 11. Just-in-Time compilation (JIT) is the process of turning some form of interpreted program evaluation into a native program and doing so at runtime. While doing some testing and benchmarking with JIT it appears that PostgreSQL 11 is about 29.31% faster at…
Read more

Pakistan Office Open

I am very pleased and thrilled to inform that I have joined HighGo Software Inc as a VP of Development and General Manager Pakistan office. HighGo Software is the largest commercial PostgreSQL provider in China. It is also a core member of the PostgreSQL community in China and is the initiator of China PostgreSQL Association,…
Read more