Comments (8)
In general, async is slower. Especially on Python.
- async operation makes a lot of function call. function call is very slow on Python.
- Writing fast C extension is more difficult than blocking.
When comparing memory consumption under massive (and slow) concurrency,
async code consumes less memory than blocking code. Since thread uses stack memory.
See also: http://techspot.zzzeek.org/2015/02/15/asynchronous-python-and-databases/
from tornado-mysql.
WOW !! Great post!
So, in my single thread tornado server, there is no need to use this async-mysql. It'll not increase in performance under massive (and slow) concurrency.
But without any increase performance, when should i use async-mysql ?
from tornado-mysql.
When you want to measure performance difference between threadpool vs async. :)
from tornado-mysql.
If you want to serve more than one user at a time with your tornado server, it makes sense to use an async database driver. Otherwise if you have relatively long-running queries to the db, the request handler will be blocked until it gets the result from the db and no other requests would be processed at the time.
from tornado-mysql.
@bazzilic threadpool can be used for concurrency.
In case of redis, subscribing pubsub channel is good example to use async client.
Redis is optimized for massive concurrent client and subscribing pubsub channel may be blocked for long time.
But in case of MySQL, I don't know good real example to use async client,
since MySQL server is not optimized for massive concurrent connections.
from tornado-mysql.
@methane get it! Then, how about async memcached/redis cache?
from tornado-mysql.
Memcached is stateless (transaction-less) and supports pipelining.
So fastest way is pipelining + multiplexing. You can use only one connection for concurrent requests.
It reduces packets/sec and server-side CPU usage.
In case of redis, most queries except pubsub are same to memcached.
When using pubsub, Tornado-Redis may help you.
from tornado-mysql.
Oo⚬h, thanks a lot!
from tornado-mysql.
Related Issues (20)
- Get Exception socket.error: error(9, 'Bad file descriptor') in testing. HOT 2
- Release a new version to fix the pool hungup bug HOT 1
- how to set read_timeout? HOT 3
- What's the suitable way to know whether the sql is executed successfully or not? HOT 1
- Handle connect_timeout
- can't get a connection when using connection pool if max_open_connections=0 HOT 1
- When to use pool vs the other option? HOT 1
- LOAD DATA LOCAL Broken? HOT 5
- OperationalError: (2006, 'MySQL server has gone away (Stream is closed)') HOT 4
- what is the problem? HOT 2
- DictCursor causing AttributeError: 'Connection' object has no attribute 'errorhandler' HOT 6
- Random Response corruption HOT 3
- tornado_mysql/cursors.py: line 233: yield gen.Return(args) HOT 1
- multiple queries with warnings in one execute() HOT 1
- pools how to commit?
- 'Future' object has no attribute 'cursor'
- Python3.6 Tornado5.0 runtests tornado_mysql.err.OperationalError: (2006, 'MySQL server has gone away (Stream is closed)') HOT 4
- Stream is closed HOT 4
- Cannot connect to MySQL after upgrade to v8 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tornado-mysql.