前文我認為 DB query optimizer (QO) 產生執行計畫並執行查詢和 使用地圖找尋最佳路徑很類似 下面會跟大家分享我心中 地圖理論 希望可以對於想了解 DB 運作的人更快上手 看見全貌在了解一個事情跟技術,我們需要先用宏觀的角度來看待事情 下圖是 postgresql DB 運作核心 ...
利用Redlock演算法實現自己的分佈式鎖
前言我之前有寫透過 lock or CAS 來防治,Racing condition 問題,但如果這個問題延深到多台服務器甚至是 micor-services 架構我們要怎麼處理資料問題呢? 下面程式在單體服務或應用程式不會出問題,但如果服務器有多台問題可就大了,因為下面的 lock 只限於單體 S ...
postgresql 執行計畫重要因子 (成本因子調教)
前言執行計畫代表此次查詢要怎麼樣的演算法查詢我們的資料,而成本是決定使用哪個執行計畫的重要因素 在 postgreSQL DB query optimizer 會選擇成本最低的執行計劃,當作查詢資料使用算法 在 Sql-sevrer 成本計算封裝在程式內部,我們無法透過一些因子來調整,但 postg ...
AWS Lambda 初體驗 by .net core
前言AWS 在有眾多服務,其中我對於 Lambda 最有興趣 (因為 .net 有一個 Lambda 表達式 ) 最近申辦帳號可以使用 12 個月部分免費服務(有條件限制),看我還不玩爆 AWS XD 經過了解得知 Lambda 是一個 EDA 架構並幫我們解決開發時需要煩惱硬體上配置(記憶體要多少 ...
postgresql WAL (Write-Ahead Logging) 機制
前言WAL 是一種 Tx Log實踐機制 WAL 核心概念是先寫 tx log,在把資料寫資料,資料的修改必须發生在寫入 Tx Log之後,使用 WAL 紀錄資料庫系統在commit transaction 使用 WAL 機制後我們不需要在每次 Commit Transaction 後就把資料 fl ...
postgresql HOT (heap only tuple) update 深入淺出
前言Postgresql DB 目前預設在更新資料時會在 Heap Table 新增一條新版本資料,舊版本會先存在直到使用 VACUUM 回收 HOT update 作用在,當資料更新時通過 Heap Block 內部串聯所有 tuple 版本,則 Index 索引不變 HOT update 必須滿 ...
postgresql Page 深入淺出
前言因為工作需要最近在研究 postgresql DB,發現跟 sql-server 相比有許多不同之處,所以一開始就先研究 Page 差別,沒想到還真的有不少細節上的差異 在postgresql DB Page size 預設是 8KB 我們想要看page使用大小在 Sql-Server 可以用 ...
高併發系統系列-非同步 MQ-WorkerPool 架構 Poc
前文在處理高併發系統架構時,非同步是一個很好的手段和提升效率的方式. 我今天跟大家分享,如何利用 MQ 搭配 Worker Pool 來提高系統吞吐量且又不失彈性 原始碼連結 MQ Woker 本篇會包含兩個部分解說 如何使用 k3d (k8s) 和 docker-compose 來 Run 起我 ...
RabbitMQ cluster-operator
前言在 Rabbitmq 官方 Github 有開源一個 k8s 操作管理 RabbitMQ clusters 環境 cluster-operator. 這個專案在2020啟動,我個人覺得官方有些說明還沒很完善,本篇文章跟大家介紹如何去使用 建立 operatorkubectl apply -f ...
初探-介紹Kubernetes
前文k8s前身是Google開發borg系統,用於管理Google系統,後面由許多borg核心開發人用利用Go語言改寫就造就Kubernetes 可以根據聲明式設定,管理、擴展我們的容器化應用編排系統 有效安全幫我們執行Container Rollout 能夠因應系統流量變化,進行伸縮擴容(Sca ...