2016-11-30 165 views
3

我有兩張表A和B與分類賬相關。許多交易並行發生在A和B兩者中。面臨鎖表直到交易提交

問題是:螺紋28之前

[28] - A insert success for source entity_id: id001 
[28] - B update success for destination entity_id: id002 
[28] - A insert success for destination entity_id: id002 
[71] - B update success for source entity_id: id001     
[28] - commit success for [28] with amount 100 

螺紋71個更新表B提交更改到分類帳。

這是因爲postgres在進程使用它時鎖定了表。

  1. 我該如何讓線程等待提交完成當前線程?
  2. 如何在postgres中鎖定記錄? (以便用戶可以訪問表中的其他帳戶)

回答

1

Postgres默認鎖定記錄。請參閱docs

對於提供的日誌,最後一個日誌必須在提交事務後。只要交易完成,等待的線程立即接管,這就是你的日誌以這種方式出現的原因。