Mark I'm guessing he's talking about mysql, not couch. It's true that you can't run multiple simultaneous transactions over one mysql connection. But that's a mysql connection in any language, not just node (unless I'm missed something). Not a node-mysql expert, but your choices are:
a) create a connection per request b) create a connection pool, for example with node-pool, and acquire and release a connection on each request Ted On Dec 19, 2012, at 7:44 PM, Mark Hahn <[email protected]> wrote: >> I wonder why there is no one care about it. > > I will assume you aren't a troll. I would think that almost all couch > users know about ACID and use Couch understanding the trade-offs. > CouchDB has distributed features that would not be possible with > transactions. If transactions are necessary for your application then > choose a DB with transactions. > > On Wed, Dec 19, 2012 at 7:37 PM, Jake Verbaten <[email protected]> wrote: >> 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 > > -- > 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
