3 ms·
From this thread https://groups.google.com/forum/#!topic/python-tornado/mgj18IzasQg https://groups.google.com/forum/#!topic/python-tornado/mgj18... (posting her
by dchest 15y ago
From this thread https://groups.google.com/forum/#!topic/python-tornado/mgj18IzasQg https://groups.google.com/forum/#!topic/python-tornado/mgj18... (posting here because Google Groups sometimes require login):
We experimented with different async DB approaches, but settled on
synchronous at FriendFeed because generally if our DB queries were
backlogging our requests, our backends couldn't scale to the load
anyway. Things that were slow enough were abstracted to separate
backend services which we fetched asynchronously via the async HTTP
module.
I may open source the async MySQL client I wrote, but I am still
skeptical of the long term value given the code complexity it
introduces.
Bret
- wulczer 15y agoErm, so if things are fast it doesn't matter and if things are slow you should write a whole new service, put a HTTP interface into it and use that? Not sure I buy that :) Disclaimer: I wrote an async DB module for Twisted/PostgreSQL and it did not turn out to be all that complex.
- wisty 15y agoThere's async libraries here: https://github.com/facebook/tornado/wiki/Links https://github.com/facebook/tornado/wiki/Links - You can get just about any db except MySQL. There's ones for Couch, Mongo, HBase, a bunch of other No-SQLs and Psycopg (PostGres). Also, Tornado is now introducing some kind of interface to Twisted's event loop, which does have everything ported. Bret just doesn't seem to want async My-SQL in the main code base.
- spokengent 15y agoNot sure friendfeed ever got enough users to know scaling issues... Personally I would go with async DB, or have DB access in its own thread(s) and async communicate with that.
- wisty 15y agoFrom Wikipedia: [FriendFeed] had on average one million monthly visitors ... [and] was bought for $15 million in cash, and $32.5 million in Facebook stock. I figure after the first million users, your embarrassingly parellel app server layer is not your bottleneck, it's getting the database to scale.