diff options
author | Paul J. Davis <paul.joseph.davis@gmail.com> | 2019-04-17 11:13:06 -0500 |
---|---|---|
committer | Paul J. Davis <paul.joseph.davis@gmail.com> | 2019-04-17 11:13:06 -0500 |
commit | c45c7329d5639bb330d7ae6c6805d8337d4aa788 (patch) | |
tree | b0b6588659d445ad9911af36e4222f39811a3bb1 | |
parent | 4af77731ee0cb03013c60756ec1b89a464d23f23 (diff) | |
download | couchdb-c45c7329d5639bb330d7ae6c6805d8337d4aa788.tar.gz |
Only attempt to short circuit write transactions
-rw-r--r-- | src/fabric/src/fabric2_fdb.erl | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/fabric/src/fabric2_fdb.erl b/src/fabric/src/fabric2_fdb.erl index abc7fed57..e2aa02c68 100644 --- a/src/fabric/src/fabric2_fdb.erl +++ b/src/fabric/src/fabric2_fdb.erl @@ -752,9 +752,14 @@ tx_check_applied(Tx, Fun) -> tx_attempt(Tx, Fun) -> Result = Fun(Tx), - TxId = tx_id(Tx), - ok = erlfdb:set(Tx, TxId, <<>>), - put(?PDICT_TX_RES_KEY, Result), + case erlfdb:is_read_only(Tx) of + true -> + ok; + false -> + TxId = tx_id(Tx), + ok = erlfdb:set(Tx, TxId, <<>>), + put(?PDICT_TX_RES_KEY, Result) + end, Result. |