Kenny's Blog

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

0%

今天來做 Replication 的筆記,主要是談在 Replication 中的模式,例如 Leaders and Followers 以及實現 Replication 有 Statement-based replicationLogical replicationPhysical replication 還有談談什麼是 Replication Lag 並造成了怎樣的影響。

閱讀全文 »

今天要來介紹的是 Copy Operation in Postgres 的用法,此外也比較與 InsertBatch Insert 之間的速度比較。之所以想講這個是因為最近在工作上有需要大量 insert record 的需求,那因為是使用 Postgres 的關係,所以開始研究 Copy 的使用方式,並且深入探討了一下 Copy 使用 simple queryextended query protocol 請求方式的差別。這邊會透過 wireshark 來看封包分析一下~

閱讀全文 »

再寫 Golang 的時候常常會需要封裝 struct 的操作,而通常會針對該 struct 做一個 New func 的操作,為的就是方便 inject 相對應的 dependency 進去。那麼就會碰到需要有 option 的時候,所謂 option 的時候,是指說有些欄位的設定是可以給 client 自由設定的,此外如果 client 沒有設定,會有所謂的預設值。那麼這樣的設計在 Golang 要怎麼去實作已經不同方式的優缺點在哪,來看一下吧。

閱讀全文 »

Singleton 的設計模式相信大家都耳熟能詳,我想說做個筆記記錄一下在 Golang 要如何實作。

閱讀全文 »

Database 最值得學習的不外乎是 index 的設計,為什麼呢?因為有了 index 才可以加速查詢,但是內部的 index engine 是怎麼做到的?如果我們可以了解細節的差異的話,我們在設計要怎麼放 index 在什麼欄位,我覺得會更有感覺。

今天這篇文章會介紹 Postgres 內部的 index engine 是怎麼運作,不僅僅單純的 index scan,事實上 Postgres 會因應不同的情況採取不同的 scan 策略。

閱讀全文 »

今天要來介紹的是 Designing Data-Intensive Applications Chapter 03 的筆記,主題是:Storage and Retrieval,這篇文章涵蓋的內容是圍繞著 index structure 的設計,最後介紹到 B-Tree 與 LSM-Tree 兩者的優缺點及應用場景。

閱讀全文 »

強者我同事,最近在公司分享 zero-downtime migration 的細節,避免以後我們上了 migration 使得 Production Postgres 被 lock 住,這樣會讓我們的整個服務,會無法使用。

聽完我覺得這些細節寫成筆記記錄下來比較好,避免自己犯了相同的錯誤。因為公司用的資料庫是 Postgres,所以文章內的例子都是用 Postgres 來示範的~

閱讀全文 »

今天來介紹最近公司讀書會要一起共讀的書本:Designing Data-Intensive Applications,一樣,會把每一章所做的筆記寫成 blog 出來。今天的重點主要是介紹何謂 Reliable,Scalable and Maintainable,這三個元素應該是設計每個系統都需要考量到的三件事情,一起來看看吧。

閱讀全文 »