Rust 的 SQL Optimistic Lock
上一篇聊到怎麼用 PostgreSQL 的原生型別 xmin 來做 optimistic lock,身為一個 Rust 愛好者,當然想在 Rust 上面也照做一次,結果沒想到中間卡了一堆意料之外的東西。這篇就來分享一下遇到的狀況,還有最後是怎麼解決的。
我是 Marvin,後端工程師。這裡的東西大多是寫給以後的自己看的 —— 一些踩過的坑或是還沒踩的坑。
上一篇聊到怎麼用 PostgreSQL 的原生型別 xmin 來做 optimistic lock,身為一個 Rust 愛好者,當然想在 Rust 上面也照做一次,結果沒想到中間卡了一堆意料之外的東西。這篇就來分享一下遇到的狀況,還有最後是怎麼解決的。
最近又碰到並行的問題,資料改完以後結果跟預期的不一樣,而且看得出來有兩支以上的應用程式同時在動這筆資料,但要抓出到底是哪一支的行為有衝突真的很難,這種狀況用 optimistic lock 就可以解決。
最近團隊的幾支 API 出現了效能問題,這種狀況通常都是查詢寫得不夠好造成的,不過這次遇到了一個蠻有趣的案例,出問題的這支 API 其實只做更新而已。這篇就來分享一下這次的經驗,順便看看 PostgreSQL 在更新 JSONB 的時候效能到底發生了什麼事。
分析 monorepo 好壞的文章很多,但如果已經決定要從 polyrepo 搬到 monorepo,反而很難找到在講搬遷過程的教學或討論。最近剛好做了一次,就來分享一下整個過程遇到的問題,還有當初是怎麼一步一步做、中間考慮了哪些東西。
在工作中,我們常常會遇到一些需要重複執行的作業,專案時程安排不會特別開發複雜的界面,不需要精緻的使用者界面下往往會需要開發人員手動執行,這類的需求其實很適合寫成CLI來簡化流程。最近就因為類似的需求用Rust寫了一個簡單的小工具來增加工作效率。