Kenny's Blog

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

0%

今天要來介紹的是 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,這三個元素應該是設計每個系統都需要考量到的三件事情,一起來看看吧。

閱讀全文 »

距離我上次寫文章,已經好幾個月了,最近終於忙完學校的事情,從八月開始算是要邁入社會新鮮人了,當然也希望我的寫 blog 的習慣可以一直持續下去。

今天這篇是開啟將一些我在看的實體書或是電子書的筆記記錄起來,所以之後應該會連續發好幾篇同一本書的筆記,為避免篇幅過長,我會將書本中的每一個章節都分別寫筆記記起來,會在 blog 寫出來的都是我覺得比較需要記起來的。

今天要提的是這本書:Concurrency in Go

個人認為這本書還不錯,它提供了很多寫 Concurrency 有哪一些 pattern 可以使用,之後應該也會將這些 concurrency pattern 放在我的 golib 上,這個 repo 是包含我平常寫專案常用的套件封裝,個人覺得還滿實用的,歡迎大家可以給個 star 並且發個 PR 提供更多好用的工具。

今天的主題是第一章的筆記:An Introduction to Concurrency

閱讀全文 »