利用Redlock演算法實現自己的分佈式鎖

我之前有寫透過 lock or CAS 來防治,Racing condition 問題,但如果這個問題延深到多台服務器甚至是 micor-services 架構我們要怎麼處理資料問題呢?

下面程式在單體服務或應用程式不會出問題,但如果服務器有多台問題可就大了,因為下面的 lock 只限於單體 Server 上

 

...繼續閱讀 »

postgresql Page 深入淺出

因為工作需要最近在研究 postgresql DB,發現跟 sql-server 相比有許多不同之處,所以一開始就先研究 Page 差別,沒想到還真的有不少細節上的差異

在postgresql DB Page size 預設是 8KB

我們想要看page使用大小在 Sql-Server 可以用 DBCC命令在 postgresql DB 沒有 DBCC 還好有其他方式可以查看 Page 儲存原理

如果要了解存儲怎麼辦呢?

...繼續閱讀 »

初探-介紹Kubernetes

  • 164
  • 0
  • K8S
  • 2021-09-03

k8s前身是Google開發borg系統,用於管理Google系統,後面由許多borg核心開發人用利用Go語言改寫就造就Kubernetes

可以根據聲明式設定,管理、擴展我們的容器化應用編排系統

  • 有效安全幫我們執行Container Rollout
  • 能夠因應系統流量變化,進行伸縮擴容(Scaling)
  • Health check實現自動偵測故障及重啟功能
  • 透過Namespace有效幫我們做資源隔離

k8s協助我們方便掌控複雜容器系統架構,具有良好伸縮性

 

...繼續閱讀 »

[C#] CLR-深入淺出

前文:

我們在撰寫C#時常常會聽到CLR(Common Lnguage Rumtime),但對於CLR又認知多少呢?

本篇會跟大家介紹CLR基本且核心的物件

...繼續閱讀 »

多執行緒系統中不得不知-volatile

前言

假如你寫過多執行緒系統一定會看過volatile,但你對他的了解有多少?

MSDN對於volatile關鍵字解釋如下.

volatile 關鍵字指出某個欄位可能是由同時執行的多個執行緒所修改。 編譯器、執行階段系統,甚至硬體都有可能基於效能因素,而重新排列對記憶體位置的讀取和寫入。 宣告為 volatile 的欄位不受限於這些最佳化考量。 加入 volatile 修飾詞可確保所有的執行緒都會依執行寫入的順序,觀察任何其他執行緒所執行的暫時性寫入。

MSDN上寫一堆文謅謅的解釋,如果沒有相對應OS或底層概念會很難理解上面敘述

...繼續閱讀 »