Transactions are trivial when supported by your database engine.
Like [levelup's .batch()][1]
var ops = [
{ type: 'del', key: 'father' }
, { type: 'put', key: 'name', value: 'Yuri Irsenovich Kim' }
, { type: 'put', key: 'dob', value: '16 February 1941' }
, { type: 'put', key: 'spouse', value: 'Kim Young-sook' }
, { type: 'put', key: 'occupation', value: 'Clown' }
]
db.batch(ops, function (err) {
if (err) return console.log('Ooops!', err)
console.log('Great success dear leader!')
})
If your database driver doesn't give you a sensible clean api then just
write one.
If your database doesn't support transactions then your screwed.
[1]: https://github.com/rvagg/node-levelup#batch
On Wed, Dec 19, 2012 at 7:01 PM, Charlie Circle <[email protected]> wrote:
> For serious web applications, transaction is crucial.
>
> But node's asynchronous nature do not obey transaction rule, I wonder why
> there is no one care about it.
>
> In synchronous applications, you start your transaction, and do database
> operation step by step, when done, just commit it.
>
> While in node, you must start transaction a place, and commit it in a
> callback chain in a deep level.
>
> But it's not the worst thing, because node share a single connection in a
> process, we can not sure which operation is in what transaction, so all
> messed must.
>
> I've seen a solution in npm, which let you execute database operation in
> sequence, let us go back to synchronous age, not so scalable, right?
>
> Is there any new idea?
>
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en