josephg / node-foundationdb

Modern Node.js FoundationDB bindings
Other
116 stars 17 forks source link

Transaction options #17

Closed jfedyczak closed 6 years ago

jfedyczak commented 6 years ago

Is it possible to set transaction options? Specifically I'd like to limit transaction repeating in case of conflict.

josephg commented 6 years ago

Yep! Pass options as an optional second parameter to doTransaction

db.doTn(async () => {...}, {retry_limit: 3})
jfedyczak commented 6 years ago

What about NextWriteNoWriteConflictRange option before .set. How to achieve sth like:

db.doTransaction(async tn => {
    tn.setOption(NextWriteNoWriteConflictRange, true)
    tn.set(key, value)
})
josephg commented 6 years ago
db.doTn(async () => {
  tn.setOption(fdb.TransactionOptionCode.NextWriteNoWriteConflictRange)
  tn.set('foo', 'bar')
})

I just published 0.6.0 to npm which exposesfdb.TransactionOptionCode, which wasn't public before. Give it a try

jfedyczak commented 6 years ago

Works fine. Thank you!