Submit Search
Upload
Asynchronous Python and Database
•
5 likes
•
746 views
Daehee Han
Follow
Mike Bayer의 동명의 블로그 글(http://bit.ly/1Ff6EJ1)에 대해 발표한 슬라이드입니다.
Read less
Read more
Software
Report
Share
Report
Share
1 of 25
Download now
Download to read offline
Recommended
가상메모리
가상메모리
Gilsuk Hong
FCGI, C++로 Restful 서버 개발
FCGI, C++로 Restful 서버 개발
현승 배
Servlet&jsp 1장
Servlet&jsp 1장
JeongBong Kim
Server
Server
DaeMyung Kang
Crawling with AWS Lambda
Crawling with AWS Lambda
Seungho Kim
10만 라인, 26280시간의 이야기
10만 라인, 26280시간의 이야기
Minyoung Jeong
두근두근 ASP.NET 5!
두근두근 ASP.NET 5!
SangHoon Han
20 handler and_async_task
20 handler and_async_task
운용 최
Recommended
가상메모리
가상메모리
Gilsuk Hong
FCGI, C++로 Restful 서버 개발
FCGI, C++로 Restful 서버 개발
현승 배
Servlet&jsp 1장
Servlet&jsp 1장
JeongBong Kim
Server
Server
DaeMyung Kang
Crawling with AWS Lambda
Crawling with AWS Lambda
Seungho Kim
10만 라인, 26280시간의 이야기
10만 라인, 26280시간의 이야기
Minyoung Jeong
두근두근 ASP.NET 5!
두근두근 ASP.NET 5!
SangHoon Han
20 handler and_async_task
20 handler and_async_task
운용 최
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
Sanghun Yun
CDN overview
CDN overview
Yoohyun Kim
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XpressEngine
확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안
IMQA
서버인프라를지탱하는기술2_1-2
서버인프라를지탱하는기술2_1-2
HyeonSeok Choi
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System
Kwangseob Kim
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System
Kwangseob Kim
NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션
흥배 최
HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1
J B
PyCon2020 NLP beginner's BERT challenge
PyCon2020 NLP beginner's BERT challenge
Yoongi Kim
Asynchronous 101 - (1)
Asynchronous 101 - (1)
MinChul Lee
Aws로 ci하기 안기욱
Aws로 ci하기 안기욱
AWSKRUG - AWS한국사용자모임
Web hacking introduction
Web hacking introduction
Jinkyoung Kim
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선
Sol Kim
서버성능개선 류우림
서버성능개선 류우림
우림 류
Ahea Team Spring batch
Ahea Team Spring batch
Sunghyun Roh
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드
KwangSeob Jeong
스마일게이트 서버개발캠프 - HGHSS - 합격하소서
스마일게이트 서버개발캠프 - HGHSS - 합격하소서
ServerDevCamp
Web server
Web server
Herren
Warp
Warp
aceigy6322
More Related Content
Similar to Asynchronous Python and Database
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
Sanghun Yun
CDN overview
CDN overview
Yoohyun Kim
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XpressEngine
확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안
IMQA
서버인프라를지탱하는기술2_1-2
서버인프라를지탱하는기술2_1-2
HyeonSeok Choi
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System
Kwangseob Kim
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System
Kwangseob Kim
NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션
흥배 최
HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1
J B
PyCon2020 NLP beginner's BERT challenge
PyCon2020 NLP beginner's BERT challenge
Yoongi Kim
Asynchronous 101 - (1)
Asynchronous 101 - (1)
MinChul Lee
Aws로 ci하기 안기욱
Aws로 ci하기 안기욱
AWSKRUG - AWS한국사용자모임
Web hacking introduction
Web hacking introduction
Jinkyoung Kim
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선
Sol Kim
서버성능개선 류우림
서버성능개선 류우림
우림 류
Ahea Team Spring batch
Ahea Team Spring batch
Sunghyun Roh
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드
KwangSeob Jeong
스마일게이트 서버개발캠프 - HGHSS - 합격하소서
스마일게이트 서버개발캠프 - HGHSS - 합격하소서
ServerDevCamp
Web server
Web server
Herren
Warp
Warp
aceigy6322
Similar to Asynchronous Python and Database
(20)
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
CDN overview
CDN overview
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안
서버인프라를지탱하는기술2_1-2
서버인프라를지탱하는기술2_1-2
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System
NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션
HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1
PyCon2020 NLP beginner's BERT challenge
PyCon2020 NLP beginner's BERT challenge
Asynchronous 101 - (1)
Asynchronous 101 - (1)
Aws로 ci하기 안기욱
Aws로 ci하기 안기욱
Web hacking introduction
Web hacking introduction
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선
서버성능개선 류우림
서버성능개선 류우림
Ahea Team Spring batch
Ahea Team Spring batch
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드
스마일게이트 서버개발캠프 - HGHSS - 합격하소서
스마일게이트 서버개발캠프 - HGHSS - 합격하소서
Web server
Web server
Warp
Warp
Asynchronous Python and Database
1.
Asynchronous Python and
Databases
2.
• Asynchronous Python
and Databases - Mike Bayer • http://bit.ly/1Ff6EJ1
3.
4.
Sync vs Async
5.
Synchronous I/O in
Web Server • 쓰레드 : 클라이언트 = 1:1 • 코드가 간결, 확장하기 쉬움 • 라이브러리들이 모두 thread-safe 해야함
6.
Slow Client Problem
7.
해결책 : Buffering
Reverse Proxy
8.
Async I/O in
Web server • 많은 량의 I/O를 처리 • 라이브러리들이 모두 Async여야 함 • CPU intensive한 작업에 약함
9.
Async I/O in
Web Service • 예상 - evented I/O 가 thread 모델보다 빠를 것이다 • I/O intensive한 프로그램이기 때문 (DB, 캐시 조회)
10.
• 근데 안빠르다… •
대체 왜? Async I/O in Web Service
11.
Mike Bayer의 대답 (1)
Python is very slow compared to your database
12.
I/O Bound • 데이터를
요청하는 시간이 처리하는 시간보다 긴 작업 • 흔한 착각 - 웹 어플리케이션은 데이터베이스 요청이 대부분의 시간을 차지한다 • C나 자바에서는 맞는 말 • 파이썬에선 처리하는 시간도 요청하는 시간 못지 않게 오래 걸린다. (파이썬 자체가 DB에 비해 느림) • 얼마나 차이가 날까?
13.
얼마나 차이가 난다고… •
MySQL-Python (C) vs PyMySQL (Python) 로컬 연결 네트워크 연결
14.
PyMySQL benchmark (로컬)
15.
PyMySQL benchmark (네트워크) •
I/O bound라고 하기 힘듬 • 실제 어플리케이션에선 더욱더…
16.
요약하자면… • Async I/O
의 효과를 보려면 I/O bound여야 함 • 파이썬 어플리케이션 : I/O < 파이썬 자체의 오버헤드 • Async로 얻을 수 있는 효과를 감소시킴 (암달의 법칙)
17.
(2) AsyncIO uses
appealing, but relatively inefficient Python paradigms
18.
yield Overhead • 보통의
sync함수 • async 버전
19.
benchmark
20.
benchmark • 120 threads
/ processes / connection • Local Postgresql
21.
3. yield from
…
22.
3. yield from
… • explicit context switching
23.
3. yield from
… • 명시적인 컨텍스트 전환이 필요한가? - no • 왜냐하면 데이터베이스 중심 서비스는 대부분 트랜잭션을 중심으로 흘러가기 때문
24.
3. yield from
… 맞는 코드: sync를 쓰든 async를 쓰든 로직상엔 큰 차이가 없음
25.
결론 • Async I/O를
쓰지 말라는 것은 아님 • 하지만 데이터베이스 로직에는 굳이 쓸 이유가 없음 - 성능을 향상시키기보다 떨어뜨릴 확률이 높음 • Async가 적절한 상황에 nginx + uwsgi 사용
Download now