-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DEP 0009: Async-capable Django #56
Conversation
Hi @andrewgodwin, thanks for this work. I read it yesterday and I have a few points that I'd like to be addressed in this draft before it's made official: • I saw that parallelism is mentioned in a couple of sections of the current version of the draft (for instance https://github.com/andrewgodwin/deps/blob/async/draft/0009-async.rst#id25). Yet asyncio is concurrent and is not parallel. The distinction is important for further discussion, because async-capable Django exists already in other forms, without utilizing • Django could utilize • the same is applicable to handling websocket connections either within the same process or through channels - a gevent-aware webserver is capable of handling both http and ws traffic concurrently, and granularity is adjustable; • • ...hence the conclusion that
seems a bit too biased at the moment, especially because risks and ramifications of the transition are not outlined clearly:
|
@avanov I have updated the DEP to use "concurrent" rather than "parallel" where it makes sense. Thanks for picking that up. I have also added a section that explains why we are not choosing I understand that there's a decent community of people who use gevent, but much like Curio, it ends up being too small relative to the growing number of asyncio libraries to make it viable for a large, volunteer project. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The changes you pushed make many things much clearer – thank you for the added discussion of performance, and the potential impact of abandoning the implementation.
draft/0009-async.rst
Outdated
with new database connections. Any transactions that were running outside the | ||
block continue; any ORM calls inside the block operate on a new database | ||
connection and will see the database from that perspective. If the database | ||
has transaction islation enabled, as most do by default, this means that the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
has transaction islation enabled, as most do by default, this means that the | |
has transaction isolation enabled, as most do by default, this means that the |
This paragraph is much more understandable now, thank you!
This is a pull request for this first draft of the Async DEP (currently numbered 0009 unless another lands first).
This is an unusual DEP as it has a very broad scope, and is very long; I do not expect this to be merged straight away, but instead for this PR to serve as a central point for specific patches and updates as we revise it initially.
This DEP is also incredibly long, at around 7,000 words, so I have included a very high-level summary at the start of it. If you read nothing else, read that and the foreword.
If you wish to read the DEP, it may be nicer to use the rich text display on GitHub at https://github.com/andrewgodwin/deps/blob/async/draft/0009-async.rst
The mailing list discussion about this is here: https://groups.google.com/forum/#!topic/django-developers/5CVsR9FSqmg