Fading Coder

One Final Commit for the Last Sprint

Implementing Distributed Transaction Fault Recovery in PostgreSQL

Distributed transaction fault recovery in PostgreSQL relies on the Two-Phase Commit (2PC) protocol, Write-Ahead Logging (WAL), and replciation architectures. Although PostgreSQL operates as a standalone relational engine, its transaction management APIs enable safe participation in multi-node coordi...

Creating Databases with SQL Commands

SQL (Structured Query Language) is the standard language for managing relational databases. To create a database, you must have a database management system (DBMS) installed, such as MySQL, PostgreSQL, or SQLite, and apropriate privileges, typical administrative or database creation rights. Connect...

Strategies for Optimizing Complex Queries with Multiple Self-Joins and Outer Joins in PostgreSQL

Complex queries involving multiple self-joins and outer joins present significant performance challenges. These operations can lead to high computational overhead, large intermediate result sets, and inefficient execution plans. Understanding how to structure and optimize such queries is essential f...

Designing a Partitioned Database Index for Offline Geospatial Disk Archiving

This article details the design and implementation of a database system for indexing and managing large volumes of geospatial data stored across multiple offline hard drives. The system uses PostgreSQL with automated table partitioning to efficiently handle billions of file records. System Architect...

Oracle ROWID vs PostgreSQL CTID: Stable Identifiers with Identity Columns and OIDs

Oracle exposes a physical address called ROWID. As long as a row is not relocated (no row migration), the ROWID for that row remains the same, allowing lookups even without a primary key. PostgreSQL exposes a similar physical locator, ctid, which is a tuple address composed of (block_number, offset_...

Nested Transactions in PostgreSQL Using SAVEPOINT, ROLLBACK TO, and RELEASE

PostgreSQL emulates nested transactions with savepoints. A savepoint records a position within an open transaction; it allows selective rolllback without aborting the outer transaction. Key commands: SAVEPOINT name: create a rollback marker ROLLBACK TO [SAVEPOINT] name: undo all work after that mar...

Building Multi-Primary Replication with PostgreSQL Logical Replication

PostgreSQL logical replication offfers a straightforward path to uni-directional streaming. With careful design, it can also underpin multi-primary (multi-master) deployments by addressing two core challenges: Concurrency conflicts when multiple nodes modify the same row Replication loops that endle...

Inspecting PostgreSQL Logical Replication Subscription Progress

Subscriber-side visibility Table-level progress: pg_subscription_rel Table synchronization state for each subscription is exposed through pg_subscription_rel. Joining with pg_subscription and pg_class makes the output easier to read. SELECT s.subname, c.relname AS table_name, r.srsubstate, r.srsubls...

Offline Installation of PostgreSQL 12 on RHEL 7 for SonarQube

SonarQube 8.3 supports Oracle, SQL Server, and PostgreSQL. For a lightweight, license-free option suitable for isolated environments, PostgreSQL is a practical choice. The following steps outline an offline setup on a RHEL 7 system. Download RPMs for Offline Install Visit https://www.postgresql.org/...

Configuring High Availability and Load Balancing for PostgreSQL Using pgpool-II

This document provides a comprehensive guide to implementing high availability and load balancing for PostgreSQL databases using pgpool-II in a cluster setup. The content covers installation, configurasion, failover strategies, and cluster validation. Overview of pgpoool-II pgpool-II acts as a middl...