Kenny's Blog

這是Kenny's technology blog,歡迎交流_(:3」∠)_

為了資安安全性的問題,定期的 rotate password 是該做的事情,但問題是:rotate password 要如何避免 application 有 downtime?

以下紀錄 PostgreSQL 如何快速 rotate password with zero downtime。

閱讀全文 »

今天來筆記一下 MySQL 與 PostgreSQL 的差異,這篇文章是我很久以前就想講的主題,另外多年前 Uber 也出了這篇 Why Uber Engineering Switched from Postgres to MySQL,我會根據這篇文章提到的內容來探討一下,MySQL 與 PostgreSQL 在怎樣的情境下的各自優缺點為何。

閱讀全文 »

Hello everyone, I’m Kenny, a Backend Engineer from Dcard.

Dcard is a social networking platform that allows everyone to share ideas with confidence, regardless of background, age, or interest. It is Taiwan’s largest anonymous communication platform.

Recently, we upgraded the primary PG 9.6 Cluster of Dcard’s services to the 11 version, managing to limit write downtime within ten minutes, and successfully rebuilt the OfflineDB and CDC services within an hour. In this article, we will share how we accomplished this challenging task.

閱讀全文 »

前陣子,我們將 Dcard 服務主要的 PG Cluster 進行主版本的升級,並且控制寫入 downtime 在十分鐘內,在一小時內重建完成 OfflineDB 與 CDC 服務。因此透過這篇文章來分享我們是如何完成這項艱困的任務。

以下文章內容跟公司發佈在 medium 內容一樣,也算是紀錄自己做這大專案的嘔心歷程 XD

然後之後會再發一篇英文版的文章,也算是想分享給外國朋友,因為做這升級的規劃時,也上網看了不少其他國外公司的升級文章,所以我也想把我的升級過程翻譯成英文分享出去。

閱讀全文 »

今天這篇文章,是因應公司讀書會整理出來 Postgres 從 physical replication 到 logical replication 的相關概念。從歷史演化來看,並且理解 backup & recovery 概念後,再來理解何謂 physical replication,而 physical replication 本身功能已經發展多年,從 PG 10 開始發展 logical replication 並且到 PG 15 這之間做了不少 logical replication 的加強。

閱讀全文 »

延續上一篇講 pgcapture 的架構介紹與使用方式,接下來會開一系列文章講解 pgcapture 重要的實作細節。今天這篇文章先來講講 pgcapture 是如何做到 DDL 捕捉的。

閱讀全文 »

上次我們講到如何透過 pgoutput plugin 加上 pgx 來實作我們自己的 CDC 功能,但是其缺點是無法複製 DDL 且直到 pg 14 才支援 pgoutput 有 binary format 的功能。

因此今天來介紹我前同事開發的 pgcapture 是如何去解決以上提到的兩個缺點的,且如何使用。

閱讀全文 »

上一篇文章我們知道 logical decoding 的概念,這次我們來示範如何用 golang + pgx 來實現 CDC 的效果。我們知道從 Postgres 10 開始支援用 pub & sub 這種 logical replication 的方式,因此也提供 pgoutput 的 plugin 來實現 logical decoding。

因此這邊文章是使用 pgoutput + golang client 實現 logical replication 進而實現捕捉 CDC Event 的效果。

閱讀全文 »
0%