2024-01-30

[C#] 一個輕量化的Database - LiteDB 關於 Transation 的測試 Commit , Rollback

最近依然在測試 LiteDB,今天要測試的是 Transaction ,在 LiteDB 中 Transaction 其實很簡單的

跟傳統在寫 SQL Server 的 Transaction 設計的很像,我網路上查了一下文件,其實到 v5 之後版本寫法變得比較穩定

今天就簡單的記錄一下 



範例描述,我會建立 10W 筆資料起來,之後我會跑一個  Parallel.For 然後執行 Upsert  寫入  _id : friend1 ~ friend100 

的 Name 改成 --EDITED ,因為我測試其實很難發生錯誤,自己 throw 一個錯誤這樣測試很無聊

所以我改寫每一次跑,我故意都會讓他去碰撞 db 那顆檔案的存取權,錯誤就是無限的重新寫入到成功為止


Result:





這算是一個瘋狂測試驗證他的安全性但是其實就是很簡單的  BeginTrans => 動作 => Commit || Rollback